lint-suite 1.0.5 → 1.0.6
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 +51 -9
- package/index.cjs.map +2 -2
- package/index.d.ts +55 -3
- package/index.d.ts.map +1 -1
- package/index.js +50 -9
- package/index.js.map +2 -2
- package/lib/base.d.ts.map +1 -1
- package/lib/jest.d.ts.map +1 -1
- package/lib/rxjs.d.ts.map +1 -1
- package/lib/storybook.d.ts.map +1 -1
- package/lib/typescript.d.ts +53 -2
- package/lib/typescript.d.ts.map +1 -1
- package/package.json +3 -2
package/index.cjs
CHANGED
|
@@ -32,6 +32,7 @@ var src_exports = {};
|
|
|
32
32
|
__export(src_exports, {
|
|
33
33
|
angular: () => angular,
|
|
34
34
|
angularTemplate: () => angularTemplate,
|
|
35
|
+
base: () => base,
|
|
35
36
|
javascript: () => javascript,
|
|
36
37
|
jest: () => jest,
|
|
37
38
|
json: () => json,
|
|
@@ -179,8 +180,25 @@ var base = [
|
|
|
179
180
|
"grouped-accessor-pairs": ["error", "getBeforeSet"],
|
|
180
181
|
// Enforce consistency for getters/setters
|
|
181
182
|
"class-methods-use-this": "error",
|
|
182
|
-
"no-void": "error",
|
|
183
183
|
"no-underscore-dangle": "error",
|
|
184
|
+
"padding-line-between-statements": [
|
|
185
|
+
"error",
|
|
186
|
+
{
|
|
187
|
+
blankLine: "always",
|
|
188
|
+
prev: "export",
|
|
189
|
+
next: ["export", "const"]
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
blankLine: "always",
|
|
193
|
+
prev: "*",
|
|
194
|
+
next: "return"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
blankLine: "always",
|
|
198
|
+
prev: "*",
|
|
199
|
+
next: "if"
|
|
200
|
+
}
|
|
201
|
+
],
|
|
184
202
|
"max-len": [
|
|
185
203
|
"error",
|
|
186
204
|
{
|
|
@@ -258,7 +276,7 @@ var base = [
|
|
|
258
276
|
{
|
|
259
277
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
260
278
|
rules: {
|
|
261
|
-
"max-
|
|
279
|
+
"max-lines-per-function": "off",
|
|
262
280
|
complexity: ["warn", { max: 1 }],
|
|
263
281
|
"max-lines": [
|
|
264
282
|
"error",
|
|
@@ -295,8 +313,7 @@ var jest = [
|
|
|
295
313
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
296
314
|
...import_eslint_plugin_jest.default.configs["flat/all"],
|
|
297
315
|
rules: {
|
|
298
|
-
"jest/no-done-callback": "off"
|
|
299
|
-
"jest/no-unbound-method": "error"
|
|
316
|
+
"jest/no-done-callback": "off"
|
|
300
317
|
}
|
|
301
318
|
}
|
|
302
319
|
];
|
|
@@ -360,6 +377,7 @@ var rxjs = [
|
|
|
360
377
|
rules: {
|
|
361
378
|
"rxjs/prefer-observer": "error",
|
|
362
379
|
"rxjs/finnish": "warn",
|
|
380
|
+
"rxjs/no-ignored-subscription": "warn",
|
|
363
381
|
"rxjs/no-ignored-error": "warn",
|
|
364
382
|
"rxjs/no-unsafe-switchmap": "error",
|
|
365
383
|
"rxjs/no-unsafe-takeuntil": "error",
|
|
@@ -384,7 +402,13 @@ var storybook = [
|
|
|
384
402
|
...import_eslint_plugin_storybook.default.configs["flat/recommended"],
|
|
385
403
|
{
|
|
386
404
|
ignores: ["!.storybook"],
|
|
387
|
-
files: ["**/*.stories.ts"]
|
|
405
|
+
files: ["**/*.stories.ts"],
|
|
406
|
+
rules: {
|
|
407
|
+
"storybook/no-uninstalled-addons": [
|
|
408
|
+
"error",
|
|
409
|
+
{ packageJsonLocation: "package.json" }
|
|
410
|
+
]
|
|
411
|
+
}
|
|
388
412
|
}
|
|
389
413
|
];
|
|
390
414
|
|
|
@@ -567,7 +591,7 @@ var typescript = [
|
|
|
567
591
|
"error",
|
|
568
592
|
{ ignoreVoid: true }
|
|
569
593
|
],
|
|
570
|
-
"@typescript-eslint/no-misused-promises": "
|
|
594
|
+
"@typescript-eslint/no-misused-promises": "warn",
|
|
571
595
|
// Already in recommended-type-checked
|
|
572
596
|
"@typescript-eslint/promise-function-async": "error",
|
|
573
597
|
"@typescript-eslint/await-thenable": "error",
|
|
@@ -648,7 +672,16 @@ var typescript = [
|
|
|
648
672
|
"unknown"
|
|
649
673
|
],
|
|
650
674
|
pathGroups: [
|
|
651
|
-
{
|
|
675
|
+
{
|
|
676
|
+
pattern: "@angular/**",
|
|
677
|
+
group: "builtin",
|
|
678
|
+
position: "before"
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
pattern: "@nestjs/**",
|
|
682
|
+
group: "builtin",
|
|
683
|
+
position: "before"
|
|
684
|
+
},
|
|
652
685
|
{
|
|
653
686
|
pattern: "@*/shared/**",
|
|
654
687
|
group: "internal",
|
|
@@ -665,7 +698,7 @@ var typescript = [
|
|
|
665
698
|
position: "after"
|
|
666
699
|
}
|
|
667
700
|
],
|
|
668
|
-
pathGroupsExcludedImportTypes: ["@angular/**"],
|
|
701
|
+
pathGroupsExcludedImportTypes: ["@angular/**", "@nestjs/**"],
|
|
669
702
|
"newlines-between": "always",
|
|
670
703
|
alphabetize: { order: "asc", caseInsensitive: true }
|
|
671
704
|
}
|
|
@@ -708,7 +741,15 @@ var typescript = [
|
|
|
708
741
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
709
742
|
rules: {
|
|
710
743
|
"@typescript-eslint/no-empty-function": "off",
|
|
711
|
-
"@typescript-eslint/no-unbound-method": "off"
|
|
744
|
+
"@typescript-eslint/no-unbound-method": "off",
|
|
745
|
+
"@typescript-eslint/consistent-type-assertions": "off"
|
|
746
|
+
}
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
files: ["**/*.stories.ts"],
|
|
750
|
+
rules: {
|
|
751
|
+
"@typescript-eslint/consistent-type-assertions": "off",
|
|
752
|
+
"@typescript-eslint/naming-convention": "off"
|
|
712
753
|
}
|
|
713
754
|
}
|
|
714
755
|
];
|
|
@@ -729,6 +770,7 @@ var recommended = [
|
|
|
729
770
|
0 && (module.exports = {
|
|
730
771
|
angular,
|
|
731
772
|
angularTemplate,
|
|
773
|
+
base,
|
|
732
774
|
javascript,
|
|
733
775
|
jest,
|
|
734
776
|
json,
|
package/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../packages/lint-suite/src/index.ts", "../../../../packages/lint-suite/src/lib/angular-template.ts", "../../../../packages/lint-suite/src/lib/angular.ts", "../../../../packages/lint-suite/src/lib/base.ts", "../../../../packages/lint-suite/src/lib/javascript.ts", "../../../../packages/lint-suite/src/lib/jest.ts", "../../../../packages/lint-suite/src/lib/json.ts", "../../../../packages/lint-suite/src/lib/rxjs.ts", "../../../../packages/lint-suite/src/lib/storybook.ts", "../../../../packages/lint-suite/src/lib/typescript.ts", "../../../../packages/lint-suite/src/lib/rules/explicit-accessibility.ts"],
|
|
4
|
-
"sourcesContent": ["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", "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"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["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", "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 rules: {\r\n 'storybook/no-uninstalled-addons': [\r\n 'error',\r\n { packageJsonLocation: 'package.json' }\r\n ]\r\n }\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"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["nx", "import_eslint_plugin", "nx", "import_eslint_plugin", "nx", "importPluginX", "stylistic", "import_eslint_plugin", "nx", "jestEslint", "jsonEslint", "rxjsEslint", "storybookEslint", "import_eslint_plugin", "import_eslint_plugin_import_x", "importPluginX", "nx"]
|
|
7
7
|
}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { angularTemplate } from './lib/angular-template.js';
|
|
2
2
|
import { angular } from './lib/angular.js';
|
|
3
|
+
import { base } from './lib/base.js';
|
|
3
4
|
import { javascript } from './lib/javascript.js';
|
|
4
5
|
import { jest } from './lib/jest.js';
|
|
5
6
|
import { json } from './lib/json.js';
|
|
@@ -113,8 +114,8 @@ export declare const recommended: (import("@typescript-eslint/utils/ts-eslint").
|
|
|
113
114
|
'import-x/order': (string | {
|
|
114
115
|
groups: (string | string[])[];
|
|
115
116
|
pathGroups: {
|
|
116
|
-
group: string;
|
|
117
117
|
pattern: string;
|
|
118
|
+
group: string;
|
|
118
119
|
position: string;
|
|
119
120
|
}[];
|
|
120
121
|
pathGroupsExcludedImportTypes: string[];
|
|
@@ -254,6 +255,7 @@ export declare const recommended: (import("@typescript-eslint/utils/ts-eslint").
|
|
|
254
255
|
rules: {
|
|
255
256
|
'@typescript-eslint/no-empty-function': string;
|
|
256
257
|
'@typescript-eslint/no-unbound-method': string;
|
|
258
|
+
'@typescript-eslint/consistent-type-assertions': string;
|
|
257
259
|
'local/explicit-accessibility'?: undefined;
|
|
258
260
|
'@typescript-eslint/explicit-member-accessibility'?: undefined;
|
|
259
261
|
'@typescript-eslint/explicit-function-return-type'?: undefined;
|
|
@@ -282,7 +284,6 @@ export declare const recommended: (import("@typescript-eslint/utils/ts-eslint").
|
|
|
282
284
|
'@typescript-eslint/no-unused-expressions'?: undefined;
|
|
283
285
|
'@typescript-eslint/no-useless-constructor'?: undefined;
|
|
284
286
|
'@typescript-eslint/dot-notation'?: undefined;
|
|
285
|
-
'@typescript-eslint/consistent-type-assertions'?: undefined;
|
|
286
287
|
'@typescript-eslint/consistent-type-definitions'?: undefined;
|
|
287
288
|
'@typescript-eslint/consistent-type-imports'?: undefined;
|
|
288
289
|
'@typescript-eslint/naming-convention'?: undefined;
|
|
@@ -300,6 +301,57 @@ export declare const recommended: (import("@typescript-eslint/utils/ts-eslint").
|
|
|
300
301
|
plugins?: undefined;
|
|
301
302
|
settings?: undefined;
|
|
302
303
|
languageOptions?: undefined;
|
|
304
|
+
} | {
|
|
305
|
+
files: string[];
|
|
306
|
+
rules: {
|
|
307
|
+
'@typescript-eslint/consistent-type-assertions': string;
|
|
308
|
+
'@typescript-eslint/naming-convention': string;
|
|
309
|
+
'local/explicit-accessibility'?: undefined;
|
|
310
|
+
'@typescript-eslint/explicit-member-accessibility'?: undefined;
|
|
311
|
+
'@typescript-eslint/explicit-function-return-type'?: undefined;
|
|
312
|
+
'@typescript-eslint/no-empty-function'?: undefined;
|
|
313
|
+
'@typescript-eslint/no-unused-vars'?: undefined;
|
|
314
|
+
'@typescript-eslint/no-use-before-define'?: undefined;
|
|
315
|
+
'@typescript-eslint/no-explicit-any'?: undefined;
|
|
316
|
+
'@typescript-eslint/no-unsafe-assignment'?: undefined;
|
|
317
|
+
'@typescript-eslint/no-unsafe-call'?: undefined;
|
|
318
|
+
'@typescript-eslint/no-unsafe-member-access'?: undefined;
|
|
319
|
+
'@typescript-eslint/no-unsafe-return'?: undefined;
|
|
320
|
+
'@typescript-eslint/no-unsafe-argument'?: undefined;
|
|
321
|
+
'@typescript-eslint/explicit-module-boundary-types'?: undefined;
|
|
322
|
+
'@typescript-eslint/no-non-null-assertion'?: undefined;
|
|
323
|
+
'@typescript-eslint/no-floating-promises'?: undefined;
|
|
324
|
+
'@typescript-eslint/no-misused-promises'?: undefined;
|
|
325
|
+
'@typescript-eslint/promise-function-async'?: undefined;
|
|
326
|
+
'@typescript-eslint/await-thenable'?: undefined;
|
|
327
|
+
'@typescript-eslint/no-inferrable-types'?: undefined;
|
|
328
|
+
'@typescript-eslint/no-var-requires'?: undefined;
|
|
329
|
+
'@typescript-eslint/require-await'?: undefined;
|
|
330
|
+
'@typescript-eslint/restrict-template-expressions'?: undefined;
|
|
331
|
+
'@typescript-eslint/restrict-plus-operands'?: undefined;
|
|
332
|
+
'@typescript-eslint/prefer-as-const'?: undefined;
|
|
333
|
+
'@typescript-eslint/no-shadow'?: undefined;
|
|
334
|
+
'@typescript-eslint/switch-exhaustiveness-check'?: undefined;
|
|
335
|
+
'@typescript-eslint/no-unused-expressions'?: undefined;
|
|
336
|
+
'@typescript-eslint/no-useless-constructor'?: undefined;
|
|
337
|
+
'@typescript-eslint/dot-notation'?: undefined;
|
|
338
|
+
'@typescript-eslint/consistent-type-definitions'?: undefined;
|
|
339
|
+
'@typescript-eslint/consistent-type-imports'?: undefined;
|
|
340
|
+
'import-x/order'?: undefined;
|
|
341
|
+
'import-x/no-unresolved'?: undefined;
|
|
342
|
+
'import-x/no-duplicates'?: undefined;
|
|
343
|
+
'import-x/prefer-default-export'?: undefined;
|
|
344
|
+
'import-x/no-useless-path-segments'?: undefined;
|
|
345
|
+
'import-x/newline-after-import'?: undefined;
|
|
346
|
+
'import-x/first'?: undefined;
|
|
347
|
+
'import-x/no-mutable-exports'?: undefined;
|
|
348
|
+
'@typescript-eslint/prefer-readonly'?: undefined;
|
|
349
|
+
'@typescript-eslint/no-namespace'?: undefined;
|
|
350
|
+
'@typescript-eslint/no-unbound-method'?: undefined;
|
|
351
|
+
};
|
|
352
|
+
plugins?: undefined;
|
|
353
|
+
settings?: undefined;
|
|
354
|
+
languageOptions?: undefined;
|
|
303
355
|
})[];
|
|
304
|
-
export {
|
|
356
|
+
export { base, javascript, typescript, angular, angularTemplate, rxjs, jest, json, storybook };
|
|
305
357
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/lint-suite/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/lint-suite/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUvB,CAAC;AAEF,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,OAAO,EACP,eAAe,EACf,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,SAAS,EACV,CAAC"}
|
package/index.js
CHANGED
|
@@ -135,8 +135,25 @@ var base = [
|
|
|
135
135
|
"grouped-accessor-pairs": ["error", "getBeforeSet"],
|
|
136
136
|
// Enforce consistency for getters/setters
|
|
137
137
|
"class-methods-use-this": "error",
|
|
138
|
-
"no-void": "error",
|
|
139
138
|
"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
|
+
],
|
|
140
157
|
"max-len": [
|
|
141
158
|
"error",
|
|
142
159
|
{
|
|
@@ -214,7 +231,7 @@ var base = [
|
|
|
214
231
|
{
|
|
215
232
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
216
233
|
rules: {
|
|
217
|
-
"max-
|
|
234
|
+
"max-lines-per-function": "off",
|
|
218
235
|
complexity: ["warn", { max: 1 }],
|
|
219
236
|
"max-lines": [
|
|
220
237
|
"error",
|
|
@@ -251,8 +268,7 @@ var jest = [
|
|
|
251
268
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
252
269
|
...jestEslint.configs["flat/all"],
|
|
253
270
|
rules: {
|
|
254
|
-
"jest/no-done-callback": "off"
|
|
255
|
-
"jest/no-unbound-method": "error"
|
|
271
|
+
"jest/no-done-callback": "off"
|
|
256
272
|
}
|
|
257
273
|
}
|
|
258
274
|
];
|
|
@@ -316,6 +332,7 @@ var rxjs = [
|
|
|
316
332
|
rules: {
|
|
317
333
|
"rxjs/prefer-observer": "error",
|
|
318
334
|
"rxjs/finnish": "warn",
|
|
335
|
+
"rxjs/no-ignored-subscription": "warn",
|
|
319
336
|
"rxjs/no-ignored-error": "warn",
|
|
320
337
|
"rxjs/no-unsafe-switchmap": "error",
|
|
321
338
|
"rxjs/no-unsafe-takeuntil": "error",
|
|
@@ -340,7 +357,13 @@ var storybook = [
|
|
|
340
357
|
...storybookEslint.configs["flat/recommended"],
|
|
341
358
|
{
|
|
342
359
|
ignores: ["!.storybook"],
|
|
343
|
-
files: ["**/*.stories.ts"]
|
|
360
|
+
files: ["**/*.stories.ts"],
|
|
361
|
+
rules: {
|
|
362
|
+
"storybook/no-uninstalled-addons": [
|
|
363
|
+
"error",
|
|
364
|
+
{ packageJsonLocation: "package.json" }
|
|
365
|
+
]
|
|
366
|
+
}
|
|
344
367
|
}
|
|
345
368
|
];
|
|
346
369
|
|
|
@@ -523,7 +546,7 @@ var typescript = [
|
|
|
523
546
|
"error",
|
|
524
547
|
{ ignoreVoid: true }
|
|
525
548
|
],
|
|
526
|
-
"@typescript-eslint/no-misused-promises": "
|
|
549
|
+
"@typescript-eslint/no-misused-promises": "warn",
|
|
527
550
|
// Already in recommended-type-checked
|
|
528
551
|
"@typescript-eslint/promise-function-async": "error",
|
|
529
552
|
"@typescript-eslint/await-thenable": "error",
|
|
@@ -604,7 +627,16 @@ var typescript = [
|
|
|
604
627
|
"unknown"
|
|
605
628
|
],
|
|
606
629
|
pathGroups: [
|
|
607
|
-
{
|
|
630
|
+
{
|
|
631
|
+
pattern: "@angular/**",
|
|
632
|
+
group: "builtin",
|
|
633
|
+
position: "before"
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
pattern: "@nestjs/**",
|
|
637
|
+
group: "builtin",
|
|
638
|
+
position: "before"
|
|
639
|
+
},
|
|
608
640
|
{
|
|
609
641
|
pattern: "@*/shared/**",
|
|
610
642
|
group: "internal",
|
|
@@ -621,7 +653,7 @@ var typescript = [
|
|
|
621
653
|
position: "after"
|
|
622
654
|
}
|
|
623
655
|
],
|
|
624
|
-
pathGroupsExcludedImportTypes: ["@angular/**"],
|
|
656
|
+
pathGroupsExcludedImportTypes: ["@angular/**", "@nestjs/**"],
|
|
625
657
|
"newlines-between": "always",
|
|
626
658
|
alphabetize: { order: "asc", caseInsensitive: true }
|
|
627
659
|
}
|
|
@@ -664,7 +696,15 @@ var typescript = [
|
|
|
664
696
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
665
697
|
rules: {
|
|
666
698
|
"@typescript-eslint/no-empty-function": "off",
|
|
667
|
-
"@typescript-eslint/no-unbound-method": "off"
|
|
699
|
+
"@typescript-eslint/no-unbound-method": "off",
|
|
700
|
+
"@typescript-eslint/consistent-type-assertions": "off"
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
files: ["**/*.stories.ts"],
|
|
705
|
+
rules: {
|
|
706
|
+
"@typescript-eslint/consistent-type-assertions": "off",
|
|
707
|
+
"@typescript-eslint/naming-convention": "off"
|
|
668
708
|
}
|
|
669
709
|
}
|
|
670
710
|
];
|
|
@@ -684,6 +724,7 @@ var recommended = [
|
|
|
684
724
|
export {
|
|
685
725
|
angular,
|
|
686
726
|
angularTemplate,
|
|
727
|
+
base,
|
|
687
728
|
javascript,
|
|
688
729
|
jest,
|
|
689
730
|
json,
|
package/index.js.map
CHANGED
|
@@ -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-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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",
|
|
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 rules: {\r\n 'storybook/no-uninstalled-addons': [\r\n 'error',\r\n { packageJsonLocation: 'package.json' }\r\n ]\r\n }\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
6
|
"names": ["nx", "nx", "nx", "nx", "importPluginX", "importPluginX", "nx"]
|
|
7
7
|
}
|
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":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,
|
|
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,EAyL/B,CAAC"}
|
package/lib/jest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/jest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/jest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAQ/B,CAAC"}
|
package/lib/rxjs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rxjs.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/rxjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"rxjs.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/rxjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAiE/B,CAAC"}
|
package/lib/storybook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storybook.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/storybook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"storybook.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/storybook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAYpC,CAAC"}
|
package/lib/typescript.d.ts
CHANGED
|
@@ -77,8 +77,8 @@ export declare const typescript: (import("@typescript-eslint/utils/ts-eslint").F
|
|
|
77
77
|
'import-x/order': (string | {
|
|
78
78
|
groups: (string | string[])[];
|
|
79
79
|
pathGroups: {
|
|
80
|
-
group: string;
|
|
81
80
|
pattern: string;
|
|
81
|
+
group: string;
|
|
82
82
|
position: string;
|
|
83
83
|
}[];
|
|
84
84
|
pathGroupsExcludedImportTypes: string[];
|
|
@@ -218,6 +218,7 @@ export declare const typescript: (import("@typescript-eslint/utils/ts-eslint").F
|
|
|
218
218
|
rules: {
|
|
219
219
|
'@typescript-eslint/no-empty-function': string;
|
|
220
220
|
'@typescript-eslint/no-unbound-method': string;
|
|
221
|
+
'@typescript-eslint/consistent-type-assertions': string;
|
|
221
222
|
'local/explicit-accessibility'?: undefined;
|
|
222
223
|
'@typescript-eslint/explicit-member-accessibility'?: undefined;
|
|
223
224
|
'@typescript-eslint/explicit-function-return-type'?: undefined;
|
|
@@ -246,7 +247,6 @@ export declare const typescript: (import("@typescript-eslint/utils/ts-eslint").F
|
|
|
246
247
|
'@typescript-eslint/no-unused-expressions'?: undefined;
|
|
247
248
|
'@typescript-eslint/no-useless-constructor'?: undefined;
|
|
248
249
|
'@typescript-eslint/dot-notation'?: undefined;
|
|
249
|
-
'@typescript-eslint/consistent-type-assertions'?: undefined;
|
|
250
250
|
'@typescript-eslint/consistent-type-definitions'?: undefined;
|
|
251
251
|
'@typescript-eslint/consistent-type-imports'?: undefined;
|
|
252
252
|
'@typescript-eslint/naming-convention'?: undefined;
|
|
@@ -264,5 +264,56 @@ export declare const typescript: (import("@typescript-eslint/utils/ts-eslint").F
|
|
|
264
264
|
plugins?: undefined;
|
|
265
265
|
settings?: undefined;
|
|
266
266
|
languageOptions?: undefined;
|
|
267
|
+
} | {
|
|
268
|
+
files: string[];
|
|
269
|
+
rules: {
|
|
270
|
+
'@typescript-eslint/consistent-type-assertions': string;
|
|
271
|
+
'@typescript-eslint/naming-convention': string;
|
|
272
|
+
'local/explicit-accessibility'?: undefined;
|
|
273
|
+
'@typescript-eslint/explicit-member-accessibility'?: undefined;
|
|
274
|
+
'@typescript-eslint/explicit-function-return-type'?: undefined;
|
|
275
|
+
'@typescript-eslint/no-empty-function'?: undefined;
|
|
276
|
+
'@typescript-eslint/no-unused-vars'?: undefined;
|
|
277
|
+
'@typescript-eslint/no-use-before-define'?: undefined;
|
|
278
|
+
'@typescript-eslint/no-explicit-any'?: undefined;
|
|
279
|
+
'@typescript-eslint/no-unsafe-assignment'?: undefined;
|
|
280
|
+
'@typescript-eslint/no-unsafe-call'?: undefined;
|
|
281
|
+
'@typescript-eslint/no-unsafe-member-access'?: undefined;
|
|
282
|
+
'@typescript-eslint/no-unsafe-return'?: undefined;
|
|
283
|
+
'@typescript-eslint/no-unsafe-argument'?: undefined;
|
|
284
|
+
'@typescript-eslint/explicit-module-boundary-types'?: undefined;
|
|
285
|
+
'@typescript-eslint/no-non-null-assertion'?: undefined;
|
|
286
|
+
'@typescript-eslint/no-floating-promises'?: undefined;
|
|
287
|
+
'@typescript-eslint/no-misused-promises'?: undefined;
|
|
288
|
+
'@typescript-eslint/promise-function-async'?: undefined;
|
|
289
|
+
'@typescript-eslint/await-thenable'?: undefined;
|
|
290
|
+
'@typescript-eslint/no-inferrable-types'?: undefined;
|
|
291
|
+
'@typescript-eslint/no-var-requires'?: undefined;
|
|
292
|
+
'@typescript-eslint/require-await'?: undefined;
|
|
293
|
+
'@typescript-eslint/restrict-template-expressions'?: undefined;
|
|
294
|
+
'@typescript-eslint/restrict-plus-operands'?: undefined;
|
|
295
|
+
'@typescript-eslint/prefer-as-const'?: undefined;
|
|
296
|
+
'@typescript-eslint/no-shadow'?: undefined;
|
|
297
|
+
'@typescript-eslint/switch-exhaustiveness-check'?: undefined;
|
|
298
|
+
'@typescript-eslint/no-unused-expressions'?: undefined;
|
|
299
|
+
'@typescript-eslint/no-useless-constructor'?: undefined;
|
|
300
|
+
'@typescript-eslint/dot-notation'?: undefined;
|
|
301
|
+
'@typescript-eslint/consistent-type-definitions'?: undefined;
|
|
302
|
+
'@typescript-eslint/consistent-type-imports'?: undefined;
|
|
303
|
+
'import-x/order'?: undefined;
|
|
304
|
+
'import-x/no-unresolved'?: undefined;
|
|
305
|
+
'import-x/no-duplicates'?: undefined;
|
|
306
|
+
'import-x/prefer-default-export'?: undefined;
|
|
307
|
+
'import-x/no-useless-path-segments'?: undefined;
|
|
308
|
+
'import-x/newline-after-import'?: undefined;
|
|
309
|
+
'import-x/first'?: undefined;
|
|
310
|
+
'import-x/no-mutable-exports'?: undefined;
|
|
311
|
+
'@typescript-eslint/prefer-readonly'?: undefined;
|
|
312
|
+
'@typescript-eslint/no-namespace'?: undefined;
|
|
313
|
+
'@typescript-eslint/no-unbound-method'?: undefined;
|
|
314
|
+
};
|
|
315
|
+
plugins?: undefined;
|
|
316
|
+
settings?: undefined;
|
|
317
|
+
languageOptions?: undefined;
|
|
267
318
|
})[];
|
|
268
319
|
//# sourceMappingURL=typescript.d.ts.map
|
package/lib/typescript.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/typescript.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/typescript.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8LtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lint-suite",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Reusable ESLint configurations",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"eslint-plugin-storybook": "^0.12.0",
|
|
33
33
|
"eslint-plugin-import-x": "^4.11.0",
|
|
34
34
|
"@stylistic/eslint-plugin": "^4.2.0",
|
|
35
|
-
"eslint-import-resolver-typescript": "^4.3.4"
|
|
35
|
+
"eslint-import-resolver-typescript": "^4.3.4",
|
|
36
|
+
"@typescript-eslint/utils": "8.31.1"
|
|
36
37
|
},
|
|
37
38
|
"scripts": {
|
|
38
39
|
"build": "nx build lint-suite",
|