lint-suite 1.0.8 → 1.0.9
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 +1 -1
- package/packages/lint-suite/src/README.md +135 -121
- package/packages/lint-suite/src/index.cjs +104 -55
- package/packages/lint-suite/src/index.cjs.map +3 -3
- package/packages/lint-suite/src/index.d.ts +2 -346
- package/packages/lint-suite/src/index.d.ts.map +1 -1
- package/packages/lint-suite/src/index.js +103 -54
- package/packages/lint-suite/src/index.js.map +3 -3
- package/packages/lint-suite/src/lib/angular-template.d.ts +2 -24
- package/packages/lint-suite/src/lib/angular-template.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/angular.d.ts +2 -6
- package/packages/lint-suite/src/lib/angular.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/base.d.ts +2 -2
- package/packages/lint-suite/src/lib/base.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/javascript.d.ts +2 -1
- package/packages/lint-suite/src/lib/javascript.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/jest.d.ts +2 -2
- package/packages/lint-suite/src/lib/jest.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/json.d.ts +2 -2
- package/packages/lint-suite/src/lib/json.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/rxjs.d.ts +2 -2
- package/packages/lint-suite/src/lib/rxjs.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/storybook.d.ts +2 -2
- package/packages/lint-suite/src/lib/storybook.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/typescript.d.ts +2 -318
- package/packages/lint-suite/src/lib/typescript.d.ts.map +1 -1
- package/packages/lint-suite/src/package.json +1 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
// packages/lint-suite/src/lib/angular-template.ts
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { configs } from "angular-eslint";
|
|
3
|
+
import { config } from "typescript-eslint";
|
|
4
|
+
var angularTemplate = config([
|
|
5
5
|
{
|
|
6
6
|
files: ["**/*.html"],
|
|
7
|
+
extends: [...configs.templateAccessibility, ...configs.templateRecommended],
|
|
7
8
|
rules: {
|
|
9
|
+
"@angular-eslint/template/prefer-template-literal": "error",
|
|
8
10
|
"@angular-eslint/template/no-any": "error",
|
|
9
11
|
"@angular-eslint/template/no-duplicate-attributes": "error",
|
|
10
12
|
"@angular-eslint/template/button-has-type": "error",
|
|
@@ -42,26 +44,40 @@ var angularTemplate = [
|
|
|
42
44
|
]
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
|
-
];
|
|
47
|
+
]);
|
|
46
48
|
|
|
47
49
|
// packages/lint-suite/src/lib/angular.ts
|
|
48
|
-
import
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
import globals from "globals";
|
|
51
|
+
import { configs as configs2, processInlineTemplates, tsPlugin } from "angular-eslint";
|
|
52
|
+
import { config as config2 } from "typescript-eslint";
|
|
53
|
+
var angular = config2([
|
|
51
54
|
{
|
|
52
55
|
files: ["**/*.ts"],
|
|
56
|
+
extends: [...configs2.tsRecommended],
|
|
57
|
+
languageOptions: {
|
|
58
|
+
globals: {
|
|
59
|
+
...globals.browser,
|
|
60
|
+
...globals.es2025,
|
|
61
|
+
...globals.node
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
processor: processInlineTemplates,
|
|
65
|
+
plugins: { "@angular-eslint": tsPlugin },
|
|
53
66
|
rules: {
|
|
54
|
-
"@angular-eslint/prefer-on-push-component-change-detection": "error"
|
|
67
|
+
"@angular-eslint/prefer-on-push-component-change-detection": "error",
|
|
68
|
+
"@angular-eslint/prefer-signals": "error",
|
|
69
|
+
"@angular-eslint/use-injectable-provided-in": "error"
|
|
55
70
|
}
|
|
56
71
|
}
|
|
57
|
-
];
|
|
72
|
+
]);
|
|
58
73
|
|
|
59
74
|
// packages/lint-suite/src/lib/base.ts
|
|
60
|
-
import
|
|
75
|
+
import { configs as configs3 } from "@nx/eslint-plugin";
|
|
61
76
|
import stylistic from "@stylistic/eslint-plugin";
|
|
62
77
|
import importPluginX from "eslint-plugin-import-x";
|
|
63
|
-
|
|
64
|
-
|
|
78
|
+
import { config as config3 } from "typescript-eslint";
|
|
79
|
+
var base = config3([
|
|
80
|
+
{ extends: [...configs3["flat/base"]] },
|
|
65
81
|
{
|
|
66
82
|
files: [
|
|
67
83
|
"**/*.js",
|
|
@@ -73,7 +89,7 @@ var base = [
|
|
|
73
89
|
"**/*.cts",
|
|
74
90
|
"**/*.mts"
|
|
75
91
|
],
|
|
76
|
-
|
|
92
|
+
extends: [importPluginX.flatConfigs.recommended]
|
|
77
93
|
},
|
|
78
94
|
{
|
|
79
95
|
files: [
|
|
@@ -86,7 +102,7 @@ var base = [
|
|
|
86
102
|
"**/*.cts",
|
|
87
103
|
"**/*.mts"
|
|
88
104
|
],
|
|
89
|
-
|
|
105
|
+
extends: [stylistic.configs.recommended]
|
|
90
106
|
},
|
|
91
107
|
{
|
|
92
108
|
files: [
|
|
@@ -105,7 +121,7 @@ var base = [
|
|
|
105
121
|
"no-console": ["warn", { allow: ["warn", "error"] }],
|
|
106
122
|
"no-debugger": "error",
|
|
107
123
|
eqeqeq: ["error", "always", { null: "ignore" }],
|
|
108
|
-
curly: ["error", "
|
|
124
|
+
curly: ["error", "multi"],
|
|
109
125
|
"prefer-const": ["error", { destructuring: "all" }],
|
|
110
126
|
"no-var": "error",
|
|
111
127
|
"object-shorthand": "error",
|
|
@@ -136,24 +152,6 @@ var base = [
|
|
|
136
152
|
// Enforce consistency for getters/setters
|
|
137
153
|
"class-methods-use-this": "error",
|
|
138
154
|
"no-underscore-dangle": "error",
|
|
139
|
-
"padding-line-between-statements": [
|
|
140
|
-
"error",
|
|
141
|
-
{
|
|
142
|
-
blankLine: "always",
|
|
143
|
-
prev: "export",
|
|
144
|
-
next: ["export", "const"]
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
blankLine: "always",
|
|
148
|
-
prev: "*",
|
|
149
|
-
next: "return"
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
blankLine: "always",
|
|
153
|
-
prev: "*",
|
|
154
|
-
next: "if"
|
|
155
|
-
}
|
|
156
|
-
],
|
|
157
155
|
"max-len": [
|
|
158
156
|
"error",
|
|
159
157
|
{
|
|
@@ -170,6 +168,38 @@ var base = [
|
|
|
170
168
|
}
|
|
171
169
|
}
|
|
172
170
|
],
|
|
171
|
+
"@stylistic/padding-line-between-statements": [
|
|
172
|
+
"error",
|
|
173
|
+
{
|
|
174
|
+
blankLine: "always",
|
|
175
|
+
prev: "export",
|
|
176
|
+
next: ["export", "const"]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
blankLine: "always",
|
|
180
|
+
prev: ["const", "let", "var"],
|
|
181
|
+
next: "*"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
blankLine: "any",
|
|
185
|
+
prev: ["const", "let", "var"],
|
|
186
|
+
next: ["const", "let", "var"]
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
blankLine: "always",
|
|
190
|
+
prev: "*",
|
|
191
|
+
next: [
|
|
192
|
+
"for",
|
|
193
|
+
"if",
|
|
194
|
+
"return",
|
|
195
|
+
"throw",
|
|
196
|
+
"switch",
|
|
197
|
+
"try",
|
|
198
|
+
"class",
|
|
199
|
+
"function"
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
],
|
|
173
203
|
"@stylistic/comma-dangle": [
|
|
174
204
|
"error",
|
|
175
205
|
{
|
|
@@ -255,36 +285,45 @@ var base = [
|
|
|
255
285
|
"class-methods-use-this": "off"
|
|
256
286
|
}
|
|
257
287
|
}
|
|
258
|
-
];
|
|
288
|
+
]);
|
|
259
289
|
|
|
260
290
|
// packages/lint-suite/src/lib/javascript.ts
|
|
261
|
-
import
|
|
262
|
-
|
|
291
|
+
import { configs as configs4 } from "@nx/eslint-plugin";
|
|
292
|
+
import { config as config4 } from "typescript-eslint";
|
|
293
|
+
var javascript = config4({
|
|
294
|
+
files: ["**/*.js", "**/*.jsx", "**/*.cjs", "**/*.mjs"],
|
|
295
|
+
extends: [...configs4["flat/javascript"]],
|
|
296
|
+
rules: {}
|
|
297
|
+
});
|
|
263
298
|
|
|
264
299
|
// packages/lint-suite/src/lib/jest.ts
|
|
265
300
|
import jestEslint from "eslint-plugin-jest";
|
|
266
|
-
|
|
301
|
+
import { config as config5 } from "typescript-eslint";
|
|
302
|
+
var jest = config5([
|
|
267
303
|
{
|
|
268
304
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
269
|
-
|
|
305
|
+
extends: [jestEslint.configs["flat/all"]],
|
|
270
306
|
rules: {
|
|
271
307
|
"jest/no-done-callback": "off"
|
|
272
308
|
}
|
|
273
309
|
}
|
|
274
|
-
];
|
|
310
|
+
]);
|
|
275
311
|
|
|
276
312
|
// packages/lint-suite/src/lib/json.ts
|
|
277
313
|
import jsonEslint from "eslint-plugin-json";
|
|
278
|
-
|
|
314
|
+
import { config as config6 } from "typescript-eslint";
|
|
315
|
+
var json = config6([
|
|
279
316
|
{
|
|
280
317
|
files: ["**/*.json"],
|
|
281
|
-
|
|
318
|
+
extends: [jsonEslint.configs.recommended],
|
|
319
|
+
rules: {}
|
|
282
320
|
}
|
|
283
|
-
];
|
|
321
|
+
]);
|
|
284
322
|
|
|
285
323
|
// packages/lint-suite/src/lib/rxjs.ts
|
|
286
324
|
import rxjsEslint from "@smarttools/eslint-plugin-rxjs";
|
|
287
|
-
|
|
325
|
+
import { config as config7 } from "typescript-eslint";
|
|
326
|
+
var rxjs = config7([
|
|
288
327
|
{
|
|
289
328
|
files: [
|
|
290
329
|
"**/*.js",
|
|
@@ -301,7 +340,7 @@ var rxjs = [
|
|
|
301
340
|
projectService: true
|
|
302
341
|
}
|
|
303
342
|
},
|
|
304
|
-
|
|
343
|
+
extends: [rxjsEslint.configs.recommended]
|
|
305
344
|
},
|
|
306
345
|
{
|
|
307
346
|
files: [
|
|
@@ -349,20 +388,22 @@ var rxjs = [
|
|
|
349
388
|
"rxjs/no-ignored-subscription": "off"
|
|
350
389
|
}
|
|
351
390
|
}
|
|
352
|
-
];
|
|
391
|
+
]);
|
|
353
392
|
|
|
354
393
|
// packages/lint-suite/src/lib/storybook.ts
|
|
355
394
|
import storybookEslint from "eslint-plugin-storybook";
|
|
356
|
-
|
|
357
|
-
|
|
395
|
+
import { config as config8 } from "typescript-eslint";
|
|
396
|
+
var storybook = config8([
|
|
358
397
|
{
|
|
359
398
|
ignores: ["!.storybook"],
|
|
360
|
-
files: ["**/*.stories.ts"]
|
|
399
|
+
files: ["**/*.stories.ts"],
|
|
400
|
+
extends: [storybookEslint.configs["flat/recommended"]],
|
|
401
|
+
rules: {}
|
|
361
402
|
}
|
|
362
|
-
];
|
|
403
|
+
]);
|
|
363
404
|
|
|
364
405
|
// packages/lint-suite/src/lib/typescript.ts
|
|
365
|
-
import
|
|
406
|
+
import { configs as configs5 } from "@nx/eslint-plugin";
|
|
366
407
|
import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript";
|
|
367
408
|
import importPluginX2 from "eslint-plugin-import-x";
|
|
368
409
|
|
|
@@ -503,15 +544,21 @@ var explicit_accessibility_default = createRule({
|
|
|
503
544
|
});
|
|
504
545
|
|
|
505
546
|
// packages/lint-suite/src/lib/typescript.ts
|
|
547
|
+
import { config as config9 } from "typescript-eslint";
|
|
506
548
|
var localTypescriptRules = {
|
|
507
549
|
rules: {
|
|
508
550
|
"explicit-accessibility": explicit_accessibility_default
|
|
509
551
|
}
|
|
510
552
|
};
|
|
511
|
-
var typescript = [
|
|
553
|
+
var typescript = config9([
|
|
512
554
|
// NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
|
|
513
|
-
|
|
514
|
-
|
|
555
|
+
{
|
|
556
|
+
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
557
|
+
extends: [
|
|
558
|
+
importPluginX2.flatConfigs.typescript,
|
|
559
|
+
...configs5["flat/typescript"]
|
|
560
|
+
]
|
|
561
|
+
},
|
|
515
562
|
{
|
|
516
563
|
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
517
564
|
plugins: { local: localTypescriptRules },
|
|
@@ -534,6 +581,8 @@ var typescript = [
|
|
|
534
581
|
// Consider enabling if maximum explicitness is desired, even if verbose:
|
|
535
582
|
// C. Null/Undefined Safety (Requires strictNullChecks)
|
|
536
583
|
"@typescript-eslint/no-non-null-assertion": "error",
|
|
584
|
+
"@typescript-eslint/prefer-nullish-coalescing": "error",
|
|
585
|
+
"@typescript-eslint/prefer-optional-chain": "error",
|
|
537
586
|
// D. Promise Handling (Supplementing plugin:promise/recommended)
|
|
538
587
|
"@typescript-eslint/no-floating-promises": [
|
|
539
588
|
"error",
|
|
@@ -700,7 +749,7 @@ var typescript = [
|
|
|
700
749
|
"@typescript-eslint/naming-convention": "off"
|
|
701
750
|
}
|
|
702
751
|
}
|
|
703
|
-
];
|
|
752
|
+
]);
|
|
704
753
|
|
|
705
754
|
// packages/lint-suite/src/index.ts
|
|
706
755
|
var recommended = [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../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/index.ts"],
|
|
4
|
-
"sourcesContent": ["import nx from '@nx/eslint-plugin';\r\n\r\nexport const angularTemplate = [\r\n ...nx.configs['flat/angular-template'],\r\n {\r\n files: ['**/*.html'],\r\n rules: {\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 nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\nimport type { Linter } from 'eslint';\r\nimport importPluginX from 'eslint-plugin-import-x';\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.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 ...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 ...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', 'all'],\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 '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: '*',\r\n next: 'return'\r\n },\r\n {\r\n blankLine: 'always',\r\n prev: '*',\r\n next: 'if'\r\n }\r\n ],\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/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: 1 }],\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 nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = nx.configs['flat/javascript'];\r\n", "import type { Linter } from 'eslint';\r\nimport jestEslint from 'eslint-plugin-jest';\r\n\r\nexport const jest: Linter.Config[] = [\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n ...jestEslint.configs['flat/all'],\r\n rules: {\r\n 'jest/no-done-callback': 'off'\r\n }\r\n }\r\n];\r\n", "import type { Linter } from 'eslint';\r\nimport jsonEslint from 'eslint-plugin-json';\r\n\r\nexport const json: Linter.Config[] = [\r\n {\r\n files: ['**/*.json'],\r\n ...jsonEslint.configs.recommended\r\n }\r\n];\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const rxjs: Linter.Config[] = [\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 ...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 type { Linter } from 'eslint';\r\nimport storybookEslint from 'eslint-plugin-storybook';\r\n\r\nexport const storybook: Linter.Config[] = [\r\n ...storybookEslint.configs['flat/recommended'],\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts']\r\n }\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';\r\nimport importPluginX from 'eslint-plugin-import-x';\r\n\r\nimport explicitAccessibilityRule from './rules/explicit-accessibility.js';\r\n\r\nconst localTypescriptRules = {\r\n rules: {\r\n 'explicit-accessibility': explicitAccessibilityRule\r\n }\r\n};\r\n\r\nexport const typescript = [\r\n // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'\r\n importPluginX.flatConfigs.typescript,\r\n ...nx.configs['flat/typescript'],\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\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 { 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\n\r\nexport const recommended = [\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];\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};\r\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import { configs } from 'angular-eslint';\r\nimport { type ConfigArray, config } from 'typescript-eslint';\r\n\r\nexport const angularTemplate: ConfigArray = config([\r\n {\r\n files: ['**/*.html'],\r\n extends: [...configs.templateAccessibility, ...configs.templateRecommended],\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, tsPlugin } from 'angular-eslint';\r\nimport { type ConfigArray, config } from 'typescript-eslint';\r\n\r\nexport const angular: ConfigArray = config([\r\n {\r\n files: ['**/*.ts'],\r\n extends: [...configs.tsRecommended],\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 plugins: { '@angular-eslint': tsPlugin },\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 { type ConfigArray, config } from 'typescript-eslint';\r\n\r\nexport const base: ConfigArray = config([\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: 1 }],\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 { type ConfigArray, config } from 'typescript-eslint';\r\n\r\nexport const javascript: ConfigArray = config({\r\n files: ['**/*.js', '**/*.jsx', '**/*.cjs', '**/*.mjs'],\r\n extends: [...configs['flat/javascript']],\r\n rules: {}\r\n});\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport { type ConfigArray, config } from 'typescript-eslint';\r\n\r\nexport const jest: ConfigArray = config([\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.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 { type ConfigArray, config } from 'typescript-eslint';\r\n\r\nexport const json: ConfigArray = config([\r\n {\r\n files: ['**/*.json'],\r\n extends: [jsonEslint.configs.recommended],\r\n rules: {}\r\n }\r\n]);\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport { type ConfigArray, config } from 'typescript-eslint';\r\n\r\nexport const rxjs: ConfigArray = config([\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 { type ConfigArray, config } from 'typescript-eslint';\r\n\r\nexport const storybook: ConfigArray = config([\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n extends: [storybookEslint.configs['flat/recommended']],\r\n rules: {}\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\n\r\nimport explicitAccessibilityRule from './rules/explicit-accessibility.js';\r\nimport { config, ConfigArray } from 'typescript-eslint';\r\n\r\nconst localTypescriptRules = {\r\n rules: {\r\n 'explicit-accessibility': explicitAccessibilityRule\r\n }\r\n};\r\n\r\nexport const typescript: ConfigArray = config([\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']\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 { 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\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];\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};\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["configs", "config", "configs", "config", "configs", "config", "config", "config", "config", "config", "configs", "importPluginX", "config", "importPluginX", "configs"]
|
|
7
7
|
}
|
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
rules: {
|
|
4
|
-
'@angular-eslint/template/no-any': string;
|
|
5
|
-
'@angular-eslint/template/no-duplicate-attributes': string;
|
|
6
|
-
'@angular-eslint/template/button-has-type': string;
|
|
7
|
-
'@angular-eslint/template/no-positive-tabindex': string;
|
|
8
|
-
'@angular-eslint/template/valid-aria': string;
|
|
9
|
-
'@angular-eslint/template/alt-text': string;
|
|
10
|
-
'@angular-eslint/template/elements-content': string;
|
|
11
|
-
'@angular-eslint/template/click-events-have-key-events': string;
|
|
12
|
-
'@angular-eslint/template/mouse-events-have-key-events': string;
|
|
13
|
-
'@angular-eslint/template/table-scope': string;
|
|
14
|
-
'@angular-eslint/template/no-autofocus': string;
|
|
15
|
-
'@angular-eslint/template/no-distracting-elements': string;
|
|
16
|
-
'@angular-eslint/template/prefer-control-flow': string;
|
|
17
|
-
'@angular-eslint/template/prefer-self-closing-tags': string;
|
|
18
|
-
'@angular-eslint/template/prefer-ngsrc': string;
|
|
19
|
-
'@angular-eslint/template/attributes-order': (string | {
|
|
20
|
-
alphabetical: boolean;
|
|
21
|
-
order: string[];
|
|
22
|
-
})[];
|
|
23
|
-
};
|
|
24
|
-
})[];
|
|
1
|
+
import { type ConfigArray } from 'typescript-eslint';
|
|
2
|
+
export declare const angularTemplate: ConfigArray;
|
|
25
3
|
//# sourceMappingURL=angular-template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-template.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/angular-template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"angular-template.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/angular-template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,eAAe,EAAE,WAqC5B,CAAC"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
rules: {
|
|
4
|
-
'@angular-eslint/prefer-on-push-component-change-detection': string;
|
|
5
|
-
};
|
|
6
|
-
})[];
|
|
1
|
+
import { type ConfigArray } from 'typescript-eslint';
|
|
2
|
+
export declare const angular: ConfigArray;
|
|
7
3
|
//# sourceMappingURL=angular.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/angular.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"angular.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/angular.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,OAAO,EAAE,WAmBpB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare const base:
|
|
1
|
+
import { type ConfigArray } from 'typescript-eslint';
|
|
2
|
+
export declare const base: ConfigArray;
|
|
3
3
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/base.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,IAAI,EAAE,WAuMjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/javascript.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/javascript.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,UAAU,EAAE,WAIvB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare const jest:
|
|
1
|
+
import { type ConfigArray } from 'typescript-eslint';
|
|
2
|
+
export declare const jest: ConfigArray;
|
|
3
3
|
//# sourceMappingURL=jest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/jest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/jest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,IAAI,EAAE,WAQjB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare const json:
|
|
1
|
+
import { type ConfigArray } from 'typescript-eslint';
|
|
2
|
+
export declare const json: ConfigArray;
|
|
3
3
|
//# sourceMappingURL=json.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/json.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/json.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,IAAI,EAAE,WAMjB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare const rxjs:
|
|
1
|
+
import { type ConfigArray } from 'typescript-eslint';
|
|
2
|
+
export declare const rxjs: ConfigArray;
|
|
3
3
|
//# sourceMappingURL=rxjs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rxjs.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/rxjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"rxjs.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/rxjs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,IAAI,EAAE,WAiEjB,CAAC"}
|