lint-suite 1.0.9 → 1.1.0
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/{packages/lint-suite/src/index.cjs → index.cjs} +66 -31
- package/index.cjs.map +7 -0
- package/{packages/lint-suite/src/index.d.ts → index.d.ts} +3 -1
- package/{packages/lint-suite/src/index.d.ts.map → index.d.ts.map} +1 -1
- package/{packages/lint-suite/src/index.js → index.js} +64 -31
- package/index.js.map +7 -0
- package/lib/angular-template.d.ts +3 -0
- package/{packages/lint-suite/src/lib → lib}/angular-template.d.ts.map +1 -1
- package/lib/angular.d.ts +3 -0
- package/{packages/lint-suite/src/lib → lib}/angular.d.ts.map +1 -1
- package/lib/base.d.ts +2 -0
- package/{packages/lint-suite/src/lib → lib}/base.d.ts.map +1 -1
- package/lib/javascript.d.ts +3 -0
- package/{packages/lint-suite/src/lib → lib}/javascript.d.ts.map +1 -1
- package/lib/jest.d.ts +2 -0
- package/{packages/lint-suite/src/lib → lib}/jest.d.ts.map +1 -1
- package/lib/json.d.ts +2 -0
- package/{packages/lint-suite/src/lib → lib}/json.d.ts.map +1 -1
- package/lib/playwright.d.ts +2 -0
- package/lib/playwright.d.ts.map +1 -0
- package/lib/rxjs.d.ts +2 -0
- package/{packages/lint-suite/src/lib → lib}/rxjs.d.ts.map +1 -1
- package/lib/storybook.d.ts +2 -0
- package/{packages/lint-suite/src/lib → lib}/storybook.d.ts.map +1 -1
- package/lib/typescript.d.ts +3 -0
- package/{packages/lint-suite/src/lib → lib}/typescript.d.ts.map +1 -1
- package/lib/vitest.d.ts +2 -0
- package/lib/vitest.d.ts.map +1 -0
- package/package.json +12 -4
- package/packages/lint-suite/src/index.cjs.map +0 -7
- package/packages/lint-suite/src/index.js.map +0 -7
- package/packages/lint-suite/src/lib/angular-template.d.ts +0 -3
- package/packages/lint-suite/src/lib/angular.d.ts +0 -3
- package/packages/lint-suite/src/lib/base.d.ts +0 -3
- package/packages/lint-suite/src/lib/javascript.d.ts +0 -3
- package/packages/lint-suite/src/lib/jest.d.ts +0 -3
- package/packages/lint-suite/src/lib/json.d.ts +0 -3
- package/packages/lint-suite/src/lib/rxjs.d.ts +0 -3
- package/packages/lint-suite/src/lib/storybook.d.ts +0 -3
- package/packages/lint-suite/src/lib/typescript.d.ts +0 -3
- package/packages/lint-suite/src/package.json +0 -60
- /package/{packages/lint-suite/src/LICENSE → LICENSE} +0 -0
- /package/{packages/lint-suite/src/README.md → README.md} +0 -0
- /package/{packages/lint-suite/src/lib → lib}/rules/explicit-accessibility.d.ts +0 -0
- /package/{packages/lint-suite/src/lib → lib}/rules/explicit-accessibility.d.ts.map +0 -0
|
@@ -36,20 +36,25 @@ __export(index_exports, {
|
|
|
36
36
|
javascript: () => javascript,
|
|
37
37
|
jest: () => jest,
|
|
38
38
|
json: () => json,
|
|
39
|
+
playwright: () => playwright,
|
|
39
40
|
recommended: () => recommended,
|
|
40
41
|
rxjs: () => rxjs,
|
|
41
42
|
storybook: () => storybook,
|
|
42
|
-
typescript: () => typescript
|
|
43
|
+
typescript: () => typescript,
|
|
44
|
+
vitest: () => vitest
|
|
43
45
|
});
|
|
44
46
|
module.exports = __toCommonJS(index_exports);
|
|
45
47
|
|
|
46
48
|
// packages/lint-suite/src/lib/angular-template.ts
|
|
47
49
|
var import_angular_eslint = require("angular-eslint");
|
|
48
|
-
var
|
|
49
|
-
var angularTemplate = (0,
|
|
50
|
+
var import_config = require("eslint/config");
|
|
51
|
+
var angularTemplate = (0, import_config.defineConfig)([
|
|
50
52
|
{
|
|
51
53
|
files: ["**/*.html"],
|
|
52
|
-
extends: [
|
|
54
|
+
extends: [
|
|
55
|
+
...import_angular_eslint.configs.templateAccessibility,
|
|
56
|
+
...import_angular_eslint.configs.templateRecommended
|
|
57
|
+
],
|
|
53
58
|
rules: {
|
|
54
59
|
"@angular-eslint/template/prefer-template-literal": "error",
|
|
55
60
|
"@angular-eslint/template/no-any": "error",
|
|
@@ -94,8 +99,8 @@ var angularTemplate = (0, import_typescript_eslint.config)([
|
|
|
94
99
|
// packages/lint-suite/src/lib/angular.ts
|
|
95
100
|
var import_globals = __toESM(require("globals"), 1);
|
|
96
101
|
var import_angular_eslint2 = require("angular-eslint");
|
|
97
|
-
var
|
|
98
|
-
var angular = (0,
|
|
102
|
+
var import_config2 = require("eslint/config");
|
|
103
|
+
var angular = (0, import_config2.defineConfig)([
|
|
99
104
|
{
|
|
100
105
|
files: ["**/*.ts"],
|
|
101
106
|
extends: [...import_angular_eslint2.configs.tsRecommended],
|
|
@@ -107,7 +112,6 @@ var angular = (0, import_typescript_eslint2.config)([
|
|
|
107
112
|
}
|
|
108
113
|
},
|
|
109
114
|
processor: import_angular_eslint2.processInlineTemplates,
|
|
110
|
-
plugins: { "@angular-eslint": import_angular_eslint2.tsPlugin },
|
|
111
115
|
rules: {
|
|
112
116
|
"@angular-eslint/prefer-on-push-component-change-detection": "error",
|
|
113
117
|
"@angular-eslint/prefer-signals": "error",
|
|
@@ -120,8 +124,8 @@ var angular = (0, import_typescript_eslint2.config)([
|
|
|
120
124
|
var import_eslint_plugin = require("@nx/eslint-plugin");
|
|
121
125
|
var import_eslint_plugin2 = __toESM(require("@stylistic/eslint-plugin"), 1);
|
|
122
126
|
var import_eslint_plugin_import_x = __toESM(require("eslint-plugin-import-x"), 1);
|
|
123
|
-
var
|
|
124
|
-
var base = (0,
|
|
127
|
+
var import_config3 = require("eslint/config");
|
|
128
|
+
var base = (0, import_config3.defineConfig)([
|
|
125
129
|
{ extends: [...import_eslint_plugin.configs["flat/base"]] },
|
|
126
130
|
{
|
|
127
131
|
files: [
|
|
@@ -307,7 +311,7 @@ var base = (0, import_typescript_eslint3.config)([
|
|
|
307
311
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
308
312
|
rules: {
|
|
309
313
|
"max-lines-per-function": "off",
|
|
310
|
-
complexity: ["warn", { max:
|
|
314
|
+
complexity: ["warn", { max: 3 }],
|
|
311
315
|
"max-lines": [
|
|
312
316
|
"error",
|
|
313
317
|
{
|
|
@@ -334,19 +338,18 @@ var base = (0, import_typescript_eslint3.config)([
|
|
|
334
338
|
|
|
335
339
|
// packages/lint-suite/src/lib/javascript.ts
|
|
336
340
|
var import_eslint_plugin3 = require("@nx/eslint-plugin");
|
|
337
|
-
var
|
|
338
|
-
var javascript = (0,
|
|
341
|
+
var import_config4 = require("eslint/config");
|
|
342
|
+
var javascript = (0, import_config4.defineConfig)({
|
|
339
343
|
files: ["**/*.js", "**/*.jsx", "**/*.cjs", "**/*.mjs"],
|
|
340
|
-
extends: [...import_eslint_plugin3.configs["flat/javascript"]]
|
|
341
|
-
rules: {}
|
|
344
|
+
extends: [...import_eslint_plugin3.configs["flat/javascript"]]
|
|
342
345
|
});
|
|
343
346
|
|
|
344
347
|
// packages/lint-suite/src/lib/jest.ts
|
|
345
348
|
var import_eslint_plugin_jest = __toESM(require("eslint-plugin-jest"), 1);
|
|
346
|
-
var
|
|
347
|
-
var jest = (0,
|
|
349
|
+
var import_config5 = require("eslint/config");
|
|
350
|
+
var jest = (0, import_config5.defineConfig)([
|
|
348
351
|
{
|
|
349
|
-
files: ["**/*.spec.ts", "**/*.
|
|
352
|
+
files: ["**/*.spec.ts", "**/*.spec.js"],
|
|
350
353
|
extends: [import_eslint_plugin_jest.default.configs["flat/all"]],
|
|
351
354
|
rules: {
|
|
352
355
|
"jest/no-done-callback": "off"
|
|
@@ -356,19 +359,18 @@ var jest = (0, import_typescript_eslint5.config)([
|
|
|
356
359
|
|
|
357
360
|
// packages/lint-suite/src/lib/json.ts
|
|
358
361
|
var import_eslint_plugin_json = __toESM(require("eslint-plugin-json"), 1);
|
|
359
|
-
var
|
|
360
|
-
var json = (0,
|
|
362
|
+
var import_config6 = require("eslint/config");
|
|
363
|
+
var json = (0, import_config6.defineConfig)([
|
|
361
364
|
{
|
|
362
365
|
files: ["**/*.json"],
|
|
363
|
-
extends: [import_eslint_plugin_json.default.configs.recommended]
|
|
364
|
-
rules: {}
|
|
366
|
+
extends: [import_eslint_plugin_json.default.configs.recommended]
|
|
365
367
|
}
|
|
366
368
|
]);
|
|
367
369
|
|
|
368
370
|
// packages/lint-suite/src/lib/rxjs.ts
|
|
369
371
|
var import_eslint_plugin_rxjs = __toESM(require("@smarttools/eslint-plugin-rxjs"), 1);
|
|
370
|
-
var
|
|
371
|
-
var rxjs = (0,
|
|
372
|
+
var import_config7 = require("eslint/config");
|
|
373
|
+
var rxjs = (0, import_config7.defineConfig)([
|
|
372
374
|
{
|
|
373
375
|
files: [
|
|
374
376
|
"**/*.js",
|
|
@@ -437,13 +439,12 @@ var rxjs = (0, import_typescript_eslint7.config)([
|
|
|
437
439
|
|
|
438
440
|
// packages/lint-suite/src/lib/storybook.ts
|
|
439
441
|
var import_eslint_plugin_storybook = __toESM(require("eslint-plugin-storybook"), 1);
|
|
440
|
-
var
|
|
441
|
-
var storybook = (0,
|
|
442
|
+
var import_config8 = require("eslint/config");
|
|
443
|
+
var storybook = (0, import_config8.defineConfig)([
|
|
442
444
|
{
|
|
443
445
|
ignores: ["!.storybook"],
|
|
444
446
|
files: ["**/*.stories.ts"],
|
|
445
|
-
extends: [import_eslint_plugin_storybook.default.configs["flat/recommended"]]
|
|
446
|
-
rules: {}
|
|
447
|
+
extends: [import_eslint_plugin_storybook.default.configs["flat/recommended"]]
|
|
447
448
|
}
|
|
448
449
|
]);
|
|
449
450
|
|
|
@@ -451,6 +452,7 @@ var storybook = (0, import_typescript_eslint8.config)([
|
|
|
451
452
|
var import_eslint_plugin4 = require("@nx/eslint-plugin");
|
|
452
453
|
var import_eslint_import_resolver_typescript = require("eslint-import-resolver-typescript");
|
|
453
454
|
var import_eslint_plugin_import_x2 = __toESM(require("eslint-plugin-import-x"), 1);
|
|
455
|
+
var import_config9 = require("eslint/config");
|
|
454
456
|
|
|
455
457
|
// packages/lint-suite/src/lib/rules/explicit-accessibility.ts
|
|
456
458
|
var import_utils = require("@typescript-eslint/utils");
|
|
@@ -589,13 +591,12 @@ var explicit_accessibility_default = createRule({
|
|
|
589
591
|
});
|
|
590
592
|
|
|
591
593
|
// packages/lint-suite/src/lib/typescript.ts
|
|
592
|
-
var import_typescript_eslint9 = require("typescript-eslint");
|
|
593
594
|
var localTypescriptRules = {
|
|
594
595
|
rules: {
|
|
595
596
|
"explicit-accessibility": explicit_accessibility_default
|
|
596
597
|
}
|
|
597
598
|
};
|
|
598
|
-
var typescript = (0,
|
|
599
|
+
var typescript = (0, import_config9.defineConfig)([
|
|
599
600
|
// NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
|
|
600
601
|
{
|
|
601
602
|
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
@@ -796,6 +797,36 @@ var typescript = (0, import_typescript_eslint9.config)([
|
|
|
796
797
|
}
|
|
797
798
|
]);
|
|
798
799
|
|
|
800
|
+
// packages/lint-suite/src/lib/vitest.ts
|
|
801
|
+
var import_eslint_plugin5 = __toESM(require("@vitest/eslint-plugin"), 1);
|
|
802
|
+
var import_config10 = require("eslint/config");
|
|
803
|
+
var vitestPlugin = {
|
|
804
|
+
vitest: import_eslint_plugin5.default
|
|
805
|
+
};
|
|
806
|
+
var vitest = (0, import_config10.defineConfig)([
|
|
807
|
+
{
|
|
808
|
+
files: ["**/*.spec.ts", "**/*.spec.js", "**/*.test.ts", "**/*.test.js"],
|
|
809
|
+
plugins: vitestPlugin,
|
|
810
|
+
rules: {
|
|
811
|
+
...import_eslint_plugin5.default.configs.recommended.rules,
|
|
812
|
+
"vitest/max-nested-describe": ["error", { max: 3 }]
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
]);
|
|
816
|
+
|
|
817
|
+
// packages/lint-suite/src/lib/playwright.ts
|
|
818
|
+
var import_eslint_plugin_playwright = __toESM(require("eslint-plugin-playwright"), 1);
|
|
819
|
+
var import_config11 = require("eslint/config");
|
|
820
|
+
var playwright = (0, import_config11.defineConfig)([
|
|
821
|
+
{
|
|
822
|
+
...import_eslint_plugin_playwright.default.configs["flat/recommended"],
|
|
823
|
+
files: ["**/*.test.ts", "**/*.test.js"],
|
|
824
|
+
rules: {
|
|
825
|
+
...import_eslint_plugin_playwright.default.configs["flat/recommended"].rules
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
]);
|
|
829
|
+
|
|
799
830
|
// packages/lint-suite/src/index.ts
|
|
800
831
|
var recommended = [
|
|
801
832
|
...base,
|
|
@@ -806,7 +837,9 @@ var recommended = [
|
|
|
806
837
|
...rxjs,
|
|
807
838
|
...jest,
|
|
808
839
|
...json,
|
|
809
|
-
...storybook
|
|
840
|
+
...storybook,
|
|
841
|
+
...vitest,
|
|
842
|
+
...playwright
|
|
810
843
|
];
|
|
811
844
|
// Annotate the CommonJS export names for ESM import in node:
|
|
812
845
|
0 && (module.exports = {
|
|
@@ -816,9 +849,11 @@ var recommended = [
|
|
|
816
849
|
javascript,
|
|
817
850
|
jest,
|
|
818
851
|
json,
|
|
852
|
+
playwright,
|
|
819
853
|
recommended,
|
|
820
854
|
rxjs,
|
|
821
855
|
storybook,
|
|
822
|
-
typescript
|
|
856
|
+
typescript,
|
|
857
|
+
vitest
|
|
823
858
|
});
|
|
824
859
|
//# sourceMappingURL=index.cjs.map
|
package/index.cjs.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../packages/lint-suite/src/index.ts", "../../../../packages/lint-suite/src/lib/angular-template.ts", "../../../../packages/lint-suite/src/lib/angular.ts", "../../../../packages/lint-suite/src/lib/base.ts", "../../../../packages/lint-suite/src/lib/javascript.ts", "../../../../packages/lint-suite/src/lib/jest.ts", "../../../../packages/lint-suite/src/lib/json.ts", "../../../../packages/lint-suite/src/lib/rxjs.ts", "../../../../packages/lint-suite/src/lib/storybook.ts", "../../../../packages/lint-suite/src/lib/typescript.ts", "../../../../packages/lint-suite/src/lib/rules/explicit-accessibility.ts", "../../../../packages/lint-suite/src/lib/vitest.ts", "../../../../packages/lint-suite/src/lib/playwright.ts"],
|
|
4
|
+
"sourcesContent": ["import { ConfigArray } from 'typescript-eslint';\r\nimport { angularTemplate } from './lib/angular-template.js';\r\nimport { angular } from './lib/angular.js';\r\nimport { base } from './lib/base.js';\r\nimport { javascript } from './lib/javascript.js';\r\nimport { jest } from './lib/jest.js';\r\nimport { json } from './lib/json.js';\r\nimport { rxjs } from './lib/rxjs.js';\r\nimport { storybook } from './lib/storybook.js';\r\nimport { typescript } from './lib/typescript.js';\r\nimport { vitest } from './lib/vitest.js';\r\nimport { playwright } from './lib/playwright.js';\r\n\r\nexport const recommended: ConfigArray = [\r\n ...base,\r\n ...javascript,\r\n ...typescript,\r\n ...angular,\r\n ...angularTemplate,\r\n ...rxjs,\r\n ...jest,\r\n ...json,\r\n ...storybook,\r\n ...vitest,\r\n ...playwright\r\n];\r\n\r\nexport {\r\n base,\r\n javascript,\r\n typescript,\r\n angular,\r\n angularTemplate,\r\n rxjs,\r\n jest,\r\n json,\r\n storybook,\r\n vitest,\r\n playwright\r\n};\r\n", "import { configs } from 'angular-eslint';\r\nimport { defineConfig } from 'eslint/config';\r\nimport type { Config } from 'eslint/config';\r\n\r\nexport const angularTemplate = defineConfig([\r\n {\r\n files: ['**/*.html'],\r\n extends: [\r\n ...(configs.templateAccessibility as Config[]),\r\n ...(configs.templateRecommended as Config[])\r\n ],\r\n rules: {\r\n '@angular-eslint/template/prefer-template-literal': 'error',\r\n '@angular-eslint/template/no-any': 'error',\r\n '@angular-eslint/template/no-duplicate-attributes': 'error',\r\n '@angular-eslint/template/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING' // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ]\r\n }\r\n ]\r\n }\r\n }\r\n]);\r\n", "import globals from 'globals';\r\nimport { configs, processInlineTemplates } from 'angular-eslint';\r\nimport { defineConfig } from 'eslint/config';\r\nimport type { Config } from 'eslint/config';\r\n\r\nexport const angular = defineConfig([\r\n {\r\n files: ['**/*.ts'],\r\n extends: [...(configs.tsRecommended as Config[])],\r\n languageOptions: {\r\n globals: {\r\n ...globals.browser,\r\n ...globals.es2025,\r\n ...globals.node\r\n }\r\n },\r\n processor: processInlineTemplates,\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n '@angular-eslint/prefer-signals': 'error',\r\n '@angular-eslint/use-injectable-provided-in': 'error'\r\n }\r\n }\r\n]);\r\n", "import { configs } from '@nx/eslint-plugin';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\nimport importPluginX from 'eslint-plugin-import-x';\r\nimport { defineConfig } from 'eslint/config';\r\n\r\nexport const base = defineConfig([\r\n { extends: [...configs['flat/base']] },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts'\r\n ],\r\n extends: [importPluginX.flatConfigs.recommended]\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts'\r\n ],\r\n extends: [stylistic.configs.recommended]\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts'\r\n ],\r\n rules: {\r\n 'no-param-reassign': 'error',\r\n 'no-alert': 'error',\r\n 'no-console': ['warn', { allow: ['warn', 'error'] }],\r\n 'no-debugger': 'error',\r\n eqeqeq: ['error', 'always', { null: 'ignore' }],\r\n curly: ['error', 'multi'],\r\n 'prefer-const': ['error', { destructuring: 'all' }],\r\n 'no-var': 'error',\r\n 'object-shorthand': 'error',\r\n 'prefer-arrow-callback': 'error',\r\n 'no-useless-concat': 'error',\r\n 'prefer-template': 'error',\r\n 'no-nested-ternary': 'error',\r\n 'no-return-await': 'error',\r\n 'no-else-return': ['error', { allowElseIf: false }], // Prefer early returns\r\n 'no-multi-assign': 'error', // Disallow chaining assignments\r\n radix: 'error', // Require radix parameter for parseInt()\r\n yoda: 'error', // Disallow yoda conditions (`if (\"red\" === color)`)\r\n complexity: ['warn', 10], // Warn if function complexity is high\r\n 'max-depth': ['warn', 4], // Warn on deeply nested blocks\r\n 'max-lines-per-function': ['warn', 50], // Warn on long functions\r\n 'max-params': ['warn', 4], // Warn on functions with many parameters\r\n 'no-lonely-if': 'error', // Disallow if statements as the only statement in an else block\r\n 'grouped-accessor-pairs': ['error', 'getBeforeSet'], // Enforce consistency for getters/setters\r\n 'class-methods-use-this': 'error',\r\n 'no-underscore-dangle': 'error',\r\n 'max-len': [\r\n 'error',\r\n {\r\n code: 135,\r\n ignoreComments: true\r\n }\r\n ],\r\n 'spaced-comment': [\r\n 2,\r\n 'always',\r\n {\r\n block: {\r\n exceptions: ['*']\r\n }\r\n }\r\n ],\r\n '@stylistic/padding-line-between-statements': [\r\n 'error',\r\n {\r\n blankLine: 'always',\r\n prev: 'export',\r\n next: ['export', 'const']\r\n },\r\n {\r\n blankLine: 'always',\r\n prev: ['const', 'let', 'var'],\r\n next: '*'\r\n },\r\n {\r\n blankLine: 'any',\r\n prev: ['const', 'let', 'var'],\r\n next: ['const', 'let', 'var']\r\n },\r\n {\r\n blankLine: 'always',\r\n prev: '*',\r\n next: [\r\n 'for',\r\n 'if',\r\n 'return',\r\n 'throw',\r\n 'switch',\r\n 'try',\r\n 'class',\r\n 'function'\r\n ]\r\n }\r\n ],\r\n '@stylistic/comma-dangle': [\r\n 'error',\r\n {\r\n functions: 'never',\r\n arrays: 'always-multiline',\r\n exports: 'always-multiline',\r\n imports: 'always-multiline',\r\n objects: 'always-multiline',\r\n enums: 'always-multiline'\r\n }\r\n ],\r\n '@stylistic/indent': [\r\n 'error',\r\n 2,\r\n {\r\n offsetTernaryExpressions: true,\r\n SwitchCase: 1,\r\n ignoredNodes: [\r\n 'TSTypeParameterInstantiation',\r\n 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))'\r\n ]\r\n }\r\n ],\r\n 'sort-imports': [\r\n 'error',\r\n {\r\n ignoreCase: false,\r\n ignoreDeclarationSort: true,\r\n ignoreMemberSort: false,\r\n memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],\r\n allowSeparatedGroups: true\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n '**/*.html'\r\n ],\r\n rules: {\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 150,\r\n skipBlankLines: true,\r\n skipComments: true\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'max-lines-per-function': 'off',\r\n complexity: ['warn', { max: 3 }],\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 300,\r\n skipBlankLines: true,\r\n skipComments: true\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n 'max-classes-per-file': 'off'\r\n }\r\n },\r\n {\r\n files: ['**/*.state.ts'],\r\n rules: {\r\n 'class-methods-use-this': 'off'\r\n }\r\n }\r\n]);\r\n", "import { configs } from '@nx/eslint-plugin';\r\nimport { defineConfig } from 'eslint/config';\r\nimport type { Config } from 'eslint/config';\r\n\r\nexport const javascript = defineConfig({\r\n files: ['**/*.js', '**/*.jsx', '**/*.cjs', '**/*.mjs'],\r\n extends: [...(configs['flat/javascript'] as Config[])]\r\n});\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport { defineConfig } from 'eslint/config';\r\n\r\nexport const jest = defineConfig([\r\n {\r\n files: ['**/*.spec.ts', '**/*.spec.js'],\r\n extends: [jestEslint.configs['flat/all']],\r\n rules: {\r\n 'jest/no-done-callback': 'off'\r\n }\r\n }\r\n]);\r\n", "import jsonEslint from 'eslint-plugin-json';\r\nimport { defineConfig } from 'eslint/config';\r\n\r\nexport const json = defineConfig([\r\n {\r\n files: ['**/*.json'],\r\n extends: [jsonEslint.configs.recommended]\r\n }\r\n]);\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport { defineConfig } from 'eslint/config';\r\n\r\nexport const rxjs = defineConfig([\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts'\r\n ],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true\r\n }\r\n },\r\n extends: [rxjsEslint.configs.recommended]\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts'\r\n ],\r\n plugins: {\r\n rxjs: rxjsEslint\r\n }\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts'\r\n ],\r\n rules: {\r\n 'rxjs/prefer-observer': 'error',\r\n 'rxjs/finnish': 'warn',\r\n 'rxjs/no-ignored-subscription': 'warn',\r\n 'rxjs/no-ignored-error': 'warn',\r\n 'rxjs/no-unsafe-switchmap': 'error',\r\n 'rxjs/no-unsafe-takeuntil': 'error',\r\n 'rxjs/no-unsafe-catch': 'error',\r\n 'rxjs/no-unsafe-first': 'error',\r\n 'rxjs/no-topromise': 'error',\r\n 'rxjs/throw-error': 'error',\r\n 'rxjs/no-async-subscribe': 'off'\r\n }\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'rxjs/no-ignored-subscription': 'off'\r\n }\r\n }\r\n]);\r\n", "import storybookEslint from 'eslint-plugin-storybook';\r\nimport { defineConfig } from 'eslint/config';\r\n\r\nexport const storybook = defineConfig([\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n extends: [storybookEslint.configs['flat/recommended']]\r\n }\r\n]);\r\n", "import { configs } from '@nx/eslint-plugin';\r\nimport { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';\r\nimport importPluginX from 'eslint-plugin-import-x';\r\nimport { defineConfig } from 'eslint/config';\r\nimport type { Config } from 'eslint/config';\r\n\r\nimport explicitAccessibilityRule from './rules/explicit-accessibility.js';\r\n\r\nconst localTypescriptRules: Record<string, unknown> = {\r\n rules: {\r\n 'explicit-accessibility': explicitAccessibilityRule\r\n }\r\n};\r\n\r\nexport const typescript = defineConfig([\r\n // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n extends: [\r\n importPluginX.flatConfigs.typescript,\r\n ...(configs['flat/typescript'] as Config[])\r\n ]\r\n },\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n plugins: { local: localTypescriptRules },\r\n rules: {\r\n 'local/explicit-accessibility': 'error',\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'error',\r\n '@typescript-eslint/no-empty-function': 'error',\r\n '@typescript-eslint/no-unused-vars': 'error',\r\n '@typescript-eslint/no-use-before-define': 'error',\r\n\r\n // A. Eliminating `any` (already covered by strict-type-checked, but explicit for clarity)\r\n '@typescript-eslint/no-explicit-any': 'error',\r\n '@typescript-eslint/no-unsafe-assignment': 'error',\r\n '@typescript-eslint/no-unsafe-call': 'error',\r\n '@typescript-eslint/no-unsafe-member-access': 'error',\r\n '@typescript-eslint/no-unsafe-return': 'error',\r\n '@typescript-eslint/no-unsafe-argument': 'error',\r\n\r\n // B. Explicit Annotations (partially covered, explicit module boundaries is key)\r\n '@typescript-eslint/explicit-module-boundary-types': 'error',\r\n // Consider enabling if maximum explicitness is desired, even if verbose:\r\n\r\n // C. Null/Undefined Safety (Requires strictNullChecks)\r\n '@typescript-eslint/no-non-null-assertion': 'error',\r\n '@typescript-eslint/prefer-nullish-coalescing': 'error',\r\n '@typescript-eslint/prefer-optional-chain': 'error',\r\n\r\n // D. Promise Handling (Supplementing plugin:promise/recommended)\r\n '@typescript-eslint/no-floating-promises': [\r\n 'error',\r\n { ignoreVoid: true }\r\n ],\r\n '@typescript-eslint/no-misused-promises': 'warn', // Already in recommended-type-checked\r\n '@typescript-eslint/promise-function-async': 'error',\r\n '@typescript-eslint/await-thenable': 'error', // Already in recommended-type-checked\r\n\r\n // E. Best Practices & Potential Errors (Some covered by presets, fine-tuning here)\r\n '@typescript-eslint/no-inferrable-types': 'warn', // Keep as warn or disable if inference is preferred\r\n '@typescript-eslint/no-var-requires': 'error', // Use ES modules\r\n '@typescript-eslint/require-await': 'error',\r\n '@typescript-eslint/restrict-template-expressions': [\r\n 'error',\r\n { allowNumber: true, allowBoolean: true }\r\n ], // Allow numbers/booleans in templates\r\n '@typescript-eslint/restrict-plus-operands': 'error', // Enforce consistent types for '+'\r\n '@typescript-eslint/prefer-as-const': 'error',\r\n '@typescript-eslint/no-shadow': 'error',\r\n '@typescript-eslint/switch-exhaustiveness-check': 'error', // Ensure switch on unions is exhaustive\r\n '@typescript-eslint/no-unused-expressions': [\r\n 'error',\r\n { allowShortCircuit: true, allowTernary: true }\r\n ],\r\n '@typescript-eslint/no-useless-constructor': 'error',\r\n '@typescript-eslint/dot-notation': ['error', { allowKeywords: true }], // Prefer dot notation where possible\r\n\r\n // F. Consistency & Style (Some covered by stylistic-type-checked)\r\n '@typescript-eslint/consistent-type-assertions': [\r\n 'error',\r\n { assertionStyle: 'as', objectLiteralTypeAssertions: 'never' }\r\n ],\r\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\r\n '@typescript-eslint/consistent-type-imports': [\r\n 'error',\r\n { prefer: 'type-imports', fixStyle: 'separate-type-imports' }\r\n ],\r\n '@typescript-eslint/naming-convention': [\r\n 'error',\r\n {\r\n selector: 'objectLiteralProperty',\r\n modifiers: ['requiresQuotes'],\r\n format: null\r\n },\r\n {\r\n selector: 'objectLiteralProperty',\r\n format: ['camelCase', 'snake_case', 'PascalCase']\r\n },\r\n {\r\n selector: 'parameter',\r\n format: ['camelCase'],\r\n leadingUnderscore: 'allow'\r\n },\r\n { selector: 'default', format: ['camelCase'] },\r\n { selector: 'variable', format: ['camelCase', 'UPPER_CASE'] },\r\n { selector: 'function', format: ['camelCase'] },\r\n { selector: 'typeLike', format: ['PascalCase'] },\r\n {\r\n selector: 'property',\r\n modifiers: ['requiresQuotes'],\r\n format: null\r\n },\r\n {\r\n selector: 'property',\r\n format: ['camelCase', 'PascalCase', 'snake_case']\r\n }\r\n ],\r\n 'import-x/order': [\r\n 'error',\r\n {\r\n groups: [\r\n 'builtin',\r\n 'external',\r\n 'internal',\r\n ['parent', 'sibling'],\r\n 'index',\r\n 'unknown'\r\n ],\r\n pathGroups: [\r\n {\r\n pattern: '@angular/**',\r\n group: 'builtin',\r\n position: 'before'\r\n },\r\n {\r\n pattern: '@nestjs/**',\r\n group: 'builtin',\r\n position: 'before'\r\n },\r\n {\r\n pattern: '@*/shared/**',\r\n group: 'internal',\r\n position: 'before'\r\n },\r\n {\r\n pattern: '@*/frontend/**',\r\n group: 'internal',\r\n position: 'after'\r\n },\r\n {\r\n pattern: '@*/backend/**',\r\n group: 'internal',\r\n position: 'after'\r\n }\r\n ],\r\n pathGroupsExcludedImportTypes: ['@angular/**', '@nestjs/**'],\r\n 'newlines-between': 'always',\r\n alphabetize: { order: 'asc', caseInsensitive: true }\r\n }\r\n ],\r\n 'import-x/no-unresolved': 'error',\r\n 'import-x/no-duplicates': 'error',\r\n 'import-x/prefer-default-export': 'off',\r\n 'import-x/no-useless-path-segments': 'error',\r\n 'import-x/newline-after-import': 'error',\r\n 'import-x/first': 'error',\r\n 'import-x/no-mutable-exports': 'error'\r\n },\r\n settings: {\r\n 'import-x/resolver-next': [\r\n createTypeScriptImportResolver({\r\n alwaysTryTypes: true,\r\n project: 'tsconfig.base.json'\r\n })\r\n ]\r\n }\r\n },\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true\r\n }\r\n },\r\n rules: {\r\n '@typescript-eslint/prefer-readonly': 'error'\r\n }\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n '@typescript-eslint/no-namespace': 'off'\r\n }\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n '@typescript-eslint/no-empty-function': 'off',\r\n '@typescript-eslint/no-unbound-method': 'off',\r\n '@typescript-eslint/consistent-type-assertions': 'off'\r\n }\r\n },\r\n {\r\n files: ['**/*.stories.ts'],\r\n rules: {\r\n '@typescript-eslint/consistent-type-assertions': 'off',\r\n '@typescript-eslint/naming-convention': 'off'\r\n }\r\n }\r\n]);\r\n", "import { ESLintUtils, TSESTree } from '@typescript-eslint/utils';\r\n\r\nconst createRule = ESLintUtils.RuleCreator(\r\n () => 'https://eslint.org/docs/latest/rules/no-unused-private-class-members'\r\n);\r\n\r\ntype AccessibilityLevel = 'public' | 'private' | 'protected';\r\n\r\ntype Options = [\r\n {\r\n defaultAccessibility?: AccessibilityLevel;\r\n }\r\n];\r\n\r\nconst defaultOptions: Options[0] = {\r\n defaultAccessibility: 'private'\r\n};\r\n\r\nconst getNodeName = (\r\n node: TSESTree.Node | TSESTree.Token | null | undefined\r\n): string => {\r\n if (!node) {\r\n return '<unknown>';\r\n }\r\n\r\n /*\r\n * MethodDefinition or PropertyDefinition (check 'key' first)\r\n * Note: Check 'key' before 'kind' because MethodDefinition has both\r\n */\r\n if ('key' in node && node.key) {\r\n if (node.key.type === TSESTree.AST_NODE_TYPES.Identifier) {\r\n return node.key.name;\r\n }\r\n // Handle computed property names, private identifiers (#name), etc. if needed\r\n if (node.key.type === TSESTree.AST_NODE_TYPES.PrivateIdentifier) {\r\n return `#${node.key.name}`;\r\n }\r\n return '<computed/complex key>';\r\n }\r\n\r\n // Constructor specific check (if key check didn't catch it - unlikely for MethodDefinition)\r\n if ('kind' in node && node.kind === 'constructor') {\r\n return 'constructor';\r\n }\r\n\r\n // TSParameterProperty - handle its 'parameter' property\r\n if (node.type === TSESTree.AST_NODE_TYPES.TSParameterProperty) {\r\n const param = node.parameter; // Assign to variable for clarity & potentially better inference\r\n\r\n // Handle different parameter kinds:\r\n if (param.type === TSESTree.AST_NODE_TYPES.Identifier) {\r\n return param.name;\r\n }\r\n if (param.type === TSESTree.AST_NODE_TYPES.AssignmentPattern) {\r\n // Check the left side of the assignment\r\n if (param.left.type === TSESTree.AST_NODE_TYPES.Identifier) {\r\n return param.left.name; // Name is on the identifier being assigned to\r\n }\r\n /*\r\n * Parameter is an assignment pattern with destructuring (ArrayPattern/ObjectPattern)\r\n * You might want more sophisticated logic here to extract a name\r\n */\r\n return '<destructured parameter>';\r\n }\r\n // Handle other potential kinds like RestElement ([...args]), ArrayPattern, ObjectPattern\r\n if (\r\n param.type === TSESTree.AST_NODE_TYPES.RestElement &&\r\n param.argument.type === TSESTree.AST_NODE_TYPES.Identifier\r\n ) {\r\n return `...${param.argument.name}`;\r\n }\r\n\r\n return '<complex parameter>';\r\n }\r\n\r\n return '<unknown>';\r\n};\r\n\r\nexport default createRule<Options, 'missingAccessibility'>({\r\n name: 'explicit-accessibility',\r\n meta: {\r\n type: 'suggestion',\r\n docs: {\r\n description: 'Require explicit accessibility modifiers on class members'\r\n },\r\n fixable: 'code',\r\n schema: [\r\n {\r\n type: 'object',\r\n properties: {\r\n defaultAccessibility: {\r\n type: 'string',\r\n enum: ['public', 'private', 'protected'],\r\n description: 'The accessibility modifier to add if one is missing.'\r\n }\r\n },\r\n additionalProperties: false\r\n }\r\n ],\r\n messages: {\r\n missingAccessibility:\r\n \"Class member '{{ name }}' is missing an explicit accessibility modifier (public/private/protected).\"\r\n }\r\n },\r\n defaultOptions: [defaultOptions],\r\n\r\n create(context, [options]) {\r\n const { defaultAccessibility } = { ...defaultOptions, ...options };\r\n const sourceCode = context.sourceCode;\r\n\r\n function checkNode(\r\n node:\r\n | TSESTree.MethodDefinition\r\n | TSESTree.PropertyDefinition\r\n | TSESTree.TSParameterProperty\r\n ): void {\r\n if (node.accessibility) {\r\n return; // Already has modifier\r\n }\r\n\r\n let reportNode: TSESTree.Node | TSESTree.Token | undefined = node;\r\n const name = getNodeName(node);\r\n // Adjust report node for better highlighting\r\n if (\r\n node.type === TSESTree.AST_NODE_TYPES.MethodDefinition ||\r\n node.type === TSESTree.AST_NODE_TYPES.PropertyDefinition\r\n ) {\r\n reportNode = node.key;\r\n } else {\r\n const param = node.parameter;\r\n if (param.type === TSESTree.AST_NODE_TYPES.Identifier) {\r\n reportNode = param;\r\n } else if (\r\n param.type === TSESTree.AST_NODE_TYPES.AssignmentPattern &&\r\n param.left.type === TSESTree.AST_NODE_TYPES.Identifier\r\n ) {\r\n reportNode = param.left;\r\n }\r\n // Keep reportNode as the TSParameterProperty node itself if param isn't simple identifier\r\n }\r\n\r\n context.report({\r\n node: reportNode,\r\n messageId: 'missingAccessibility',\r\n data: { name },\r\n fix(fixer) {\r\n let tokenToInsertBefore: TSESTree.Token | null = null;\r\n let insertText = `${defaultAccessibility} `;\r\n\r\n if (node.decorators.length > 0) {\r\n const lastDecorator = node.decorators[node.decorators.length - 1];\r\n tokenToInsertBefore = sourceCode.getTokenAfter(lastDecorator);\r\n } else {\r\n tokenToInsertBefore = sourceCode.getFirstToken(node);\r\n }\r\n\r\n // Parameter properties need special handling if they also have 'readonly'\r\n if (\r\n node.type === TSESTree.AST_NODE_TYPES.TSParameterProperty &&\r\n node.readonly\r\n ) {\r\n // If readonly exists without accessibility, insert accessibility *before* readonly\r\n const firstToken = sourceCode.getFirstToken(node);\r\n if (firstToken?.value === 'readonly') {\r\n // double check it's the readonly token\r\n tokenToInsertBefore = firstToken;\r\n }\r\n // If insertion point wasn't decorators, use first token (which should be readonly)\r\n }\r\n\r\n if (!tokenToInsertBefore) return null;\r\n\r\n /*\r\n * If the token immediately after the insertion point isn't whitespace, add a space.\r\n * (Handles case where tokenToInsertBefore is the last decorator token)\r\n */\r\n const tokenAfterInsertion = sourceCode.getTokenAfter(\r\n tokenToInsertBefore,\r\n { includeComments: false }\r\n );\r\n const textBetween = sourceCode.text.slice(\r\n tokenToInsertBefore.range[1],\r\n tokenAfterInsertion?.range[0]\r\n );\r\n if (!/^\\s/.test(textBetween)) {\r\n insertText = ` ${insertText}`; // Add leading space if needed after decorator\r\n }\r\n\r\n return fixer.insertTextBefore(tokenToInsertBefore, insertText);\r\n }\r\n });\r\n }\r\n\r\n return {\r\n MethodDefinition(node: TSESTree.MethodDefinition): void {\r\n checkNode(node);\r\n },\r\n\r\n PropertyDefinition(node: TSESTree.PropertyDefinition): void {\r\n checkNode(node);\r\n },\r\n\r\n TSParameterProperty(node: TSESTree.TSParameterProperty): void {\r\n checkNode(node);\r\n }\r\n };\r\n }\r\n});\r\n", "import vitestEslint from '@vitest/eslint-plugin';\r\nimport { defineConfig } from 'eslint/config';\r\n\r\nconst vitestPlugin: Record<string, object> = {\r\n vitest: vitestEslint\r\n};\r\n\r\nexport const vitest = defineConfig([\r\n {\r\n files: ['**/*.spec.ts', '**/*.spec.js', '**/*.test.ts', '**/*.test.js'],\r\n plugins: vitestPlugin,\r\n rules: {\r\n ...vitestEslint.configs.recommended.rules,\r\n 'vitest/max-nested-describe': ['error', { max: 3 }]\r\n }\r\n }\r\n]);\r\n", "import playwrightEslint from 'eslint-plugin-playwright';\r\nimport { defineConfig } from 'eslint/config';\r\n\r\nexport const playwright = defineConfig([\r\n {\r\n ...playwrightEslint.configs['flat/recommended'],\r\n files: ['**/*.test.ts', '**/*.test.js'],\r\n rules: {\r\n ...playwrightEslint.configs['flat/recommended'].rules\r\n }\r\n }\r\n]);\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_angular_eslint", "import_config", "globals", "import_eslint_plugin", "import_config", "importPluginX", "stylistic", "import_eslint_plugin", "import_config", "import_config", "jestEslint", "import_config", "jsonEslint", "import_config", "rxjsEslint", "import_config", "storybookEslint", "import_eslint_plugin", "import_eslint_plugin_import_x", "import_config", "importPluginX", "import_eslint_plugin", "import_config", "vitestEslint", "import_config", "playwrightEslint"]
|
|
7
|
+
}
|
|
@@ -8,6 +8,8 @@ import { json } from './lib/json.js';
|
|
|
8
8
|
import { rxjs } from './lib/rxjs.js';
|
|
9
9
|
import { storybook } from './lib/storybook.js';
|
|
10
10
|
import { typescript } from './lib/typescript.js';
|
|
11
|
+
import { vitest } from './lib/vitest.js';
|
|
12
|
+
import { playwright } from './lib/playwright.js';
|
|
11
13
|
export declare const recommended: ConfigArray;
|
|
12
|
-
export { base, javascript, typescript, angular, angularTemplate, rxjs, jest, json, storybook };
|
|
14
|
+
export { base, javascript, typescript, angular, angularTemplate, rxjs, jest, json, storybook, vitest, playwright };
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/lint-suite/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/lint-suite/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,WAAW,EAAE,WAYzB,CAAC;AAEF,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,OAAO,EACP,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,MAAM,EACN,UAAU,EACX,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
// packages/lint-suite/src/lib/angular-template.ts
|
|
2
2
|
import { configs } from "angular-eslint";
|
|
3
|
-
import {
|
|
4
|
-
var angularTemplate =
|
|
3
|
+
import { defineConfig } from "eslint/config";
|
|
4
|
+
var angularTemplate = defineConfig([
|
|
5
5
|
{
|
|
6
6
|
files: ["**/*.html"],
|
|
7
|
-
extends: [
|
|
7
|
+
extends: [
|
|
8
|
+
...configs.templateAccessibility,
|
|
9
|
+
...configs.templateRecommended
|
|
10
|
+
],
|
|
8
11
|
rules: {
|
|
9
12
|
"@angular-eslint/template/prefer-template-literal": "error",
|
|
10
13
|
"@angular-eslint/template/no-any": "error",
|
|
@@ -48,9 +51,9 @@ var angularTemplate = config([
|
|
|
48
51
|
|
|
49
52
|
// packages/lint-suite/src/lib/angular.ts
|
|
50
53
|
import globals from "globals";
|
|
51
|
-
import { configs as configs2, processInlineTemplates
|
|
52
|
-
import {
|
|
53
|
-
var angular =
|
|
54
|
+
import { configs as configs2, processInlineTemplates } from "angular-eslint";
|
|
55
|
+
import { defineConfig as defineConfig2 } from "eslint/config";
|
|
56
|
+
var angular = defineConfig2([
|
|
54
57
|
{
|
|
55
58
|
files: ["**/*.ts"],
|
|
56
59
|
extends: [...configs2.tsRecommended],
|
|
@@ -62,7 +65,6 @@ var angular = config2([
|
|
|
62
65
|
}
|
|
63
66
|
},
|
|
64
67
|
processor: processInlineTemplates,
|
|
65
|
-
plugins: { "@angular-eslint": tsPlugin },
|
|
66
68
|
rules: {
|
|
67
69
|
"@angular-eslint/prefer-on-push-component-change-detection": "error",
|
|
68
70
|
"@angular-eslint/prefer-signals": "error",
|
|
@@ -75,8 +77,8 @@ var angular = config2([
|
|
|
75
77
|
import { configs as configs3 } from "@nx/eslint-plugin";
|
|
76
78
|
import stylistic from "@stylistic/eslint-plugin";
|
|
77
79
|
import importPluginX from "eslint-plugin-import-x";
|
|
78
|
-
import {
|
|
79
|
-
var base =
|
|
80
|
+
import { defineConfig as defineConfig3 } from "eslint/config";
|
|
81
|
+
var base = defineConfig3([
|
|
80
82
|
{ extends: [...configs3["flat/base"]] },
|
|
81
83
|
{
|
|
82
84
|
files: [
|
|
@@ -262,7 +264,7 @@ var base = config3([
|
|
|
262
264
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
263
265
|
rules: {
|
|
264
266
|
"max-lines-per-function": "off",
|
|
265
|
-
complexity: ["warn", { max:
|
|
267
|
+
complexity: ["warn", { max: 3 }],
|
|
266
268
|
"max-lines": [
|
|
267
269
|
"error",
|
|
268
270
|
{
|
|
@@ -289,19 +291,18 @@ var base = config3([
|
|
|
289
291
|
|
|
290
292
|
// packages/lint-suite/src/lib/javascript.ts
|
|
291
293
|
import { configs as configs4 } from "@nx/eslint-plugin";
|
|
292
|
-
import {
|
|
293
|
-
var javascript =
|
|
294
|
+
import { defineConfig as defineConfig4 } from "eslint/config";
|
|
295
|
+
var javascript = defineConfig4({
|
|
294
296
|
files: ["**/*.js", "**/*.jsx", "**/*.cjs", "**/*.mjs"],
|
|
295
|
-
extends: [...configs4["flat/javascript"]]
|
|
296
|
-
rules: {}
|
|
297
|
+
extends: [...configs4["flat/javascript"]]
|
|
297
298
|
});
|
|
298
299
|
|
|
299
300
|
// packages/lint-suite/src/lib/jest.ts
|
|
300
301
|
import jestEslint from "eslint-plugin-jest";
|
|
301
|
-
import {
|
|
302
|
-
var jest =
|
|
302
|
+
import { defineConfig as defineConfig5 } from "eslint/config";
|
|
303
|
+
var jest = defineConfig5([
|
|
303
304
|
{
|
|
304
|
-
files: ["**/*.spec.ts", "**/*.
|
|
305
|
+
files: ["**/*.spec.ts", "**/*.spec.js"],
|
|
305
306
|
extends: [jestEslint.configs["flat/all"]],
|
|
306
307
|
rules: {
|
|
307
308
|
"jest/no-done-callback": "off"
|
|
@@ -311,19 +312,18 @@ var jest = config5([
|
|
|
311
312
|
|
|
312
313
|
// packages/lint-suite/src/lib/json.ts
|
|
313
314
|
import jsonEslint from "eslint-plugin-json";
|
|
314
|
-
import {
|
|
315
|
-
var json =
|
|
315
|
+
import { defineConfig as defineConfig6 } from "eslint/config";
|
|
316
|
+
var json = defineConfig6([
|
|
316
317
|
{
|
|
317
318
|
files: ["**/*.json"],
|
|
318
|
-
extends: [jsonEslint.configs.recommended]
|
|
319
|
-
rules: {}
|
|
319
|
+
extends: [jsonEslint.configs.recommended]
|
|
320
320
|
}
|
|
321
321
|
]);
|
|
322
322
|
|
|
323
323
|
// packages/lint-suite/src/lib/rxjs.ts
|
|
324
324
|
import rxjsEslint from "@smarttools/eslint-plugin-rxjs";
|
|
325
|
-
import {
|
|
326
|
-
var rxjs =
|
|
325
|
+
import { defineConfig as defineConfig7 } from "eslint/config";
|
|
326
|
+
var rxjs = defineConfig7([
|
|
327
327
|
{
|
|
328
328
|
files: [
|
|
329
329
|
"**/*.js",
|
|
@@ -392,13 +392,12 @@ var rxjs = config7([
|
|
|
392
392
|
|
|
393
393
|
// packages/lint-suite/src/lib/storybook.ts
|
|
394
394
|
import storybookEslint from "eslint-plugin-storybook";
|
|
395
|
-
import {
|
|
396
|
-
var storybook =
|
|
395
|
+
import { defineConfig as defineConfig8 } from "eslint/config";
|
|
396
|
+
var storybook = defineConfig8([
|
|
397
397
|
{
|
|
398
398
|
ignores: ["!.storybook"],
|
|
399
399
|
files: ["**/*.stories.ts"],
|
|
400
|
-
extends: [storybookEslint.configs["flat/recommended"]]
|
|
401
|
-
rules: {}
|
|
400
|
+
extends: [storybookEslint.configs["flat/recommended"]]
|
|
402
401
|
}
|
|
403
402
|
]);
|
|
404
403
|
|
|
@@ -406,6 +405,7 @@ var storybook = config8([
|
|
|
406
405
|
import { configs as configs5 } from "@nx/eslint-plugin";
|
|
407
406
|
import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript";
|
|
408
407
|
import importPluginX2 from "eslint-plugin-import-x";
|
|
408
|
+
import { defineConfig as defineConfig9 } from "eslint/config";
|
|
409
409
|
|
|
410
410
|
// packages/lint-suite/src/lib/rules/explicit-accessibility.ts
|
|
411
411
|
import { ESLintUtils, TSESTree } from "@typescript-eslint/utils";
|
|
@@ -544,13 +544,12 @@ var explicit_accessibility_default = createRule({
|
|
|
544
544
|
});
|
|
545
545
|
|
|
546
546
|
// packages/lint-suite/src/lib/typescript.ts
|
|
547
|
-
import { config as config9 } from "typescript-eslint";
|
|
548
547
|
var localTypescriptRules = {
|
|
549
548
|
rules: {
|
|
550
549
|
"explicit-accessibility": explicit_accessibility_default
|
|
551
550
|
}
|
|
552
551
|
};
|
|
553
|
-
var typescript =
|
|
552
|
+
var typescript = defineConfig9([
|
|
554
553
|
// NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
|
|
555
554
|
{
|
|
556
555
|
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
@@ -751,6 +750,36 @@ var typescript = config9([
|
|
|
751
750
|
}
|
|
752
751
|
]);
|
|
753
752
|
|
|
753
|
+
// packages/lint-suite/src/lib/vitest.ts
|
|
754
|
+
import vitestEslint from "@vitest/eslint-plugin";
|
|
755
|
+
import { defineConfig as defineConfig10 } from "eslint/config";
|
|
756
|
+
var vitestPlugin = {
|
|
757
|
+
vitest: vitestEslint
|
|
758
|
+
};
|
|
759
|
+
var vitest = defineConfig10([
|
|
760
|
+
{
|
|
761
|
+
files: ["**/*.spec.ts", "**/*.spec.js", "**/*.test.ts", "**/*.test.js"],
|
|
762
|
+
plugins: vitestPlugin,
|
|
763
|
+
rules: {
|
|
764
|
+
...vitestEslint.configs.recommended.rules,
|
|
765
|
+
"vitest/max-nested-describe": ["error", { max: 3 }]
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
]);
|
|
769
|
+
|
|
770
|
+
// packages/lint-suite/src/lib/playwright.ts
|
|
771
|
+
import playwrightEslint from "eslint-plugin-playwright";
|
|
772
|
+
import { defineConfig as defineConfig11 } from "eslint/config";
|
|
773
|
+
var playwright = defineConfig11([
|
|
774
|
+
{
|
|
775
|
+
...playwrightEslint.configs["flat/recommended"],
|
|
776
|
+
files: ["**/*.test.ts", "**/*.test.js"],
|
|
777
|
+
rules: {
|
|
778
|
+
...playwrightEslint.configs["flat/recommended"].rules
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
]);
|
|
782
|
+
|
|
754
783
|
// packages/lint-suite/src/index.ts
|
|
755
784
|
var recommended = [
|
|
756
785
|
...base,
|
|
@@ -761,7 +790,9 @@ var recommended = [
|
|
|
761
790
|
...rxjs,
|
|
762
791
|
...jest,
|
|
763
792
|
...json,
|
|
764
|
-
...storybook
|
|
793
|
+
...storybook,
|
|
794
|
+
...vitest,
|
|
795
|
+
...playwright
|
|
765
796
|
];
|
|
766
797
|
export {
|
|
767
798
|
angular,
|
|
@@ -770,9 +801,11 @@ export {
|
|
|
770
801
|
javascript,
|
|
771
802
|
jest,
|
|
772
803
|
json,
|
|
804
|
+
playwright,
|
|
773
805
|
recommended,
|
|
774
806
|
rxjs,
|
|
775
807
|
storybook,
|
|
776
|
-
typescript
|
|
808
|
+
typescript,
|
|
809
|
+
vitest
|
|
777
810
|
};
|
|
778
811
|
//# sourceMappingURL=index.js.map
|