lint-suite 1.0.1 → 1.0.3

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/README.md CHANGED
@@ -40,7 +40,7 @@ You can selectively include configurations you need.
40
40
  - `base`: Core JavaScript rules and formatting
41
41
  - `typescript`: TypeScript-specific rules
42
42
  - `angular`: Angular component best practices
43
- - `angular-template`: HTML template rules with accessibility focus
43
+ - `angularTemplate`: HTML template rules with accessibility focus
44
44
  - `rxjs`: Observable patterns and operator safety
45
45
  - `jest`: Testing configurations
46
46
  - `json`: JSON file linting
@@ -63,47 +63,54 @@ export default [
63
63
  ];
64
64
  ```
65
65
 
66
- ## Available Rules
66
+ ## Available Rules (you can add more as you prefer)
67
67
 
68
68
  ### nx/eslint-plugin
69
69
 
70
70
  - `@nx/enforce-module-boundaries`: Enforces module boundary restrictions
71
71
  - `@nx/dependency-checks`: Validates dependencies in workspace projects
72
+ - ...
72
73
 
73
74
  ### eslint-plugin-jest
74
75
 
75
76
  - `jest/no-disabled-tests`: Disallows disabled tests
76
77
  - `jest/expect-expect`: Ensures test cases contain at least one expect statement
77
78
  - `jest/valid-expect`: Validates expect() usage
79
+ - ...
78
80
 
79
81
  ### eslint-plugin-json
80
82
 
81
83
  - `json/json`: Validates JSON syntax
82
84
  - `json/sort-package-json`: Enforces consistent ordering in package.json
85
+ - ...
83
86
 
84
87
  ### @smarttools/eslint-plugin-rxjs
85
88
 
86
89
  - `@rxjs/finnish`: Enforces Finnish notation for observables
87
90
  - `@rxjs/no-ignored-subscription`: Prevents ignoring returned subscriptions
88
91
  - `@rxjs/no-unsafe-takeuntil`: Ensures proper usage of takeUntil operator
92
+ - ...
89
93
 
90
94
  ### eslint-plugin-storybook
91
95
 
92
96
  - `storybook/no-redundant-story-name`: Prevents redundant story names
93
97
  - `storybook/csf-component`: Enforces Component Story Format standards
94
98
  - `storybook/hierarchy-separator`: Enforces story hierarchy separators
99
+ - ...
95
100
 
96
101
  ### eslint-plugin-import
97
102
 
98
103
  - `import/no-unresolved`: Ensures imports point to valid modules
99
104
  - `import/order`: Enforces a consistent order of import statements
100
105
  - `import/no-duplicates`: Prevents duplicate imports
106
+ - ...
101
107
 
102
108
  ### @stylistic/eslint-plugin
103
109
 
104
110
  - `@stylistic/max-len`: Enforces maximum line length
105
111
  - `@stylistic/indent`: Enforces consistent indentation
106
112
  - `@stylistic/quotes`: Enforces consistent quote style
113
+ - ...
107
114
 
108
115
  ## Contributing
109
116
 
package/index.cjs CHANGED
@@ -102,16 +102,58 @@ var angular = [
102
102
  var import_eslint_plugin3 = __toESM(require("@nx/eslint-plugin"), 1);
103
103
  var import_eslint_plugin_import = __toESM(require("eslint-plugin-import"), 1);
104
104
  var import_eslint_plugin4 = __toESM(require("@stylistic/eslint-plugin"), 1);
105
+ var import_flat = __toESM(require("eslint-config-prettier/flat"), 1);
106
+ var packageExists = (name) => {
107
+ try {
108
+ require.resolve(name);
109
+ return true;
110
+ } catch {
111
+ return false;
112
+ }
113
+ };
114
+ var isPrettierAvailable = packageExists("prettier") && packageExists("eslint-config-prettier");
105
115
  var base = [
106
116
  ...import_eslint_plugin3.default.configs["flat/base"],
107
- import_eslint_plugin_import.default.flatConfigs.recommended,
108
- import_eslint_plugin4.default.configs.recommended,
109
117
  {
110
- files: ["**/*.js", "**/*.ts", "**/*.html"],
111
- plugins: { "@stylistic": import_eslint_plugin4.default },
118
+ files: [
119
+ "**/*.js",
120
+ "**/*.jsx",
121
+ "**/*.cjs",
122
+ "**/*.mjs",
123
+ "**/*.ts",
124
+ "**/*.tsx",
125
+ "**/*.cts",
126
+ "**/*.mts"
127
+ ],
128
+ ...import_eslint_plugin_import.default.flatConfigs.recommended
129
+ },
130
+ {
131
+ files: [
132
+ "**/*.js",
133
+ "**/*.jsx",
134
+ "**/*.cjs",
135
+ "**/*.mjs",
136
+ "**/*.ts",
137
+ "**/*.tsx",
138
+ "**/*.cts",
139
+ "**/*.mts"
140
+ ],
141
+ ...import_eslint_plugin4.default.configs.recommended
142
+ },
143
+ {
144
+ files: [
145
+ "**/*.js",
146
+ "**/*.jsx",
147
+ "**/*.cjs",
148
+ "**/*.mjs",
149
+ "**/*.ts",
150
+ "**/*.tsx",
151
+ "**/*.cts",
152
+ "**/*.mts"
153
+ ],
112
154
  rules: {
113
- // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML
114
155
  "no-console": "warn",
156
+ "class-methods-use-this": "error",
115
157
  "max-len": [
116
158
  "error",
117
159
  {
@@ -119,14 +161,6 @@ var base = [
119
161
  ignoreComments: true
120
162
  }
121
163
  ],
122
- "max-lines": [
123
- "error",
124
- {
125
- max: 150,
126
- skipBlankLines: true,
127
- skipComments: true
128
- }
129
- ],
130
164
  "spaced-comment": [
131
165
  2,
132
166
  "always",
@@ -168,10 +202,46 @@ var base = [
168
202
  memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
169
203
  allowSeparatedGroups: true
170
204
  }
171
- ],
172
- "class-methods-use-this": "error"
205
+ ]
173
206
  }
174
- }
207
+ },
208
+ {
209
+ files: [
210
+ "**/*.js",
211
+ "**/*.jsx",
212
+ "**/*.cjs",
213
+ "**/*.mjs",
214
+ "**/*.ts",
215
+ "**/*.tsx",
216
+ "**/*.cts",
217
+ "**/*.mts",
218
+ "**/*.html"
219
+ ],
220
+ rules: {
221
+ "max-lines": [
222
+ "error",
223
+ {
224
+ max: 150,
225
+ skipBlankLines: true,
226
+ skipComments: true
227
+ }
228
+ ]
229
+ }
230
+ },
231
+ {
232
+ files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
233
+ rules: {
234
+ "max-lines": [
235
+ "error",
236
+ {
237
+ max: 300,
238
+ skipBlankLines: true,
239
+ skipComments: true
240
+ }
241
+ ]
242
+ }
243
+ },
244
+ isPrettierAvailable ? import_flat.default : {}
175
245
  ];
176
246
 
177
247
  // packages/lint-suite/src/lib/typescript.ts
@@ -179,49 +249,38 @@ var import_eslint_plugin5 = __toESM(require("@nx/eslint-plugin"), 1);
179
249
  var import_eslint_plugin_import2 = __toESM(require("eslint-plugin-import"), 1);
180
250
  var typescript = [
181
251
  // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
182
- ...import_eslint_plugin5.default.configs["flat/typescript"],
183
252
  import_eslint_plugin_import2.default.flatConfigs.typescript,
253
+ ...import_eslint_plugin5.default.configs["flat/typescript"],
184
254
  {
185
- languageOptions: {
186
- parserOptions: {
187
- projectService: true
188
- }
189
- }
190
- },
191
- {
192
- files: ["**/*.ts"],
255
+ files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
193
256
  rules: {
194
257
  "@typescript-eslint/explicit-member-accessibility": "error",
195
258
  "@typescript-eslint/consistent-type-imports": "error",
196
259
  "@typescript-eslint/explicit-function-return-type": "warn",
197
- "@typescript-eslint/prefer-readonly": "error",
198
260
  "@typescript-eslint/no-empty-function": "error"
199
261
  }
200
262
  },
201
263
  {
202
- files: ["**/*.action.ts"],
264
+ files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
265
+ languageOptions: {
266
+ parserOptions: {
267
+ projectService: true
268
+ }
269
+ },
203
270
  rules: {
204
- "max-classes-per-file": "off"
271
+ "@typescript-eslint/prefer-readonly": "error"
205
272
  }
206
273
  },
207
274
  {
208
- files: ["**/*.state.ts"],
275
+ files: ["**/*.action.ts"],
209
276
  rules: {
210
- "class-methods-use-this": "off"
277
+ "max-classes-per-file": "off"
211
278
  }
212
279
  },
213
280
  {
214
- files: ["**/*.spec.ts"],
281
+ files: ["**/*.state.ts"],
215
282
  rules: {
216
- "@typescript-eslint/dot-notation": "off",
217
- "max-lines": [
218
- "error",
219
- {
220
- max: 300,
221
- skipBlankLines: true,
222
- skipComments: true
223
- }
224
- ]
283
+ "class-methods-use-this": "off"
225
284
  }
226
285
  }
227
286
  ];
@@ -230,7 +289,7 @@ var typescript = [
230
289
  var import_eslint_plugin_jest = __toESM(require("eslint-plugin-jest"), 1);
231
290
  var jest = [
232
291
  {
233
- files: ["**/*.spec.ts"],
292
+ files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
234
293
  ...import_eslint_plugin_jest.default.configs["flat/recommended"],
235
294
  rules: {
236
295
  ...import_eslint_plugin_jest.default.configs["flat/recommended"].rules,
@@ -252,10 +311,50 @@ var json = [
252
311
  // packages/lint-suite/src/lib/rxjs.ts
253
312
  var import_eslint_plugin_rxjs = __toESM(require("@smarttools/eslint-plugin-rxjs"), 1);
254
313
  var rxjs = [
255
- import_eslint_plugin_rxjs.default.configs.recommended,
256
314
  {
257
- files: ["**/*.ts"],
258
- plugins: { rxjs: import_eslint_plugin_rxjs.default },
315
+ files: [
316
+ "**/*.js",
317
+ "**/*.jsx",
318
+ "**/*.cjs",
319
+ "**/*.mjs",
320
+ "**/*.ts",
321
+ "**/*.tsx",
322
+ "**/*.cts",
323
+ "**/*.mts"
324
+ ],
325
+ languageOptions: {
326
+ parserOptions: {
327
+ projectService: true
328
+ }
329
+ },
330
+ ...import_eslint_plugin_rxjs.default.configs.recommended
331
+ },
332
+ {
333
+ files: [
334
+ "**/*.js",
335
+ "**/*.jsx",
336
+ "**/*.cjs",
337
+ "**/*.mjs",
338
+ "**/*.ts",
339
+ "**/*.tsx",
340
+ "**/*.cts",
341
+ "**/*.mts"
342
+ ],
343
+ plugins: {
344
+ rxjs: import_eslint_plugin_rxjs.default
345
+ }
346
+ },
347
+ {
348
+ files: [
349
+ "**/*.js",
350
+ "**/*.jsx",
351
+ "**/*.cjs",
352
+ "**/*.mjs",
353
+ "**/*.ts",
354
+ "**/*.tsx",
355
+ "**/*.cts",
356
+ "**/*.mts"
357
+ ],
259
358
  rules: {
260
359
  "rxjs/prefer-observer": "error",
261
360
  "rxjs/finnish": "warn",
@@ -270,7 +369,7 @@ var rxjs = [
270
369
  }
271
370
  },
272
371
  {
273
- files: ["**/*.spec.ts"],
372
+ files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
274
373
  rules: {
275
374
  "rxjs/no-ignored-subscription": "off"
276
375
  }
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/typescript.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/javascript.ts"],
4
- "sourcesContent": ["export { angularTemplate } from './lib/angular-template.js';\r\nexport { angular } from './lib/angular.js';\r\nexport { base } from './lib/base.js';\r\nexport { typescript } from './lib/typescript.js';\r\nexport { jest } from './lib/jest.js';\r\nexport { json } from './lib/json.js';\r\nexport { rxjs } from './lib/rxjs.js';\r\nexport { storybook } from './lib/storybook.js';\r\nexport { javascript } from './lib/javascript.js';\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/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n importPlugin.flatConfigs.recommended,\r\n stylistic.configs.recommended,\r\n {\r\n files: ['**/*.js', '**/*.ts', '**/*.html'],\r\n plugins: { '@stylistic': stylistic },\r\n rules: {\r\n // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML\r\n 'no-console': 'warn',\r\n 'max-len': [\r\n 'error',\r\n {\r\n code: 135,\r\n ignoreComments: true,\r\n },\r\n ],\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 '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 'class-methods-use-this': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\n\r\nexport const typescript = [\r\n // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'\r\n ...nx.configs['flat/typescript'],\r\n importPlugin.flatConfigs.typescript,\r\n {\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n },\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/consistent-type-imports': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'warn',\r\n '@typescript-eslint/prefer-readonly': 'error',\r\n '@typescript-eslint/no-empty-function': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n 'max-classes-per-file': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.state.ts'],\r\n rules: {\r\n 'class-methods-use-this': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts'],\r\n rules: {\r\n '@typescript-eslint/dot-notation': 'off',\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 300,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const jest: Linter.Config[] = [\r\n {\r\n files: ['**/*.spec.ts'],\r\n ...jestEslint.configs['flat/recommended'],\r\n rules: {\r\n ...jestEslint.configs['flat/recommended'].rules,\r\n ...jestEslint.configs['flat/style'].rules,\r\n 'jest/no-done-callback': 'off',\r\n },\r\n },\r\n];\r\n", "import jsonEslint from 'eslint-plugin-json';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const json: Linter.Config[] = [\r\n {\r\n files: ['**/*.json'],\r\n ...jsonEslint.configs.recommended,\r\n },\r\n];\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const rxjs: Linter.Config[] = [\r\n rxjsEslint.configs.recommended,\r\n {\r\n files: ['**/*.ts'],\r\n plugins: { rxjs: rxjsEslint },\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'],\r\n rules: {\r\n 'rxjs/no-ignored-subscription': 'off',\r\n },\r\n },\r\n];\r\n", "import storybookEslint from 'eslint-plugin-storybook';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const storybook: Linter.Config[] = [\r\n ...storybookEslint.configs['flat/recommended'],\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
5
- "mappings": "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",
6
- "names": ["nx", "import_eslint_plugin", "nx", "import_eslint_plugin", "nx", "importPlugin", "stylistic", "import_eslint_plugin", "import_eslint_plugin_import", "nx", "importPlugin", "jestEslint", "jsonEslint", "rxjsEslint", "storybookEslint", "import_eslint_plugin", "nx"]
4
+ "sourcesContent": ["export { angularTemplate } from './lib/angular-template.js';\r\nexport { angular } from './lib/angular.js';\r\nexport { base } from './lib/base.js';\r\nexport { typescript } from './lib/typescript.js';\r\nexport { jest } from './lib/jest.js';\r\nexport { json } from './lib/json.js';\r\nexport { rxjs } from './lib/rxjs.js';\r\nexport { storybook } from './lib/storybook.js';\r\nexport { javascript } from './lib/javascript.js';\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/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\nimport eslintConfigPrettier from 'eslint-config-prettier/flat';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nconst packageExists = (name: string): boolean => {\r\n try {\r\n require.resolve(name);\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nconst isPrettierAvailable =\r\n packageExists('prettier') && packageExists('eslint-config-prettier');\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n ...importPlugin.flatConfigs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n ...stylistic.configs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n rules: {\r\n 'no-console': 'warn',\r\n 'class-methods-use-this': 'error',\r\n 'max-len': [\r\n 'error',\r\n {\r\n code: 135,\r\n ignoreComments: true,\r\n },\r\n ],\r\n 'spaced-comment': [\r\n 2,\r\n 'always',\r\n {\r\n block: {\r\n exceptions: ['*'],\r\n },\r\n },\r\n ],\r\n '@stylistic/comma-dangle': [\r\n 'error',\r\n {\r\n functions: 'never',\r\n arrays: 'always-multiline',\r\n exports: 'always-multiline',\r\n imports: 'always-multiline',\r\n objects: 'always-multiline',\r\n enums: 'always-multiline',\r\n },\r\n ],\r\n '@stylistic/indent': [\r\n 'error',\r\n 2,\r\n {\r\n offsetTernaryExpressions: true,\r\n SwitchCase: 1,\r\n ignoredNodes: [\r\n 'TSTypeParameterInstantiation',\r\n 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))',\r\n ],\r\n },\r\n ],\r\n 'sort-imports': [\r\n 'error',\r\n {\r\n ignoreCase: false,\r\n ignoreDeclarationSort: true,\r\n ignoreMemberSort: false,\r\n memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],\r\n allowSeparatedGroups: true,\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n '**/*.html',\r\n ],\r\n rules: {\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 150,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 300,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n isPrettierAvailable ? eslintConfigPrettier : {},\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\n\r\nexport const typescript = [\r\n // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'\r\n importPlugin.flatConfigs.typescript,\r\n ...nx.configs['flat/typescript'],\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n rules: {\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/consistent-type-imports': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'warn',\r\n '@typescript-eslint/no-empty-function': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n rules: {\r\n '@typescript-eslint/prefer-readonly': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n 'max-classes-per-file': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.state.ts'],\r\n rules: {\r\n 'class-methods-use-this': 'off',\r\n },\r\n },\r\n];\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const jest: Linter.Config[] = [\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n ...jestEslint.configs['flat/recommended'],\r\n rules: {\r\n ...jestEslint.configs['flat/recommended'].rules,\r\n ...jestEslint.configs['flat/style'].rules,\r\n 'jest/no-done-callback': 'off',\r\n },\r\n },\r\n];\r\n", "import jsonEslint from 'eslint-plugin-json';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const json: Linter.Config[] = [\r\n {\r\n files: ['**/*.json'],\r\n ...jsonEslint.configs.recommended,\r\n },\r\n];\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const rxjs: Linter.Config[] = [\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n ...rxjsEslint.configs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n plugins: {\r\n rxjs: rxjsEslint,\r\n },\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n rules: {\r\n 'rxjs/prefer-observer': 'error',\r\n 'rxjs/finnish': 'warn',\r\n 'rxjs/no-ignored-error': 'warn',\r\n 'rxjs/no-unsafe-switchmap': 'error',\r\n 'rxjs/no-unsafe-takeuntil': 'error',\r\n 'rxjs/no-unsafe-catch': 'error',\r\n 'rxjs/no-unsafe-first': 'error',\r\n 'rxjs/no-topromise': 'error',\r\n 'rxjs/throw-error': 'error',\r\n 'rxjs/no-async-subscribe': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'rxjs/no-ignored-subscription': 'off',\r\n },\r\n },\r\n];\r\n", "import storybookEslint from 'eslint-plugin-storybook';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const storybook: Linter.Config[] = [\r\n ...storybookEslint.configs['flat/recommended'],\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
5
+ "mappings": "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",
6
+ "names": ["nx", "import_eslint_plugin", "nx", "import_eslint_plugin", "nx", "importPlugin", "stylistic", "eslintConfigPrettier", "import_eslint_plugin", "import_eslint_plugin_import", "importPlugin", "nx", "jestEslint", "jsonEslint", "rxjsEslint", "storybookEslint", "import_eslint_plugin", "nx"]
7
7
  }
package/index.js CHANGED
@@ -1,3 +1,11 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
1
9
  // packages/lint-suite/src/lib/angular-template.ts
2
10
  import nx from "@nx/eslint-plugin";
3
11
  var angularTemplate = [
@@ -58,16 +66,58 @@ var angular = [
58
66
  import nx3 from "@nx/eslint-plugin";
59
67
  import importPlugin from "eslint-plugin-import";
60
68
  import stylistic from "@stylistic/eslint-plugin";
69
+ import eslintConfigPrettier from "eslint-config-prettier/flat";
70
+ var packageExists = (name) => {
71
+ try {
72
+ __require.resolve(name);
73
+ return true;
74
+ } catch {
75
+ return false;
76
+ }
77
+ };
78
+ var isPrettierAvailable = packageExists("prettier") && packageExists("eslint-config-prettier");
61
79
  var base = [
62
80
  ...nx3.configs["flat/base"],
63
- importPlugin.flatConfigs.recommended,
64
- stylistic.configs.recommended,
65
81
  {
66
- files: ["**/*.js", "**/*.ts", "**/*.html"],
67
- plugins: { "@stylistic": stylistic },
82
+ files: [
83
+ "**/*.js",
84
+ "**/*.jsx",
85
+ "**/*.cjs",
86
+ "**/*.mjs",
87
+ "**/*.ts",
88
+ "**/*.tsx",
89
+ "**/*.cts",
90
+ "**/*.mts"
91
+ ],
92
+ ...importPlugin.flatConfigs.recommended
93
+ },
94
+ {
95
+ files: [
96
+ "**/*.js",
97
+ "**/*.jsx",
98
+ "**/*.cjs",
99
+ "**/*.mjs",
100
+ "**/*.ts",
101
+ "**/*.tsx",
102
+ "**/*.cts",
103
+ "**/*.mts"
104
+ ],
105
+ ...stylistic.configs.recommended
106
+ },
107
+ {
108
+ files: [
109
+ "**/*.js",
110
+ "**/*.jsx",
111
+ "**/*.cjs",
112
+ "**/*.mjs",
113
+ "**/*.ts",
114
+ "**/*.tsx",
115
+ "**/*.cts",
116
+ "**/*.mts"
117
+ ],
68
118
  rules: {
69
- // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML
70
119
  "no-console": "warn",
120
+ "class-methods-use-this": "error",
71
121
  "max-len": [
72
122
  "error",
73
123
  {
@@ -75,14 +125,6 @@ var base = [
75
125
  ignoreComments: true
76
126
  }
77
127
  ],
78
- "max-lines": [
79
- "error",
80
- {
81
- max: 150,
82
- skipBlankLines: true,
83
- skipComments: true
84
- }
85
- ],
86
128
  "spaced-comment": [
87
129
  2,
88
130
  "always",
@@ -124,10 +166,46 @@ var base = [
124
166
  memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
125
167
  allowSeparatedGroups: true
126
168
  }
127
- ],
128
- "class-methods-use-this": "error"
169
+ ]
129
170
  }
130
- }
171
+ },
172
+ {
173
+ files: [
174
+ "**/*.js",
175
+ "**/*.jsx",
176
+ "**/*.cjs",
177
+ "**/*.mjs",
178
+ "**/*.ts",
179
+ "**/*.tsx",
180
+ "**/*.cts",
181
+ "**/*.mts",
182
+ "**/*.html"
183
+ ],
184
+ rules: {
185
+ "max-lines": [
186
+ "error",
187
+ {
188
+ max: 150,
189
+ skipBlankLines: true,
190
+ skipComments: true
191
+ }
192
+ ]
193
+ }
194
+ },
195
+ {
196
+ files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
197
+ rules: {
198
+ "max-lines": [
199
+ "error",
200
+ {
201
+ max: 300,
202
+ skipBlankLines: true,
203
+ skipComments: true
204
+ }
205
+ ]
206
+ }
207
+ },
208
+ isPrettierAvailable ? eslintConfigPrettier : {}
131
209
  ];
132
210
 
133
211
  // packages/lint-suite/src/lib/typescript.ts
@@ -135,49 +213,38 @@ import nx4 from "@nx/eslint-plugin";
135
213
  import importPlugin2 from "eslint-plugin-import";
136
214
  var typescript = [
137
215
  // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
138
- ...nx4.configs["flat/typescript"],
139
216
  importPlugin2.flatConfigs.typescript,
217
+ ...nx4.configs["flat/typescript"],
140
218
  {
141
- languageOptions: {
142
- parserOptions: {
143
- projectService: true
144
- }
145
- }
146
- },
147
- {
148
- files: ["**/*.ts"],
219
+ files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
149
220
  rules: {
150
221
  "@typescript-eslint/explicit-member-accessibility": "error",
151
222
  "@typescript-eslint/consistent-type-imports": "error",
152
223
  "@typescript-eslint/explicit-function-return-type": "warn",
153
- "@typescript-eslint/prefer-readonly": "error",
154
224
  "@typescript-eslint/no-empty-function": "error"
155
225
  }
156
226
  },
157
227
  {
158
- files: ["**/*.action.ts"],
228
+ files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
229
+ languageOptions: {
230
+ parserOptions: {
231
+ projectService: true
232
+ }
233
+ },
159
234
  rules: {
160
- "max-classes-per-file": "off"
235
+ "@typescript-eslint/prefer-readonly": "error"
161
236
  }
162
237
  },
163
238
  {
164
- files: ["**/*.state.ts"],
239
+ files: ["**/*.action.ts"],
165
240
  rules: {
166
- "class-methods-use-this": "off"
241
+ "max-classes-per-file": "off"
167
242
  }
168
243
  },
169
244
  {
170
- files: ["**/*.spec.ts"],
245
+ files: ["**/*.state.ts"],
171
246
  rules: {
172
- "@typescript-eslint/dot-notation": "off",
173
- "max-lines": [
174
- "error",
175
- {
176
- max: 300,
177
- skipBlankLines: true,
178
- skipComments: true
179
- }
180
- ]
247
+ "class-methods-use-this": "off"
181
248
  }
182
249
  }
183
250
  ];
@@ -186,7 +253,7 @@ var typescript = [
186
253
  import jestEslint from "eslint-plugin-jest";
187
254
  var jest = [
188
255
  {
189
- files: ["**/*.spec.ts"],
256
+ files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
190
257
  ...jestEslint.configs["flat/recommended"],
191
258
  rules: {
192
259
  ...jestEslint.configs["flat/recommended"].rules,
@@ -208,10 +275,50 @@ var json = [
208
275
  // packages/lint-suite/src/lib/rxjs.ts
209
276
  import rxjsEslint from "@smarttools/eslint-plugin-rxjs";
210
277
  var rxjs = [
211
- rxjsEslint.configs.recommended,
212
278
  {
213
- files: ["**/*.ts"],
214
- plugins: { rxjs: rxjsEslint },
279
+ files: [
280
+ "**/*.js",
281
+ "**/*.jsx",
282
+ "**/*.cjs",
283
+ "**/*.mjs",
284
+ "**/*.ts",
285
+ "**/*.tsx",
286
+ "**/*.cts",
287
+ "**/*.mts"
288
+ ],
289
+ languageOptions: {
290
+ parserOptions: {
291
+ projectService: true
292
+ }
293
+ },
294
+ ...rxjsEslint.configs.recommended
295
+ },
296
+ {
297
+ files: [
298
+ "**/*.js",
299
+ "**/*.jsx",
300
+ "**/*.cjs",
301
+ "**/*.mjs",
302
+ "**/*.ts",
303
+ "**/*.tsx",
304
+ "**/*.cts",
305
+ "**/*.mts"
306
+ ],
307
+ plugins: {
308
+ rxjs: rxjsEslint
309
+ }
310
+ },
311
+ {
312
+ files: [
313
+ "**/*.js",
314
+ "**/*.jsx",
315
+ "**/*.cjs",
316
+ "**/*.mjs",
317
+ "**/*.ts",
318
+ "**/*.tsx",
319
+ "**/*.cts",
320
+ "**/*.mts"
321
+ ],
215
322
  rules: {
216
323
  "rxjs/prefer-observer": "error",
217
324
  "rxjs/finnish": "warn",
@@ -226,7 +333,7 @@ var rxjs = [
226
333
  }
227
334
  },
228
335
  {
229
- files: ["**/*.spec.ts"],
336
+ files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
230
337
  rules: {
231
338
  "rxjs/no-ignored-subscription": "off"
232
339
  }
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/typescript.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/javascript.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/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n importPlugin.flatConfigs.recommended,\r\n stylistic.configs.recommended,\r\n {\r\n files: ['**/*.js', '**/*.ts', '**/*.html'],\r\n plugins: { '@stylistic': stylistic },\r\n rules: {\r\n // 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML\r\n 'no-console': 'warn',\r\n 'max-len': [\r\n 'error',\r\n {\r\n code: 135,\r\n ignoreComments: true,\r\n },\r\n ],\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 '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 'class-methods-use-this': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\n\r\nexport const typescript = [\r\n // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'\r\n ...nx.configs['flat/typescript'],\r\n importPlugin.flatConfigs.typescript,\r\n {\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n },\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/consistent-type-imports': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'warn',\r\n '@typescript-eslint/prefer-readonly': 'error',\r\n '@typescript-eslint/no-empty-function': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n 'max-classes-per-file': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.state.ts'],\r\n rules: {\r\n 'class-methods-use-this': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts'],\r\n rules: {\r\n '@typescript-eslint/dot-notation': 'off',\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 300,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const jest: Linter.Config[] = [\r\n {\r\n files: ['**/*.spec.ts'],\r\n ...jestEslint.configs['flat/recommended'],\r\n rules: {\r\n ...jestEslint.configs['flat/recommended'].rules,\r\n ...jestEslint.configs['flat/style'].rules,\r\n 'jest/no-done-callback': 'off',\r\n },\r\n },\r\n];\r\n", "import jsonEslint from 'eslint-plugin-json';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const json: Linter.Config[] = [\r\n {\r\n files: ['**/*.json'],\r\n ...jsonEslint.configs.recommended,\r\n },\r\n];\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const rxjs: Linter.Config[] = [\r\n rxjsEslint.configs.recommended,\r\n {\r\n files: ['**/*.ts'],\r\n plugins: { rxjs: rxjsEslint },\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'],\r\n rules: {\r\n 'rxjs/no-ignored-subscription': 'off',\r\n },\r\n },\r\n];\r\n", "import storybookEslint from 'eslint-plugin-storybook';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const storybook: Linter.Config[] = [\r\n ...storybookEslint.configs['flat/recommended'],\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
5
- "mappings": "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",
6
- "names": ["nx", "nx", "nx", "importPlugin", "nx"]
4
+ "sourcesContent": ["import nx from '@nx/eslint-plugin';\r\n\r\nexport const angularTemplate = [\r\n ...nx.configs['flat/angular-template'],\r\n {\r\n files: ['**/*.html'],\r\n rules: {\r\n '@angular-eslint/template/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\nimport eslintConfigPrettier from 'eslint-config-prettier/flat';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nconst packageExists = (name: string): boolean => {\r\n try {\r\n require.resolve(name);\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nconst isPrettierAvailable =\r\n packageExists('prettier') && packageExists('eslint-config-prettier');\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n ...importPlugin.flatConfigs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n ...stylistic.configs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n rules: {\r\n 'no-console': 'warn',\r\n 'class-methods-use-this': 'error',\r\n 'max-len': [\r\n 'error',\r\n {\r\n code: 135,\r\n ignoreComments: true,\r\n },\r\n ],\r\n 'spaced-comment': [\r\n 2,\r\n 'always',\r\n {\r\n block: {\r\n exceptions: ['*'],\r\n },\r\n },\r\n ],\r\n '@stylistic/comma-dangle': [\r\n 'error',\r\n {\r\n functions: 'never',\r\n arrays: 'always-multiline',\r\n exports: 'always-multiline',\r\n imports: 'always-multiline',\r\n objects: 'always-multiline',\r\n enums: 'always-multiline',\r\n },\r\n ],\r\n '@stylistic/indent': [\r\n 'error',\r\n 2,\r\n {\r\n offsetTernaryExpressions: true,\r\n SwitchCase: 1,\r\n ignoredNodes: [\r\n 'TSTypeParameterInstantiation',\r\n 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))',\r\n ],\r\n },\r\n ],\r\n 'sort-imports': [\r\n 'error',\r\n {\r\n ignoreCase: false,\r\n ignoreDeclarationSort: true,\r\n ignoreMemberSort: false,\r\n memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],\r\n allowSeparatedGroups: true,\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n '**/*.html',\r\n ],\r\n rules: {\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 150,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 300,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n isPrettierAvailable ? eslintConfigPrettier : {},\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\n\r\nexport const typescript = [\r\n // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'\r\n importPlugin.flatConfigs.typescript,\r\n ...nx.configs['flat/typescript'],\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n rules: {\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/consistent-type-imports': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'warn',\r\n '@typescript-eslint/no-empty-function': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n rules: {\r\n '@typescript-eslint/prefer-readonly': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n 'max-classes-per-file': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.state.ts'],\r\n rules: {\r\n 'class-methods-use-this': 'off',\r\n },\r\n },\r\n];\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const jest: Linter.Config[] = [\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n ...jestEslint.configs['flat/recommended'],\r\n rules: {\r\n ...jestEslint.configs['flat/recommended'].rules,\r\n ...jestEslint.configs['flat/style'].rules,\r\n 'jest/no-done-callback': 'off',\r\n },\r\n },\r\n];\r\n", "import jsonEslint from 'eslint-plugin-json';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const json: Linter.Config[] = [\r\n {\r\n files: ['**/*.json'],\r\n ...jsonEslint.configs.recommended,\r\n },\r\n];\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const rxjs: Linter.Config[] = [\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n ...rxjsEslint.configs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n plugins: {\r\n rxjs: rxjsEslint,\r\n },\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n rules: {\r\n 'rxjs/prefer-observer': 'error',\r\n 'rxjs/finnish': 'warn',\r\n 'rxjs/no-ignored-error': 'warn',\r\n 'rxjs/no-unsafe-switchmap': 'error',\r\n 'rxjs/no-unsafe-takeuntil': 'error',\r\n 'rxjs/no-unsafe-catch': 'error',\r\n 'rxjs/no-unsafe-first': 'error',\r\n 'rxjs/no-topromise': 'error',\r\n 'rxjs/throw-error': 'error',\r\n 'rxjs/no-async-subscribe': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'rxjs/no-ignored-subscription': 'off',\r\n },\r\n },\r\n];\r\n", "import storybookEslint from 'eslint-plugin-storybook';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const storybook: Linter.Config[] = [\r\n ...storybookEslint.configs['flat/recommended'],\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
5
+ "mappings": "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",
6
+ "names": ["nx", "nx", "nx", "nx", "importPlugin", "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":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAsE/B,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/base.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAcrC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAkI/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,EAwB/B,CAAC"}
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,EAgE/B,CAAC"}
@@ -4,55 +4,51 @@ export declare const typescript: (import("@typescript-eslint/utils/ts-eslint").F
4
4
  '@typescript-eslint/explicit-member-accessibility': string;
5
5
  '@typescript-eslint/consistent-type-imports': string;
6
6
  '@typescript-eslint/explicit-function-return-type': string;
7
- '@typescript-eslint/prefer-readonly': string;
8
7
  '@typescript-eslint/no-empty-function': string;
8
+ '@typescript-eslint/prefer-readonly'?: undefined;
9
9
  'max-classes-per-file'?: undefined;
10
10
  'class-methods-use-this'?: undefined;
11
- '@typescript-eslint/dot-notation'?: undefined;
12
- 'max-lines'?: undefined;
13
11
  };
12
+ languageOptions?: undefined;
14
13
  } | {
15
14
  files: string[];
15
+ languageOptions: {
16
+ parserOptions: {
17
+ projectService: boolean;
18
+ };
19
+ };
16
20
  rules: {
17
- 'max-classes-per-file': string;
21
+ '@typescript-eslint/prefer-readonly': string;
18
22
  '@typescript-eslint/explicit-member-accessibility'?: undefined;
19
23
  '@typescript-eslint/consistent-type-imports'?: undefined;
20
24
  '@typescript-eslint/explicit-function-return-type'?: undefined;
21
- '@typescript-eslint/prefer-readonly'?: undefined;
22
25
  '@typescript-eslint/no-empty-function'?: undefined;
26
+ 'max-classes-per-file'?: undefined;
23
27
  'class-methods-use-this'?: undefined;
24
- '@typescript-eslint/dot-notation'?: undefined;
25
- 'max-lines'?: undefined;
26
28
  };
27
29
  } | {
28
30
  files: string[];
29
31
  rules: {
30
- 'class-methods-use-this': string;
32
+ 'max-classes-per-file': string;
31
33
  '@typescript-eslint/explicit-member-accessibility'?: undefined;
32
34
  '@typescript-eslint/consistent-type-imports'?: undefined;
33
35
  '@typescript-eslint/explicit-function-return-type'?: undefined;
34
- '@typescript-eslint/prefer-readonly'?: undefined;
35
36
  '@typescript-eslint/no-empty-function'?: undefined;
36
- 'max-classes-per-file'?: undefined;
37
- '@typescript-eslint/dot-notation'?: undefined;
38
- 'max-lines'?: undefined;
37
+ '@typescript-eslint/prefer-readonly'?: undefined;
38
+ 'class-methods-use-this'?: undefined;
39
39
  };
40
+ languageOptions?: undefined;
40
41
  } | {
41
42
  files: string[];
42
43
  rules: {
43
- '@typescript-eslint/dot-notation': string;
44
- 'max-lines': (string | {
45
- max: number;
46
- skipBlankLines: boolean;
47
- skipComments: boolean;
48
- })[];
44
+ 'class-methods-use-this': string;
49
45
  '@typescript-eslint/explicit-member-accessibility'?: undefined;
50
46
  '@typescript-eslint/consistent-type-imports'?: undefined;
51
47
  '@typescript-eslint/explicit-function-return-type'?: undefined;
52
- '@typescript-eslint/prefer-readonly'?: undefined;
53
48
  '@typescript-eslint/no-empty-function'?: undefined;
49
+ '@typescript-eslint/prefer-readonly'?: undefined;
54
50
  'max-classes-per-file'?: undefined;
55
- 'class-methods-use-this'?: undefined;
56
51
  };
52
+ languageOptions?: undefined;
57
53
  })[];
58
54
  //# sourceMappingURL=typescript.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/typescript.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+CtB,CAAC"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/typescript.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lint-suite",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Reusable ESLint configurations",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,13 +25,22 @@
25
25
  "types": "./index.d.ts",
26
26
  "dependencies": {
27
27
  "eslint": "^9.23.0",
28
- "@nx/eslint-plugin": "^20.6.4",
28
+ "@nx/eslint-plugin": "^20.7.0",
29
29
  "eslint-plugin-jest": "^28.11.0",
30
30
  "eslint-plugin-json": "^4.0.1",
31
31
  "@smarttools/eslint-plugin-rxjs": "^1.0.18",
32
32
  "eslint-plugin-storybook": "^0.12.0",
33
33
  "eslint-plugin-import": "^2.31.0",
34
- "@stylistic/eslint-plugin": "^4.2.0"
34
+ "@stylistic/eslint-plugin": "^4.2.0",
35
+ "eslint-config-prettier": "^10.1.1"
36
+ },
37
+ "peerDependencies": {
38
+ "eslint-config-prettier": "^10.1.1"
39
+ },
40
+ "peerDependenciesMeta": {
41
+ "eslint-config-prettier": {
42
+ "optional": true
43
+ }
35
44
  },
36
45
  "scripts": {
37
46
  "build": "nx build lint-suite",