linted 16.3.2 → 16.3.3-rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. package/.github/workflows/RELEASE.yml +35 -0
  2. package/.github/workflows/rc.yml +35 -0
  3. package/LICENSE +21 -21
  4. package/README.md +388 -388
  5. package/SECURITY.md +9 -9
  6. package/dist/imports/plugins/index.d.ts.map +1 -1
  7. package/eslint.config.js +3 -3
  8. package/package.json +99 -99
  9. package/src/declarations/markdownlint/index.d.ts +3 -3
  10. package/src/declarations/markdownlint/parser.d.ts +9 -9
  11. package/src/declarations/mocha/index.d.ts +8 -8
  12. package/src/imports/index.ts +4 -4
  13. package/src/imports/parsers/index.ts +16 -16
  14. package/src/imports/plugins/index.ts +20 -20
  15. package/src/index.ts +34 -34
  16. package/src/statics/files/html/index.ts +1 -1
  17. package/src/statics/files/index.ts +22 -22
  18. package/src/statics/files/js/index.ts +1 -1
  19. package/src/statics/files/json/index.ts +1 -1
  20. package/src/statics/files/jsonc/index.ts +4 -4
  21. package/src/statics/files/md/index.ts +1 -1
  22. package/src/statics/files/mocha/index.ts +1 -1
  23. package/src/statics/files/svelte/index.ts +1 -1
  24. package/src/statics/files/ts/index.ts +5 -5
  25. package/src/statics/files/yml/index.ts +5 -5
  26. package/src/statics/index.ts +4 -4
  27. package/src/statics/rules/index.ts +22 -22
  28. package/src/statics/rules/presets/Html.ts +5 -5
  29. package/src/statics/rules/presets/Js.ts +5 -5
  30. package/src/statics/rules/presets/Json.ts +5 -5
  31. package/src/statics/rules/presets/Jsonc.ts +5 -5
  32. package/src/statics/rules/presets/Md.ts +4 -4
  33. package/src/statics/rules/presets/Mocha.ts +5 -5
  34. package/src/statics/rules/presets/Svelte.ts +16 -16
  35. package/src/statics/rules/presets/Ts.ts +14 -14
  36. package/src/statics/rules/presets/Yml.ts +5 -5
  37. package/src/statics/rules/presets/html/Enable.ts +5 -5
  38. package/src/statics/rules/presets/html/Recommended.ts +7 -7
  39. package/src/statics/rules/presets/index.ts +10 -10
  40. package/src/statics/rules/presets/js/Enable.ts +288 -288
  41. package/src/statics/rules/presets/js/EnableStylistic.ts +288 -288
  42. package/src/statics/rules/presets/json/Enable.ts +33 -33
  43. package/src/statics/rules/presets/json/EnableX.ts +51 -51
  44. package/src/statics/rules/presets/jsonc/OverrideJson.ts +6 -6
  45. package/src/statics/rules/presets/md/Enable.ts +23 -23
  46. package/src/statics/rules/presets/mocha/Enable.ts +5 -5
  47. package/src/statics/rules/presets/mocha/Recommended.ts +7 -7
  48. package/src/statics/rules/presets/svelte/DisableJS.ts +7 -7
  49. package/src/statics/rules/presets/svelte/DisableTS.ts +5 -5
  50. package/src/statics/rules/presets/svelte/DisableX.ts +6 -6
  51. package/src/statics/rules/presets/svelte/Enable.ts +130 -130
  52. package/src/statics/rules/presets/svelte/EnableX.ts +6 -6
  53. package/src/statics/rules/presets/ts/DisableCompiler.ts +23 -23
  54. package/src/statics/rules/presets/ts/DisableX.ts +34 -34
  55. package/src/statics/rules/presets/ts/Enable.ts +407 -407
  56. package/src/statics/rules/presets/ts/EnableX.ts +87 -87
  57. package/src/statics/rules/presets/yml/Enable.ts +30 -30
  58. package/src/statics/rules/presets/yml/EnableX.ts +18 -18
  59. package/src/statics/rules/strings/id/index.ts +17 -17
  60. package/src/statics/rules/strings/index.ts +6 -6
  61. package/src/statics/rules/strings/level/index.ts +5 -5
  62. package/src/statics/rules/strings/state/index.ts +55 -55
  63. package/tsconfig.json +160 -160
@@ -1,407 +1,407 @@
1
- import { Strings, type RuleEntry } from "../index.js";
2
-
3
- const {
4
- Id: { Enable },
5
- Level: { ERROR, OFF },
6
- State: { NEVER, EXPLICIT },
7
- } = Strings;
8
-
9
- export default [
10
- Enable,
11
- {
12
- // https://typescript-eslint.io/rules/?=xextension-xdeprecated#rules ]
13
- "@typescript-eslint/adjacent-overload-signatures": OFF,
14
- "@typescript-eslint/array-type": [ERROR, { "default": "array", readonly: "array" }],
15
- "@typescript-eslint/await-thenable": ERROR,
16
- "@typescript-eslint/ban-ts-comment": [
17
- ERROR,
18
- {
19
- "ts-check": false,
20
- "ts-expect-error": { descriptionFormat: "^: BUG: .+$" },
21
- "ts-ignore": true,
22
- "ts-nocheck": true,
23
- minimumDescriptionLength: 32,
24
- },
25
- ],
26
- "@typescript-eslint/ban-tslint-comment": ERROR,
27
- "@typescript-eslint/class-literal-property-style": [ERROR, "fields"],
28
- "@typescript-eslint/consistent-generic-constructors": [ERROR, "constructor"],
29
- "@typescript-eslint/consistent-indexed-object-style": [ERROR, "record"],
30
- "@typescript-eslint/consistent-type-assertions": [ERROR, { assertionStyle: "as", objectLiteralTypeAssertions: NEVER }],
31
- "@typescript-eslint/consistent-type-definitions": OFF,
32
- "@typescript-eslint/consistent-type-exports": [ERROR, { fixMixedExportsWithInlineTypeSpecifier: false }],
33
- "@typescript-eslint/consistent-type-imports": [ERROR, { disallowTypeAnnotations: true, fixStyle: "separate-type-imports", prefer: "type-imports" }],
34
- "@typescript-eslint/explicit-function-return-type": OFF,
35
- "@typescript-eslint/explicit-member-accessibility": [
36
- ERROR,
37
- {
38
- accessibility: EXPLICIT,
39
- ignoredMethodNames: [],
40
- overrides: {
41
- properties: EXPLICIT,
42
- constructors: "no-public",
43
- accessors: EXPLICIT,
44
- methods: EXPLICIT,
45
- parameterProperties: EXPLICIT,
46
- },
47
- },
48
- ],
49
- "@typescript-eslint/explicit-module-boundary-types": OFF,
50
- "@typescript-eslint/member-ordering": [
51
- ERROR,
52
- {
53
- "default": {
54
- memberTypes: [
55
- // Index signature
56
- "signature",
57
- "call-signature",
58
-
59
- // Fields
60
- "public-static-field",
61
- "protected-static-field",
62
- "private-static-field",
63
- "#private-static-field",
64
-
65
- "public-decorated-field",
66
- "protected-decorated-field",
67
- "private-decorated-field",
68
-
69
- "public-instance-field",
70
- "protected-instance-field",
71
- "private-instance-field",
72
- "#private-instance-field",
73
-
74
- "public-abstract-field",
75
- "protected-abstract-field",
76
-
77
- "public-field",
78
- "protected-field",
79
- "private-field",
80
- "#private-field",
81
-
82
- "static-field",
83
- "instance-field",
84
- "abstract-field",
85
- "decorated-field",
86
- "field",
87
-
88
- // Static initialization
89
- "static-initialization",
90
-
91
- // Constructors
92
- "public-constructor",
93
- "protected-constructor",
94
- "private-constructor",
95
- "constructor",
96
-
97
- // Accessors
98
- "public-static-accessor",
99
- "protected-static-accessor",
100
- "private-static-accessor",
101
- "#private-static-accessor",
102
-
103
- "public-decorated-accessor",
104
- "protected-decorated-accessor",
105
- "private-decorated-accessor",
106
-
107
- "public-instance-accessor",
108
- "protected-instance-accessor",
109
- "private-instance-accessor",
110
- "#private-instance-accessor",
111
-
112
- "public-abstract-accessor",
113
- "protected-abstract-accessor",
114
-
115
- "public-accessor",
116
- "protected-accessor",
117
- "private-accessor",
118
- "#private-accessor",
119
-
120
- "static-accessor",
121
- "instance-accessor",
122
- "abstract-accessor",
123
- "decorated-accessor",
124
- "accessor",
125
-
126
- // Getters
127
- "public-static-get",
128
- "protected-static-get",
129
- "private-static-get",
130
- "#private-static-get",
131
-
132
- "public-decorated-get",
133
- "protected-decorated-get",
134
- "private-decorated-get",
135
-
136
- "public-instance-get",
137
- "protected-instance-get",
138
- "private-instance-get",
139
- "#private-instance-get",
140
-
141
- "public-abstract-get",
142
- "protected-abstract-get",
143
-
144
- "public-get",
145
- "protected-get",
146
- "private-get",
147
- "#private-get",
148
-
149
- "static-get",
150
- "instance-get",
151
- "abstract-get",
152
- "decorated-get",
153
- "get",
154
-
155
- // Setters
156
- "public-static-set",
157
- "protected-static-set",
158
- "private-static-set",
159
- "#private-static-set",
160
-
161
- "public-decorated-set",
162
- "protected-decorated-set",
163
- "private-decorated-set",
164
-
165
- "public-instance-set",
166
- "protected-instance-set",
167
- "private-instance-set",
168
- "#private-instance-set",
169
-
170
- "public-abstract-set",
171
- "protected-abstract-set",
172
-
173
- "public-set",
174
- "protected-set",
175
- "private-set",
176
- "#private-set",
177
-
178
- "static-set",
179
- "instance-set",
180
- "abstract-set",
181
- "decorated-set",
182
- "set",
183
-
184
- // Methods
185
- "public-static-method",
186
- "protected-static-method",
187
- "private-static-method",
188
- "#private-static-method",
189
-
190
- "public-decorated-method",
191
- "protected-decorated-method",
192
- "private-decorated-method",
193
-
194
- "public-instance-method",
195
- "protected-instance-method",
196
- "private-instance-method",
197
- "#private-instance-method",
198
-
199
- "public-abstract-method",
200
- "protected-abstract-method",
201
-
202
- "public-method",
203
- "protected-method",
204
- "private-method",
205
- "#private-method",
206
-
207
- "static-method",
208
- "instance-method",
209
- "abstract-method",
210
- "decorated-method",
211
- "method",
212
- ],
213
- optionalityOrder: "required-first",
214
- order: "as-written",
215
- },
216
-
217
- },
218
- ],
219
- "@typescript-eslint/method-signature-style": [ERROR, "property"],
220
- "@typescript-eslint/naming-convention": OFF,
221
- "@typescript-eslint/no-array-delete": ERROR,
222
- "@typescript-eslint/no-base-to-string": [
223
- ERROR,
224
- {
225
- ignoredTypeNames: [
226
- "Error",
227
- "RegExp",
228
- "URL",
229
- "URLSearchParams",
230
- ],
231
- },
232
- ],
233
- "@typescript-eslint/no-confusing-non-null-assertion": ERROR,
234
- "@typescript-eslint/no-confusing-void-expression": [ERROR, { ignoreArrowShorthand: true, ignoreVoidOperator: true }],
235
- "@typescript-eslint/no-duplicate-enum-values": ERROR,
236
- "@typescript-eslint/no-duplicate-type-constituents": [ERROR, { ignoreIntersections: false, ignoreUnions: false }],
237
- "@typescript-eslint/no-dynamic-delete": ERROR,
238
- "@typescript-eslint/no-empty-object-type": [
239
- ERROR,
240
- {
241
- // allowWithName: /regex/,
242
- allowInterfaces: NEVER,
243
- allowObjectTypes: NEVER,
244
- },
245
- ],
246
- "@typescript-eslint/no-explicit-any": [ERROR, { fixToUnknown: true, ignoreRestArgs: false }],
247
- "@typescript-eslint/no-extra-non-null-assertion": ERROR,
248
- "@typescript-eslint/no-extraneous-class": [
249
- ERROR,
250
- {
251
- allowConstructorOnly: false,
252
- allowEmpty: true,
253
- allowStaticOnly: false,
254
- allowWithDecorator: false,
255
- },
256
- ],
257
- "@typescript-eslint/no-floating-promises": [ERROR, { checkThenables: true, ignoreVoid: true, ignoreIIFE: false }],
258
- "@typescript-eslint/no-for-in-array": ERROR,
259
- "@typescript-eslint/no-import-type-side-effects": ERROR,
260
- "@typescript-eslint/no-inferrable-types": [ERROR, { ignoreParameters: false, ignoreProperties: false }],
261
- "@typescript-eslint/no-invalid-void-type": [ERROR, { allowInGenericTypeArguments: true, allowAsThisParameter: false }],
262
- "@typescript-eslint/no-meaningless-void-operator": [ERROR, { checkNever: true }],
263
- "@typescript-eslint/no-misused-new": ERROR,
264
- "@typescript-eslint/no-misused-promises": [
265
- ERROR,
266
- {
267
- checksConditionals: true,
268
- checksSpreads: true,
269
- checksVoidReturn: {
270
- arguments: true,
271
- attributes: true,
272
- properties: true,
273
- returns: true,
274
- variables: true,
275
- },
276
- },
277
- ],
278
- "@typescript-eslint/no-mixed-enums": ERROR,
279
- "@typescript-eslint/no-namespace": OFF,
280
- "@typescript-eslint/no-non-null-asserted-nullish-coalescing": ERROR,
281
- "@typescript-eslint/no-non-null-asserted-optional-chain": ERROR,
282
- "@typescript-eslint/no-non-null-assertion": ERROR,
283
- "@typescript-eslint/no-redundant-type-constituents": ERROR,
284
- "@typescript-eslint/no-restricted-types": OFF, /* preference - no shared custom types across all projects that I wish to ban*/
285
- "@typescript-eslint/no-require-imports": [ERROR, { allow: [] }],
286
- "@typescript-eslint/no-this-alias": [ERROR, { allowDestructuring: true, allowedNames: [] }],
287
- "@typescript-eslint/no-unnecessary-boolean-literal-compare": [ERROR, { allowComparingNullableBooleansToTrue: true, allowComparingNullableBooleansToFalse: true }],
288
- "@typescript-eslint/no-unnecessary-condition": [ERROR, { allowConstantLoopConditions: false, allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false }],
289
- "@typescript-eslint/no-unnecessary-qualifier": ERROR,
290
- "@typescript-eslint/no-unnecessary-template-expression": ERROR,
291
- "@typescript-eslint/no-unnecessary-type-arguments": ERROR,
292
- "@typescript-eslint/no-unnecessary-type-assertion": [ERROR, { typesToIgnore: [] }],
293
- "@typescript-eslint/no-unnecessary-type-constraint": ERROR,
294
- "@typescript-eslint/no-unnecessary-type-parameters": ERROR,
295
- "@typescript-eslint/no-unsafe-argument": ERROR,
296
- "@typescript-eslint/no-unsafe-assignment": ERROR,
297
- "@typescript-eslint/no-unsafe-call": ERROR,
298
- "@typescript-eslint/no-unsafe-declaration-merging": ERROR,
299
- "@typescript-eslint/no-unsafe-enum-comparison": ERROR,
300
- "@typescript-eslint/no-unsafe-function-type": ERROR,
301
- "@typescript-eslint/no-unsafe-member-access": ERROR,
302
- "@typescript-eslint/no-unsafe-return": ERROR,
303
- "@typescript-eslint/no-unsafe-unary-minus": ERROR,
304
- "@typescript-eslint/no-useless-empty-export": ERROR,
305
- "@typescript-eslint/no-wrapper-object-types": ERROR,
306
- "@typescript-eslint/non-nullable-type-assertion-style": OFF,
307
- "@typescript-eslint/parameter-properties": [ERROR, { prefer: "parameter-property" /* "parameter-property" | "class-property" */ }],
308
- "@typescript-eslint/prefer-as-const": ERROR,
309
- "@typescript-eslint/prefer-enum-initializers": ERROR,
310
- "@typescript-eslint/prefer-find": ERROR,
311
- "@typescript-eslint/prefer-for-of": ERROR,
312
- "@typescript-eslint/prefer-function-type": ERROR,
313
- "@typescript-eslint/prefer-includes": ERROR,
314
- "@typescript-eslint/prefer-literal-enum-member": [ERROR, { allowBitwiseExpressions: false }],
315
- "@typescript-eslint/prefer-namespace-keyword": ERROR,
316
- "@typescript-eslint/prefer-nullish-coalescing": [
317
- ERROR,
318
- {
319
- allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
320
- ignoreConditionalTests: false,
321
- ignoreTernaryTests: false,
322
- ignoreMixedLogicalExpressions: false,
323
- ignorePrimitives: {
324
- bigint: false,
325
- "boolean": false,
326
- number: false,
327
- string: false,
328
- },
329
- },
330
- ], /* requires tsconfig: strictNullChecks */
331
- "@typescript-eslint/prefer-optional-chain": [
332
- ERROR,
333
- {
334
- allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing: false,
335
- checkAny: true,
336
- checkBigInt: true,
337
- checkBoolean: true,
338
- checkNumber: true,
339
- checkString: true,
340
- checkUnknown: true,
341
- requireNullish: false,
342
- },
343
- ],
344
- "@typescript-eslint/prefer-readonly": [ERROR, { onlyInlineLambdas: false }],
345
- "@typescript-eslint/prefer-readonly-parameter-types": OFF, /* preference - WAY too restrictive */
346
- "@typescript-eslint/prefer-reduce-type-parameter": ERROR,
347
- "@typescript-eslint/prefer-regexp-exec": ERROR,
348
- "@typescript-eslint/prefer-return-this-type": ERROR,
349
- "@typescript-eslint/prefer-string-starts-ends-with": [ERROR, { allowSingleElementEquality: NEVER }],
350
- "@typescript-eslint/promise-function-async": [
351
- ERROR,
352
- {
353
- allowAny: false,
354
- allowedPromiseNames: [],
355
- checkArrowFunctions: true,
356
- checkFunctionDeclarations: true,
357
- checkFunctionExpressions: true,
358
- checkMethodDeclarations: true,
359
- },
360
- ],
361
- "@typescript-eslint/require-array-sort-compare": [ERROR, { ignoreStringArrays: true }],
362
- "@typescript-eslint/restrict-plus-operands": [
363
- ERROR,
364
- {
365
- allowAny: false,
366
- allowBoolean: false,
367
- allowNullish: false,
368
- allowNumberAndString: false,
369
- allowRegExp: false,
370
- skipCompoundAssignments: false,
371
- },
372
- ],
373
- "@typescript-eslint/restrict-template-expressions": [
374
- ERROR,
375
- {
376
- allowAny: true,
377
- allowArray: true,
378
- allowBoolean: true,
379
- allowNullish: false,
380
- allowNumber: true,
381
- allowNever: false,
382
- allowRegExp: false,
383
- }, /* investigate: make stricter */
384
- ],
385
- "@typescript-eslint/return-await": [ERROR, "in-try-catch"], /* BUG: doc incorrectly states that this extends the DEPRECATED (since 8.46) no-return-await: https://typescript-eslint.io/rules/return-await */
386
- "@typescript-eslint/strict-boolean-expressions": [
387
- ERROR,
388
- {
389
- allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
390
- allowAny: false,
391
- allowNumber: true,
392
- allowString: false,
393
- allowNullableBoolean: false,
394
- allowNullableEnum: false,
395
- allowNullableNumber: false,
396
- allowNullableObject: false,
397
- allowNullableString: false,
398
- },
399
- ], /* requires tsconfig: strictNullChecks */
400
- "@typescript-eslint/switch-exhaustiveness-check": [ERROR, { allowDefaultCaseForExhaustiveSwitch: false, requireDefaultForNonUnion: true }],
401
- "@typescript-eslint/triple-slash-reference": [ERROR, { lib: NEVER /** always | never */, path: NEVER /** always | never */, types: NEVER /** always | never | prefer-import */ }],
402
- "@typescript-eslint/typedef": OFF, /* tsconfig: { noImplicitAny, strictPropertyInitialization } */
403
- "@typescript-eslint/unbound-method": [ERROR, { ignoreStatic: false }],
404
- "@typescript-eslint/unified-signatures": [ERROR, { ignoreDifferentlyNamedParameters: false }],
405
- "@typescript-eslint/use-unknown-in-catch-callback-variable": ERROR,
406
- },
407
- ] as const satisfies RuleEntry;
1
+ import { Strings, type RuleEntry } from "../index.js";
2
+
3
+ const {
4
+ Id: { Enable },
5
+ Level: { ERROR, OFF },
6
+ State: { NEVER, EXPLICIT },
7
+ } = Strings;
8
+
9
+ export default [
10
+ Enable,
11
+ {
12
+ // https://typescript-eslint.io/rules/?=xextension-xdeprecated#rules ]
13
+ "@typescript-eslint/adjacent-overload-signatures": OFF,
14
+ "@typescript-eslint/array-type": [ERROR, { "default": "array", readonly: "array" }],
15
+ "@typescript-eslint/await-thenable": ERROR,
16
+ "@typescript-eslint/ban-ts-comment": [
17
+ ERROR,
18
+ {
19
+ "ts-check": false,
20
+ "ts-expect-error": { descriptionFormat: "^: BUG: .+$" },
21
+ "ts-ignore": true,
22
+ "ts-nocheck": true,
23
+ minimumDescriptionLength: 32,
24
+ },
25
+ ],
26
+ "@typescript-eslint/ban-tslint-comment": ERROR,
27
+ "@typescript-eslint/class-literal-property-style": [ERROR, "fields"],
28
+ "@typescript-eslint/consistent-generic-constructors": [ERROR, "constructor"],
29
+ "@typescript-eslint/consistent-indexed-object-style": [ERROR, "record"],
30
+ "@typescript-eslint/consistent-type-assertions": [ERROR, { assertionStyle: "as", objectLiteralTypeAssertions: NEVER }],
31
+ "@typescript-eslint/consistent-type-definitions": OFF,
32
+ "@typescript-eslint/consistent-type-exports": [ERROR, { fixMixedExportsWithInlineTypeSpecifier: false }],
33
+ "@typescript-eslint/consistent-type-imports": [ERROR, { disallowTypeAnnotations: true, fixStyle: "separate-type-imports", prefer: "type-imports" }],
34
+ "@typescript-eslint/explicit-function-return-type": OFF,
35
+ "@typescript-eslint/explicit-member-accessibility": [
36
+ ERROR,
37
+ {
38
+ accessibility: EXPLICIT,
39
+ ignoredMethodNames: [],
40
+ overrides: {
41
+ properties: EXPLICIT,
42
+ constructors: "no-public",
43
+ accessors: EXPLICIT,
44
+ methods: EXPLICIT,
45
+ parameterProperties: EXPLICIT,
46
+ },
47
+ },
48
+ ],
49
+ "@typescript-eslint/explicit-module-boundary-types": OFF,
50
+ "@typescript-eslint/member-ordering": [
51
+ ERROR,
52
+ {
53
+ "default": {
54
+ memberTypes: [
55
+ // Index signature
56
+ "signature",
57
+ "call-signature",
58
+
59
+ // Fields
60
+ "public-static-field",
61
+ "protected-static-field",
62
+ "private-static-field",
63
+ "#private-static-field",
64
+
65
+ "public-decorated-field",
66
+ "protected-decorated-field",
67
+ "private-decorated-field",
68
+
69
+ "public-instance-field",
70
+ "protected-instance-field",
71
+ "private-instance-field",
72
+ "#private-instance-field",
73
+
74
+ "public-abstract-field",
75
+ "protected-abstract-field",
76
+
77
+ "public-field",
78
+ "protected-field",
79
+ "private-field",
80
+ "#private-field",
81
+
82
+ "static-field",
83
+ "instance-field",
84
+ "abstract-field",
85
+ "decorated-field",
86
+ "field",
87
+
88
+ // Static initialization
89
+ "static-initialization",
90
+
91
+ // Constructors
92
+ "public-constructor",
93
+ "protected-constructor",
94
+ "private-constructor",
95
+ "constructor",
96
+
97
+ // Accessors
98
+ "public-static-accessor",
99
+ "protected-static-accessor",
100
+ "private-static-accessor",
101
+ "#private-static-accessor",
102
+
103
+ "public-decorated-accessor",
104
+ "protected-decorated-accessor",
105
+ "private-decorated-accessor",
106
+
107
+ "public-instance-accessor",
108
+ "protected-instance-accessor",
109
+ "private-instance-accessor",
110
+ "#private-instance-accessor",
111
+
112
+ "public-abstract-accessor",
113
+ "protected-abstract-accessor",
114
+
115
+ "public-accessor",
116
+ "protected-accessor",
117
+ "private-accessor",
118
+ "#private-accessor",
119
+
120
+ "static-accessor",
121
+ "instance-accessor",
122
+ "abstract-accessor",
123
+ "decorated-accessor",
124
+ "accessor",
125
+
126
+ // Getters
127
+ "public-static-get",
128
+ "protected-static-get",
129
+ "private-static-get",
130
+ "#private-static-get",
131
+
132
+ "public-decorated-get",
133
+ "protected-decorated-get",
134
+ "private-decorated-get",
135
+
136
+ "public-instance-get",
137
+ "protected-instance-get",
138
+ "private-instance-get",
139
+ "#private-instance-get",
140
+
141
+ "public-abstract-get",
142
+ "protected-abstract-get",
143
+
144
+ "public-get",
145
+ "protected-get",
146
+ "private-get",
147
+ "#private-get",
148
+
149
+ "static-get",
150
+ "instance-get",
151
+ "abstract-get",
152
+ "decorated-get",
153
+ "get",
154
+
155
+ // Setters
156
+ "public-static-set",
157
+ "protected-static-set",
158
+ "private-static-set",
159
+ "#private-static-set",
160
+
161
+ "public-decorated-set",
162
+ "protected-decorated-set",
163
+ "private-decorated-set",
164
+
165
+ "public-instance-set",
166
+ "protected-instance-set",
167
+ "private-instance-set",
168
+ "#private-instance-set",
169
+
170
+ "public-abstract-set",
171
+ "protected-abstract-set",
172
+
173
+ "public-set",
174
+ "protected-set",
175
+ "private-set",
176
+ "#private-set",
177
+
178
+ "static-set",
179
+ "instance-set",
180
+ "abstract-set",
181
+ "decorated-set",
182
+ "set",
183
+
184
+ // Methods
185
+ "public-static-method",
186
+ "protected-static-method",
187
+ "private-static-method",
188
+ "#private-static-method",
189
+
190
+ "public-decorated-method",
191
+ "protected-decorated-method",
192
+ "private-decorated-method",
193
+
194
+ "public-instance-method",
195
+ "protected-instance-method",
196
+ "private-instance-method",
197
+ "#private-instance-method",
198
+
199
+ "public-abstract-method",
200
+ "protected-abstract-method",
201
+
202
+ "public-method",
203
+ "protected-method",
204
+ "private-method",
205
+ "#private-method",
206
+
207
+ "static-method",
208
+ "instance-method",
209
+ "abstract-method",
210
+ "decorated-method",
211
+ "method",
212
+ ],
213
+ optionalityOrder: "required-first",
214
+ order: "as-written",
215
+ },
216
+
217
+ },
218
+ ],
219
+ "@typescript-eslint/method-signature-style": [ERROR, "property"],
220
+ "@typescript-eslint/naming-convention": OFF,
221
+ "@typescript-eslint/no-array-delete": ERROR,
222
+ "@typescript-eslint/no-base-to-string": [
223
+ ERROR,
224
+ {
225
+ ignoredTypeNames: [
226
+ "Error",
227
+ "RegExp",
228
+ "URL",
229
+ "URLSearchParams",
230
+ ],
231
+ },
232
+ ],
233
+ "@typescript-eslint/no-confusing-non-null-assertion": ERROR,
234
+ "@typescript-eslint/no-confusing-void-expression": [ERROR, { ignoreArrowShorthand: true, ignoreVoidOperator: true }],
235
+ "@typescript-eslint/no-duplicate-enum-values": ERROR,
236
+ "@typescript-eslint/no-duplicate-type-constituents": [ERROR, { ignoreIntersections: false, ignoreUnions: false }],
237
+ "@typescript-eslint/no-dynamic-delete": ERROR,
238
+ "@typescript-eslint/no-empty-object-type": [
239
+ ERROR,
240
+ {
241
+ // allowWithName: /regex/,
242
+ allowInterfaces: NEVER,
243
+ allowObjectTypes: NEVER,
244
+ },
245
+ ],
246
+ "@typescript-eslint/no-explicit-any": [ERROR, { fixToUnknown: true, ignoreRestArgs: false }],
247
+ "@typescript-eslint/no-extra-non-null-assertion": ERROR,
248
+ "@typescript-eslint/no-extraneous-class": [
249
+ ERROR,
250
+ {
251
+ allowConstructorOnly: false,
252
+ allowEmpty: true,
253
+ allowStaticOnly: false,
254
+ allowWithDecorator: false,
255
+ },
256
+ ],
257
+ "@typescript-eslint/no-floating-promises": [ERROR, { checkThenables: true, ignoreVoid: true, ignoreIIFE: false }],
258
+ "@typescript-eslint/no-for-in-array": ERROR,
259
+ "@typescript-eslint/no-import-type-side-effects": ERROR,
260
+ "@typescript-eslint/no-inferrable-types": [ERROR, { ignoreParameters: false, ignoreProperties: false }],
261
+ "@typescript-eslint/no-invalid-void-type": [ERROR, { allowInGenericTypeArguments: true, allowAsThisParameter: false }],
262
+ "@typescript-eslint/no-meaningless-void-operator": [ERROR, { checkNever: true }],
263
+ "@typescript-eslint/no-misused-new": ERROR,
264
+ "@typescript-eslint/no-misused-promises": [
265
+ ERROR,
266
+ {
267
+ checksConditionals: true,
268
+ checksSpreads: true,
269
+ checksVoidReturn: {
270
+ arguments: true,
271
+ attributes: true,
272
+ properties: true,
273
+ returns: true,
274
+ variables: true,
275
+ },
276
+ },
277
+ ],
278
+ "@typescript-eslint/no-mixed-enums": ERROR,
279
+ "@typescript-eslint/no-namespace": OFF,
280
+ "@typescript-eslint/no-non-null-asserted-nullish-coalescing": ERROR,
281
+ "@typescript-eslint/no-non-null-asserted-optional-chain": ERROR,
282
+ "@typescript-eslint/no-non-null-assertion": ERROR,
283
+ "@typescript-eslint/no-redundant-type-constituents": ERROR,
284
+ "@typescript-eslint/no-restricted-types": OFF, /* preference - no shared custom types across all projects that I wish to ban*/
285
+ "@typescript-eslint/no-require-imports": [ERROR, { allow: [] }],
286
+ "@typescript-eslint/no-this-alias": [ERROR, { allowDestructuring: true, allowedNames: [] }],
287
+ "@typescript-eslint/no-unnecessary-boolean-literal-compare": [ERROR, { allowComparingNullableBooleansToTrue: true, allowComparingNullableBooleansToFalse: true }],
288
+ "@typescript-eslint/no-unnecessary-condition": [ERROR, { allowConstantLoopConditions: false, allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false }],
289
+ "@typescript-eslint/no-unnecessary-qualifier": ERROR,
290
+ "@typescript-eslint/no-unnecessary-template-expression": ERROR,
291
+ "@typescript-eslint/no-unnecessary-type-arguments": ERROR,
292
+ "@typescript-eslint/no-unnecessary-type-assertion": [ERROR, { typesToIgnore: [] }],
293
+ "@typescript-eslint/no-unnecessary-type-constraint": ERROR,
294
+ "@typescript-eslint/no-unnecessary-type-parameters": ERROR,
295
+ "@typescript-eslint/no-unsafe-argument": ERROR,
296
+ "@typescript-eslint/no-unsafe-assignment": ERROR,
297
+ "@typescript-eslint/no-unsafe-call": ERROR,
298
+ "@typescript-eslint/no-unsafe-declaration-merging": ERROR,
299
+ "@typescript-eslint/no-unsafe-enum-comparison": ERROR,
300
+ "@typescript-eslint/no-unsafe-function-type": ERROR,
301
+ "@typescript-eslint/no-unsafe-member-access": ERROR,
302
+ "@typescript-eslint/no-unsafe-return": ERROR,
303
+ "@typescript-eslint/no-unsafe-unary-minus": ERROR,
304
+ "@typescript-eslint/no-useless-empty-export": ERROR,
305
+ "@typescript-eslint/no-wrapper-object-types": ERROR,
306
+ "@typescript-eslint/non-nullable-type-assertion-style": OFF,
307
+ "@typescript-eslint/parameter-properties": [ERROR, { prefer: "parameter-property" /* "parameter-property" | "class-property" */ }],
308
+ "@typescript-eslint/prefer-as-const": ERROR,
309
+ "@typescript-eslint/prefer-enum-initializers": ERROR,
310
+ "@typescript-eslint/prefer-find": ERROR,
311
+ "@typescript-eslint/prefer-for-of": ERROR,
312
+ "@typescript-eslint/prefer-function-type": ERROR,
313
+ "@typescript-eslint/prefer-includes": ERROR,
314
+ "@typescript-eslint/prefer-literal-enum-member": [ERROR, { allowBitwiseExpressions: false }],
315
+ "@typescript-eslint/prefer-namespace-keyword": ERROR,
316
+ "@typescript-eslint/prefer-nullish-coalescing": [
317
+ ERROR,
318
+ {
319
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
320
+ ignoreConditionalTests: false,
321
+ ignoreTernaryTests: false,
322
+ ignoreMixedLogicalExpressions: false,
323
+ ignorePrimitives: {
324
+ bigint: false,
325
+ "boolean": false,
326
+ number: false,
327
+ string: false,
328
+ },
329
+ },
330
+ ], /* requires tsconfig: strictNullChecks */
331
+ "@typescript-eslint/prefer-optional-chain": [
332
+ ERROR,
333
+ {
334
+ allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing: false,
335
+ checkAny: true,
336
+ checkBigInt: true,
337
+ checkBoolean: true,
338
+ checkNumber: true,
339
+ checkString: true,
340
+ checkUnknown: true,
341
+ requireNullish: false,
342
+ },
343
+ ],
344
+ "@typescript-eslint/prefer-readonly": [ERROR, { onlyInlineLambdas: false }],
345
+ "@typescript-eslint/prefer-readonly-parameter-types": OFF, /* preference - WAY too restrictive */
346
+ "@typescript-eslint/prefer-reduce-type-parameter": ERROR,
347
+ "@typescript-eslint/prefer-regexp-exec": ERROR,
348
+ "@typescript-eslint/prefer-return-this-type": ERROR,
349
+ "@typescript-eslint/prefer-string-starts-ends-with": [ERROR, { allowSingleElementEquality: NEVER }],
350
+ "@typescript-eslint/promise-function-async": [
351
+ ERROR,
352
+ {
353
+ allowAny: false,
354
+ allowedPromiseNames: [],
355
+ checkArrowFunctions: true,
356
+ checkFunctionDeclarations: true,
357
+ checkFunctionExpressions: true,
358
+ checkMethodDeclarations: true,
359
+ },
360
+ ],
361
+ "@typescript-eslint/require-array-sort-compare": [ERROR, { ignoreStringArrays: true }],
362
+ "@typescript-eslint/restrict-plus-operands": [
363
+ ERROR,
364
+ {
365
+ allowAny: false,
366
+ allowBoolean: false,
367
+ allowNullish: false,
368
+ allowNumberAndString: false,
369
+ allowRegExp: false,
370
+ skipCompoundAssignments: false,
371
+ },
372
+ ],
373
+ "@typescript-eslint/restrict-template-expressions": [
374
+ ERROR,
375
+ {
376
+ allowAny: true,
377
+ allowArray: true,
378
+ allowBoolean: true,
379
+ allowNullish: false,
380
+ allowNumber: true,
381
+ allowNever: false,
382
+ allowRegExp: false,
383
+ }, /* investigate: make stricter */
384
+ ],
385
+ "@typescript-eslint/return-await": [ERROR, "in-try-catch"], /* BUG: doc incorrectly states that this extends the DEPRECATED (since 8.46) no-return-await: https://typescript-eslint.io/rules/return-await */
386
+ "@typescript-eslint/strict-boolean-expressions": [
387
+ ERROR,
388
+ {
389
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
390
+ allowAny: false,
391
+ allowNumber: true,
392
+ allowString: false,
393
+ allowNullableBoolean: false,
394
+ allowNullableEnum: false,
395
+ allowNullableNumber: false,
396
+ allowNullableObject: false,
397
+ allowNullableString: false,
398
+ },
399
+ ], /* requires tsconfig: strictNullChecks */
400
+ "@typescript-eslint/switch-exhaustiveness-check": [ERROR, { allowDefaultCaseForExhaustiveSwitch: false, requireDefaultForNonUnion: true }],
401
+ "@typescript-eslint/triple-slash-reference": [ERROR, { lib: NEVER /** always | never */, path: NEVER /** always | never */, types: NEVER /** always | never | prefer-import */ }],
402
+ "@typescript-eslint/typedef": OFF, /* tsconfig: { noImplicitAny, strictPropertyInitialization } */
403
+ "@typescript-eslint/unbound-method": [ERROR, { ignoreStatic: false }],
404
+ "@typescript-eslint/unified-signatures": [ERROR, { ignoreDifferentlyNamedParameters: false }],
405
+ "@typescript-eslint/use-unknown-in-catch-callback-variable": ERROR,
406
+ },
407
+ ] as const satisfies RuleEntry;