@nrwl/linter 16.0.0-beta.0 → 16.0.0-beta.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.
Files changed (110) hide show
  1. package/executors.json +5 -5
  2. package/generators.json +2 -28
  3. package/index.d.ts +1 -5
  4. package/index.js +1 -13
  5. package/index.js.map +1 -1
  6. package/package.json +7 -20
  7. package/README.md +0 -61
  8. package/migrations.json +0 -226
  9. package/src/executors/eslint/compat.d.ts +0 -2
  10. package/src/executors/eslint/compat.js +0 -6
  11. package/src/executors/eslint/compat.js.map +0 -1
  12. package/src/executors/eslint/hasher.d.ts +0 -7
  13. package/src/executors/eslint/hasher.js +0 -47
  14. package/src/executors/eslint/hasher.js.map +0 -1
  15. package/src/executors/eslint/lint.impl.d.ts +0 -5
  16. package/src/executors/eslint/lint.impl.js +0 -116
  17. package/src/executors/eslint/lint.impl.js.map +0 -1
  18. package/src/executors/eslint/schema.d.ts +0 -38
  19. package/src/executors/eslint/schema.json +0 -139
  20. package/src/executors/eslint/utility/eslint-utils.d.ts +0 -4
  21. package/src/executors/eslint/utility/eslint-utils.js +0 -52
  22. package/src/executors/eslint/utility/eslint-utils.js.map +0 -1
  23. package/src/generators/init/global-eslint-config.d.ts +0 -36
  24. package/src/generators/init/global-eslint-config.js +0 -77
  25. package/src/generators/init/global-eslint-config.js.map +0 -1
  26. package/src/generators/init/init-migration.d.ts +0 -3
  27. package/src/generators/init/init-migration.js +0 -68
  28. package/src/generators/init/init-migration.js.map +0 -1
  29. package/src/generators/init/init.d.ts +0 -9
  30. package/src/generators/init/init.js +0 -63
  31. package/src/generators/init/init.js.map +0 -1
  32. package/src/generators/lint-project/lint-project.d.ts +0 -16
  33. package/src/generators/lint-project/lint-project.js +0 -137
  34. package/src/generators/lint-project/lint-project.js.map +0 -1
  35. package/src/generators/utils/eslint-file.d.ts +0 -4
  36. package/src/generators/utils/eslint-file.js +0 -27
  37. package/src/generators/utils/eslint-file.js.map +0 -1
  38. package/src/generators/utils/eslint-targets.d.ts +0 -2
  39. package/src/generators/utils/eslint-targets.js +0 -13
  40. package/src/generators/utils/eslint-targets.js.map +0 -1
  41. package/src/generators/utils/linter.d.ts +0 -4
  42. package/src/generators/utils/linter.js +0 -9
  43. package/src/generators/utils/linter.js.map +0 -1
  44. package/src/generators/workspace-rule/files/__name__.spec.ts__tmpl__ +0 -11
  45. package/src/generators/workspace-rule/files/__name__.ts__tmpl__ +0 -37
  46. package/src/generators/workspace-rule/schema.json +0 -26
  47. package/src/generators/workspace-rule/workspace-rule.d.ts +0 -7
  48. package/src/generators/workspace-rule/workspace-rule.js +0 -79
  49. package/src/generators/workspace-rule/workspace-rule.js.map +0 -1
  50. package/src/generators/workspace-rules-project/files/index.ts__tmpl__ +0 -27
  51. package/src/generators/workspace-rules-project/files/tsconfig.json__tmpl__ +0 -13
  52. package/src/generators/workspace-rules-project/files/tsconfig.lint.json__tmpl__ +0 -9
  53. package/src/generators/workspace-rules-project/schema.json +0 -23
  54. package/src/generators/workspace-rules-project/workspace-rules-project.d.ts +0 -8
  55. package/src/generators/workspace-rules-project/workspace-rules-project.js +0 -86
  56. package/src/generators/workspace-rules-project/workspace-rules-project.js.map +0 -1
  57. package/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.d.ts +0 -2
  58. package/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.js +0 -32
  59. package/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.js.map +0 -1
  60. package/src/migrations/update-12-9-0/add-outputs.d.ts +0 -2
  61. package/src/migrations/update-12-9-0/add-outputs.js +0 -23
  62. package/src/migrations/update-12-9-0/add-outputs.js.map +0 -1
  63. package/src/migrations/update-13-3-0/eslint-8-updates.d.ts +0 -2
  64. package/src/migrations/update-13-3-0/eslint-8-updates.js +0 -44
  65. package/src/migrations/update-13-3-0/eslint-8-updates.js.map +0 -1
  66. package/src/migrations/update-14-1-9/add-swc-deps-if-needed.d.ts +0 -2
  67. package/src/migrations/update-14-1-9/add-swc-deps-if-needed.js +0 -20
  68. package/src/migrations/update-14-1-9/add-swc-deps-if-needed.js.map +0 -1
  69. package/src/migrations/update-14-4-4/experimental-to-utils-deps.d.ts +0 -2
  70. package/src/migrations/update-14-4-4/experimental-to-utils-deps.js +0 -30
  71. package/src/migrations/update-14-4-4/experimental-to-utils-deps.js.map +0 -1
  72. package/src/migrations/update-14-4-4/experimental-to-utils-rules.d.ts +0 -2
  73. package/src/migrations/update-14-4-4/experimental-to-utils-rules.js +0 -38
  74. package/src/migrations/update-14-4-4/experimental-to-utils-rules.js.map +0 -1
  75. package/src/migrations/update-15-0-0/add-eslint-inputs.d.ts +0 -2
  76. package/src/migrations/update-15-0-0/add-eslint-inputs.js +0 -33
  77. package/src/migrations/update-15-0-0/add-eslint-inputs.js.map +0 -1
  78. package/src/migrations/update-15-7-1/add-eslint-ignore.d.ts +0 -2
  79. package/src/migrations/update-15-7-1/add-eslint-ignore.js +0 -42
  80. package/src/migrations/update-15-7-1/add-eslint-ignore.js.map +0 -1
  81. package/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.d.ts +0 -5
  82. package/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.js +0 -57
  83. package/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.js.map +0 -1
  84. package/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.d.ts +0 -9
  85. package/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.js +0 -152
  86. package/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.js.map +0 -1
  87. package/src/utils/convert-tslint-to-eslint/example-tslint-configs.d.ts +0 -326
  88. package/src/utils/convert-tslint-to-eslint/example-tslint-configs.js +0 -325
  89. package/src/utils/convert-tslint-to-eslint/example-tslint-configs.js.map +0 -1
  90. package/src/utils/convert-tslint-to-eslint/index.d.ts +0 -2
  91. package/src/utils/convert-tslint-to-eslint/index.js +0 -9
  92. package/src/utils/convert-tslint-to-eslint/index.js.map +0 -1
  93. package/src/utils/convert-tslint-to-eslint/project-converter.d.ts +0 -72
  94. package/src/utils/convert-tslint-to-eslint/project-converter.js +0 -396
  95. package/src/utils/convert-tslint-to-eslint/project-converter.js.map +0 -1
  96. package/src/utils/convert-tslint-to-eslint/utils.d.ts +0 -10
  97. package/src/utils/convert-tslint-to-eslint/utils.js +0 -91
  98. package/src/utils/convert-tslint-to-eslint/utils.js.map +0 -1
  99. package/src/utils/rules-requiring-type-checking.d.ts +0 -3
  100. package/src/utils/rules-requiring-type-checking.js +0 -88
  101. package/src/utils/rules-requiring-type-checking.js.map +0 -1
  102. package/src/utils/testing.d.ts +0 -2
  103. package/src/utils/testing.js +0 -13
  104. package/src/utils/testing.js.map +0 -1
  105. package/src/utils/versions.d.ts +0 -5
  106. package/src/utils/versions.js +0 -9
  107. package/src/utils/versions.js.map +0 -1
  108. package/src/utils/workspace-lint-rules.d.ts +0 -1
  109. package/src/utils/workspace-lint-rules.js +0 -6
  110. package/src/utils/workspace-lint-rules.js.map +0 -1
package/executors.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "builders": {
3
3
  "eslint": {
4
- "implementation": "./src/executors/eslint/compat",
5
- "schema": "./src/executors/eslint/schema.json",
4
+ "implementation": "@nx/linter/src/executors/eslint/compat",
5
+ "schema": "@nx/linter/src/executors/eslint/schema.json",
6
6
  "description": "Run ESLint on a project."
7
7
  }
8
8
  },
9
9
  "executors": {
10
10
  "eslint": {
11
- "implementation": "./src/executors/eslint/lint.impl",
12
- "schema": "./src/executors/eslint/schema.json",
13
- "hasher": "./src/executors/eslint/hasher",
11
+ "implementation": "@nx/linter/src/executors/eslint/lint.impl",
12
+ "schema": "@nx/linter/src/executors/eslint/schema.json",
13
+ "hasher": "@nx/linter/src/executors/eslint/hasher",
14
14
  "description": "Run ESLint on a project."
15
15
  }
16
16
  }
package/generators.json CHANGED
@@ -1,30 +1,4 @@
1
1
  {
2
- "name": "nx/linter",
3
- "version": "0.1",
4
- "schematics": {
5
- "workspace-rules-project": {
6
- "factory": "./src/generators/workspace-rules-project/workspace-rules-project#lintWorkspaceRulesProjectSchematic",
7
- "schema": "./src/generators/workspace-rules-project/schema.json",
8
- "description": "Create the Workspace Lint Rules Project.",
9
- "hidden": true
10
- },
11
- "workspace-rule": {
12
- "factory": "./src/generators/workspace-rule/workspace-rule#lintWorkspaceRuleSchematic",
13
- "schema": "./src/generators/workspace-rule/schema.json",
14
- "description": "Create a new Workspace ESLint rule."
15
- }
16
- },
17
- "generators": {
18
- "workspace-rules-project": {
19
- "factory": "./src/generators/workspace-rules-project/workspace-rules-project#lintWorkspaceRulesProjectGenerator",
20
- "schema": "./src/generators/workspace-rules-project/schema.json",
21
- "description": "Create the Workspace Lint Rules Project.",
22
- "hidden": true
23
- },
24
- "workspace-rule": {
25
- "factory": "./src/generators/workspace-rule/workspace-rule#lintWorkspaceRuleGenerator",
26
- "schema": "./src/generators/workspace-rule/schema.json",
27
- "description": "Create a new Workspace ESLint rule."
28
- }
29
- }
2
+ "extends": ["@nx/linter"],
3
+ "schematics": {}
30
4
  }
package/index.d.ts CHANGED
@@ -1,5 +1 @@
1
- export { lintProjectGenerator } from './src/generators/lint-project/lint-project';
2
- export { lintInitGenerator } from './src/generators/init/init';
3
- export { Linter } from './src/generators/utils/linter';
4
- export * from './src/utils/convert-tslint-to-eslint';
5
- export { hasRulesRequiringTypeChecking } from './src/utils/rules-requiring-type-checking';
1
+ export * from '@nx/linter';
package/index.js CHANGED
@@ -1,17 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasRulesRequiringTypeChecking = exports.Linter = exports.lintInitGenerator = exports.lintProjectGenerator = void 0;
4
3
  const tslib_1 = require("tslib");
5
- var lint_project_1 = require("./src/generators/lint-project/lint-project");
6
- Object.defineProperty(exports, "lintProjectGenerator", { enumerable: true, get: function () { return lint_project_1.lintProjectGenerator; } });
7
- var init_1 = require("./src/generators/init/init");
8
- Object.defineProperty(exports, "lintInitGenerator", { enumerable: true, get: function () { return init_1.lintInitGenerator; } });
9
- var linter_1 = require("./src/generators/utils/linter");
10
- Object.defineProperty(exports, "Linter", { enumerable: true, get: function () { return linter_1.Linter; } });
11
- tslib_1.__exportStar(require("./src/utils/convert-tslint-to-eslint"), exports);
12
- // @nrwl/angular needs it for the Angular CLI workspace migration to Nx to
13
- // infer whether a config is using type aware rules and set the
14
- // `hasTypeAwareRules` option of the `@nrwl/linter:eslint` executor.
15
- var rules_requiring_type_checking_1 = require("./src/utils/rules-requiring-type-checking");
16
- Object.defineProperty(exports, "hasRulesRequiringTypeChecking", { enumerable: true, get: function () { return rules_requiring_type_checking_1.hasRulesRequiringTypeChecking; } });
4
+ tslib_1.__exportStar(require("@nx/linter"), exports);
17
5
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/linter/index.ts"],"names":[],"mappings":";;;;AAAA,2EAAkF;AAAzE,oHAAA,oBAAoB,OAAA;AAC7B,mDAA+D;AAAtD,yGAAA,iBAAiB,OAAA;AAC1B,wDAAuD;AAA9C,gGAAA,MAAM,OAAA;AACf,+EAAqD;AAErD,0EAA0E;AAC1E,+DAA+D;AAC/D,oEAAoE;AACpE,2FAA0F;AAAjF,8IAAA,6BAA6B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages-legacy/linter/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@nrwl/linter",
3
- "version": "16.0.0-beta.0",
3
+ "version": "16.0.0-beta.1",
4
4
  "private": false,
5
5
  "description": "The Linter plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/nrwl/nx.git",
9
- "directory": "packages/linter"
9
+ "directory": "packages-legacy/linter"
10
10
  },
11
11
  "keywords": [
12
12
  "Monorepo",
@@ -23,30 +23,17 @@
23
23
  "url": "https://github.com/nrwl/nx/issues"
24
24
  },
25
25
  "homepage": "https://nx.dev",
26
- "ng-update": {
27
- "requirements": {},
28
- "migrations": "./migrations.json"
29
- },
30
26
  "builders": "./executors.json",
31
27
  "schematics": "./generators.json",
32
- "peerDependencies": {
33
- "eslint": "^8.0.0"
34
- },
35
28
  "dependencies": {
36
- "@nrwl/devkit": "16.0.0-beta.0",
37
- "@nrwl/js": "16.0.0-beta.0",
38
- "@phenomnomnominal/tsquery": "~5.0.1",
39
- "tmp": "~0.2.1",
40
- "tslib": "^2.3.0"
41
- },
42
- "peerDependenciesMeta": {
43
- "eslint": {
44
- "optional": true
45
- }
29
+ "@nx/linter": "16.0.0-beta.1"
46
30
  },
47
31
  "publishConfig": {
48
32
  "access": "public"
49
33
  },
34
+ "nx-migrations": {
35
+ "migrations": "@nx/linter/migrations.json"
36
+ },
50
37
  "types": "./index.d.ts",
51
- "gitHead": "1e31d4726f2c623ede0c515429aa842e943dba47"
38
+ "gitHead": "abf534c265f5aa3aac146e55bb31de598ea281d7"
52
39
  }
package/README.md DELETED
@@ -1,61 +0,0 @@
1
- <p style="text-align: center;"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx.png" width="600" alt="Nx - Smart, Fast and Extensible Build System"></p>
2
-
3
- <div style="text-align: center;">
4
-
5
- [![CircleCI](https://circleci.com/gh/nrwl/nx.svg?style=svg)](https://circleci.com/gh/nrwl/nx)
6
- [![License](https://img.shields.io/npm/l/@nrwl/workspace.svg?style=flat-square)]()
7
- [![NPM Version](https://badge.fury.io/js/%40nrwl%2Fworkspace.svg)](https://www.npmjs.com/@nrwl/workspace)
8
- [![Semantic Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)]()
9
- [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
10
- [![Join the chat at https://gitter.im/nrwl-nx/community](https://badges.gitter.im/nrwl-nx/community.svg)](https://gitter.im/nrwl-nx/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
11
- [![Join us @nrwl/community on slack](https://img.shields.io/badge/slack-%40nrwl%2Fcommunity-brightgreen)](https://join.slack.com/t/nrwlcommunity/shared_invite/enQtNzU5MTE4OTQwOTk0LTgxY2E0ZWYzMWE0YzA5ZDA2MWM1NDVhNmI2ZWMyYmZhNWJiODk3MjkxZjY3MzU5ZjRmM2NmNWU1OTgyZmE4Mzc)
12
-
13
- </div>
14
-
15
-
16
- <hr>
17
-
18
- # Nx: Smart, Fast and Extensible Build System
19
-
20
- Nx is a next generation build system with first class monorepo support and powerful integrations.
21
-
22
- ## Getting Started
23
-
24
- ### Creating an Nx Workspace
25
-
26
- **Using `npx`**
27
-
28
- ```bash
29
- npx create-nx-workspace
30
- ```
31
-
32
- **Using `npm init`**
33
-
34
- ```bash
35
- npm init nx-workspace
36
- ```
37
-
38
- **Using `yarn create`**
39
-
40
- ```bash
41
- yarn create nx-workspace
42
- ```
43
-
44
- ### Adding Nx to an Existing Repository
45
-
46
- Run:
47
-
48
- ```bash
49
- npx nx@latest init
50
- ```
51
-
52
- ## Documentation & Resources
53
-
54
- - [Nx.Dev: Documentation, Guides, Tutorials](https://nx.dev)
55
- - [Intro to Nx](https://nx.dev/getting-started/intro)
56
- - [Official Nx YouTube Channel](https://www.youtube.com/@NxDevtools)
57
- - [Blog Posts About Nx](https://blog.nrwl.io/nx/home)
58
-
59
- <p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank" rel="noreferrer"><img src="https://raw.githubusercontent.com/nrwl/nx/master/images/nx-courses-and-videos.svg"
60
- width="100%" alt="Nx - Smart, Fast and Extensible Build System"></a></p>
61
-
package/migrations.json DELETED
@@ -1,226 +0,0 @@
1
- {
2
- "schematics": {
3
- "remove-eslint-project-config-if-no-type-checking-rules": {
4
- "cli": "nx",
5
- "version": "12.4.0-beta.0",
6
- "description": "Remove ESLint parserOptions.project config if no rules requiring type-checking are in use",
7
- "factory": "./src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules"
8
- },
9
- "add-outputs": {
10
- "cli": "nx",
11
- "version": "12.9.0-beta.0",
12
- "description": "Add outputs for caching",
13
- "factory": "./src/migrations/update-12-9-0/add-outputs"
14
- },
15
- "remove-eslint-project-config-if-no-type-checking-rules-again": {
16
- "cli": "nx",
17
- "version": "12.9.0-beta.0",
18
- "description": "Remove ESLint parserOptions.project config if no rules requiring type-checking are in use",
19
- "factory": "./src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules"
20
- },
21
- "eslint-8-updates": {
22
- "cli": "nx",
23
- "version": "13.3.0-beta.0",
24
- "description": "Update eslint-rules jest.config.js in order to support ESLint v8 exports mapping, remove category field",
25
- "factory": "./src/migrations/update-13-3-0/eslint-8-updates"
26
- },
27
- "add-swc-deps": {
28
- "cli": "nx",
29
- "version": "14.1.9-beta.0",
30
- "description": "Adds @swc/core and @swc-node as a dev dep if you are using them",
31
- "factory": "./src/migrations/update-14-1-9/add-swc-deps-if-needed"
32
- },
33
- "add-swc-deps-again": {
34
- "cli": "nx",
35
- "version": "14.2.3-beta.0",
36
- "description": "Adds @swc/core and @swc-node as a dev dep if you are using them (repeated due to prior mistake)",
37
- "factory": "./src/migrations/update-14-1-9/add-swc-deps-if-needed"
38
- },
39
- "experimental-to-utils-deps": {
40
- "cli": "nx",
41
- "version": "14.4.4",
42
- "description": "Adds @typescript-eslint/utils as a dev dep",
43
- "factory": "./src/migrations/update-14-4-4/experimental-to-utils-deps"
44
- },
45
- "experimental-to-utils-rules": {
46
- "cli": "nx",
47
- "version": "14.4.4",
48
- "description": "Switch from @typescript-eslint/experimental-utils to @typescript-eslint/utils in all rules and rules.spec files",
49
- "factory": "./src/migrations/update-14-4-4/experimental-to-utils-rules"
50
- },
51
- "add-eslint-inputs": {
52
- "cli": "nx",
53
- "version": "15.0.0-beta.0",
54
- "description": "Stop hashing eslint config files for build targets and dependent tasks",
55
- "factory": "./src/migrations/update-15-0-0/add-eslint-inputs"
56
- },
57
- "add-eslint-ignore": {
58
- "cli": "nx",
59
- "version": "15.7.1-beta.0",
60
- "description": "Add node_modules to root eslint ignore",
61
- "factory": "./src/migrations/update-15-7-1/add-eslint-ignore"
62
- }
63
- },
64
- "packageJsonUpdates": {
65
- "12.6.0": {
66
- "version": "12.6.0-beta.8",
67
- "packages": {
68
- "@typescript-eslint/parser": {
69
- "version": "~4.28.0"
70
- },
71
- "@typescript-eslint/eslint-plugin": {
72
- "version": "~4.28.0"
73
- }
74
- }
75
- },
76
- "12.10.0": {
77
- "version": "12.10.0-beta.1",
78
- "packages": {
79
- "@typescript-eslint/parser": {
80
- "version": "~4.31.1"
81
- },
82
- "@typescript-eslint/eslint-plugin": {
83
- "version": "~4.31.1"
84
- },
85
- "@typescript-eslint/experimental-utils": {
86
- "version": "~4.31.1"
87
- }
88
- }
89
- },
90
- "13.0.0": {
91
- "version": "12.10.0",
92
- "packages": {
93
- "@typescript-eslint/parser": {
94
- "version": "~4.33.0"
95
- },
96
- "@typescript-eslint/eslint-plugin": {
97
- "version": "~4.33.0"
98
- },
99
- "@typescript-eslint/experimental-utils": {
100
- "version": "~4.33.0"
101
- },
102
- "eslint": {
103
- "version": "7.32.0"
104
- }
105
- }
106
- },
107
- "13.3.0": {
108
- "version": "13.3.0-beta.0",
109
- "packages": {
110
- "@typescript-eslint/parser": {
111
- "version": "~5.3.0"
112
- },
113
- "@typescript-eslint/eslint-plugin": {
114
- "version": "~5.3.0"
115
- },
116
- "@typescript-eslint/experimental-utils": {
117
- "version": "~5.3.0"
118
- },
119
- "eslint": {
120
- "version": "8.2.0"
121
- }
122
- }
123
- },
124
- "13.7.0": {
125
- "version": "13.7.0-beta.0",
126
- "packages": {
127
- "@typescript-eslint/parser": {
128
- "version": "~5.10.0"
129
- },
130
- "@typescript-eslint/eslint-plugin": {
131
- "version": "~5.10.0"
132
- },
133
- "@typescript-eslint/experimental-utils": {
134
- "version": "~5.10.0"
135
- },
136
- "eslint": {
137
- "version": "~8.7.0"
138
- }
139
- }
140
- },
141
- "13.10.0": {
142
- "version": "13.10.0-beta.0",
143
- "packages": {
144
- "@typescript-eslint/parser": {
145
- "version": "~5.18.0"
146
- },
147
- "@typescript-eslint/eslint-plugin": {
148
- "version": "~5.18.0"
149
- },
150
- "@typescript-eslint/experimental-utils": {
151
- "version": "~5.18.0"
152
- },
153
- "eslint": {
154
- "version": "~8.12.0"
155
- }
156
- }
157
- },
158
- "14.2.0": {
159
- "version": "14.2.0-beta.0",
160
- "packages": {
161
- "@typescript-eslint/parser": {
162
- "version": "~5.24.0"
163
- },
164
- "@typescript-eslint/eslint-plugin": {
165
- "version": "~5.24.0"
166
- },
167
- "@typescript-eslint/experimental-utils": {
168
- "version": "~5.24.0"
169
- },
170
- "eslint": {
171
- "version": "~8.15.0"
172
- }
173
- }
174
- },
175
- "14.3.7": {
176
- "version": "14.3.6",
177
- "packages": {
178
- "@typescript-eslint/parser": {
179
- "version": "^5.29.0"
180
- },
181
- "@typescript-eslint/eslint-plugin": {
182
- "version": "^5.29.0"
183
- },
184
- "@typescript-eslint/experimental-utils": {
185
- "version": "^5.29.0"
186
- }
187
- }
188
- },
189
- "14.4.4": {
190
- "version": "14.4.4",
191
- "packages": {
192
- "@typescript-eslint/utils": {
193
- "version": "^5.29.0"
194
- }
195
- }
196
- },
197
- "14.6.0": {
198
- "version": "14.6.0-rc.2",
199
- "packages": {
200
- "@typescript-eslint/parser": {
201
- "version": "~5.33.1"
202
- },
203
- "@typescript-eslint/eslint-plugin": {
204
- "version": "~5.33.1"
205
- },
206
- "@typescript-eslint/utils": {
207
- "version": "~5.33.1"
208
- }
209
- }
210
- },
211
- "14.8.0": {
212
- "version": "14.8.0-beta.0",
213
- "packages": {
214
- "@typescript-eslint/parser": {
215
- "version": "^5.36.1"
216
- },
217
- "@typescript-eslint/eslint-plugin": {
218
- "version": "^5.36.1"
219
- },
220
- "@typescript-eslint/utils": {
221
- "version": "^5.36.1"
222
- }
223
- }
224
- }
225
- }
226
- }
@@ -1,2 +0,0 @@
1
- declare const _default: any;
2
- export default _default;
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const devkit_1 = require("@nrwl/devkit");
4
- const lint_impl_1 = require("./lint.impl");
5
- exports.default = (0, devkit_1.convertNxExecutor)(lint_impl_1.default);
6
- //# sourceMappingURL=compat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/executors/eslint/compat.ts"],"names":[],"mappings":";;AAAA,yCAAiD;AAEjD,2CAAuC;AAEvC,kBAAe,IAAA,0BAAiB,EAAC,mBAAY,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- import { ProjectGraph, Task, TaskGraph, ProjectsConfigurations, Hasher, Hash } from '@nrwl/devkit';
2
- export default function run(task: Task, context: {
3
- hasher: Hasher;
4
- projectGraph: ProjectGraph;
5
- taskGraph: TaskGraph;
6
- projectsConfigurations: ProjectsConfigurations;
7
- }): Promise<Hash>;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- function run(task, context) {
5
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
6
- const res = yield context.hasher.hashTask(task);
7
- if (task.overrides['hasTypeAwareRules'] === true) {
8
- return res;
9
- }
10
- const deps = allDeps(task.id, context.taskGraph, context.projectGraph);
11
- const tags = context.hasher.hashArray(deps.map((d) => (context.projectsConfigurations.projects[d].tags || []).join('|')));
12
- const command = res.details['command'];
13
- let selfSource = '';
14
- for (let n of Object.keys(res.details)) {
15
- if (n.startsWith(`${task.target.project}:`)) {
16
- selfSource = res.details.nodes[n];
17
- }
18
- }
19
- const nodes = {};
20
- const hashes = [];
21
- for (const d of Object.keys(res.details.nodes)) {
22
- if (d.indexOf('$fileset') === -1) {
23
- nodes[d] = res.details.nodes[d];
24
- hashes.push(res.details.nodes[d]);
25
- }
26
- }
27
- return {
28
- value: context.hasher.hashArray([command, selfSource, ...hashes, tags]),
29
- details: {
30
- command,
31
- nodes: Object.assign({ [task.target.project]: selfSource, tags }, nodes),
32
- },
33
- };
34
- });
35
- }
36
- exports.default = run;
37
- function allDeps(taskId, taskGraph, projectGraph) {
38
- if (!taskGraph.tasks) {
39
- return [];
40
- }
41
- const project = taskGraph.tasks[taskId].target.project;
42
- const dependencies = projectGraph.dependencies[project]
43
- .filter((d) => !!projectGraph.nodes[d.target])
44
- .map((d) => d.target);
45
- return dependencies;
46
- }
47
- //# sourceMappingURL=hasher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hasher.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/executors/eslint/hasher.ts"],"names":[],"mappings":";;;AASA,SAA8B,GAAG,CAC/B,IAAU,EACV,OAKC;;QAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,IAAI,EAAE;YAChD,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CACnC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAClE,CACF,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACtC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE;gBAC3C,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACnC;SACF;QAED,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,EAAc,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACnC;SACF;QACD,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;YACvE,OAAO,EAAE;gBACP,OAAO;gBACP,KAAK,kBAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,IAAK,KAAK,CAAE;aAC7D;SACF,CAAC;IACJ,CAAC;CAAA;AA5CD,sBA4CC;AAED,SAAS,OAAO,CACd,MAAc,EACd,SAAoB,EACpB,YAA0B;IAE1B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;QACpB,OAAO,EAAE,CAAC;KACX;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IACvD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;SACpD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { ExecutorContext } from '@nrwl/devkit';
2
- import type { Schema } from './schema';
3
- export default function run(options: Schema, context: ExecutorContext): Promise<{
4
- success: boolean;
5
- }>;
@@ -1,116 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const eslint_1 = require("eslint");
5
- const fs_1 = require("fs");
6
- const path_1 = require("path");
7
- const eslint_utils_1 = require("./utility/eslint-utils");
8
- function run(options, context) {
9
- var _a, _b, _c, _d, _e;
10
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
11
- // this is only used for the hasher
12
- delete options.hasTypeAwareRules;
13
- const systemRoot = context.root;
14
- // eslint resolves files relative to the current working directory.
15
- // We want these paths to always be resolved relative to the workspace
16
- // root to be able to run the lint executor from any subfolder.
17
- process.chdir(systemRoot);
18
- const projectName = context.projectName || '<???>';
19
- const printInfo = options.format && !options.silent;
20
- if (printInfo) {
21
- console.info(`\nLinting ${JSON.stringify(projectName)}...`);
22
- }
23
- const projectESLint = yield (0, eslint_utils_1.loadESLint)();
24
- const version = (_b = (_a = projectESLint.ESLint) === null || _a === void 0 ? void 0 : _a.version) === null || _b === void 0 ? void 0 : _b.split('.');
25
- if (!version ||
26
- version.length < 2 ||
27
- Number(version[0]) < 7 ||
28
- (Number(version[0]) === 7 && Number(version[1]) < 6)) {
29
- throw new Error('ESLint must be version 7.6 or higher.');
30
- }
31
- const eslint = new projectESLint.ESLint({});
32
- /**
33
- * We want users to have the option of not specifying the config path, and let
34
- * eslint automatically resolve the `.eslintrc.json` files in each folder.
35
- */
36
- const eslintConfigPath = options.eslintConfig
37
- ? (0, path_1.resolve)(systemRoot, options.eslintConfig)
38
- : undefined;
39
- options.cacheLocation = options.cacheLocation
40
- ? (0, path_1.join)(options.cacheLocation, projectName)
41
- : undefined;
42
- let lintResults = [];
43
- try {
44
- lintResults = yield (0, eslint_utils_1.lint)(eslintConfigPath, options);
45
- }
46
- catch (err) {
47
- if (err.message.includes('You must therefore provide a value for the "parserOptions.project" property for @typescript-eslint/parser')) {
48
- let eslintConfigPathForError = `for ${projectName}`;
49
- if ((_e = (_d = (_c = context.projectsConfigurations) === null || _c === void 0 ? void 0 : _c.projects) === null || _d === void 0 ? void 0 : _d[projectName]) === null || _e === void 0 ? void 0 : _e.root) {
50
- const { root } = context.projectsConfigurations.projects[projectName];
51
- eslintConfigPathForError = `\`${root}/.eslintrc.json\``;
52
- }
53
- console.error(`
54
- Error: You have attempted to use a lint rule which requires the full TypeScript type-checker to be available, but you do not have \`parserOptions.project\` configured to point at your project tsconfig.json files in the relevant TypeScript file "overrides" block of your project ESLint config ${eslintConfigPath || eslintConfigPathForError}
55
-
56
- Please see https://nx.dev/guides/eslint for full guidance on how to resolve this issue.
57
- `);
58
- return {
59
- success: false,
60
- };
61
- }
62
- // If some unexpected error, rethrow
63
- throw err;
64
- }
65
- if (lintResults.length === 0) {
66
- const ignoredPatterns = (yield Promise.all(options.lintFilePatterns.map((pattern) => tslib_1.__awaiter(this, void 0, void 0, function* () { return (yield eslint.isPathIgnored(pattern)) ? pattern : null; }))))
67
- .filter((pattern) => !!pattern)
68
- .map((pattern) => `- '${pattern}'`);
69
- if (ignoredPatterns.length) {
70
- throw new Error(`All files matching the following patterns are ignored:\n${ignoredPatterns.join('\n')}\n\nPlease check your '.eslintignore' file.`);
71
- }
72
- throw new Error('Invalid lint configuration. Nothing to lint. Please check your lint target pattern(s).');
73
- }
74
- // output fixes to disk, if applicable based on the options
75
- yield projectESLint.ESLint.outputFixes(lintResults);
76
- // if quiet, only show errors
77
- if (options.quiet) {
78
- console.debug('Quiet mode enabled - filtering out warnings\n');
79
- lintResults = eslint_1.ESLint.getErrorResults(lintResults);
80
- }
81
- const formatter = yield eslint.loadFormatter(options.format);
82
- let totalErrors = 0;
83
- let totalWarnings = 0;
84
- for (const result of lintResults) {
85
- if (result.errorCount || result.warningCount) {
86
- totalErrors += result.errorCount;
87
- totalWarnings += result.warningCount;
88
- }
89
- }
90
- const formattedResults = yield formatter.format(lintResults);
91
- if (options.outputFile) {
92
- const pathToOutputFile = (0, path_1.join)(context.root, options.outputFile);
93
- (0, fs_1.mkdirSync)((0, path_1.dirname)(pathToOutputFile), { recursive: true });
94
- (0, fs_1.writeFileSync)(pathToOutputFile, formattedResults);
95
- }
96
- else {
97
- console.info(formattedResults);
98
- }
99
- if (totalWarnings > 0 && printInfo) {
100
- console.warn('Lint warnings found in the listed files.\n');
101
- }
102
- if (totalErrors > 0 && printInfo) {
103
- console.error('Lint errors found in the listed files.\n');
104
- }
105
- if (totalWarnings === 0 && totalErrors === 0 && printInfo) {
106
- console.info('All files pass linting.\n');
107
- }
108
- return {
109
- success: options.force ||
110
- (totalErrors === 0 &&
111
- (options.maxWarnings === -1 || totalWarnings <= options.maxWarnings)),
112
- };
113
- });
114
- }
115
- exports.default = run;
116
- //# sourceMappingURL=lint.impl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lint.impl.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/executors/eslint/lint.impl.ts"],"names":[],"mappings":"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"}