{
  "forbidden": [
    {
      "name": "not-to-test",
      "comment": "Don't allow dependencies from outside the test folder to test",
      "severity": "error",
      "from": {
        "pathNot": "^(test|spec)"
      },
      "to": {
        "path": "^(test|spec)"
      }
    },
    {
      "name": "not-to-spec",
      "comment": "Don't allow dependencies to (typescript/ javascript/ coffeescript) spec files",
      "severity": "error",
      "from": {},
      "to": {
        "path": "\\.spec\\.(js|ts|ls|coffee|litcoffee|coffee\\.md)$"
      }
    },
    {
      "name": "no-circular",
      "severity": "warn",
      "comment": "Warn in case there's circular dependencies",
      "from": {},
      "to": {
        "circular": true
      }
    },
    {
      "name": "no-deprecated-core",
      "comment": "Warn about dependencies on deprecated core modules.",
      "severity": "warn",
      "from": {},
      "to": {
        "dependencyTypes": [
          "core"
        ],
        "path": "^(punycode|domain|constants|sys|_linklist)$"
      }
    },
    {
      "name": "no-deprecated-npm",
      "comment": "These npm modules are deprecated - find an alternative.",
      "severity": "warn",
      "from": {},
      "to": {
        "dependencyTypes": [
          "deprecated"
        ]
      }
    },
    {
      "name": "not-to-unresolvable",
      "comment": "Don't allow dependencies on modules dependency-cruiser can't resolve to files on disk (which probably means they don't exist)",
      "severity": "error",
      "from": {},
      "to": {
        "couldNotResolve": true
      }
    },
    {
      "name": "not-to-dev-dep",
      "severity": "error",
      "comment": "Don't allow dependencies from src/app/lib to a development only package",
      "from": {
        "path": "^(src|app|lib)",
        "pathNot": "\\.spec\\.(js|ts|ls|coffee|litcoffee|coffee\\.md)$"
      },
      "to": {
        "dependencyTypes": [
          "npm-dev"
        ]
      }
    },
    {
      "name": "no-non-package-json",
      "severity": "error",
      "comment": "Don't allow dependencies to packages not in package.json (except from within node_modules)",
      "from": {
        "pathNot": "^node_modules"
      },
      "to": {
        "dependencyTypes": [
          "unknown",
          "undetermined",
          "npm-no-pkg",
          "npm-unknown"
        ]
      }
    },
    {
      "name": "optional-deps-used",
      "severity": "info",
      "comment": "nothing serious - but just check you have some serious try/ catches around the import/ requires of these",
      "from": {},
      "to": {
        "dependencyTypes": [
          "npm-optional"
        ]
      }
    },
    {
      "name": "peer-deps-used",
      "comment": "Warn about the use of a peer dependency (peer dependencies are deprecated with the advent of npm 3 - and probably gone with version 4).",
      "severity": "warn",
      "from": {},
      "to": {
        "dependencyTypes": [
          "npm-peer"
        ]
      }
    },
    {
      "name": "no-duplicate-dep-types",
      "comment": "Warn if a dependency you're actually using occurs in your package.json more than once (technically: has more than one dependency type)",
      "severity": "warn",
      "from": {},
      "to": {
        "moreThanOneDependencyType": true
      }
    }
  ],
  "options": {
    "doNotFollow": "^node_modules"
  }
}