lint-suite 1.0.1 → 1.0.2

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,35 @@ 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
+ ],
259
343
  rules: {
260
344
  "rxjs/prefer-observer": "error",
261
345
  "rxjs/finnish": "warn",
@@ -270,7 +354,7 @@ var rxjs = [
270
354
  }
271
355
  },
272
356
  {
273
- files: ["**/*.spec.ts"],
357
+ files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
274
358
  rules: {
275
359
  "rxjs/no-ignored-subscription": "off"
276
360
  }
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 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,35 @@ 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
+ ],
215
307
  rules: {
216
308
  "rxjs/prefer-observer": "error",
217
309
  "rxjs/finnish": "warn",
@@ -226,7 +318,7 @@ var rxjs = [
226
318
  }
227
319
  },
228
320
  {
229
- files: ["**/*.spec.ts"],
321
+ files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
230
322
  rules: {
231
323
  "rxjs/no-ignored-subscription": "off"
232
324
  }
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 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,EAiD/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.2",
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",