sverweij/dependency-cruiser

View on GitHub
package.json

Summary

Maintainability
Test Coverage
{
  "name": "dependency-cruiser",
  "version": "16.3.2",
  "description": "Validate and visualize dependencies. With your rules. JavaScript, TypeScript, CoffeeScript. ES6, CommonJS, AMD.",
  "keywords": [
    "static analysis",
    "circular",
    "dependencies",
    "typescript",
    "javascript",
    "coffeescript",
    "ES6",
    "ES2015",
    "AMD",
    "CommonJS",
    "validation",
    "spelunking"
  ],
  "author": "Sander Verweij (https://sverweij.github.io)",
  "contributors": [
    "Hirotaka Miyagi (https://mh4gf.dev)",
    "TruongSinh Tran-Nguyen (https://truongsinh.pro)",
    "Bastian Hess (https://github.com/bashess)",
    "Álvaro Cuesta (https://github.com/alvaro-cuesta)",
    "anna (https://github.com/annamooseity)",
    "Radosław Kłos (https://klos.dev)",
    "Joshua T (https://github.com/radiantly)",
    "Ivan (https://github.com/Winner95)",
    "Frieder Bluemle (https://github.com/friederbluemle)",
    "davidparkagoda (https://github.com/davidparkagoda)",
    "Matt Button (https://github.com/BRMatt)",
    "Jon Lauridsen (https://jonlauridsen.com)",
    "Klaus Meinhardt (https://github.com/ajafff)",
    "cunzaizhuyi (https://github.com/cunzaizhuyi)",
    "Greg Lockwood (https://github.com/greglockwood)",
    "Jeremy Magland (https://github.com/magland)",
    "Sebastian Landwehr (https://sebastianlandwehr.com)",
    "Brody McKee (https://github.com/mrmckeb)",
    "Bin (https://github.com/soulhat)",
    "정건우 (https://www.zigae.com/)",
    "Roy Swinkels (https://github.com/donroyco)",
    "Martin Slota (https://github.com/martinslota)",
    "Luke Page (https://github.com/lukeapage)",
    "Emily Marigold Klassen (https://forivall.com)",
    "Christian Vuerings (https://github.com/christianvuerings)",
    "Yuanhai He (https://bestmike007.com)",
    "Quentin de Metz (https://github.com/quentindemetz)",
    "Lars Artmann (https://larsartmann.com)",
    "Jessica Kerr (https://jessitron.com)",
    "Creative Ataraxia (https://github.com/Creative-Ataraxia)",
    "0xflotus (https://github.com/0xflotus)",
    "Daniel Edholm Ignat (https://github.com/dignite)",
    "Daniel Rodríguez Rivero (https://danielorodriguez.com)",
    "Nick Ribal (https://github.com/elektronik2k5)",
    "Richard Musiol (https://github.com/neelance)",
    "Sharang Pai (https://sharangpai.me)",
    "Stefan Gojan (https://stefan-gojan.de)",
    "Tharun Rajendran (https://github.com/tharun208)",
    "electrovir (https://github.com/electrovir)",
    "fusheng (https://github.com/lin-hun)"
  ],
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/sverweij/dependency-cruiser.git"
  },
  "bugs": {
    "url": "https://github.com/sverweij/dependency-cruiser/issues"
  },
  "homepage": "https://github.com/sverweij/dependency-cruiser",
  "bin": {
    "dependency-cruiser": "bin/dependency-cruise.mjs",
    "dependency-cruise": "bin/dependency-cruise.mjs",
    "depcruise": "bin/dependency-cruise.mjs",
    "depcruise-baseline": "bin/depcruise-baseline.mjs",
    "depcruise-fmt": "bin/depcruise-fmt.mjs",
    "depcruise-wrap-stream-in-html": "bin/wrap-stream-in-html.mjs"
  },
  "main": "src/main/index.mjs",
  "imports": {
    "#configuration-schema": "./src/schema/configuration.schema.mjs",
    "#cruise-result-schema": "./src/schema/cruise-result.schema.mjs",
    "#*": "./src/*"
  },
  "exports": {
    ".": {
      "types": "./types/dependency-cruiser.d.mts",
      "import": "./src/main/index.mjs"
    },
    "./config-utl/extract-babel-config": {
      "types": "./types/config-utl/extract-babel-config.d.mts",
      "import": "./src/config-utl/extract-babel-config.mjs"
    },
    "./config-utl/extract-depcruise-config": {
      "types": "./types/config-utl/extract-depcruise-config.d.mts",
      "import": "./src/config-utl/extract-depcruise-config/index.mjs"
    },
    "./config-utl/extract-depcruise-options": {
      "types": "./types/config-utl/extract-depcruise-options.d.mts",
      "import": "./src/config-utl/extract-depcruise-options.mjs"
    },
    "./config-utl/extract-ts-config": {
      "types": "./types/config-utl/extract-ts-config.d.mts",
      "import": "./src/config-utl/extract-ts-config.mjs"
    },
    "./config-utl/extract-webpack-resolve-config": {
      "types": "./types/config-utl/extract-webpack-resolve-config.d.mts",
      "import": "./src/config-utl/extract-webpack-resolve-config.mjs"
    },
    "./sample-reporter-plugin": {
      "types": "./types/plugins/stats-reporter-plugin.d.mts",
      "import": "./configs/plugins/stats-reporter-plugin.mjs"
    },
    "./sample-3d-reporter-plugin": {
      "types": "./types/plugins/3d-reporter-plugin.d.mts",
      "import": "./configs/plugins/3d-reporter-plugin.mjs"
    },
    "./mermaid-reporter-plugin": {
      "types": "./types/plugins/mermaid-reporter-plugin.d.mts",
      "import": "./src/report/mermaid.mjs"
    }
  },
  "types": "types/dependency-cruiser.d.mts",
  "files": [
    "bin",
    "configs/**/*.cjs",
    "configs/plugins/",
    "src",
    "!src/**/*.json",
    "!src/**/*.md",
    "!**/*.DS_Store",
    "types/**/*.d.mts",
    "LICENSE",
    "package.json",
    "README.md"
  ],
  "scripts": {
    "build": "make build",
    "build:clean": "make clean",
    "check": "npm-run-all build lint depcruise test:cover",
    "check:full": "npm-run-all check test:glob",
    "depcruise": "node ./bin/dependency-cruise.mjs src bin test configs types tools --ignore-known",
    "depcruise:all": "node ./bin/dependency-cruise.mjs src bin test configs types tools",
    "depcruise:baseline": "node ./bin/depcruise-baseline.mjs src bin test configs types tools",
    "depcruise:explain": "node ./bin/dependency-cruise.mjs src bin test configs types tools --output-type err-long --progress none",
    "depcruise:graph:doc": "npm-run-all depcruise:graph:doc:json --parallel depcruise:graph:doc:fmt-* depcruise:graph:doc:samples",
    "depcruise:graph:doc:json": "node ./bin/dependency-cruise.mjs bin src test --output-type json --output-to node_modules/.cache/tmp_graph_deps.json --progress",
    "depcruise:graph:doc:fmt-detail": "./bin/depcruise-fmt.mjs -T dot -f - node_modules/.cache/tmp_graph_deps.json | dot -T svg | tee doc/real-world-samples/dependency-cruiser-without-node_modules.svg | node bin/wrap-stream-in-html.mjs > docs/dependency-cruiser-dependency-graph.html",
    "depcruise:graph:doc:fmt-archi": "./bin/depcruise-fmt.mjs -T archi -f - node_modules/.cache/tmp_graph_deps.json | dot -T svg -Gordering=in -Grankdir=TD | tee doc/real-world-samples/dependency-cruiser-archi-graph.svg | node bin/wrap-stream-in-html.mjs > docs/dependency-cruiser-archi-graph.html",
    "depcruise:graph:doc:fmt-dir": "./bin/depcruise-fmt.mjs -T ddot -f - node_modules/.cache/tmp_graph_deps.json | dot -T svg -Grankdir=TD | tee doc/real-world-samples/dependency-cruiser-dir-graph.svg | node bin/wrap-stream-in-html.mjs > docs/dependency-cruiser-dir-graph.html",
    "depcruise:graph:doc:fmt-schema": "cd tools/schema && node ../../bin/dependency-cruise.mjs . --output-type dot | dot -T svg | tee ../overview.svg | node ../../bin/wrap-stream-in-html.mjs > ../../docs/schema-overview.html && cd -",
    "depcruise:graph:doc:fmt-types": "cd types && node ../bin/dependency-cruise.mjs . --output-type dot | dot -T svg | tee overview.svg | ../bin/wrap-stream-in-html.mjs > overview.html && cd -",
    "depcruise:graph:doc:samples": "sh tools/generate-samples.sh",
    "depcruise:graph:mermaid": "node ./bin/dependency-cruise.mjs bin src --include-only ^src/ --collapse 2 --output-type mermaid",
    "depcruise:graph:mermaid:diff": "node ./bin/dependency-cruise.mjs bin src test types tools --config configs/.dependency-cruiser-unlimited.mjs --output-type mermaid --reaches \"$(watskeburt $SHA)\"",
    "depcruise:graph:view": "node ./bin/dependency-cruise.mjs bin src --prefix vscode://file/$(pwd)/ --config configs/.dependency-cruiser-show-metrics-config.mjs --output-type x-dot-webpage --progress cli-feedback --highlight \"$(watskeburt main)\" | browser",
    "depcruise:graph:view:diff": "node ./bin/dependency-cruise.mjs bin src test --prefix vscode://file/$(pwd)/ --config configs/.dependency-cruiser-unlimited.mjs --output-type x-dot-webpage --progress cli-feedback --reaches \"$(watskeburt main)\" | browser",
    "depcruise:report": "node ./bin/dependency-cruise.mjs src bin test configs types --output-type err-html --config configs/.dependency-cruiser-show-metrics-config.mjs --output-to dependency-violations.html",
    "depcruise:report:view": "node ./bin/dependency-cruise.mjs src bin test configs types --output-type err-html --config configs/.dependency-cruiser-show-metrics-config.mjs --output-to - | browser",
    "depcruise:focus": "node ./bin/dependency-cruise.mjs src bin test configs types tools --progress --no-cache --output-type text --focus",
    "depcruise:reaches": "node ./bin/dependency-cruise.mjs src bin test configs types tools --progress --no-cache --config configs/.dependency-cruiser-unlimited.mjs --output-type text --reaches",
    "format": "prettier --log-level warn --write \"src/**/*.cjs\" \"configs/**/*.cjs\" \"tools/**/*.mjs\" \"bin/*\" \"types/*.d.mts\" \"test/**/*.spec.{cjs,js}\" \"test/**/*.{spec,utl}.mjs\"",
    "format:check": "prettier --log-level warn --check \"src/**/*.cjs\" \"configs/**/*.cjs\" \"tools/**/*.mjs\" \"bin/*\" \"types/*.d.mts\" \"test/**/*.spec.{cjs,js}\" \"test/**/*.{spec,utl}.mjs\"",
    "lint": "npm-run-all --parallel --aggregate-output lint:eslint format:check lint:types",
    "lint:eslint": "eslint bin/dependency-cruise.mjs bin src test configs tools/**/*.mjs --cache --cache-location node_modules/.cache/eslint/",
    "lint:eslint:fix": "eslint --fix bin src test configs tools/**/*.mjs --cache --cache-location node_modules/.cache/eslint/",
    "lint:eslint:clear-caches": "rm -rf node_modules/.cache/eslint/",
    "lint:fix": "npm-run-all lint:eslint:fix format lint:types:fix",
    "lint:types": "npm-run-all lint:types:tsc lint:types:lint",
    "lint:types:tsc": "tsc --project types/tsconfig.json",
    "lint:types:lint": "eslint --no-ignore --config types/.eslintrc.json types/*.d.mts",
    "lint:types:fix": "eslint --no-ignore --config types/.eslintrc.json --fix types/*.d.mts",
    "prepack": "clean-pkg-json --dry --keep overrides --keep resolutions | jq '.scripts = {test: \"echo for test, build and static analysis scripts: see the github repository\"}' | jq '.type = \"module\"' > smaller-package.json && mv smaller-package.json package.json",
    "postpack": "git restore package.json",
    "prepare": "husky install",
    "scm:push": "run-p --aggregate-output scm:push:*",
    "scm:push:bitbucket-mirror": "run-p --aggregate-output scm:push:bitbucket-mirror:*",
    "scm:push:bitbucket-mirror:commits": "git push bitbucket-mirror",
    "scm:push:bitbucket-mirror:tags": "git push --tags bitbucket-mirror",
    "scm:push:github": "run-p --aggregate-output scm:push:github:*",
    "scm:push:github:commits": "git push",
    "scm:push:github:tags": "git push --tags",
    "scm:push:gitlab-mirror": "run-p --aggregate-output scm:push:gitlab-mirror:*",
    "scm:push:gitlab-mirror:commits": "git push gitlab-mirror",
    "scm:push:gitlab-mirror:tags": "git push --tags gitlab-mirror",
    "scm:stage": "git add .",
    "test": "LANG=en_US.UTF-8 NODE_OPTIONS=--no-warnings mocha",
    "test:i": "LANG=en_US.UTF-8 NODE_OPTIONS=--no-warnings mocha --grep \"^\\[[I]\\]\"",
    "test:u": "LANG=en_US.UTF-8 NODE_OPTIONS=--no-warnings mocha --grep \"^\\[[U]\\]\"",
    "test:e": "LANG=en_US.UTF-8 NODE_OPTIONS=--no-warnings mocha --grep \"^\\[[E]\\]\"",
    "test:cover": "LANG=en_US.UTF-8 NODE_OPTIONS=--no-warnings c8 mocha",
    "test:glob": "set -f && test \"`bin/dependency-cruise.mjs --no-config test/extract/__mocks__/gather-globbing/packages/**/src/**/*.js | grep \"no dependency violations found\"`\" = \"✔ no dependency violations found (6 modules, 0 dependencies cruised)\"",
    "test:load": "hyperfine --warmup 3 --runs 30 \"bin/dependency-cruise.mjs src bin test configs types tools --ignore-known --no-cache --no-progress\"",
    "test:load:short": "hyperfine --warmup 1 --runs 5 \"bin/dependency-cruise.mjs src bin test configs types tools --ignore-known --no-cache --no-progress\"",
    "test:load:cached": "hyperfine --warmup 3 --runs 30 \"bin/dependency-cruise.mjs src bin test configs types tools --ignore-known --cache node_modules/.cache/dependency-cruiser/load-cached --no-progress\"",
    "test:load:cached:short": "hyperfine --warmup 1 --runs 5 \"bin/dependency-cruise.mjs src bin test configs types tools --ignore-known --cache node_modules/.cache/dependency-cruiser/load-cached --no-progress\"",
    "update-dependencies": "npm-run-all upem:update upem:install build:clean build lint:eslint:clear-caches lint:fix depcruise test:cover",
    "upem-outdated": "npm outdated --json --long | upem --dry-run",
    "upem:install": "npm install",
    "upem:update": "npm outdated --json --long | upem | pbcopy && pbpaste",
    "version": "npm-run-all build depcruise:graph:doc scm:stage"
  },
  "dependencies": {
    "acorn": "8.11.3",
    "acorn-jsx": "5.3.2",
    "acorn-jsx-walk": "2.0.0",
    "acorn-loose": "8.4.0",
    "acorn-walk": "8.3.2",
    "ajv": "8.13.0",
    "chalk": "5.3.0",
    "commander": "12.0.0",
    "enhanced-resolve": "5.16.1",
    "figures": "6.1.0",
    "ignore": "5.3.1",
    "indent-string": "5.0.0",
    "interpret": "^3.1.1",
    "is-installed-globally": "1.0.0",
    "json5": "2.2.3",
    "lodash": "4.17.21",
    "memoize": "10.0.0",
    "picomatch": "4.0.2",
    "prompts": "2.4.2",
    "rechoir": "^0.8.0",
    "safe-regex": "2.1.1",
    "semver": "^7.6.1",
    "semver-try-require": "7.0.0",
    "teamcity-service-messages": "0.1.14",
    "tsconfig-paths-webpack-plugin": "4.1.0",
    "watskeburt": "4.0.2",
    "wrap-ansi": "9.0.0"
  },
  "devDependencies": {
    "@babel/core": "7.24.5",
    "@babel/plugin-transform-modules-commonjs": "7.24.1",
    "@babel/preset-typescript": "7.24.1",
    "@swc/core": "1.5.5",
    "@types/lodash": "4.17.1",
    "@types/node": "20.12.11",
    "@types/prompts": "2.4.9",
    "@typescript-eslint/eslint-plugin": "7.8.0",
    "@typescript-eslint/parser": "7.8.0",
    "@vue/compiler-sfc": "3.4.27",
    "c8": "9.1.0",
    "clean-pkg-json": "1.2.0",
    "coffeescript": "2.7.0",
    "eslint": "^8.57.0",
    "eslint-config-moving-meadow": "4.0.2",
    "eslint-config-prettier": "9.1.0",
    "eslint-plugin-budapestian": "6.0.0",
    "eslint-plugin-eslint-comments": "3.2.0",
    "eslint-plugin-import": "2.29.1",
    "eslint-plugin-mocha": "10.4.3",
    "eslint-plugin-node": "11.1.0",
    "eslint-plugin-security": "3.0.0",
    "eslint-plugin-unicorn": "^52.0.0",
    "husky": "9.0.11",
    "lint-staged": "15.2.2",
    "mocha": "10.4.0",
    "normalize-newline": "4.1.0",
    "npm-run-all": "4.1.5",
    "prettier": "3.2.5",
    "proxyquire": "2.1.3",
    "shx": "0.3.4",
    "svelte": "3.59.1",
    "symlink-dir": "6.0.0",
    "typescript": "5.4.5",
    "upem": "9.0.4",
    "vue-template-compiler": "2.7.16",
    "yarn": "1.22.22"
  },
  "overrides": {
    "semver": "^7.6.1",
    "postcss": "^8.4.31"
  },
  "resolutions": {
    "semver": "^7.6.1",
    "postcss": "^8.4.31"
  },
  "upem": {
    "policies": [
      {
        "package": "eslint",
        "policy": "wanted",
        "because": "@typescript-eslint/parser 7.5.0 (currently _latest_) isn't on eslint 9 yet (it peer requires ^8.56.0)"
      },
      {
        "package": "interpret",
        "policy": "wanted",
        "because": "we want to keep interpret ~similar to what webpack-cli uses (which is ^3.1.1 since 2022-11-15). See https://github.com/webpack/webpack-cli/blame/master/packages/webpack-cli/package.json"
      },
      {
        "package": "rechoir",
        "policy": "wanted",
        "because": "we want to keep rechoir ~similar to what webpack-cli uses (which is ^0.8.0 since 2022-11-15). See https://github.com/webpack/webpack-cli/blame/master/packages/webpack-cli/package.json"
      },
      {
        "package": "svelte",
        "policy": "pin",
        "because": "upgrading to supporting svelte 4 will require a non-trivial amount of labour (which we are going to invest, but not right now)"
      }
    ]
  },
  "engines": {
    "node": "^18.17||>=20"
  },
  "supportedTranspilers": {
    "babel": ">=7.0.0 <8.0.0",
    "coffee-script": ">=1.0.0 <2.0.0",
    "coffeescript": ">=1.0.0 <3.0.0",
    "livescript": ">=1.0.0 <2.0.0",
    "svelte": ">=3.0.0 <4.0.0",
    "swc": ">=1.0.0 <2.0.0",
    "typescript": ">=2.0.0 <6.0.0",
    "vue-template-compiler": ">=2.0.0 <3.0.0",
    "@vue/compiler-sfc": ">=3.0.0 <4.0.0"
  }
}