{
  "name": "dependency-cruiser",
  "version": "13.0.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": {
    "name": "Sander Verweij",
    "url": "https://sverweij.github.io"
  },
  "contributors": [
    {
      "name": "Klaus Meinhardt",
      "url": "https://github.com/ajafff"
    }
  ],
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/sverweij/dependency-cruiser"
  },
  "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",
  "exports": {
    ".": {
      "import": "./src/main/index.mjs",
      "types": "./types/dependency-cruiser.d.ts"
    },
    "./config-utl/extract-babel-config": {
      "import": "./src/config-utl/extract-babel-config.mjs",
      "types": "./types/extract-babel-config.d.ts"
    },
    "./config-utl/extract-depcruise-config": {
      "import": "./src/config-utl/extract-depcruise-config/index.mjs",
      "types": "./types/extract-depcruise-config.d.ts"
    },
    "./config-utl/extract-ts-config": {
      "import": "./src/config-utl/extract-ts-config.mjs",
      "types": "./types/extract-ts-config.d.ts"
    },
    "./config-utl/extract-webpack-resolve-config": {
      "import": "./src/config-utl/extract-webpack-resolve-config.mjs",
      "types": "./types/extract-webpack-resolve-config.d.ts"
    },
    "./sample-reporter-plugin": "./configs/plugins/stats-reporter-plugin.js",
    "./sample-3d-reporter-plugin": "./configs/plugins/3d-reporter-plugin.js",
    "./mermaid-reporter-plugin": "./src/report/mermaid.mjs"
  },
  "types": "types/dependency-cruiser.d.ts",
  "files": [
    "bin",
    "configs/**/*.js",
    "src",
    "!src/**/*.json",
    "!src/**/*.hbs",
    "!src/**/*.md",
    "!**/*.DS_Store",
    "types/*.d.ts",
    "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 > overview.svg && 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 dot --progress cli-feedback --highlight \"$(watskeburt main)\" | dot -T svg | node ./bin/wrap-stream-in-html.mjs | 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 dot --progress cli-feedback --reaches \"$(watskeburt main)\" | dot -T svg | node ./bin/wrap-stream-in-html.mjs | 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 --loglevel warn --write \"src/**/*.js\" \"configs/**/*.js\" \"tools/**/*.mjs\" \"bin/*\" \"types/*.d.ts\" \"test/**/*.spec.{cjs,js}\" \"test/**/*.{spec,utl}.mjs\"",
    "format:check": "prettier --loglevel warn --check \"src/**/*.js\" \"configs/**/*.js\" \"tools/**/*.mjs\" \"bin/*\" \"types/*.d.ts\" \"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.ts",
    "lint:types:fix": "eslint --no-ignore --config types/.eslintrc.json --fix types/*.d.ts",
    "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.8.2",
    "acorn-jsx": "5.3.2",
    "acorn-jsx-walk": "2.0.0",
    "acorn-loose": "8.3.0",
    "acorn-walk": "8.2.0",
    "ajv": "8.12.0",
    "chalk": "5.2.0",
    "commander": "10.0.1",
    "enhanced-resolve": "5.14.0",
    "figures": "5.0.0",
    "get-stream": "^6.0.1",
    "glob": "10.2.6",
    "handlebars": "4.7.7",
    "ignore": "5.2.4",
    "indent-string": "5.0.0",
    "interpret": "^3.1.1",
    "is-installed-globally": "0.4.0",
    "json5": "2.2.3",
    "lodash": "4.17.21",
    "prompts": "2.4.2",
    "rechoir": "^0.8.0",
    "safe-regex": "2.1.1",
    "semver": "^7.5.1",
    "semver-try-require": "6.2.2",
    "teamcity-service-messages": "0.1.14",
    "tsconfig-paths-webpack-plugin": "4.0.1",
    "watskeburt": "0.11.2",
    "wrap-ansi": "8.1.0"
  },
  "devDependencies": {
    "@babel/core": "7.21.8",
    "@babel/plugin-transform-modules-commonjs": "7.21.5",
    "@babel/preset-typescript": "7.21.5",
    "@swc/core": "1.3.59",
    "@types/lodash": "4.14.194",
    "@types/node": "20.2.1",
    "@types/prompts": "2.4.4",
    "@typescript-eslint/eslint-plugin": "5.59.6",
    "@typescript-eslint/parser": "5.59.6",
    "@vue/compiler-sfc": "3.3.4",
    "c8": "7.13.0",
    "chai": "4.3.7",
    "chai-json-schema": "1.5.1",
    "coffeescript": "2.7.0",
    "eslint": "8.41.0",
    "eslint-config-moving-meadow": "4.0.2",
    "eslint-config-prettier": "8.8.0",
    "eslint-plugin-budapestian": "5.0.1",
    "eslint-plugin-eslint-comments": "3.2.0",
    "eslint-plugin-import": "2.27.5",
    "eslint-plugin-mocha": "10.1.0",
    "eslint-plugin-node": "11.1.0",
    "eslint-plugin-security": "1.7.1",
    "eslint-plugin-unicorn": "^47.0.0",
    "husky": "8.0.3",
    "intercept-stdout": "0.1.2",
    "lint-staged": "13.2.2",
    "mocha": "10.2.0",
    "normalize-newline": "4.1.0",
    "npm-run-all": "4.1.5",
    "prettier": "2.8.8",
    "proxyquire": "2.1.3",
    "shx": "0.3.4",
    "svelte": "3.59.1",
    "symlink-dir": "5.1.1",
    "typescript": "5.0.4",
    "upem": "7.3.2",
    "vue-template-compiler": "2.7.14",
    "yarn": "1.22.19"
  },
  "upem": {
    "policies": [
      {
        "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"
      }
    ]
  },
  "engines": {
    "node": "^16.14||>=18"
  },
  "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"
  }
}
