lint-suite 1.0.4 → 1.0.5
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/index.cjs +387 -40
- package/index.cjs.map +4 -4
- package/index.d.ts +304 -9
- package/index.d.ts.map +1 -1
- package/index.js +386 -39
- package/index.js.map +4 -4
- package/lib/angular-template.d.ts +2 -0
- package/lib/angular-template.d.ts.map +1 -1
- package/lib/base.d.ts.map +1 -1
- package/lib/javascript.d.ts +1 -1
- package/lib/javascript.d.ts.map +1 -1
- package/lib/jest.d.ts.map +1 -1
- package/lib/json.d.ts.map +1 -1
- package/lib/rules/explicit-accessibility.d.ts +10 -0
- package/lib/rules/explicit-accessibility.d.ts.map +1 -0
- package/lib/storybook.d.ts.map +1 -1
- package/lib/typescript.d.ts +227 -13
- package/lib/typescript.d.ts.map +1 -1
- package/package.json +7 -6
package/index.js
CHANGED
|
@@ -5,6 +5,8 @@ var angularTemplate = [
|
|
|
5
5
|
{
|
|
6
6
|
files: ["**/*.html"],
|
|
7
7
|
rules: {
|
|
8
|
+
"@angular-eslint/template/no-any": "error",
|
|
9
|
+
"@angular-eslint/template/no-duplicate-attributes": "error",
|
|
8
10
|
"@angular-eslint/template/button-has-type": "error",
|
|
9
11
|
"@angular-eslint/template/no-positive-tabindex": "error",
|
|
10
12
|
"@angular-eslint/template/valid-aria": "error",
|
|
@@ -56,8 +58,8 @@ var angular = [
|
|
|
56
58
|
|
|
57
59
|
// packages/lint-suite/src/lib/base.ts
|
|
58
60
|
import nx3 from "@nx/eslint-plugin";
|
|
59
|
-
import importPlugin from "eslint-plugin-import";
|
|
60
61
|
import stylistic from "@stylistic/eslint-plugin";
|
|
62
|
+
import importPluginX from "eslint-plugin-import-x";
|
|
61
63
|
var base = [
|
|
62
64
|
...nx3.configs["flat/base"],
|
|
63
65
|
{
|
|
@@ -71,7 +73,7 @@ var base = [
|
|
|
71
73
|
"**/*.cts",
|
|
72
74
|
"**/*.mts"
|
|
73
75
|
],
|
|
74
|
-
...
|
|
76
|
+
...importPluginX.flatConfigs.recommended
|
|
75
77
|
},
|
|
76
78
|
{
|
|
77
79
|
files: [
|
|
@@ -98,8 +100,43 @@ var base = [
|
|
|
98
100
|
"**/*.mts"
|
|
99
101
|
],
|
|
100
102
|
rules: {
|
|
101
|
-
"no-
|
|
103
|
+
"no-param-reassign": "error",
|
|
104
|
+
"no-alert": "error",
|
|
105
|
+
"no-console": ["warn", { allow: ["warn", "error"] }],
|
|
106
|
+
"no-debugger": "error",
|
|
107
|
+
eqeqeq: ["error", "always", { null: "ignore" }],
|
|
108
|
+
curly: ["error", "all"],
|
|
109
|
+
"prefer-const": ["error", { destructuring: "all" }],
|
|
110
|
+
"no-var": "error",
|
|
111
|
+
"object-shorthand": "error",
|
|
112
|
+
"prefer-arrow-callback": "error",
|
|
113
|
+
"no-useless-concat": "error",
|
|
114
|
+
"prefer-template": "error",
|
|
115
|
+
"no-nested-ternary": "error",
|
|
116
|
+
"no-return-await": "error",
|
|
117
|
+
"no-else-return": ["error", { allowElseIf: false }],
|
|
118
|
+
// Prefer early returns
|
|
119
|
+
"no-multi-assign": "error",
|
|
120
|
+
// Disallow chaining assignments
|
|
121
|
+
radix: "error",
|
|
122
|
+
// Require radix parameter for parseInt()
|
|
123
|
+
yoda: "error",
|
|
124
|
+
// Disallow yoda conditions (`if ("red" === color)`)
|
|
125
|
+
complexity: ["warn", 10],
|
|
126
|
+
// Warn if function complexity is high
|
|
127
|
+
"max-depth": ["warn", 4],
|
|
128
|
+
// Warn on deeply nested blocks
|
|
129
|
+
"max-lines-per-function": ["warn", 50],
|
|
130
|
+
// Warn on long functions
|
|
131
|
+
"max-params": ["warn", 4],
|
|
132
|
+
// Warn on functions with many parameters
|
|
133
|
+
"no-lonely-if": "error",
|
|
134
|
+
// Disallow if statements as the only statement in an else block
|
|
135
|
+
"grouped-accessor-pairs": ["error", "getBeforeSet"],
|
|
136
|
+
// Enforce consistency for getters/setters
|
|
102
137
|
"class-methods-use-this": "error",
|
|
138
|
+
"no-void": "error",
|
|
139
|
+
"no-underscore-dangle": "error",
|
|
103
140
|
"max-len": [
|
|
104
141
|
"error",
|
|
105
142
|
{
|
|
@@ -177,6 +214,8 @@ var base = [
|
|
|
177
214
|
{
|
|
178
215
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
179
216
|
rules: {
|
|
217
|
+
"max-line-per-function": "off",
|
|
218
|
+
complexity: ["warn", { max: 1 }],
|
|
180
219
|
"max-lines": [
|
|
181
220
|
"error",
|
|
182
221
|
{
|
|
@@ -186,35 +225,6 @@ var base = [
|
|
|
186
225
|
}
|
|
187
226
|
]
|
|
188
227
|
}
|
|
189
|
-
}
|
|
190
|
-
];
|
|
191
|
-
|
|
192
|
-
// packages/lint-suite/src/lib/typescript.ts
|
|
193
|
-
import nx4 from "@nx/eslint-plugin";
|
|
194
|
-
import importPlugin2 from "eslint-plugin-import";
|
|
195
|
-
var typescript = [
|
|
196
|
-
// NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
|
|
197
|
-
importPlugin2.flatConfigs.typescript,
|
|
198
|
-
...nx4.configs["flat/typescript"],
|
|
199
|
-
{
|
|
200
|
-
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
201
|
-
rules: {
|
|
202
|
-
"@typescript-eslint/explicit-member-accessibility": "error",
|
|
203
|
-
"@typescript-eslint/consistent-type-imports": "error",
|
|
204
|
-
"@typescript-eslint/explicit-function-return-type": "warn",
|
|
205
|
-
"@typescript-eslint/no-empty-function": "error"
|
|
206
|
-
}
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
210
|
-
languageOptions: {
|
|
211
|
-
parserOptions: {
|
|
212
|
-
projectService: true
|
|
213
|
-
}
|
|
214
|
-
},
|
|
215
|
-
rules: {
|
|
216
|
-
"@typescript-eslint/prefer-readonly": "error"
|
|
217
|
-
}
|
|
218
228
|
},
|
|
219
229
|
{
|
|
220
230
|
files: ["**/*.action.ts"],
|
|
@@ -230,16 +240,19 @@ var typescript = [
|
|
|
230
240
|
}
|
|
231
241
|
];
|
|
232
242
|
|
|
243
|
+
// packages/lint-suite/src/lib/javascript.ts
|
|
244
|
+
import nx4 from "@nx/eslint-plugin";
|
|
245
|
+
var javascript = nx4.configs["flat/javascript"];
|
|
246
|
+
|
|
233
247
|
// packages/lint-suite/src/lib/jest.ts
|
|
234
248
|
import jestEslint from "eslint-plugin-jest";
|
|
235
249
|
var jest = [
|
|
236
250
|
{
|
|
237
251
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
238
|
-
...jestEslint.configs["flat/
|
|
252
|
+
...jestEslint.configs["flat/all"],
|
|
239
253
|
rules: {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
"jest/no-done-callback": "off"
|
|
254
|
+
"jest/no-done-callback": "off",
|
|
255
|
+
"jest/no-unbound-method": "error"
|
|
243
256
|
}
|
|
244
257
|
}
|
|
245
258
|
];
|
|
@@ -331,16 +344,350 @@ var storybook = [
|
|
|
331
344
|
}
|
|
332
345
|
];
|
|
333
346
|
|
|
334
|
-
// packages/lint-suite/src/lib/
|
|
347
|
+
// packages/lint-suite/src/lib/typescript.ts
|
|
335
348
|
import nx5 from "@nx/eslint-plugin";
|
|
336
|
-
|
|
349
|
+
import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript";
|
|
350
|
+
import importPluginX2 from "eslint-plugin-import-x";
|
|
351
|
+
|
|
352
|
+
// packages/lint-suite/src/lib/rules/explicit-accessibility.ts
|
|
353
|
+
import { ESLintUtils, TSESTree } from "@typescript-eslint/utils";
|
|
354
|
+
var createRule = ESLintUtils.RuleCreator(
|
|
355
|
+
() => "https://eslint.org/docs/latest/rules/no-unused-private-class-members"
|
|
356
|
+
);
|
|
357
|
+
var defaultOptions = {
|
|
358
|
+
defaultAccessibility: "private"
|
|
359
|
+
};
|
|
360
|
+
var getNodeName = (node) => {
|
|
361
|
+
if (!node) {
|
|
362
|
+
return "<unknown>";
|
|
363
|
+
}
|
|
364
|
+
if ("key" in node && node.key) {
|
|
365
|
+
if (node.key.type === TSESTree.AST_NODE_TYPES.Identifier) {
|
|
366
|
+
return node.key.name;
|
|
367
|
+
}
|
|
368
|
+
if (node.key.type === TSESTree.AST_NODE_TYPES.PrivateIdentifier) {
|
|
369
|
+
return `#${node.key.name}`;
|
|
370
|
+
}
|
|
371
|
+
return "<computed/complex key>";
|
|
372
|
+
}
|
|
373
|
+
if ("kind" in node && node.kind === "constructor") {
|
|
374
|
+
return "constructor";
|
|
375
|
+
}
|
|
376
|
+
if (node.type === TSESTree.AST_NODE_TYPES.TSParameterProperty) {
|
|
377
|
+
const param = node.parameter;
|
|
378
|
+
if (param.type === TSESTree.AST_NODE_TYPES.Identifier) {
|
|
379
|
+
return param.name;
|
|
380
|
+
}
|
|
381
|
+
if (param.type === TSESTree.AST_NODE_TYPES.AssignmentPattern) {
|
|
382
|
+
if (param.left.type === TSESTree.AST_NODE_TYPES.Identifier) {
|
|
383
|
+
return param.left.name;
|
|
384
|
+
}
|
|
385
|
+
return "<destructured parameter>";
|
|
386
|
+
}
|
|
387
|
+
if (param.type === TSESTree.AST_NODE_TYPES.RestElement && param.argument.type === TSESTree.AST_NODE_TYPES.Identifier) {
|
|
388
|
+
return `...${param.argument.name}`;
|
|
389
|
+
}
|
|
390
|
+
return "<complex parameter>";
|
|
391
|
+
}
|
|
392
|
+
return "<unknown>";
|
|
393
|
+
};
|
|
394
|
+
var explicit_accessibility_default = createRule({
|
|
395
|
+
name: "explicit-accessibility",
|
|
396
|
+
meta: {
|
|
397
|
+
type: "suggestion",
|
|
398
|
+
docs: {
|
|
399
|
+
description: "Require explicit accessibility modifiers on class members"
|
|
400
|
+
},
|
|
401
|
+
fixable: "code",
|
|
402
|
+
schema: [
|
|
403
|
+
{
|
|
404
|
+
type: "object",
|
|
405
|
+
properties: {
|
|
406
|
+
defaultAccessibility: {
|
|
407
|
+
type: "string",
|
|
408
|
+
enum: ["public", "private", "protected"],
|
|
409
|
+
description: "The accessibility modifier to add if one is missing."
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
additionalProperties: false
|
|
413
|
+
}
|
|
414
|
+
],
|
|
415
|
+
messages: {
|
|
416
|
+
missingAccessibility: "Class member '{{ name }}' is missing an explicit accessibility modifier (public/private/protected)."
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
defaultOptions: [defaultOptions],
|
|
420
|
+
create(context, [options]) {
|
|
421
|
+
const { defaultAccessibility } = { ...defaultOptions, ...options };
|
|
422
|
+
const sourceCode = context.sourceCode;
|
|
423
|
+
function checkNode(node) {
|
|
424
|
+
if (node.accessibility) {
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
let reportNode = node;
|
|
428
|
+
const name = getNodeName(node);
|
|
429
|
+
if (node.type === TSESTree.AST_NODE_TYPES.MethodDefinition || node.type === TSESTree.AST_NODE_TYPES.PropertyDefinition) {
|
|
430
|
+
reportNode = node.key;
|
|
431
|
+
} else {
|
|
432
|
+
const param = node.parameter;
|
|
433
|
+
if (param.type === TSESTree.AST_NODE_TYPES.Identifier) {
|
|
434
|
+
reportNode = param;
|
|
435
|
+
} else if (param.type === TSESTree.AST_NODE_TYPES.AssignmentPattern && param.left.type === TSESTree.AST_NODE_TYPES.Identifier) {
|
|
436
|
+
reportNode = param.left;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
context.report({
|
|
440
|
+
node: reportNode,
|
|
441
|
+
messageId: "missingAccessibility",
|
|
442
|
+
data: { name },
|
|
443
|
+
fix(fixer) {
|
|
444
|
+
let tokenToInsertBefore = null;
|
|
445
|
+
let insertText = `${defaultAccessibility} `;
|
|
446
|
+
if (node.decorators.length > 0) {
|
|
447
|
+
const lastDecorator = node.decorators[node.decorators.length - 1];
|
|
448
|
+
tokenToInsertBefore = sourceCode.getTokenAfter(lastDecorator);
|
|
449
|
+
} else {
|
|
450
|
+
tokenToInsertBefore = sourceCode.getFirstToken(node);
|
|
451
|
+
}
|
|
452
|
+
if (node.type === TSESTree.AST_NODE_TYPES.TSParameterProperty && node.readonly) {
|
|
453
|
+
const firstToken = sourceCode.getFirstToken(node);
|
|
454
|
+
if (firstToken?.value === "readonly") {
|
|
455
|
+
tokenToInsertBefore = firstToken;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
if (!tokenToInsertBefore)
|
|
459
|
+
return null;
|
|
460
|
+
const tokenAfterInsertion = sourceCode.getTokenAfter(
|
|
461
|
+
tokenToInsertBefore,
|
|
462
|
+
{ includeComments: false }
|
|
463
|
+
);
|
|
464
|
+
const textBetween = sourceCode.text.slice(
|
|
465
|
+
tokenToInsertBefore.range[1],
|
|
466
|
+
tokenAfterInsertion?.range[0]
|
|
467
|
+
);
|
|
468
|
+
if (!/^\s/.test(textBetween)) {
|
|
469
|
+
insertText = ` ${insertText}`;
|
|
470
|
+
}
|
|
471
|
+
return fixer.insertTextBefore(tokenToInsertBefore, insertText);
|
|
472
|
+
}
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
return {
|
|
476
|
+
MethodDefinition(node) {
|
|
477
|
+
checkNode(node);
|
|
478
|
+
},
|
|
479
|
+
PropertyDefinition(node) {
|
|
480
|
+
checkNode(node);
|
|
481
|
+
},
|
|
482
|
+
TSParameterProperty(node) {
|
|
483
|
+
checkNode(node);
|
|
484
|
+
}
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
});
|
|
488
|
+
|
|
489
|
+
// packages/lint-suite/src/lib/typescript.ts
|
|
490
|
+
var localTypescriptRules = {
|
|
491
|
+
rules: {
|
|
492
|
+
"explicit-accessibility": explicit_accessibility_default
|
|
493
|
+
}
|
|
494
|
+
};
|
|
495
|
+
var typescript = [
|
|
496
|
+
// NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
|
|
497
|
+
importPluginX2.flatConfigs.typescript,
|
|
498
|
+
...nx5.configs["flat/typescript"],
|
|
499
|
+
{
|
|
500
|
+
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
501
|
+
plugins: { local: localTypescriptRules },
|
|
502
|
+
rules: {
|
|
503
|
+
"local/explicit-accessibility": "error",
|
|
504
|
+
"@typescript-eslint/explicit-member-accessibility": "error",
|
|
505
|
+
"@typescript-eslint/explicit-function-return-type": "error",
|
|
506
|
+
"@typescript-eslint/no-empty-function": "error",
|
|
507
|
+
"@typescript-eslint/no-unused-vars": "error",
|
|
508
|
+
"@typescript-eslint/no-use-before-define": "error",
|
|
509
|
+
// A. Eliminating `any` (already covered by strict-type-checked, but explicit for clarity)
|
|
510
|
+
"@typescript-eslint/no-explicit-any": "error",
|
|
511
|
+
"@typescript-eslint/no-unsafe-assignment": "error",
|
|
512
|
+
"@typescript-eslint/no-unsafe-call": "error",
|
|
513
|
+
"@typescript-eslint/no-unsafe-member-access": "error",
|
|
514
|
+
"@typescript-eslint/no-unsafe-return": "error",
|
|
515
|
+
"@typescript-eslint/no-unsafe-argument": "error",
|
|
516
|
+
// B. Explicit Annotations (partially covered, explicit module boundaries is key)
|
|
517
|
+
"@typescript-eslint/explicit-module-boundary-types": "error",
|
|
518
|
+
// Consider enabling if maximum explicitness is desired, even if verbose:
|
|
519
|
+
// C. Null/Undefined Safety (Requires strictNullChecks)
|
|
520
|
+
"@typescript-eslint/no-non-null-assertion": "error",
|
|
521
|
+
// D. Promise Handling (Supplementing plugin:promise/recommended)
|
|
522
|
+
"@typescript-eslint/no-floating-promises": [
|
|
523
|
+
"error",
|
|
524
|
+
{ ignoreVoid: true }
|
|
525
|
+
],
|
|
526
|
+
"@typescript-eslint/no-misused-promises": "error",
|
|
527
|
+
// Already in recommended-type-checked
|
|
528
|
+
"@typescript-eslint/promise-function-async": "error",
|
|
529
|
+
"@typescript-eslint/await-thenable": "error",
|
|
530
|
+
// Already in recommended-type-checked
|
|
531
|
+
// E. Best Practices & Potential Errors (Some covered by presets, fine-tuning here)
|
|
532
|
+
"@typescript-eslint/no-inferrable-types": "warn",
|
|
533
|
+
// Keep as warn or disable if inference is preferred
|
|
534
|
+
"@typescript-eslint/no-var-requires": "error",
|
|
535
|
+
// Use ES modules
|
|
536
|
+
"@typescript-eslint/require-await": "error",
|
|
537
|
+
"@typescript-eslint/restrict-template-expressions": [
|
|
538
|
+
"error",
|
|
539
|
+
{ allowNumber: true, allowBoolean: true }
|
|
540
|
+
],
|
|
541
|
+
// Allow numbers/booleans in templates
|
|
542
|
+
"@typescript-eslint/restrict-plus-operands": "error",
|
|
543
|
+
// Enforce consistent types for '+'
|
|
544
|
+
"@typescript-eslint/prefer-as-const": "error",
|
|
545
|
+
"@typescript-eslint/no-shadow": "error",
|
|
546
|
+
"@typescript-eslint/switch-exhaustiveness-check": "error",
|
|
547
|
+
// Ensure switch on unions is exhaustive
|
|
548
|
+
"@typescript-eslint/no-unused-expressions": [
|
|
549
|
+
"error",
|
|
550
|
+
{ allowShortCircuit: true, allowTernary: true }
|
|
551
|
+
],
|
|
552
|
+
"@typescript-eslint/no-useless-constructor": "error",
|
|
553
|
+
"@typescript-eslint/dot-notation": ["error", { allowKeywords: true }],
|
|
554
|
+
// Prefer dot notation where possible
|
|
555
|
+
// F. Consistency & Style (Some covered by stylistic-type-checked)
|
|
556
|
+
"@typescript-eslint/consistent-type-assertions": [
|
|
557
|
+
"error",
|
|
558
|
+
{ assertionStyle: "as", objectLiteralTypeAssertions: "never" }
|
|
559
|
+
],
|
|
560
|
+
"@typescript-eslint/consistent-type-definitions": ["error", "type"],
|
|
561
|
+
"@typescript-eslint/consistent-type-imports": [
|
|
562
|
+
"error",
|
|
563
|
+
{ prefer: "type-imports", fixStyle: "separate-type-imports" }
|
|
564
|
+
],
|
|
565
|
+
"@typescript-eslint/naming-convention": [
|
|
566
|
+
"error",
|
|
567
|
+
{
|
|
568
|
+
selector: "objectLiteralProperty",
|
|
569
|
+
modifiers: ["requiresQuotes"],
|
|
570
|
+
format: null
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
selector: "objectLiteralProperty",
|
|
574
|
+
format: ["camelCase", "snake_case", "PascalCase"]
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
selector: "parameter",
|
|
578
|
+
format: ["camelCase"],
|
|
579
|
+
leadingUnderscore: "allow"
|
|
580
|
+
},
|
|
581
|
+
{ selector: "default", format: ["camelCase"] },
|
|
582
|
+
{ selector: "variable", format: ["camelCase", "UPPER_CASE"] },
|
|
583
|
+
{ selector: "function", format: ["camelCase"] },
|
|
584
|
+
{ selector: "typeLike", format: ["PascalCase"] },
|
|
585
|
+
{
|
|
586
|
+
selector: "property",
|
|
587
|
+
modifiers: ["requiresQuotes"],
|
|
588
|
+
format: null
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
selector: "property",
|
|
592
|
+
format: ["camelCase", "PascalCase", "snake_case"]
|
|
593
|
+
}
|
|
594
|
+
],
|
|
595
|
+
"import-x/order": [
|
|
596
|
+
"error",
|
|
597
|
+
{
|
|
598
|
+
groups: [
|
|
599
|
+
"builtin",
|
|
600
|
+
"external",
|
|
601
|
+
"internal",
|
|
602
|
+
["parent", "sibling"],
|
|
603
|
+
"index",
|
|
604
|
+
"unknown"
|
|
605
|
+
],
|
|
606
|
+
pathGroups: [
|
|
607
|
+
{ group: "external", pattern: "@angular/**", position: "before" },
|
|
608
|
+
{
|
|
609
|
+
pattern: "@*/shared/**",
|
|
610
|
+
group: "internal",
|
|
611
|
+
position: "before"
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
pattern: "@*/frontend/**",
|
|
615
|
+
group: "internal",
|
|
616
|
+
position: "after"
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
pattern: "@*/backend/**",
|
|
620
|
+
group: "internal",
|
|
621
|
+
position: "after"
|
|
622
|
+
}
|
|
623
|
+
],
|
|
624
|
+
pathGroupsExcludedImportTypes: ["@angular/**"],
|
|
625
|
+
"newlines-between": "always",
|
|
626
|
+
alphabetize: { order: "asc", caseInsensitive: true }
|
|
627
|
+
}
|
|
628
|
+
],
|
|
629
|
+
"import-x/no-unresolved": "error",
|
|
630
|
+
"import-x/no-duplicates": "error",
|
|
631
|
+
"import-x/prefer-default-export": "off",
|
|
632
|
+
"import-x/no-useless-path-segments": "error",
|
|
633
|
+
"import-x/newline-after-import": "error",
|
|
634
|
+
"import-x/first": "error",
|
|
635
|
+
"import-x/no-mutable-exports": "error"
|
|
636
|
+
},
|
|
637
|
+
settings: {
|
|
638
|
+
"import-x/resolver-next": [
|
|
639
|
+
createTypeScriptImportResolver({
|
|
640
|
+
alwaysTryTypes: true,
|
|
641
|
+
project: "tsconfig.base.json"
|
|
642
|
+
})
|
|
643
|
+
]
|
|
644
|
+
}
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
648
|
+
languageOptions: {
|
|
649
|
+
parserOptions: {
|
|
650
|
+
projectService: true
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
rules: {
|
|
654
|
+
"@typescript-eslint/prefer-readonly": "error"
|
|
655
|
+
}
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
files: ["**/*.action.ts"],
|
|
659
|
+
rules: {
|
|
660
|
+
"@typescript-eslint/no-namespace": "off"
|
|
661
|
+
}
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
665
|
+
rules: {
|
|
666
|
+
"@typescript-eslint/no-empty-function": "off",
|
|
667
|
+
"@typescript-eslint/no-unbound-method": "off"
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
];
|
|
671
|
+
|
|
672
|
+
// packages/lint-suite/src/index.ts
|
|
673
|
+
var recommended = [
|
|
674
|
+
...base,
|
|
675
|
+
...javascript,
|
|
676
|
+
...typescript,
|
|
677
|
+
...angular,
|
|
678
|
+
...angularTemplate,
|
|
679
|
+
...rxjs,
|
|
680
|
+
...jest,
|
|
681
|
+
...json,
|
|
682
|
+
...storybook
|
|
683
|
+
];
|
|
337
684
|
export {
|
|
338
685
|
angular,
|
|
339
686
|
angularTemplate,
|
|
340
|
-
base,
|
|
341
687
|
javascript,
|
|
342
688
|
jest,
|
|
343
689
|
json,
|
|
690
|
+
recommended,
|
|
344
691
|
rxjs,
|
|
345
692
|
storybook,
|
|
346
693
|
typescript
|
package/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 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/
|
|
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/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 importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\n\r\nimport type { Linter } from 'eslint';\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 ...importPlugin.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-console': 'warn',\r\n 'class-methods-use-this': '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/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': [\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", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\n\r\nexport const typescript = [\r\n // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'\r\n importPlugin.flatConfigs.typescript,\r\n ...nx.configs['flat/typescript'],\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n rules: {\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/consistent-type-imports': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'warn',\r\n '@typescript-eslint/no-empty-function': 'error',\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 '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 jestEslint from 'eslint-plugin-jest';\r\nimport type { Linter } from 'eslint';\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/recommended'],\r\n rules: {\r\n ...jestEslint.configs['flat/recommended'].rules,\r\n ...jestEslint.configs['flat/style'].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 { Linter } from 'eslint';\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-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 { Linter } from 'eslint';\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\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["nx", "nx", "nx", "
|
|
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-void': '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/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-line-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 'jest/no-unbound-method': 'error'\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-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': 'error', // 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 { group: 'external', pattern: '@angular/**', position: 'before' },\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/**'],\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 }\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 typescript,\r\n angularTemplate,\r\n angular,\r\n javascript,\r\n rxjs,\r\n jest,\r\n json,\r\n storybook\r\n};\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["nx", "nx", "nx", "nx", "importPluginX", "importPluginX", "nx"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export declare const angularTemplate: (import("@typescript-eslint/utils/ts-eslint").FlatConfig.Config | {
|
|
2
2
|
files: string[];
|
|
3
3
|
rules: {
|
|
4
|
+
'@angular-eslint/template/no-any': string;
|
|
5
|
+
'@angular-eslint/template/no-duplicate-attributes': string;
|
|
4
6
|
'@angular-eslint/template/button-has-type': string;
|
|
5
7
|
'@angular-eslint/template/no-positive-tabindex': string;
|
|
6
8
|
'@angular-eslint/template/valid-aria': string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-template.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/angular-template.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"angular-template.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/angular-template.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;IAoC3B,CAAC"}
|
package/lib/base.d.ts.map
CHANGED
|
@@ -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":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAwK/B,CAAC"}
|