@nrwl/eslint-plugin-nx 13.0.0-beta.7 → 13.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nrwl/eslint-plugin-nx",
3
- "version": "13.0.0-beta.7",
3
+ "version": "13.0.0-rc.1",
4
4
  "description": "ESLint Plugin for Nx",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,13 +29,13 @@
29
29
  },
30
30
  "homepage": "https://nx.dev",
31
31
  "peerDependencies": {
32
- "@typescript-eslint/parser": "~4.31.1",
32
+ "@typescript-eslint/parser": "~4.33.0",
33
33
  "eslint-config-prettier": "^8.1.0"
34
34
  },
35
35
  "dependencies": {
36
- "@nrwl/devkit": "13.0.0-beta.7",
37
- "@nrwl/workspace": "13.0.0-beta.7",
38
- "@typescript-eslint/experimental-utils": "~4.31.1",
36
+ "@nrwl/devkit": "13.0.0-rc.1",
37
+ "@nrwl/workspace": "13.0.0-rc.1",
38
+ "@typescript-eslint/experimental-utils": "~4.33.0",
39
39
  "confusing-browser-globals": "^1.0.9",
40
40
  "ts-node": "^9.1.1",
41
41
  "tsconfig-paths": "^3.9.0"
@@ -7,7 +7,7 @@ declare type Options = [
7
7
  allowCircularSelfDependency: boolean;
8
8
  }
9
9
  ];
10
- export declare type MessageIds = 'noRelativeOrAbsoluteImportsAcrossLibraries' | 'noSelfCircularDependencies' | 'noCircularDependencies' | 'noImportsOfApps' | 'noImportsOfE2e' | 'noImportOfNonBuildableLibraries' | 'noImportsOfLazyLoadedLibraries' | 'projectWithoutTagsCannotHaveDependencies' | 'tagConstraintViolation';
10
+ export declare type MessageIds = 'noRelativeOrAbsoluteImportsAcrossLibraries' | 'noSelfCircularDependencies' | 'noCircularDependencies' | 'noImportsOfApps' | 'noImportsOfE2e' | 'noImportOfNonBuildableLibraries' | 'noImportsOfLazyLoadedLibraries' | 'projectWithoutTagsCannotHaveDependencies' | 'tagConstraintViolation' | 'bannedExternalImportsViolation';
11
11
  export declare const RULE_NAME = "enforce-module-boundaries";
12
12
  declare const _default: import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleModule<MessageIds, Options, import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener>;
13
13
  export default _default;
@@ -35,6 +35,7 @@ exports.default = create_eslint_rule_1.createESLintRule({
35
35
  properties: {
36
36
  sourceTag: { type: 'string' },
37
37
  onlyDependOnLibsWithTags: [{ type: 'string' }],
38
+ bannedExternalImports: [{ type: 'string' }],
38
39
  },
39
40
  additionalProperties: false,
40
41
  },
@@ -53,6 +54,7 @@ exports.default = create_eslint_rule_1.createESLintRule({
53
54
  noImportsOfLazyLoadedLibraries: `Imports of lazy-loaded libraries are forbidden`,
54
55
  projectWithoutTagsCannotHaveDependencies: `A project without tags matching at least one constraint cannot depend on any libraries`,
55
56
  tagConstraintViolation: `A project tagged with "{{sourceTag}}" can only depend on libs tagged with {{allowedTags}}`,
57
+ bannedExternalImportsViolation: `A project tagged with "{{sourceTag}}" is not allowed to import the "{{package}}" package`,
56
58
  },
57
59
  },
58
60
  defaultOptions: [
@@ -76,7 +78,7 @@ exports.default = create_eslint_rule_1.createESLintRule({
76
78
  * the ProjectGraph may or may not exist by the time the lint rule is invoked for the first time.
77
79
  */
78
80
  try {
79
- global.projectGraph = runtime_lint_utils_1.mapProjectGraphFiles(project_graph_1.readCachedProjectGraph('4.0'));
81
+ global.projectGraph = runtime_lint_utils_1.mapProjectGraphFiles(project_graph_1.readCachedProjectGraph());
80
82
  }
81
83
  catch (_a) { }
82
84
  }
@@ -86,7 +88,7 @@ exports.default = create_eslint_rule_1.createESLintRule({
86
88
  const npmScope = global.npmScope;
87
89
  const projectGraph = global.projectGraph;
88
90
  if (!global.targetProjectLocator) {
89
- global.targetProjectLocator = new target_project_locator_1.TargetProjectLocator(projectGraph.nodes);
91
+ global.targetProjectLocator = new target_project_locator_1.TargetProjectLocator(projectGraph.nodes, projectGraph.externalNodes);
90
92
  }
91
93
  const targetProjectLocator = global
92
94
  .targetProjectLocator;
@@ -139,7 +141,18 @@ exports.default = create_eslint_rule_1.createESLintRule({
139
141
  return;
140
142
  }
141
143
  // project => npm package
142
- if (project_graph_1.isNpmProject(targetProject)) {
144
+ if (targetProject.type === 'npm') {
145
+ const constraint = runtime_lint_utils_1.hasBannedImport(sourceProject, targetProject, depConstraints);
146
+ if (constraint) {
147
+ context.report({
148
+ node,
149
+ messageId: 'bannedExternalImportsViolation',
150
+ data: {
151
+ sourceTag: constraint.sourceTag,
152
+ package: targetProject.data.packageName,
153
+ },
154
+ });
155
+ }
143
156
  return;
144
157
  }
145
158
  // check constraints between libs and apps
@@ -1 +1 @@
1
- {"version":3,"file":"enforce-module-boundaries.js","sourceRoot":"","sources":["../../../../../packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts"],"names":[],"mappings":";;;AAAA,2DAA2D;AAC3D,qFAcsD;AACtD,8EAG+C;AAC/C,oEAA+D;AAC/D,yCAA6C;AAC7C,0EAIgD;AAChD,oEAAiE;AACjE,4FAAuF;AACvF,uEAG+C;AAC/C,uEAAyE;AAoB5D,QAAA,SAAS,GAAG,2BAA2B,CAAC;AAErD,kBAAe,qCAAgB,CAAsB;IACnD,IAAI,EAAE,iBAAS;IACf,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,iEAAiE;YAC9E,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,6BAA6B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAClD,2BAA2B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAChD,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oBAC3B,cAAc,EAAE;wBACd;4BACE,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gCAC7B,wBAAwB,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;6BAC/C;4BACD,oBAAoB,EAAE,KAAK;yBAC5B;qBACF;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,QAAQ,EAAE;YACR,0CAA0C,EAAE,8FAA8F;YAC1I,sBAAsB,EAAE,2IAA2I;YACnK,0BAA0B,EAAE,gJAAgJ;YAC5K,eAAe,EAAE,+BAA+B;YAChD,cAAc,EAAE,uCAAuC;YACvD,+BAA+B,EAC7B,0EAA0E;YAC5E,8BAA8B,EAAE,gDAAgD;YAChF,wCAAwC,EAAE,wFAAwF;YAClI,sBAAsB,EAAE,2FAA2F;SACpH;KACF;IACD,cAAc,EAAE;QACd;YACE,KAAK,EAAE,EAAE;YACT,cAAc,EAAE,EAAE;YAClB,6BAA6B,EAAE,KAAK;YACpC,2BAA2B,EAAE,KAAK;SACnC;KACF;IACD,MAAM,CACJ,OAAO,EACP,CACE,EACE,KAAK,EACL,cAAc,EACd,6BAA6B,EAC7B,2BAA2B,GAC5B,EACF;QAED;;WAEG;QACH,MAAM,WAAW,GAAG,sBAAa,CAC9B,MAAc,CAAC,WAAW,IAAI,sBAAW,CAC3C,CAAC;QACF,IAAI,CAAE,MAAc,CAAC,YAAY,EAAE;YACjC,MAAM,MAAM,GAAG,uBAAU,EAAE,CAAC;YAC3B,MAAc,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAE3C;;;eAGG;YACH,IAAI;gBACD,MAAc,CAAC,YAAY,GAAG,yCAAoB,CACjD,sCAAsB,CAAC,KAAK,CAAC,CAC9B,CAAC;aACH;YAAC,WAAM,GAAE;SACX;QAED,IAAI,CAAE,MAAc,CAAC,YAAY,EAAE;YACjC,OAAO,EAAE,CAAC;SACX;QAED,MAAM,QAAQ,GAAI,MAAc,CAAC,QAAQ,CAAC;QAC1C,MAAM,YAAY,GAAI,MAAc,CAAC,YAAkC,CAAC;QAExE,IAAI,CAAE,MAAc,CAAC,oBAAoB,EAAE;YACxC,MAAc,CAAC,oBAAoB,GAAG,IAAI,6CAAoB,CAC7D,YAAY,CAAC,KAAK,CACnB,CAAC;SACH;QACD,MAAM,oBAAoB,GAAI,MAAc;aACzC,oBAA4C,CAAC;QAEhD,SAAS,GAAG,CACV,IAImC;YAEnC,yCAAyC;YACzC,sBAAsB;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,OAAO;aACR;YAED,+DAA+D;YAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,mCAAc,CAAC,OAAO,EAAE;gBAC/C,OAAO;aACR;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAe,CAAC;YAExC,qBAAqB;YACrB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,4CAAuB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;gBACtD,OAAO;aACR;YAED,MAAM,cAAc,GAAG,sCAAiB,CACtC,OAAO,CAAC,WAAW,EAAE,EACrB,WAAW,CACZ,CAAC;YAEF,0CAA0C;YAC1C,MAAM,aAAa,GAAG,sCAAiB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YACtE,IACE,uDAAkC,CAChC,GAAG,EACH,WAAW,EACX,YAAY,EACZ,cAAc,EACd,aAAa,CACd;gBACD,uDAAkC,CAAC,GAAG,CAAC,EACvC;gBACA,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,4CAA4C;oBACvD,IAAI,EAAE;wBACJ,QAAQ;qBACT;iBACF,CAAC,CAAC;gBACH,OAAO;aACR;YAED,MAAM,aAAa,GAAG,2CAAsB,CAC1C,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,GAAG,EACH,QAAQ,CACT,CAAC;YAEF,+DAA+D;YAC/D,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE;gBACpC,OAAO;aACR;YAED,wBAAwB;YACxB,IAAI,aAAa,KAAK,aAAa,EAAE;gBACnC,uDAAuD;gBACvD,IAAI,CAAC,2BAA2B,IAAI,CAAC,0BAAc,CAAC,GAAG,CAAC,EAAE;oBACxD,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,4BAA4B;wBACvC,IAAI,EAAE;4BACJ,GAAG;yBACJ;qBACF,CAAC,CAAC;iBACJ;gBACD,OAAO;aACR;YAED,yBAAyB;YACzB,IAAI,4BAAY,CAAC,aAAa,CAAC,EAAE;gBAC/B,OAAO;aACR;YACD,0CAA0C;YAC1C,gCAAgC;YAChC,MAAM,YAAY,GAAG,+BAAiB,CACnC,MAAc,CAAC,YAAY,EAC5B,aAAa,EACb,aAAa,CACd,CAAC;YACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,MAAM,gBAAgB,GAAG,qCAAuB,CAAC,YAAY,CAAC,CAAC;gBAE/D,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,wBAAwB;oBACnC,IAAI,EAAE;wBACJ,iBAAiB,EAAE,aAAa,CAAC,IAAI;wBACrC,iBAAiB,EAAE,aAAa,CAAC,IAAI;wBACrC,IAAI,EAAE,YAAY,CAAC,MAAM,CACvB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,EACjC,aAAa,CAAC,IAAI,CACnB;wBACD,SAAS,EAAE,gBAAgB;6BACxB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACb,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACrD;6BACA,MAAM,CACL,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,KAAK,EAAE,EACpC,KAAK,cAAc,EAAE,CACtB;qBACJ;iBACF,CAAC,CAAC;gBACH,OAAO;aACR;YAED,qBAAqB;YACrB,IAAI,aAAa,CAAC,IAAI,KAAK,2BAAW,CAAC,GAAG,EAAE;gBAC1C,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,iBAAiB;iBAC7B,CAAC,CAAC;gBACH,OAAO;aACR;YAED,6BAA6B;YAC7B,IAAI,aAAa,CAAC,IAAI,KAAK,2BAAW,CAAC,GAAG,EAAE;gBAC1C,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,gBAAgB;iBAC5B,CAAC,CAAC;gBACH,OAAO;aACR;YAED,2DAA2D;YAC3D,IACE,6BAA6B,KAAK,IAAI;gBACtC,aAAa,CAAC,IAAI,KAAK,2BAAW,CAAC,GAAG;gBACtC,aAAa,CAAC,IAAI,KAAK,2BAAW,CAAC,GAAG,EACtC;gBACA,IACE,qCAAgB,CAAC,aAAa,CAAC;oBAC/B,CAAC,qCAAgB,CAAC,aAAa,CAAC,EAChC;oBACA,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,iCAAiC;qBAC7C,CAAC,CAAC;oBACH,OAAO;iBACR;aACF;YAED,sFAAsF;YACtF,IACE,IAAI,CAAC,IAAI,KAAK,mCAAc,CAAC,iBAAiB;gBAC9C,IAAI,CAAC,UAAU,KAAK,MAAM;gBAC1B,qCAAgB,CACd,YAAY,EACZ,aAAa,CAAC,IAAI,EAClB,aAAa,CAAC,IAAI,EAClB,EAAE,CACH,EACD;gBACA,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,gCAAgC;iBAC5C,CAAC,CAAC;gBACH,OAAO;aACR;YAED,kDAAkD;YAClD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,MAAM,WAAW,GAAG,uCAAkB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;gBACtE,uEAAuE;gBACvE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC5B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,0CAA0C;qBACtD,CAAC,CAAC;oBACH,OAAO;iBACR;gBAED,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;oBAClC,IACE,uCAAkB,CAChB,aAAa,EACb,UAAU,CAAC,wBAAwB,IAAI,EAAE,CAC1C,EACD;wBACA,MAAM,WAAW,GAAG,UAAU,CAAC,wBAAwB;6BACpD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;6BACpB,IAAI,CAAC,IAAI,CAAC,CAAC;wBACd,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI;4BACJ,SAAS,EAAE,wBAAwB;4BACnC,IAAI,EAAE;gCACJ,SAAS,EAAE,UAAU,CAAC,SAAS;gCAC/B,WAAW;6BACZ;yBACF,CAAC,CAAC;wBACH,OAAO;qBACR;iBACF;aACF;QACH,CAAC;QAED,OAAO;YACL,iBAAiB,CAAC,IAAgC;gBAChD,GAAG,CAAC,IAAI,CAAC,CAAC;YACZ,CAAC;YACD,gBAAgB,CAAC,IAA+B;gBAC9C,GAAG,CAAC,IAAI,CAAC,CAAC;YACZ,CAAC;YACD,oBAAoB,CAAC,IAAmC;gBACtD,GAAG,CAAC,IAAI,CAAC,CAAC;YACZ,CAAC;YACD,sBAAsB,CAAC,IAAqC;gBAC1D,GAAG,CAAC,IAAI,CAAC,CAAC;YACZ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"enforce-module-boundaries.js","sourceRoot":"","sources":["../../../../../packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts"],"names":[],"mappings":"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"}