@jpp-toolkit/eslint-config 0.0.102 → 0.0.104

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/dist/index.mjs CHANGED
@@ -23,105 +23,678 @@ const eslintConfig = defineConfig({
23
23
  name: "eslint-config",
24
24
  extends: [eslint.configs.recommended],
25
25
  rules: {
26
+ /**
27
+ * Enforce return statements in callbacks of array methods.
28
+ * @see {@link https://eslint.org/docs/latest/rules/array-callback-return}
29
+ */
26
30
  "array-callback-return": "error",
31
+ /**
32
+ * Disallow await inside of loops.
33
+ * @see {@link https://eslint.org/docs/latest/rules/no-await-in-loop}
34
+ */
35
+ /**
36
+ * Disallow returning value from constructor.
37
+ * @see {@link https://eslint.org/docs/latest/rules/no-constructor-return}
38
+ */
27
39
  "no-constructor-return": "error",
40
+ /**
41
+ * Disallow duplicate module imports.
42
+ * @see {@link https://eslint.org/docs/latest/rules/no-duplicate-imports}
43
+ */
28
44
  "no-duplicate-imports": "error",
45
+ /**
46
+ * Disallow variable or function declarations in nested blocks.
47
+ * @see {@link https://eslint.org/docs/latest/rules/no-inner-declarations}
48
+ */
29
49
  "no-inner-declarations": "error",
50
+ /**
51
+ * Disallow returning values from Promise executor functions.
52
+ * @see {@link https://eslint.org/docs/latest/rules/no-promise-executor-return}
53
+ */
30
54
  "no-promise-executor-return": ["error", { allowVoid: true }],
55
+ /**
56
+ * Disallow comparisons where both sides are exactly the same.
57
+ * @see {@link https://eslint.org/docs/latest/rules/no-self-compare}
58
+ */
31
59
  "no-self-compare": "error",
60
+ /**
61
+ * Disallow template literal placeholder syntax in regular strings.
62
+ * @see {@link https://eslint.org/docs/latest/rules/no-template-curly-in-string}
63
+ */
32
64
  "no-template-curly-in-string": "error",
65
+ /**
66
+ * Disallow let or var variables that are read but never assigned.
67
+ * @see {@link https://eslint.org/docs/latest/rules/no-unassigned-vars}
68
+ */
33
69
  "no-unassigned-vars": "error",
70
+ /**
71
+ * Disallow unmodified loop conditions.
72
+ * @see {@link https://eslint.org/docs/latest/rules/no-unmodified-loop-condition}
73
+ */
34
74
  "no-unmodified-loop-condition": "error",
75
+ /**
76
+ * Disallow loops with a body that allows only one iteration.
77
+ * @see {@link https://eslint.org/docs/latest/rules/no-unreachable-loop}
78
+ */
35
79
  "no-unreachable-loop": "error",
80
+ /**
81
+ * Disallow the use of variables before they are defined.
82
+ * @see {@link https://eslint.org/docs/latest/rules/no-use-before-define}
83
+ */
36
84
  "no-use-before-define": "error",
85
+ /**
86
+ * Disallow variable assignments when the value is not used.
87
+ * @see {@link https://eslint.org/docs/latest/rules/no-useless-assignment}
88
+ */
37
89
  "no-useless-assignment": "error",
90
+ /**
91
+ * Disallow assignments that can lead to race conditions due to usage of await or yield.
92
+ * @see {@link https://eslint.org/docs/latest/rules/require-atomic-updates}
93
+ */
38
94
  "require-atomic-updates": "error",
95
+ /**
96
+ * Enforce getter and setter pairs in objects and classes.
97
+ * @see {@link https://eslint.org/docs/latest/rules/accessor-pairs}
98
+ */
99
+ /**
100
+ * Require braces around arrow function bodies.
101
+ * @fixable
102
+ * @see {@link https://eslint.org/docs/latest/rules/arrow-body-style}
103
+ */
39
104
  "arrow-body-style": "error",
105
+ /**
106
+ * Enforce the use of variables within the scope they are defined.
107
+ * @see {@link https://eslint.org/docs/latest/rules/block-scoped-var}
108
+ */
40
109
  "block-scoped-var": "error",
110
+ /**
111
+ * Enforce camelcase naming convention.
112
+ * @see {@link https://eslint.org/docs/latest/rules/camelcase}
113
+ */
41
114
  "camelcase": "error",
115
+ /**
116
+ * Enforce or disallow capitalization of the first letter of a comment.
117
+ * @fixable
118
+ * @see {@link https://eslint.org/docs/latest/rules/capitalized-comments}
119
+ */
120
+ /**
121
+ * Enforce that class methods utilize this.
122
+ * @see {@link https://eslint.org/docs/latest/rules/class-methods-use-this}
123
+ */
124
+ /**
125
+ * Enforce a maximum cyclomatic complexity allowed in a program.
126
+ * @see {@link https://eslint.org/docs/latest/rules/complexity}
127
+ */
128
+ /**
129
+ * Require return statements to either always or never specify values.
130
+ * @see {@link https://eslint.org/docs/latest/rules/consistent-return}
131
+ */
42
132
  "consistent-return": "off",
133
+ /**
134
+ * Enforce consistent naming when capturing the current execution context.
135
+ * @see {@link https://eslint.org/docs/latest/rules/consistent-this}
136
+ */
43
137
  "consistent-this": ["error", "self"],
138
+ /**
139
+ * Enforce consistent brace style for all control statements.
140
+ * @fixable
141
+ * @see {@link https://eslint.org/docs/latest/rules/curly}
142
+ */
44
143
  "curly": [
45
144
  "error",
46
145
  "multi-or-nest",
47
146
  "consistent"
48
147
  ],
148
+ /**
149
+ * Require default cases in switch statements.
150
+ * @see {@link https://eslint.org/docs/latest/rules/default-case}
151
+ */
49
152
  "default-case": "error",
153
+ /**
154
+ * Enforce default clauses in switch statements to be last.
155
+ * @see {@link https://eslint.org/docs/latest/rules/default-case-last}
156
+ */
50
157
  "default-case-last": "error",
158
+ /**
159
+ * Enforce default parameters to be last.
160
+ * @see {@link https://eslint.org/docs/latest/rules/default-param-last}
161
+ */
51
162
  "default-param-last": "error",
163
+ /**
164
+ * Enforce dot notation whenever possible.
165
+ * @fixable
166
+ * @see {@link https://eslint.org/docs/latest/rules/dot-notation}
167
+ */
52
168
  "dot-notation": "error",
169
+ /**
170
+ * Require the use of === and !==.
171
+ * @fixable
172
+ * @see {@link https://eslint.org/docs/latest/rules/eqeqeq}
173
+ */
53
174
  "eqeqeq": "error",
175
+ /**
176
+ * Require function names to match the name of the variable or property to which they are assigned.
177
+ * @see {@link https://eslint.org/docs/latest/rules/func-name-matching}
178
+ */
179
+ /**
180
+ * Require or disallow named function expressions.
181
+ * @see {@link https://eslint.org/docs/latest/rules/func-names}
182
+ */
183
+ /**
184
+ * Enforce the consistent use of either function declarations or expressions assigned to variables.
185
+ * @see {@link https://eslint.org/docs/latest/rules/func-style}
186
+ */
54
187
  "func-style": [
55
188
  "error",
56
189
  "declaration",
57
190
  { allowArrowFunctions: true }
58
191
  ],
192
+ /**
193
+ * Require grouped accessor pairs in object literals and classes.
194
+ * @see {@link https://eslint.org/docs/latest/rules/grouped-accessor-pairs}
195
+ */
59
196
  "grouped-accessor-pairs": ["error", "getBeforeSet"],
197
+ /**
198
+ * Require for-in loops to include an if statement.
199
+ * @see {@link https://eslint.org/docs/latest/rules/guard-for-in}
200
+ */
60
201
  "guard-for-in": "error",
202
+ /**
203
+ * Disallow specified identifiers.
204
+ * @see {@link https://eslint.org/docs/latest/rules/id-denylist}
205
+ */
206
+ /**
207
+ * Enforce minimum and maximum identifier lengths.
208
+ * @see {@link https://eslint.org/docs/latest/rules/id-length}
209
+ */
210
+ /**
211
+ * Require identifiers to match a specified regular expression.
212
+ * @see {@link https://eslint.org/docs/latest/rules/id-match}
213
+ */
214
+ /**
215
+ * Require or disallow initialization in variable declarations.
216
+ * @see {@link https://eslint.org/docs/latest/rules/init-declarations}
217
+ */
218
+ /**
219
+ * Require or disallow logical assignment operator shorthand.
220
+ * @fixable
221
+ * @see {@link https://eslint.org/docs/latest/rules/logical-assignment-operators}
222
+ */
61
223
  "logical-assignment-operators": "error",
224
+ /**
225
+ * Enforce a maximum number of classes per file.
226
+ * @see {@link https://eslint.org/docs/latest/rules/max-classes-per-file}
227
+ */
228
+ /**
229
+ * Enforce a maximum depth that blocks can be nested.
230
+ * @see {@link https://eslint.org/docs/latest/rules/max-depth}
231
+ */
232
+ /**
233
+ * Enforce a maximum number of lines per file.
234
+ * @see {@link https://eslint.org/docs/latest/rules/max-lines}
235
+ */
236
+ /**
237
+ * Enforce a maximum number of lines of code in a function.
238
+ * @see {@link https://eslint.org/docs/latest/rules/max-lines-per-function}
239
+ */
240
+ /**
241
+ * Enforce a maximum depth that callbacks can be nested.
242
+ * @see {@link https://eslint.org/docs/latest/rules/max-nested-callbacks}
243
+ */
244
+ /**
245
+ * Enforce a maximum number of parameters in function definitions.
246
+ * @see {@link https://eslint.org/docs/latest/rules/max-params}
247
+ */
248
+ /**
249
+ * Enforce a maximum number of statements allowed in function blocks.
250
+ * @see {@link https://eslint.org/docs/latest/rules/max-statements}
251
+ */
252
+ /**
253
+ * Require constructor names to begin with a capital letter.
254
+ * @see {@link https://eslint.org/docs/latest/rules/new-cap}
255
+ */
256
+ /**
257
+ * Disallow the use of alert, confirm, and prompt.
258
+ * @see {@link https://eslint.org/docs/latest/rules/no-alert}
259
+ */
260
+ /**
261
+ * Disallow Array constructors.
262
+ * @fixable
263
+ * @see {@link https://eslint.org/docs/latest/rules/no-array-constructor}
264
+ */
62
265
  "no-array-constructor": "error",
266
+ /**
267
+ * Disallow bitwise operators.
268
+ * @see {@link https://eslint.org/docs/latest/rules/no-bitwise}
269
+ */
270
+ /**
271
+ * Disallow the use of arguments.caller or arguments.callee.
272
+ * @see {@link https://eslint.org/docs/latest/rules/no-caller}
273
+ */
63
274
  "no-caller": "error",
275
+ /**
276
+ * Disallow the use of console.
277
+ * @see {@link https://eslint.org/docs/latest/rules/no-console}
278
+ */
279
+ /**
280
+ * Disallow continue statements.
281
+ * @see {@link https://eslint.org/docs/latest/rules/no-continue}
282
+ */
283
+ /**
284
+ * Disallow equal signs explicitly at the beginning of regular expressions.
285
+ * @fixable
286
+ * @see {@link https://eslint.org/docs/latest/rules/no-div-regex}
287
+ */
64
288
  "no-div-regex": "error",
289
+ /**
290
+ * Disallow else blocks after return statements in if statements.
291
+ * @fixable
292
+ * @see {@link https://eslint.org/docs/latest/rules/no-else-return}
293
+ */
294
+ /**
295
+ * Disallow empty functions.
296
+ * @see {@link https://eslint.org/docs/latest/rules/no-empty-function}
297
+ */
65
298
  "no-empty-function": "error",
299
+ /**
300
+ * Disallow null comparisons without type-checking operators.
301
+ * @see {@link https://eslint.org/docs/latest/rules/no-eq-null}
302
+ */
66
303
  "no-eq-null": "error",
304
+ /**
305
+ * Disallow the use of eval().
306
+ * @see {@link https://eslint.org/docs/latest/rules/no-eval}
307
+ */
67
308
  "no-eval": "error",
309
+ /**
310
+ * Disallow extending native types.
311
+ * @see {@link https://eslint.org/docs/latest/rules/no-extend-native}
312
+ */
68
313
  "no-extend-native": "error",
314
+ /**
315
+ * Disallow unnecessary calls to .bind().
316
+ * @fixable
317
+ * @see {@link https://eslint.org/docs/latest/rules/no-extra-bind}
318
+ */
69
319
  "no-extra-bind": "error",
320
+ /**
321
+ * Disallow unnecessary labels.
322
+ * @fixable
323
+ * @see {@link https://eslint.org/docs/latest/rules/no-extra-label}
324
+ */
70
325
  "no-extra-label": "error",
326
+ /**
327
+ * Disallow shorthand type conversions.
328
+ * @fixable
329
+ * @see {@link https://eslint.org/docs/latest/rules/no-implicit-coercion}
330
+ */
71
331
  "no-implicit-coercion": "error",
332
+ /**
333
+ * Disallow declarations in the global scope.
334
+ * @see {@link https://eslint.org/docs/latest/rules/no-implicit-globals}
335
+ */
72
336
  "no-implicit-globals": "error",
337
+ /**
338
+ * Disallow the use of eval()-like methods.
339
+ * @see {@link https://eslint.org/docs/latest/rules/no-implied-eval}
340
+ */
73
341
  "no-implied-eval": "error",
342
+ /**
343
+ * Disallow inline comments after code.
344
+ * @see {@link https://eslint.org/docs/latest/rules/no-inline-comments}
345
+ */
74
346
  "no-inline-comments": "error",
347
+ /**
348
+ * Disallow use of this in contexts where the value of this is undefined.
349
+ * @see {@link https://eslint.org/docs/latest/rules/no-invalid-this}
350
+ */
75
351
  "no-invalid-this": "error",
352
+ /**
353
+ * Disallow the use of the __iterator__ property.
354
+ * @see {@link https://eslint.org/docs/latest/rules/no-iterator}
355
+ */
76
356
  "no-iterator": "error",
357
+ /**
358
+ * Disallow labels that share a name with a variable.
359
+ * @see {@link https://eslint.org/docs/latest/rules/no-label-var}
360
+ */
77
361
  "no-label-var": "error",
362
+ /**
363
+ * Disallow labeled statements.
364
+ * @see {@link https://eslint.org/docs/latest/rules/no-labels}
365
+ */
78
366
  "no-labels": "error",
367
+ /**
368
+ * Disallow unnecessary nested blocks.
369
+ * @see {@link https://eslint.org/docs/latest/rules/no-lone-blocks}
370
+ */
79
371
  "no-lone-blocks": "error",
372
+ /**
373
+ * Disallow if statements as the only statement in else blocks.
374
+ * @fixable
375
+ * @see {@link https://eslint.org/docs/latest/rules/no-lonely-if}
376
+ */
80
377
  "no-lonely-if": "error",
378
+ /**
379
+ * Disallow function declarations that contain unsafe references inside loop statements.
380
+ * @see {@link https://eslint.org/docs/latest/rules/no-loop-func}
381
+ */
81
382
  "no-loop-func": "error",
383
+ /**
384
+ * Disallow magic numbers.
385
+ * @see {@link https://eslint.org/docs/latest/rules/no-magic-numbers}
386
+ */
387
+ /**
388
+ * Disallow use of chained assignment expressions.
389
+ * @see {@link https://eslint.org/docs/latest/rules/no-multi-assign}
390
+ */
82
391
  "no-multi-assign": "error",
392
+ /**
393
+ * Disallow multiline strings.
394
+ * @see {@link https://eslint.org/docs/latest/rules/no-multi-str}
395
+ */
396
+ /**
397
+ * Disallow negated conditions.
398
+ * @see {@link https://eslint.org/docs/latest/rules/no-negated-condition}
399
+ */
400
+ /**
401
+ * Disallow nested ternary expressions.
402
+ * @see {@link https://eslint.org/docs/latest/rules/no-nested-ternary}
403
+ */
404
+ /**
405
+ * Disallow new operators outside of assignments or comparisons.
406
+ * @see {@link https://eslint.org/docs/latest/rules/no-new}
407
+ */
83
408
  "no-new": "error",
409
+ /**
410
+ * Disallow new operators with the Function object.
411
+ * @see {@link https://eslint.org/docs/latest/rules/no-new-func}
412
+ */
84
413
  "no-new-func": "error",
414
+ /**
415
+ * Disallow new operators with the String, Number, and Boolean objects.
416
+ * @see {@link https://eslint.org/docs/latest/rules/no-new-wrappers}
417
+ */
85
418
  "no-new-wrappers": "error",
419
+ /**
420
+ * Disallow calls to the Object constructor without an argument.
421
+ * @see {@link https://eslint.org/docs/latest/rules/no-object-constructor}
422
+ */
86
423
  "no-object-constructor": "error",
424
+ /**
425
+ * Disallow octal escape sequences in string literals.
426
+ * @see {@link https://eslint.org/docs/latest/rules/no-octal-escape}
427
+ */
87
428
  "no-octal-escape": "error",
429
+ /**
430
+ * Disallow reassigning function parameters.
431
+ * @see {@link https://eslint.org/docs/latest/rules/no-param-reassign}
432
+ */
88
433
  "no-param-reassign": "error",
434
+ /**
435
+ * Disallow the unary operators ++ and --.
436
+ * @see {@link https://eslint.org/docs/latest/rules/no-plusplus}
437
+ */
89
438
  "no-plusplus": "error",
439
+ /**
440
+ * Disallow the use of the __proto__ property.
441
+ * @see {@link https://eslint.org/docs/latest/rules/no-proto}
442
+ */
90
443
  "no-proto": "error",
444
+ /**
445
+ * Disallow specified names in exports.
446
+ * @see {@link https://eslint.org/docs/latest/rules/no-restricted-exports}
447
+ */
448
+ /**
449
+ * Disallow specified global variables.
450
+ * @see {@link https://eslint.org/docs/latest/rules/no-restricted-globals}
451
+ */
452
+ /**
453
+ * Disallow specified modules when loaded by import.
454
+ * @see {@link https://eslint.org/docs/latest/rules/no-restricted-imports}
455
+ */
456
+ /**
457
+ * Disallow certain properties on certain objects.
458
+ * @see {@link https://eslint.org/docs/latest/rules/no-restricted-properties}
459
+ */
460
+ /**
461
+ * Disallow specified syntax.
462
+ * @see {@link https://eslint.org/docs/latest/rules/no-restricted-syntax}
463
+ */
464
+ /**
465
+ * Disallow assignment operators in return statements.
466
+ * @see {@link https://eslint.org/docs/latest/rules/no-return-assign}
467
+ */
91
468
  "no-return-assign": "error",
469
+ /**
470
+ * Disallow javascript: URLs.
471
+ * @see {@link https://eslint.org/docs/latest/rules/no-script-url}
472
+ */
92
473
  "no-script-url": "error",
474
+ /**
475
+ * Disallow comma operators.
476
+ * @see {@link https://eslint.org/docs/latest/rules/no-sequences}
477
+ */
93
478
  "no-sequences": "error",
479
+ /**
480
+ * Disallow variable declarations from shadowing variables declared in the outer scope.
481
+ * @see {@link https://eslint.org/docs/latest/rules/no-shadow}
482
+ */
94
483
  "no-shadow": "error",
484
+ /**
485
+ * Disallow ternary operators.
486
+ * @see {@link https://eslint.org/docs/latest/rules/no-ternary}
487
+ */
488
+ /**
489
+ * Disallow throwing literals as exceptions.
490
+ * @see {@link https://eslint.org/docs/latest/rules/no-throw-literal}
491
+ */
95
492
  "no-throw-literal": "error",
493
+ /**
494
+ * Disallow initializing variables to undefined.
495
+ * @fixable
496
+ * @see {@link https://eslint.org/docs/latest/rules/no-undef-init}
497
+ */
96
498
  "no-undef-init": "error",
499
+ /**
500
+ * Disallow the use of undefined as an identifier.
501
+ * @see {@link https://eslint.org/docs/latest/rules/no-undefined}
502
+ */
503
+ /**
504
+ * Disallow dangling underscores in identifiers.
505
+ * @see {@link https://eslint.org/docs/latest/rules/no-underscore-dangle}
506
+ */
507
+ /**
508
+ * Disallow ternary operators when simpler alternatives exist.
509
+ * @fixable
510
+ * @see {@link https://eslint.org/docs/latest/rules/no-unneeded-ternary}
511
+ */
97
512
  "no-unneeded-ternary": "error",
513
+ /**
514
+ * Disallow unused expressions.
515
+ * @see {@link https://eslint.org/docs/latest/rules/no-unused-expressions}
516
+ */
98
517
  "no-unused-expressions": "error",
518
+ /**
519
+ * Disallow unnecessary calls to .call() and .apply().
520
+ * @see {@link https://eslint.org/docs/latest/rules/no-useless-call}
521
+ */
99
522
  "no-useless-call": "error",
523
+ /**
524
+ * Disallow unnecessary computed property keys in objects and classes.
525
+ * @fixable
526
+ * @see {@link https://eslint.org/docs/latest/rules/no-useless-computed-key}
527
+ */
100
528
  "no-useless-computed-key": "error",
529
+ /**
530
+ * Disallow unnecessary concatenation of literals or template literals.
531
+ * @see {@link https://eslint.org/docs/latest/rules/no-useless-concat}
532
+ */
101
533
  "no-useless-concat": "error",
534
+ /**
535
+ * Disallow unnecessary constructors.
536
+ * @see {@link https://eslint.org/docs/latest/rules/no-useless-constructor}
537
+ */
102
538
  "no-useless-constructor": "error",
539
+ /**
540
+ * Disallow renaming import, export, and destructured assignments to the same name.
541
+ * @fixable
542
+ * @see {@link https://eslint.org/docs/latest/rules/no-useless-rename}
543
+ */
103
544
  "no-useless-rename": "error",
545
+ /**
546
+ * Disallow redundant return statements.
547
+ * @fixable
548
+ * @see {@link https://eslint.org/docs/latest/rules/no-useless-return}
549
+ */
104
550
  "no-useless-return": "error",
551
+ /**
552
+ * Require let or const instead of var.
553
+ * @fixable
554
+ * @see {@link https://eslint.org/docs/latest/rules/no-var}
555
+ */
105
556
  "no-var": "error",
557
+ /**
558
+ * Disallow void operators.
559
+ * @see {@link https://eslint.org/docs/latest/rules/no-void}
560
+ */
561
+ /**
562
+ * Disallow specified warning terms in comments.
563
+ * @see {@link https://eslint.org/docs/latest/rules/no-warning-comments}
564
+ */
565
+ /**
566
+ * Require or disallow method and property shorthand syntax for object literals.
567
+ * @fixable
568
+ * @see {@link https://eslint.org/docs/latest/rules/object-shorthand}
569
+ */
106
570
  "object-shorthand": "error",
571
+ /**
572
+ * Enforce variables to be declared either together or separately in functions.
573
+ * @fixable
574
+ * @see {@link https://eslint.org/docs/latest/rules/one-var}
575
+ */
576
+ /**
577
+ * Require or disallow assignment operator shorthand where possible.
578
+ * @fixable
579
+ * @see {@link https://eslint.org/docs/latest/rules/operator-assignment}
580
+ */
107
581
  "operator-assignment": "error",
582
+ /**
583
+ * Require using arrow functions for callbacks.
584
+ * @fixable
585
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-arrow-callback}
586
+ */
108
587
  "prefer-arrow-callback": "error",
588
+ /**
589
+ * Require const declarations for variables that are never reassigned after declared.
590
+ * @fixable
591
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-const}
592
+ */
109
593
  "prefer-const": ["error", { ignoreReadBeforeAssign: true }],
594
+ /**
595
+ * Require destructuring from arrays and/or objects.
596
+ * @fixable
597
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-destructuring}
598
+ */
110
599
  "prefer-destructuring": "error",
600
+ /**
601
+ * Disallow the use of Math.pow in favor of the ** operator.
602
+ * @fixable
603
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-exponentiation-operator}
604
+ */
111
605
  "prefer-exponentiation-operator": "error",
606
+ /**
607
+ * Enforce using named capture group in regular expression.
608
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-named-capture-group}
609
+ */
112
610
  "prefer-named-capture-group": "error",
611
+ /**
612
+ * Disallow parseInt() and Number.parseInt() in favor of binary, octal, and hexadecimal literals.
613
+ * @fixable
614
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-numeric-literals}
615
+ */
113
616
  "prefer-numeric-literals": "error",
617
+ /**
618
+ * Disallow use of Object.prototype.hasOwnProperty.call() and prefer use of Object.hasOwn().
619
+ * @fixable
620
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-object-has-own}
621
+ */
114
622
  "prefer-object-has-own": "error",
623
+ /**
624
+ * Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead.
625
+ * @fixable
626
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-object-spread}
627
+ */
115
628
  "prefer-object-spread": "error",
629
+ /**
630
+ * Require using Error objects as Promise rejection reasons.
631
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-promise-reject-errors}
632
+ */
116
633
  "prefer-promise-reject-errors": "error",
634
+ /**
635
+ * Disallow use of the RegExp constructor in favor of regular expression literals.
636
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-regex-literals}
637
+ */
117
638
  "prefer-regex-literals": "error",
639
+ /**
640
+ * Require rest parameters instead of arguments.
641
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-rest-params}
642
+ */
118
643
  "prefer-rest-params": "error",
644
+ /**
645
+ * Require spread operators instead of .apply().
646
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-spread}
647
+ */
119
648
  "prefer-spread": "error",
649
+ /**
650
+ * Require template literals instead of string concatenation.
651
+ * @fixable
652
+ * @see {@link https://eslint.org/docs/latest/rules/prefer-template}
653
+ */
120
654
  "prefer-template": "error",
655
+ /**
656
+ * Disallow losing originally caught error when re-throwing custom errors.
657
+ * @see {@link https://eslint.org/docs/latest/rules/preserve-caught-error}
658
+ */
659
+ /**
660
+ * Enforce the consistent use of the radix argument when using parseInt().
661
+ * @see {@link https://eslint.org/docs/latest/rules/radix}
662
+ */
121
663
  "radix": ["error", "as-needed"],
664
+ /**
665
+ * Disallow async functions which have no await expression.
666
+ * @see {@link https://eslint.org/docs/latest/rules/require-await}
667
+ */
122
668
  "require-await": "error",
669
+ /**
670
+ * Enforce the use of u or v flag on regular expressions.
671
+ * @see {@link https://eslint.org/docs/latest/rules/require-unicode-regexp}
672
+ */
123
673
  "require-unicode-regexp": "error",
674
+ /**
675
+ * Enforce sorted import declarations within modules.
676
+ * @fixable
677
+ * @see {@link https://eslint.org/docs/latest/rules/sort-imports}
678
+ */
124
679
  "sort-imports": "error",
680
+ /**
681
+ * Require object keys to be sorted.
682
+ * @see {@link https://eslint.org/docs/latest/rules/sort-keys}
683
+ */
684
+ /**
685
+ * Require variables within the same declaration block to be sorted.
686
+ * @fixable
687
+ * @see {@link https://eslint.org/docs/latest/rules/sort-vars}
688
+ */
689
+ /**
690
+ * Require or disallow strict mode directives.
691
+ * @fixable
692
+ * @see {@link https://eslint.org/docs/latest/rules/strict}
693
+ */
694
+ /**
695
+ * Require symbol descriptions.
696
+ * @see {@link https://eslint.org/docs/latest/rules/symbol-description}
697
+ */
125
698
  "symbol-description": "error"
126
699
  }
127
700
  });
@@ -148,22 +721,243 @@ const importXConfig = defineConfig([{
148
721
  extends: [importX.flatConfigs.recommended],
149
722
  settings: { "import-x/resolver-next": [createNodeResolver()] },
150
723
  rules: {
724
+ /**
725
+ * Forbid imported names marked with @deprecated documentation tag.
726
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-deprecated.md}
727
+ */
728
+ /**
729
+ * Forbid empty named import blocks.
730
+ * @fixable
731
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-empty-named-blocks.md}
732
+ */
151
733
  "import-x/no-empty-named-blocks": "error",
734
+ /**
735
+ * Forbid the use of extraneous packages.
736
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-extraneous-dependencies.md}
737
+ */
738
+ /**
739
+ * Forbid the use of mutable exports with var or let.
740
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-mutable-exports.md}
741
+ */
152
742
  "import-x/no-mutable-exports": "error",
743
+ /**
744
+ * Forbid importing a default export by a different name.
745
+ * @config warnings
746
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-rename-default.md}
747
+ */
153
748
  "import-x/no-rename-default": "off",
749
+ /**
750
+ * Forbid modules without exports, or exports without matching import in another module.
751
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-unused-modules.md}
752
+ */
154
753
  "import-x/no-unused-modules": "error",
754
+ /**
755
+ * Forbid AMD require and define calls.
756
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-amd.md}
757
+ */
758
+ /**
759
+ * Forbid CommonJS require calls and module.exports or exports.*.
760
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-commonjs.md}
761
+ */
762
+ /**
763
+ * Forbid import statements with CommonJS module.exports.
764
+ * @fixable
765
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-import-module-exports.md}
766
+ */
767
+ /**
768
+ * Forbid Node.js builtin modules.
769
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-nodejs-modules.md}
770
+ */
771
+ /**
772
+ * Forbid potentially ambiguous parse goal (script vs. module).
773
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/unambiguous.md}
774
+ */
775
+ /**
776
+ * Forbid import of modules using absolute paths.
777
+ * @fixable
778
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-absolute-path.md}
779
+ */
155
780
  "import-x/no-absolute-path": "error",
781
+ /**
782
+ * Forbid a module from importing a module with a dependency path back to itself.
783
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-cycle.md}
784
+ */
156
785
  "import-x/no-cycle": "error",
786
+ /**
787
+ * Forbid require() calls with expressions.
788
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-dynamic-require.md}
789
+ */
790
+ /**
791
+ * Forbid importing the submodules of other modules.
792
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-internal-modules.md}
793
+ */
794
+ /**
795
+ * Forbid importing packages through relative paths.
796
+ * @fixable
797
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-relative-packages.md}
798
+ */
157
799
  "import-x/no-relative-packages": "error",
800
+ /**
801
+ * Forbid importing modules from parent directories.
802
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-relative-parent-imports.md}
803
+ */
804
+ /**
805
+ * Enforce which files can be imported in a given folder.
806
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-restricted-paths.md}
807
+ */
808
+ /**
809
+ * Forbid a module from importing itself.
810
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-self-import.md}
811
+ */
158
812
  "import-x/no-self-import": "error",
813
+ /**
814
+ * Forbid unnecessary path segments in import and require statements.
815
+ * @fixable
816
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-useless-path-segments.md}
817
+ */
159
818
  "import-x/no-useless-path-segments": "error",
819
+ /**
820
+ * Forbid webpack loader syntax in imports.
821
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-webpack-loader-syntax.md}
822
+ */
823
+ /**
824
+ * Enforce or ban the use of inline type-only markers for named imports.
825
+ * @fixable
826
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/consistent-type-specifier-style.md}
827
+ */
160
828
  "import-x/consistent-type-specifier-style": ["error", "prefer-top-level"],
829
+ /**
830
+ * Enforce a leading comment with the webpackChunkName for dynamic imports.
831
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/dynamic-import-chunkname.md}
832
+ */
833
+ /**
834
+ * Ensure all exports appear after other statements.
835
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/exports-last.md}
836
+ */
837
+ /**
838
+ * Ensure consistent use of file extension within the import path.
839
+ * @fixable
840
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/extensions.md}
841
+ */
842
+ /**
843
+ * Ensure all imports appear before other statements.
844
+ * @fixable
845
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/first.md}
846
+ */
161
847
  "import-x/first": "error",
848
+ /**
849
+ * Prefer named exports to be grouped together in a single export declaration.
850
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/group-exports.md}
851
+ */
852
+ /**
853
+ * Replaced by import-x/first.
854
+ * @fixable
855
+ * @deprecated
856
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/imports-first.md}
857
+ */
858
+ /**
859
+ * Enforce the maximum number of dependencies a module can have.
860
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/max-dependencies.md}
861
+ */
862
+ /**
863
+ * Enforce a newline after import statements.
864
+ * @fixable
865
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/newline-after-import.md}
866
+ */
162
867
  "import-x/newline-after-import": "error",
868
+ /**
869
+ * Forbid anonymous values as default exports.
870
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-anonymous-default-export.md}
871
+ */
872
+ /**
873
+ * Forbid default exports.
874
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-default-export.md}
875
+ */
876
+ /**
877
+ * Forbid named default exports.
878
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-named-default.md}
879
+ */
880
+ /**
881
+ * Forbid named exports.
882
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-named-export.md}
883
+ */
884
+ /**
885
+ * Forbid namespace (a.k.a. "wildcard" *) imports.
886
+ * @fixable
887
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-namespace.md}
888
+ */
889
+ /**
890
+ * Forbid unassigned imports.
891
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-unassigned-import.md}
892
+ */
893
+ /**
894
+ * Enforce a convention in module import order.
895
+ * @fixable
896
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/order.md}
897
+ */
898
+ /**
899
+ * Prefer a default export if module exports a single name or multiple names.
900
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/prefer-default-export.md}
901
+ */
902
+ /**
903
+ * Enforce using namespace imports for specific modules, like react/react-dom, etc.
904
+ * @fixable
905
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/prefer-namespace-import.md}
906
+ */
907
+ /**
908
+ * Forbid any invalid exports, i.e. re-export of the same name.
909
+ * @config recommended
910
+ * @config errors
911
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/export.md}
912
+ */
913
+ /**
914
+ * Forbid use of exported name as identifier of default export.
915
+ * @config recommended
916
+ * @config warnings
917
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-named-as-default.md}
918
+ */
163
919
  "import-x/no-named-as-default": "off",
920
+ /**
921
+ * Forbid use of exported name as property of default export.
922
+ * @config recommended
923
+ * @config warnings
924
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-named-as-default-member.md}
925
+ */
164
926
  "import-x/no-named-as-default-member": "off",
927
+ /**
928
+ * Ensure a default export is present, given a default import.
929
+ * @config recommended
930
+ * @config errors
931
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/default.md}
932
+ */
165
933
  "import-x/default": "off",
934
+ /**
935
+ * Ensure named imports correspond to a named export in the remote file.
936
+ * @config recommended
937
+ * @config typescript
938
+ * @config errors
939
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/named.md}
940
+ */
941
+ /**
942
+ * Ensure imported namespaces contain dereferenced properties as they are dereferenced.
943
+ * @config recommended
944
+ * @config errors
945
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/namespace.md}
946
+ */
947
+ /**
948
+ * Ensure imports point to a file/module that can be resolved.
949
+ * @config recommended
950
+ * @config errors
951
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-unresolved.md}
952
+ */
166
953
  "import-x/no-unresolved": "off",
954
+ /**
955
+ * Forbid repeated import of the same module in multiple places.
956
+ * @config recommended
957
+ * @config warnings
958
+ * @fixable
959
+ * @see {@link https://github.com/un-ts/eslint-plugin-import-x/blob/master/docs/rules/no-duplicates.md}
960
+ */
167
961
  "no-duplicate-imports": "off"
168
962
  }
169
963
  }, {
@@ -193,8 +987,33 @@ const perfectionistConfig = defineConfig({
193
987
  name: "perfectionist-config",
194
988
  plugins: { perfectionist },
195
989
  rules: {
990
+ /**
991
+ * Enforce sorted arrays before include method.
992
+ * @fixable
993
+ * @see {@link https://perfectionist.dev/rules/sort-array-includes}
994
+ */
196
995
  "perfectionist/sort-array-includes": "error",
996
+ /**
997
+ * Enforce sorted classes.
998
+ * @fixable
999
+ * @see {@link https://perfectionist.dev/rules/sort-classes}
1000
+ */
1001
+ /**
1002
+ * Enforce sorted decorators.
1003
+ * @fixable
1004
+ * @see {@link https://perfectionist.dev/rules/sort-decorators}
1005
+ */
197
1006
  "perfectionist/sort-decorators": "error",
1007
+ /**
1008
+ * Enforce sorted TypeScript enums.
1009
+ * @fixable
1010
+ * @see {@link https://perfectionist.dev/rules/sort-enums}
1011
+ */
1012
+ /**
1013
+ * Enforce sorted exports.
1014
+ * @fixable
1015
+ * @see {@link https://perfectionist.dev/rules/sort-exports}
1016
+ */
198
1017
  "perfectionist/sort-exports": ["error", {
199
1018
  type: "natural",
200
1019
  order: "asc",
@@ -205,7 +1024,17 @@ const perfectionistConfig = defineConfig({
205
1024
  newlinesBetween: 1,
206
1025
  groups: [["type-export", "export"]]
207
1026
  }],
1027
+ /**
1028
+ * Enforce sorted heritage clauses.
1029
+ * @fixable
1030
+ * @see {@link https://perfectionist.dev/rules/sort-heritage-clauses}
1031
+ */
208
1032
  "perfectionist/sort-heritage-clauses": "error",
1033
+ /**
1034
+ * Enforce sorted imports.
1035
+ * @fixable
1036
+ * @see {@link https://perfectionist.dev/rules/sort-imports}
1037
+ */
209
1038
  "sort-imports": "off",
210
1039
  "perfectionist/sort-imports": ["error", {
211
1040
  type: "natural",
@@ -257,42 +1086,239 @@ const reactConfig = defineConfig({
257
1086
  extends: [react.configs.flat["recommended"], react.configs.flat["jsx-runtime"]],
258
1087
  settings: { react: { version: "detect" } },
259
1088
  rules: {
1089
+ /**
1090
+ * Enforces consistent naming for boolean props.
1091
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/boolean-prop-naming.md}
1092
+ */
260
1093
  "react/boolean-prop-naming": ["error", {
261
1094
  rule: "^(is|has|can|should|as)[A-Z][A-Za-z0-9]*",
262
1095
  validateNested: true
263
1096
  }],
1097
+ /**
1098
+ * Disallow usage of button elements without an explicit type attribute.
1099
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/button-has-type.md}
1100
+ */
264
1101
  "react/button-has-type": "error",
1102
+ /**
1103
+ * Enforce using onChange or readonly attribute when checked is used.
1104
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/checked-requires-onchange-or-readonly.md}
1105
+ */
265
1106
  "react/checked-requires-onchange-or-readonly": "error",
1107
+ /**
1108
+ * Enforce all defaultProps have a corresponding non-required PropType.
1109
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/default-props-match-prop-types.md}
1110
+ */
1111
+ /**
1112
+ * Enforce consistent usage of destructuring assignment of props, state, and context.
1113
+ * @fixable
1114
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/destructuring-assignment.md}
1115
+ */
266
1116
  "react/destructuring-assignment": "error",
1117
+ /**
1118
+ * Disallow certain props on components.
1119
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-component-props.md}
1120
+ */
1121
+ /**
1122
+ * Disallow certain props on DOM Nodes.
1123
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-dom-props.md}
1124
+ */
1125
+ /**
1126
+ * Disallow certain elements.
1127
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-elements.md}
1128
+ */
1129
+ /**
1130
+ * Disallow using another component's propTypes.
1131
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-foreign-prop-types.md}
1132
+ */
1133
+ /**
1134
+ * Disallow certain propTypes.
1135
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-prop-types.md}
1136
+ */
1137
+ /**
1138
+ * Require all forwardRef components include a ref parameter.
1139
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forward-ref-uses-ref.md}
1140
+ */
267
1141
  "react/forward-ref-uses-ref": "error",
1142
+ /**
1143
+ * Enforce a specific function type for function components.
1144
+ * @fixable
1145
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/function-component-definition.md}
1146
+ */
268
1147
  "react/function-component-definition": ["error", {
269
1148
  namedComponents: "arrow-function",
270
1149
  unnamedComponents: "arrow-function"
271
1150
  }],
1151
+ /**
1152
+ * Ensure destructuring and symmetric naming of useState hook value and setter variables.
1153
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/hook-use-state.md}
1154
+ */
272
1155
  "react/hook-use-state": "error",
1156
+ /**
1157
+ * Enforce sandbox attribute on iframe elements.
1158
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/iframe-missing-sandbox.md}
1159
+ */
273
1160
  "react/iframe-missing-sandbox": "error",
1161
+ /**
1162
+ * Enforce boolean attributes notation in JSX.
1163
+ * @fixable
1164
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-boolean-value.md}
1165
+ */
274
1166
  "react/jsx-boolean-value": ["error", "never"],
1167
+ /**
1168
+ * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions.
1169
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-child-element-spacing.md}
1170
+ */
275
1171
  "react/jsx-child-element-spacing": "error",
1172
+ /**
1173
+ * Enforce closing bracket location in JSX.
1174
+ * @fixable
1175
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-closing-bracket-location.md}
1176
+ */
276
1177
  "react/jsx-closing-bracket-location": "error",
1178
+ /**
1179
+ * Enforce closing tag location for multiline JSX.
1180
+ * @fixable
1181
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-closing-tag-location.md}
1182
+ */
277
1183
  "react/jsx-closing-tag-location": "error",
1184
+ /**
1185
+ * Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes.
1186
+ * @fixable
1187
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-curly-brace-presence.md}
1188
+ */
278
1189
  "react/jsx-curly-brace-presence": ["error", "never"],
1190
+ /**
1191
+ * Enforce consistent linebreaks in curly braces in JSX attributes and expressions.
1192
+ * @fixable
1193
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-curly-newline.md}
1194
+ */
279
1195
  "react/jsx-curly-newline": "error",
1196
+ /**
1197
+ * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions.
1198
+ * @fixable
1199
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-curly-spacing.md}
1200
+ */
280
1201
  "react/jsx-curly-spacing": "error",
1202
+ /**
1203
+ * Enforce or disallow spaces around equal signs in JSX attributes.
1204
+ * @fixable
1205
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-equals-spacing.md}
1206
+ */
281
1207
  "react/jsx-equals-spacing": "error",
1208
+ /**
1209
+ * Disallow file extensions that may contain JSX.
1210
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-filename-extension.md}
1211
+ */
1212
+ /**
1213
+ * Enforce proper position of the first property in JSX.
1214
+ * @fixable
1215
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-first-prop-new-line.md}
1216
+ */
282
1217
  "react/jsx-first-prop-new-line": "error",
1218
+ /**
1219
+ * Enforce shorthand or standard form for React fragments.
1220
+ * @fixable
1221
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-fragments.md}
1222
+ */
283
1223
  "react/jsx-fragments": "error",
1224
+ /**
1225
+ * Enforce event handler naming conventions in JSX.
1226
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-handler-names.md}
1227
+ */
284
1228
  "react/jsx-handler-names": "error",
1229
+ /**
1230
+ * Enforce JSX indentation.
1231
+ * @fixable
1232
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-indent.md}
1233
+ */
285
1234
  "react/jsx-indent": "error",
1235
+ /**
1236
+ * Enforce props indentation in JSX.
1237
+ * @fixable
1238
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-indent-props.md}
1239
+ */
286
1240
  "react/jsx-indent-props": "error",
1241
+ /**
1242
+ * Enforce JSX maximum depth.
1243
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-max-depth.md}
1244
+ */
1245
+ /**
1246
+ * Enforce maximum of props on a single line in JSX.
1247
+ * @fixable
1248
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-max-props-per-line.md}
1249
+ */
1250
+ /**
1251
+ * Require or prevent a new line after jsx elements and expressions.
1252
+ * @fixable
1253
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-newline.md}
1254
+ */
1255
+ /**
1256
+ * Disallow .bind() or arrow functions in JSX props.
1257
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md}
1258
+ */
287
1259
  "react/jsx-no-bind": "error",
1260
+ /**
1261
+ * Disallows JSX context provider values from taking values that will cause needless rerenders.
1262
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-constructed-context-values.md}
1263
+ */
288
1264
  "react/jsx-no-constructed-context-values": "error",
1265
+ /**
1266
+ * Disallow problematic leaked values from being rendered.
1267
+ * @fixable
1268
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-leaked-render.md}
1269
+ */
289
1270
  "react/jsx-no-leaked-render": "error",
1271
+ /**
1272
+ * Disallow usage of string literals in JSX.
1273
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-literals.md}
1274
+ */
1275
+ /**
1276
+ * Disallow usage of javascript: URLs.
1277
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-script-url.md}
1278
+ */
290
1279
  "react/jsx-no-script-url": "error",
1280
+ /**
1281
+ * Disallow unnecessary fragments.
1282
+ * @fixable
1283
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-useless-fragment.md}
1284
+ */
291
1285
  "react/jsx-no-useless-fragment": "error",
1286
+ /**
1287
+ * Require one JSX element per line.
1288
+ * @fixable
1289
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-one-expression-per-line.md}
1290
+ */
292
1291
  "react/jsx-one-expression-per-line": "error",
1292
+ /**
1293
+ * Enforce PascalCase for user-defined JSX components.
1294
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-pascal-case.md}
1295
+ */
293
1296
  "react/jsx-pascal-case": "error",
1297
+ /**
1298
+ * Disallow multiple spaces between inline JSX props.
1299
+ * @fixable
1300
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-multi-spaces.md}
1301
+ */
294
1302
  "react/jsx-props-no-multi-spaces": "error",
1303
+ /**
1304
+ * Disallow JSX prop spreading the same identifier multiple times.
1305
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-spread-multi.md}
1306
+ */
295
1307
  "react/jsx-props-no-spread-multi": "error",
1308
+ /**
1309
+ * Disallow JSX prop spreading.
1310
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-spreading.md}
1311
+ */
1312
+ /**
1313
+ * Enforce defaultProps declarations alphabetical sorting.
1314
+ * @deprecated
1315
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-sort-default-props.md}
1316
+ */
1317
+ /**
1318
+ * Enforce props alphabetical sorting.
1319
+ * @fixable
1320
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-sort-props.md}
1321
+ */
296
1322
  "react/jsx-sort-props": ["error", {
297
1323
  callbacksLast: true,
298
1324
  shorthandLast: true,
@@ -301,38 +1327,194 @@ const reactConfig = defineConfig({
301
1327
  noSortAlphabetically: false,
302
1328
  reservedFirst: true
303
1329
  }],
1330
+ /**
1331
+ * Enforce spacing before closing bracket in JSX.
1332
+ * @fixable
1333
+ * @deprecated
1334
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-space-before-closing.md}
1335
+ */
1336
+ /**
1337
+ * Enforce whitespace in and around the JSX opening and closing brackets.
1338
+ * @fixable
1339
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-tag-spacing.md}
1340
+ */
304
1341
  "react/jsx-tag-spacing": "error",
1342
+ /**
1343
+ * Disallow missing parentheses around multiline JSX.
1344
+ * @fixable
1345
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-wrap-multilines.md}
1346
+ */
305
1347
  "react/jsx-wrap-multilines": "error",
1348
+ /**
1349
+ * Disallow when this.state is accessed within setState.
1350
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-access-state-in-setstate.md}
1351
+ */
306
1352
  "react/no-access-state-in-setstate": "error",
1353
+ /**
1354
+ * Disallow adjacent inline elements not separated by whitespace.
1355
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-adjacent-inline-elements.md}
1356
+ */
307
1357
  "react/no-adjacent-inline-elements": "error",
1358
+ /**
1359
+ * Disallow usage of Array index in keys.
1360
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-array-index-key.md}
1361
+ */
308
1362
  "react/no-array-index-key": "error",
1363
+ /**
1364
+ * Lifecycle methods should be methods on the prototype, not class fields.
1365
+ * @fixable
1366
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-arrow-function-lifecycle.md}
1367
+ */
309
1368
  "react/no-arrow-function-lifecycle": "error",
1369
+ /**
1370
+ * Disallow usage of dangerous JSX properties.
1371
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-danger.md}
1372
+ */
310
1373
  "react/no-danger": "error",
1374
+ /**
1375
+ * Disallow usage of setState in componentDidMount.
1376
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-did-mount-set-state.md}
1377
+ */
311
1378
  "react/no-did-mount-set-state": "error",
1379
+ /**
1380
+ * Disallow usage of setState in componentDidUpdate.
1381
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-did-update-set-state.md}
1382
+ */
312
1383
  "react/no-did-update-set-state": "error",
1384
+ /**
1385
+ * Disallow usage of invalid attributes.
1386
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-invalid-html-attribute.md}
1387
+ */
313
1388
  "react/no-invalid-html-attribute": "error",
1389
+ /**
1390
+ * Disallow multiple component definition per file.
1391
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-multi-comp.md}
1392
+ */
1393
+ /**
1394
+ * Enforce that namespaces are not used in React elements.
1395
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-namespace.md}
1396
+ */
314
1397
  "react/no-namespace": "error",
1398
+ /**
1399
+ * Disallow usage of referential-type variables as default param in functional component.
1400
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-object-type-as-default-prop.md}
1401
+ */
315
1402
  "react/no-object-type-as-default-prop": "error",
1403
+ /**
1404
+ * Disallow usage of shouldComponentUpdate when extending React.PureComponent.
1405
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-redundant-should-component-update.md}
1406
+ */
316
1407
  "react/no-redundant-should-component-update": "error",
1408
+ /**
1409
+ * Disallow usage of setState.
1410
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-set-state.md}
1411
+ */
317
1412
  "react/no-set-state": "error",
1413
+ /**
1414
+ * Disallow this from being used in stateless functional components.
1415
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-this-in-sfc.md}
1416
+ */
318
1417
  "react/no-this-in-sfc": "error",
1418
+ /**
1419
+ * Disallow common typos.
1420
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-typos.md}
1421
+ */
319
1422
  "react/no-typos": "error",
1423
+ /**
1424
+ * Disallow creating unstable components inside components.
1425
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unstable-nested-components.md}
1426
+ */
320
1427
  "react/no-unstable-nested-components": "error",
1428
+ /**
1429
+ * Disallow declaring unused methods of component class.
1430
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unused-class-component-methods.md}
1431
+ */
321
1432
  "react/no-unused-class-component-methods": "error",
1433
+ /**
1434
+ * Disallow definitions of unused propTypes.
1435
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unused-prop-types.md}
1436
+ */
322
1437
  "react/no-unused-prop-types": "error",
1438
+ /**
1439
+ * Disallow definitions of unused state.
1440
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unused-state.md}
1441
+ */
323
1442
  "react/no-unused-state": "error",
1443
+ /**
1444
+ * Disallow usage of setState in componentWillUpdate.
1445
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-will-update-set-state.md}
1446
+ */
324
1447
  "react/no-will-update-set-state": "error",
1448
+ /**
1449
+ * Enforce ES5 or ES6 class for React Components.
1450
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prefer-es6-class.md}
1451
+ */
325
1452
  "react/prefer-es6-class": "error",
1453
+ /**
1454
+ * Prefer exact proptype definitions.
1455
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prefer-exact-props.md}
1456
+ */
326
1457
  "react/prefer-exact-props": "error",
1458
+ /**
1459
+ * Enforce that props are read-only.
1460
+ * @fixable
1461
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prefer-read-only-props.md}
1462
+ */
327
1463
  "react/prefer-read-only-props": "error",
1464
+ /**
1465
+ * Enforce stateless components to be written as a pure function.
1466
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prefer-stateless-function.md}
1467
+ */
328
1468
  "react/prefer-stateless-function": "error",
1469
+ /**
1470
+ * Enforce a defaultProps definition for every prop that is not a required prop.
1471
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/require-default-props.md}
1472
+ */
1473
+ /**
1474
+ * Enforce React components to have a shouldComponentUpdate method.
1475
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/require-optimization.md}
1476
+ */
329
1477
  "react/require-optimization": "error",
1478
+ /**
1479
+ * Disallow extra closing tags for components without children.
1480
+ * @fixable
1481
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/self-closing-comp.md}
1482
+ */
330
1483
  "react/self-closing-comp": "error",
1484
+ /**
1485
+ * Enforce component methods order.
1486
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/sort-comp.md}
1487
+ */
331
1488
  "react/sort-comp": "error",
1489
+ /**
1490
+ * Enforce defaultProps declarations alphabetical sorting.
1491
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/sort-default-props.md}
1492
+ */
332
1493
  "react/sort-default-props": "error",
1494
+ /**
1495
+ * Enforce propTypes declarations alphabetical sorting.
1496
+ * @fixable
1497
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/sort-prop-types.md}
1498
+ */
333
1499
  "react/sort-prop-types": "error",
1500
+ /**
1501
+ * Enforce class component state initialization style.
1502
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/state-in-constructor.md}
1503
+ */
334
1504
  "react/state-in-constructor": "error",
1505
+ /**
1506
+ * Enforces where React component static properties should be positioned.
1507
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/static-property-placement.md}
1508
+ */
335
1509
  "react/static-property-placement": "error",
1510
+ /**
1511
+ * Enforce style prop value is an object.
1512
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/style-prop-object.md}
1513
+ */
1514
+ /**
1515
+ * Disallow void DOM elements (e.g. <img />, <br />) from receiving children.
1516
+ * @see {@link https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/void-dom-elements-no-children.md}
1517
+ */
336
1518
  "react/void-dom-elements-no-children": "error"
337
1519
  }
338
1520
  });
@@ -355,7 +1537,435 @@ const reactHooksConfig = defineConfig({
355
1537
  const stylisticConfig = defineConfig({
356
1538
  name: "stylistic-config",
357
1539
  plugins: { "@stylistic": stylistic },
358
- rules: { "@stylistic/quotes": [
1540
+ rules: {
1541
+ /**
1542
+ * Enforce linebreaks after opening and before closing array brackets.
1543
+ * @fixable
1544
+ * @see {@link https://eslint.style/rules/array-bracket-newline}
1545
+ */
1546
+ /**
1547
+ * Enforce consistent spacing inside array brackets.
1548
+ * @config recommended
1549
+ * @fixable
1550
+ * @see {@link https://eslint.style/rules/array-bracket-spacing}
1551
+ */
1552
+ /**
1553
+ * Enforce line breaks after each array element.
1554
+ * @fixable
1555
+ * @see {@link https://eslint.style/rules/array-element-newline}
1556
+ */
1557
+ /**
1558
+ * Require parentheses around arrow function arguments.
1559
+ * @config recommended
1560
+ * @fixable
1561
+ * @see {@link https://eslint.style/rules/arrow-parens}
1562
+ */
1563
+ /**
1564
+ * Enforce consistent spacing before and after the arrow in arrow functions.
1565
+ * @config recommended
1566
+ * @fixable
1567
+ * @see {@link https://eslint.style/rules/arrow-spacing}
1568
+ */
1569
+ /**
1570
+ * Disallow or enforce spaces inside of blocks after opening block and before closing block.
1571
+ * @config recommended
1572
+ * @fixable
1573
+ * @see {@link https://eslint.style/rules/block-spacing}
1574
+ */
1575
+ /**
1576
+ * Enforce consistent brace style for blocks.
1577
+ * @config recommended
1578
+ * @fixable
1579
+ * @see {@link https://eslint.style/rules/brace-style}
1580
+ */
1581
+ /**
1582
+ * Require or disallow trailing commas.
1583
+ * @config recommended
1584
+ * @fixable
1585
+ * @see {@link https://eslint.style/rules/comma-dangle}
1586
+ */
1587
+ /**
1588
+ * Enforce consistent spacing before and after commas.
1589
+ * @config recommended
1590
+ * @fixable
1591
+ * @see {@link https://eslint.style/rules/comma-spacing}
1592
+ */
1593
+ /**
1594
+ * Enforce consistent comma style.
1595
+ * @config recommended
1596
+ * @fixable
1597
+ * @see {@link https://eslint.style/rules/comma-style}
1598
+ */
1599
+ /**
1600
+ * Enforce consistent spacing inside computed property brackets.
1601
+ * @config recommended
1602
+ * @fixable
1603
+ * @see {@link https://eslint.style/rules/computed-property-spacing}
1604
+ */
1605
+ /**
1606
+ * Enforce consistent line breaks after opening and before closing braces.
1607
+ * @fixable
1608
+ * @see {@link https://eslint.style/rules/curly-newline}
1609
+ */
1610
+ /**
1611
+ * Enforce consistent newlines before and after dots.
1612
+ * @config recommended
1613
+ * @fixable
1614
+ * @see {@link https://eslint.style/rules/dot-location}
1615
+ */
1616
+ /**
1617
+ * Require or disallow newline at the end of files.
1618
+ * @config recommended
1619
+ * @fixable
1620
+ * @see {@link https://eslint.style/rules/eol-last}
1621
+ */
1622
+ /**
1623
+ * Enforce line breaks between arguments of a function call.
1624
+ * @fixable
1625
+ * @see {@link https://eslint.style/rules/function-call-argument-newline}
1626
+ */
1627
+ /**
1628
+ * Require or disallow spacing between function identifiers and their invocations.
1629
+ * @fixable
1630
+ * @see {@link https://eslint.style/rules/function-call-spacing}
1631
+ */
1632
+ /**
1633
+ * Enforce consistent line breaks inside function parentheses.
1634
+ * @fixable
1635
+ * @see {@link https://eslint.style/rules/function-paren-newline}
1636
+ */
1637
+ /**
1638
+ * Enforce consistent spacing around `*` operators in generator functions.
1639
+ * @config recommended
1640
+ * @fixable
1641
+ * @see {@link https://eslint.style/rules/generator-star-spacing}
1642
+ */
1643
+ /**
1644
+ * Enforce the location of arrow function bodies.
1645
+ * @fixable
1646
+ * @see {@link https://eslint.style/rules/implicit-arrow-linebreak}
1647
+ */
1648
+ /**
1649
+ * Enforce consistent indentation.
1650
+ * @config recommended
1651
+ * @fixable
1652
+ * @see {@link https://eslint.style/rules/indent}
1653
+ */
1654
+ /**
1655
+ * Indentation for binary operators.
1656
+ * @config recommended
1657
+ * @fixable
1658
+ * @see {@link https://eslint.style/rules/indent-binary-ops}
1659
+ */
1660
+ /**
1661
+ * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions.
1662
+ * @see {@link https://eslint.style/rules/jsx-child-element-spacing}
1663
+ */
1664
+ /**
1665
+ * Enforce closing bracket location in JSX.
1666
+ * @config recommended
1667
+ * @fixable
1668
+ * @see {@link https://eslint.style/rules/jsx-closing-bracket-location}
1669
+ */
1670
+ /**
1671
+ * Enforce closing tag location for multiline JSX.
1672
+ * @config recommended
1673
+ * @fixable
1674
+ * @see {@link https://eslint.style/rules/jsx-closing-tag-location}
1675
+ */
1676
+ /**
1677
+ * Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes.
1678
+ * @config recommended
1679
+ * @fixable
1680
+ * @see {@link https://eslint.style/rules/jsx-curly-brace-presence}
1681
+ */
1682
+ /**
1683
+ * Enforce consistent linebreaks in curly braces in JSX attributes and expressions.
1684
+ * @config recommended
1685
+ * @fixable
1686
+ * @see {@link https://eslint.style/rules/jsx-curly-newline}
1687
+ */
1688
+ /**
1689
+ * Enforce or disallow spaces inside of curly braces in JSX attributes and expressions.
1690
+ * @config recommended
1691
+ * @fixable
1692
+ * @see {@link https://eslint.style/rules/jsx-curly-spacing}
1693
+ */
1694
+ /**
1695
+ * Enforce or disallow spaces around equal signs in JSX attributes.
1696
+ * @config recommended
1697
+ * @fixable
1698
+ * @see {@link https://eslint.style/rules/jsx-equals-spacing}
1699
+ */
1700
+ /**
1701
+ * Enforce proper position of the first property in JSX.
1702
+ * @config recommended
1703
+ * @fixable
1704
+ * @see {@link https://eslint.style/rules/jsx-first-prop-new-line}
1705
+ */
1706
+ /**
1707
+ * Enforce line breaks before and after JSX elements when they are used as arguments to a function.
1708
+ * @config recommended
1709
+ * @fixable
1710
+ * @see {@link https://eslint.style/rules/jsx-function-call-newline}
1711
+ */
1712
+ /**
1713
+ * Enforce JSX indentation. Deprecated, use `indent` rule instead.
1714
+ * @fixable
1715
+ * @see {@link https://eslint.style/rules/jsx-indent}
1716
+ */
1717
+ /**
1718
+ * Enforce props indentation in JSX.
1719
+ * @config recommended
1720
+ * @fixable
1721
+ * @see {@link https://eslint.style/rules/jsx-indent-props}
1722
+ */
1723
+ /**
1724
+ * Enforce maximum of props on a single line in JSX.
1725
+ * @config recommended
1726
+ * @fixable
1727
+ * @see {@link https://eslint.style/rules/jsx-max-props-per-line}
1728
+ */
1729
+ /**
1730
+ * Require or prevent a new line after jsx elements and expressions.
1731
+ * @fixable
1732
+ * @see {@link https://eslint.style/rules/jsx-newline}
1733
+ */
1734
+ /**
1735
+ * Require one JSX element per line.
1736
+ * @config recommended
1737
+ * @fixable
1738
+ * @see {@link https://eslint.style/rules/jsx-one-expression-per-line}
1739
+ */
1740
+ /**
1741
+ * Enforce PascalCase for user-defined JSX components.
1742
+ * @see {@link https://eslint.style/rules/jsx-pascal-case}
1743
+ */
1744
+ /**
1745
+ * Disallow multiple spaces between inline JSX props. Deprecated, use `no-multi-spaces` rule instead.
1746
+ * @fixable
1747
+ * @see {@link https://eslint.style/rules/jsx-props-no-multi-spaces}
1748
+ */
1749
+ /**
1750
+ * Enforce the consistent use of either double or single quotes in JSX attributes.
1751
+ * @config recommended
1752
+ * @fixable
1753
+ * @see {@link https://eslint.style/rules/jsx-quotes}
1754
+ */
1755
+ /**
1756
+ * Disallow extra closing tags for components without children.
1757
+ * @fixable
1758
+ * @see {@link https://eslint.style/rules/jsx-self-closing-comp}
1759
+ */
1760
+ /**
1761
+ * Enforce props alphabetical sorting.
1762
+ * @fixable
1763
+ * @see {@link https://eslint.style/rules/jsx-sort-props}
1764
+ */
1765
+ /**
1766
+ * Enforce whitespace in and around the JSX opening and closing brackets.
1767
+ * @config recommended
1768
+ * @fixable
1769
+ * @see {@link https://eslint.style/rules/jsx-tag-spacing}
1770
+ */
1771
+ /**
1772
+ * Disallow missing parentheses around multiline JSX.
1773
+ * @config recommended
1774
+ * @fixable
1775
+ * @see {@link https://eslint.style/rules/jsx-wrap-multilines}
1776
+ */
1777
+ /**
1778
+ * Enforce consistent spacing between property names and type annotations in types and interfaces.
1779
+ * @config recommended
1780
+ * @fixable
1781
+ * @see {@link https://eslint.style/rules/key-spacing}
1782
+ */
1783
+ /**
1784
+ * Enforce consistent spacing before and after keywords.
1785
+ * @config recommended
1786
+ * @fixable
1787
+ * @see {@link https://eslint.style/rules/keyword-spacing}
1788
+ */
1789
+ /**
1790
+ * Enforce position of line comments.
1791
+ * @see {@link https://eslint.style/rules/line-comment-position}
1792
+ */
1793
+ /**
1794
+ * Enforce consistent linebreak style.
1795
+ * @fixable
1796
+ * @see {@link https://eslint.style/rules/linebreak-style}
1797
+ */
1798
+ /**
1799
+ * Require empty lines around comments.
1800
+ * @fixable
1801
+ * @see {@link https://eslint.style/rules/lines-around-comment}
1802
+ */
1803
+ /**
1804
+ * Require or disallow an empty line between class members.
1805
+ * @config recommended
1806
+ * @fixable
1807
+ * @see {@link https://eslint.style/rules/lines-between-class-members}
1808
+ */
1809
+ /**
1810
+ * Enforce consistent spacing and line break styles inside brackets.
1811
+ * @fixable
1812
+ * @experimental
1813
+ * @see {@link https://eslint.style/rules/list-style}
1814
+ */
1815
+ /**
1816
+ * Enforce a maximum line length.
1817
+ * @see {@link https://eslint.style/rules/max-len}
1818
+ */
1819
+ /**
1820
+ * Enforce a maximum number of statements allowed per line.
1821
+ * @config recommended
1822
+ * @see {@link https://eslint.style/rules/max-statements-per-line}
1823
+ */
1824
+ /**
1825
+ * Require a specific member delimiter style for interfaces and type literals.
1826
+ * @config recommended
1827
+ * @fixable
1828
+ * @see {@link https://eslint.style/rules/member-delimiter-style}
1829
+ */
1830
+ /**
1831
+ * Enforce a particular style for multiline comments.
1832
+ * @fixable
1833
+ * @see {@link https://eslint.style/rules/multiline-comment-style}
1834
+ */
1835
+ /**
1836
+ * Enforce newlines between operands of ternary expressions.
1837
+ * @config recommended
1838
+ * @fixable
1839
+ * @see {@link https://eslint.style/rules/multiline-ternary}
1840
+ */
1841
+ /**
1842
+ * Enforce or disallow parentheses when invoking a constructor with no arguments.
1843
+ * @config recommended
1844
+ * @fixable
1845
+ * @see {@link https://eslint.style/rules/new-parens}
1846
+ */
1847
+ /**
1848
+ * Require a newline after each call in a method chain.
1849
+ * @fixable
1850
+ * @see {@link https://eslint.style/rules/newline-per-chained-call}
1851
+ */
1852
+ /**
1853
+ * Disallow arrow functions where they could be confused with comparisons.
1854
+ * @fixable
1855
+ * @see {@link https://eslint.style/rules/no-confusing-arrow}
1856
+ */
1857
+ /**
1858
+ * Disallow unnecessary parentheses.
1859
+ * @config recommended
1860
+ * @fixable
1861
+ * @see {@link https://eslint.style/rules/no-extra-parens}
1862
+ */
1863
+ /**
1864
+ * Disallow unnecessary semicolons.
1865
+ * @fixable
1866
+ * @see {@link https://eslint.style/rules/no-extra-semi}
1867
+ */
1868
+ /**
1869
+ * Disallow leading or trailing decimal points in numeric literals.
1870
+ * @config recommended
1871
+ * @fixable
1872
+ * @see {@link https://eslint.style/rules/no-floating-decimal}
1873
+ */
1874
+ /**
1875
+ * Disallow mixed binary operators.
1876
+ * @config recommended
1877
+ * @see {@link https://eslint.style/rules/no-mixed-operators}
1878
+ */
1879
+ /**
1880
+ * Disallow mixed spaces and tabs for indentation.
1881
+ * @config recommended
1882
+ * @see {@link https://eslint.style/rules/no-mixed-spaces-and-tabs}
1883
+ */
1884
+ /**
1885
+ * Disallow multiple spaces.
1886
+ * @config recommended
1887
+ * @fixable
1888
+ * @see {@link https://eslint.style/rules/no-multi-spaces}
1889
+ */
1890
+ /**
1891
+ * Disallow multiple empty lines.
1892
+ * @config recommended
1893
+ * @fixable
1894
+ * @see {@link https://eslint.style/rules/no-multiple-empty-lines}
1895
+ */
1896
+ /**
1897
+ * Disallow all tabs.
1898
+ * @config recommended
1899
+ * @see {@link https://eslint.style/rules/no-tabs}
1900
+ */
1901
+ /**
1902
+ * Disallow trailing whitespace at the end of lines.
1903
+ * @config recommended
1904
+ * @fixable
1905
+ * @see {@link https://eslint.style/rules/no-trailing-spaces}
1906
+ */
1907
+ /**
1908
+ * Disallow whitespace before properties.
1909
+ * @config recommended
1910
+ * @fixable
1911
+ * @see {@link https://eslint.style/rules/no-whitespace-before-property}
1912
+ */
1913
+ /**
1914
+ * Enforce the location of single-line statements.
1915
+ * @fixable
1916
+ * @see {@link https://eslint.style/rules/nonblock-statement-body-position}
1917
+ */
1918
+ /**
1919
+ * Enforce consistent line breaks after opening and before closing braces.
1920
+ * @fixable
1921
+ * @see {@link https://eslint.style/rules/object-curly-newline}
1922
+ */
1923
+ /**
1924
+ * Enforce consistent spacing inside braces.
1925
+ * @config recommended
1926
+ * @fixable
1927
+ * @see {@link https://eslint.style/rules/object-curly-spacing}
1928
+ */
1929
+ /**
1930
+ * Enforce placing object properties on separate lines.
1931
+ * @fixable
1932
+ * @see {@link https://eslint.style/rules/object-property-newline}
1933
+ */
1934
+ /**
1935
+ * Require or disallow newlines around variable declarations.
1936
+ * @fixable
1937
+ * @see {@link https://eslint.style/rules/one-var-declaration-per-line}
1938
+ */
1939
+ /**
1940
+ * Enforce consistent linebreak style for operators.
1941
+ * @config recommended
1942
+ * @fixable
1943
+ * @see {@link https://eslint.style/rules/operator-linebreak}
1944
+ */
1945
+ /**
1946
+ * Require or disallow padding within blocks.
1947
+ * @config recommended
1948
+ * @fixable
1949
+ * @see {@link https://eslint.style/rules/padded-blocks}
1950
+ */
1951
+ /**
1952
+ * Require or disallow padding lines between statements.
1953
+ * @fixable
1954
+ * @see {@link https://eslint.style/rules/padding-line-between-statements}
1955
+ */
1956
+ /**
1957
+ * Require quotes around object literal, type literal, interfaces and enums property names.
1958
+ * @config recommended
1959
+ * @fixable
1960
+ * @see {@link https://eslint.style/rules/quote-props}
1961
+ */
1962
+ /**
1963
+ * Enforce the consistent use of either backticks, double, or single quotes.
1964
+ * @config recommended
1965
+ * @fixable
1966
+ * @see {@link https://eslint.style/rules/quotes}
1967
+ */
1968
+ "@stylistic/quotes": [
359
1969
  "error",
360
1970
  "single",
361
1971
  {
@@ -376,10 +1986,46 @@ const typescriptConfig = defineConfig([{
376
1986
  extends: [tseslint.configs.strictTypeChecked, tseslint.configs.stylisticTypeChecked],
377
1987
  languageOptions: { parserOptions: { projectService: true } },
378
1988
  rules: {
1989
+ /**
1990
+ * Enforce that class methods utilize this.
1991
+ * @extension
1992
+ * @see {@link https://typescript-eslint.io/rules/class-methods-use-this}
1993
+ */
1994
+ /**
1995
+ * Require return statements to either always or never specify values.
1996
+ * @typeChecked
1997
+ * @extension
1998
+ * @see {@link https://typescript-eslint.io/rules/consistent-return}
1999
+ */
2000
+ /**
2001
+ * Enforce consistent usage of type exports.
2002
+ * @fixable
2003
+ * @typeChecked
2004
+ * @see {@link https://typescript-eslint.io/rules/consistent-type-exports}
2005
+ */
379
2006
  "@typescript-eslint/consistent-type-exports": "error",
2007
+ /**
2008
+ * Enforce consistent usage of type imports.
2009
+ * @fixable
2010
+ * @see {@link https://typescript-eslint.io/rules/consistent-type-imports}
2011
+ */
380
2012
  "@typescript-eslint/consistent-type-imports": "error",
2013
+ /**
2014
+ * Enforce default parameters to be last.
2015
+ * @extension
2016
+ * @see {@link https://typescript-eslint.io/rules/default-param-last}
2017
+ */
381
2018
  "default-param-last": "off",
382
2019
  "@typescript-eslint/default-param-last": "error",
2020
+ /**
2021
+ * Require explicit return types on functions and class methods.
2022
+ * @see {@link https://typescript-eslint.io/rules/explicit-function-return-type}
2023
+ */
2024
+ /**
2025
+ * Require explicit accessibility modifiers on class properties and methods.
2026
+ * @fixable
2027
+ * @see {@link https://typescript-eslint.io/rules/explicit-member-accessibility}
2028
+ */
383
2029
  "@typescript-eslint/explicit-member-accessibility": ["error", {
384
2030
  accessibility: "explicit",
385
2031
  overrides: {
@@ -390,6 +2036,24 @@ const typescriptConfig = defineConfig([{
390
2036
  parameterProperties: "no-public"
391
2037
  }
392
2038
  }],
2039
+ /**
2040
+ * Require explicit return and argument types on exported functions' and classes' public class methods.
2041
+ * @see {@link https://typescript-eslint.io/rules/explicit-module-boundary-types}
2042
+ */
2043
+ /**
2044
+ * Require or disallow initialization in variable declarations.
2045
+ * @extension
2046
+ * @see {@link https://typescript-eslint.io/rules/init-declarations}
2047
+ */
2048
+ /**
2049
+ * Enforce a maximum number of parameters in function definitions.
2050
+ * @extension
2051
+ * @see {@link https://typescript-eslint.io/rules/max-params}
2052
+ */
2053
+ /**
2054
+ * Require a consistent member declaration order.
2055
+ * @see {@link https://typescript-eslint.io/rules/member-ordering}
2056
+ */
393
2057
  "@typescript-eslint/member-ordering": ["error", { default: [
394
2058
  "signature",
395
2059
  "call-signature",
@@ -470,7 +2134,17 @@ const typescriptConfig = defineConfig([{
470
2134
  "abstract-method",
471
2135
  "method"
472
2136
  ] }],
2137
+ /**
2138
+ * Enforce using a particular method signature syntax.
2139
+ * @fixable
2140
+ * @see {@link https://typescript-eslint.io/rules/method-signature-style}
2141
+ */
473
2142
  "@typescript-eslint/method-signature-style": "error",
2143
+ /**
2144
+ * Enforce naming conventions for everything across a codebase.
2145
+ * @typeChecked
2146
+ * @see {@link https://typescript-eslint.io/rules/naming-convention}
2147
+ */
474
2148
  "@typescript-eslint/naming-convention": [
475
2149
  "error",
476
2150
  {
@@ -498,34 +2172,554 @@ const typescriptConfig = defineConfig([{
498
2172
  format: ["PascalCase"]
499
2173
  }
500
2174
  ],
2175
+ /**
2176
+ * Disallow duplicate class members.
2177
+ * @extension
2178
+ * @see {@link https://typescript-eslint.io/rules/no-dupe-class-members}
2179
+ */
2180
+ /**
2181
+ * Disallow the declaration of empty interfaces.
2182
+ * @fixable
2183
+ * @deprecated
2184
+ * @see {@link https://typescript-eslint.io/rules/no-empty-interface}
2185
+ */
2186
+ /**
2187
+ * Enforce the use of top-level import type qualifier when an import only has specifiers with inline type qualifiers.
2188
+ * @fixable
2189
+ * @see {@link https://typescript-eslint.io/rules/no-import-type-side-effects}
2190
+ */
501
2191
  "@typescript-eslint/no-import-type-side-effects": "error",
2192
+ /**
2193
+ * Disallow.
2194
+ * @extension
2195
+ * @see {@link https://typescript-eslint.io/rules/no-invalid-this}
2196
+ */
502
2197
  "no-invalid-this": "off",
503
2198
  "@typescript-eslint/no-invalid-this": "error",
2199
+ /**
2200
+ * Disallow function declarations that contain unsafe references inside loop statements.
2201
+ * @extension
2202
+ * @see {@link https://typescript-eslint.io/rules/no-loop-func}
2203
+ */
504
2204
  "no-loop-func": "off",
505
2205
  "@typescript-eslint/no-loop-func": "error",
2206
+ /**
2207
+ * Disallow literal numbers that lose precision.
2208
+ * @extension
2209
+ * @deprecated
2210
+ * @see {@link https://typescript-eslint.io/rules/no-loss-of-precision}
2211
+ */
2212
+ /**
2213
+ * Disallow magic numbers.
2214
+ * @extension
2215
+ * @see {@link https://typescript-eslint.io/rules/no-magic-numbers}
2216
+ */
2217
+ /**
2218
+ * Disallow variable redeclaration.
2219
+ * @extension
2220
+ * @see {@link https://typescript-eslint.io/rules/no-redeclare}
2221
+ */
2222
+ /**
2223
+ * Disallow specified modules when loaded by.
2224
+ * @extension
2225
+ * @see {@link https://typescript-eslint.io/rules/no-restricted-imports}
2226
+ */
2227
+ /**
2228
+ * Disallow certain types.
2229
+ * @fixable
2230
+ * @see {@link https://typescript-eslint.io/rules/no-restricted-types}
2231
+ */
2232
+ /**
2233
+ * Disallow variable declarations from shadowing variables declared in the outer scope.
2234
+ * @extension
2235
+ * @see {@link https://typescript-eslint.io/rules/no-shadow}
2236
+ */
506
2237
  "no-shadow": "off",
507
2238
  "@typescript-eslint/no-shadow": "error",
2239
+ /**
2240
+ * Disallow type aliases.
2241
+ * @deprecated
2242
+ * @see {@link https://typescript-eslint.io/rules/no-type-alias}
2243
+ */
2244
+ /**
2245
+ * Disallow unnecessary assignment of constructor property parameter.
2246
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-parameter-property-assignment}
2247
+ */
508
2248
  "@typescript-eslint/no-unnecessary-parameter-property-assignment": "error",
2249
+ /**
2250
+ * Disallow unnecessary namespace qualifiers.
2251
+ * @fixable
2252
+ * @typeChecked
2253
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-qualifier}
2254
+ */
509
2255
  "@typescript-eslint/no-unnecessary-qualifier": "error",
2256
+ /**
2257
+ * Disallow type assertions that narrow a type.
2258
+ * @typeChecked
2259
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-type-assertion}
2260
+ */
2261
+ /**
2262
+ * Disallow unused private class members.
2263
+ * @extension
2264
+ * @see {@link https://typescript-eslint.io/rules/no-unused-private-class-members}
2265
+ */
2266
+ /**
2267
+ * Disallow the use of variables before they are defined.
2268
+ * @extension
2269
+ * @see {@link https://typescript-eslint.io/rules/no-use-before-define}
2270
+ */
510
2271
  "no-use-before-define": "off",
511
2272
  "@typescript-eslint/no-use-before-define": "error",
2273
+ /**
2274
+ * Disallow empty exports that don't change anything in a module file.
2275
+ * @fixable
2276
+ * @see {@link https://typescript-eslint.io/rules/no-useless-empty-export}
2277
+ */
512
2278
  "@typescript-eslint/no-useless-empty-export": "error",
2279
+ /**
2280
+ * Disallow.
2281
+ * @deprecated
2282
+ * @see {@link https://typescript-eslint.io/rules/no-var-requires}
2283
+ */
2284
+ /**
2285
+ * Require or disallow parameter properties in class constructors.
2286
+ * @see {@link https://typescript-eslint.io/rules/parameter-properties}
2287
+ */
513
2288
  "@typescript-eslint/parameter-properties": "error",
2289
+ /**
2290
+ * Require destructuring from arrays and/or objects.
2291
+ * @fixable
2292
+ * @typeChecked
2293
+ * @extension
2294
+ * @see {@link https://typescript-eslint.io/rules/prefer-destructuring}
2295
+ */
514
2296
  "prefer-destructuring": "off",
515
2297
  "@typescript-eslint/prefer-destructuring": "error",
2298
+ /**
2299
+ * Require each enum member value to be explicitly initialized.
2300
+ * @see {@link https://typescript-eslint.io/rules/prefer-enum-initializers}
2301
+ */
516
2302
  "@typescript-eslint/prefer-enum-initializers": "error",
2303
+ /**
2304
+ * Require private members to be marked as readonly if they're never modified outside of the constructor.
2305
+ * @fixable
2306
+ * @typeChecked
2307
+ * @see {@link https://typescript-eslint.io/rules/prefer-readonly}
2308
+ */
517
2309
  "@typescript-eslint/prefer-readonly": "error",
2310
+ /**
2311
+ * Require function parameters to be typed as readonly to prevent accidental mutation of inputs.
2312
+ * @typeChecked
2313
+ * @see {@link https://typescript-eslint.io/rules/prefer-readonly-parameter-types}
2314
+ */
2315
+ /**
2316
+ * Enforce using.
2317
+ * @fixable
2318
+ * @deprecated
2319
+ * @see {@link https://typescript-eslint.io/rules/prefer-ts-expect-error}
2320
+ */
2321
+ /**
2322
+ * Require any function or method that returns a Promise to be marked async.
2323
+ * @fixable
2324
+ * @typeChecked
2325
+ * @see {@link https://typescript-eslint.io/rules/promise-function-async}
2326
+ */
518
2327
  "@typescript-eslint/promise-function-async": "error",
2328
+ /**
2329
+ * Require Array#sort and Array#toSorted calls to always provide a compareFunction.
2330
+ * @typeChecked
2331
+ * @see {@link https://typescript-eslint.io/rules/require-array-sort-compare}
2332
+ */
519
2333
  "@typescript-eslint/require-array-sort-compare": "error",
2334
+ /**
2335
+ * Enforce constituents of a type union/intersection to be sorted alphabetically.
2336
+ * @fixable
2337
+ * @deprecated
2338
+ * @see {@link https://typescript-eslint.io/rules/sort-type-constituents}
2339
+ */
2340
+ /**
2341
+ * Disallow certain types in boolean expressions.
2342
+ * @typeChecked
2343
+ * @see {@link https://typescript-eslint.io/rules/strict-boolean-expressions}
2344
+ */
2345
+ /**
2346
+ * Require switch-case statements to be exhaustive.
2347
+ * @typeChecked
2348
+ * @see {@link https://typescript-eslint.io/rules/switch-exhaustiveness-check}
2349
+ */
2350
+ /**
2351
+ * Require type annotations in certain places.
2352
+ * @deprecated
2353
+ * @see {@link https://typescript-eslint.io/rules/typedef}
2354
+ */
2355
+ /**
2356
+ * Require that function overload signatures be consecutive.
2357
+ * @config stylistic
2358
+ * @see {@link https://typescript-eslint.io/rules/adjacent-overload-signatures}
2359
+ */
2360
+ /**
2361
+ * Require consistently using either.
2362
+ * @config stylistic
2363
+ * @fixable
2364
+ * @see {@link https://typescript-eslint.io/rules/array-type}
2365
+ */
2366
+ /**
2367
+ * Disallow awaiting a value that is not a Thenable.
2368
+ * @config recommended
2369
+ * @typeChecked
2370
+ * @see {@link https://typescript-eslint.io/rules/await-thenable}
2371
+ */
2372
+ /**
2373
+ * Disallow.
2374
+ * @config recommended
2375
+ * @see {@link https://typescript-eslint.io/rules/ban-ts-comment}
2376
+ */
2377
+ /**
2378
+ * Disallow.
2379
+ * @config stylistic
2380
+ * @fixable
2381
+ * @see {@link https://typescript-eslint.io/rules/ban-tslint-comment}
2382
+ */
2383
+ /**
2384
+ * Enforce that literals on classes are exposed in a consistent style.
2385
+ * @config stylistic
2386
+ * @see {@link https://typescript-eslint.io/rules/class-literal-property-style}
2387
+ */
2388
+ /**
2389
+ * Enforce specifying generic type arguments on type annotation or constructor name of a constructor call.
2390
+ * @config stylistic
2391
+ * @fixable
2392
+ * @see {@link https://typescript-eslint.io/rules/consistent-generic-constructors}
2393
+ */
2394
+ /**
2395
+ * Require or disallow the.
2396
+ * @config stylistic
2397
+ * @fixable
2398
+ * @see {@link https://typescript-eslint.io/rules/consistent-indexed-object-style}
2399
+ */
2400
+ /**
2401
+ * Enforce consistent usage of type assertions.
2402
+ * @config stylistic
2403
+ * @fixable
2404
+ * @see {@link https://typescript-eslint.io/rules/consistent-type-assertions}
2405
+ */
2406
+ /**
2407
+ * Enforce type definitions to consistently use either.
2408
+ * @config stylistic
2409
+ * @fixable
2410
+ * @see {@link https://typescript-eslint.io/rules/consistent-type-definitions}
2411
+ */
520
2412
  "@typescript-eslint/consistent-type-definitions": ["error", "type"],
2413
+ /**
2414
+ * Enforce dot notation whenever possible.
2415
+ * @config stylistic
2416
+ * @fixable
2417
+ * @typeChecked
2418
+ * @extension
2419
+ * @see {@link https://typescript-eslint.io/rules/dot-notation}
2420
+ */
2421
+ /**
2422
+ * Disallow generic.
2423
+ * @config recommended
2424
+ * @fixable
2425
+ * @extension
2426
+ * @see {@link https://typescript-eslint.io/rules/no-array-constructor}
2427
+ */
2428
+ /**
2429
+ * Disallow using the.
2430
+ * @config recommended
2431
+ * @typeChecked
2432
+ * @see {@link https://typescript-eslint.io/rules/no-array-delete}
2433
+ */
2434
+ /**
2435
+ * Require.
2436
+ * @config recommended
2437
+ * @typeChecked
2438
+ * @see {@link https://typescript-eslint.io/rules/no-base-to-string}
2439
+ */
2440
+ /**
2441
+ * Disallow non-null assertion in locations that may be confusing.
2442
+ * @config stylistic
2443
+ * @see {@link https://typescript-eslint.io/rules/no-confusing-non-null-assertion}
2444
+ */
2445
+ /**
2446
+ * Require expressions of type void to appear in statement position.
2447
+ * @config strict
2448
+ * @fixable
2449
+ * @typeChecked
2450
+ * @see {@link https://typescript-eslint.io/rules/no-confusing-void-expression}
2451
+ */
521
2452
  "@typescript-eslint/no-confusing-void-expression": ["error", {
522
2453
  ignoreVoidOperator: true,
523
2454
  ignoreVoidReturningFunctions: true
524
2455
  }],
2456
+ /**
2457
+ * Disallow using code marked as.
2458
+ * @config strict
2459
+ * @typeChecked
2460
+ * @see {@link https://typescript-eslint.io/rules/no-deprecated}
2461
+ */
2462
+ /**
2463
+ * Disallow duplicate enum member values.
2464
+ * @config recommended
2465
+ * @see {@link https://typescript-eslint.io/rules/no-duplicate-enum-values}
2466
+ */
2467
+ /**
2468
+ * Disallow duplicate constituents of union or intersection types.
2469
+ * @config recommended
2470
+ * @fixable
2471
+ * @typeChecked
2472
+ * @see {@link https://typescript-eslint.io/rules/no-duplicate-type-constituents}
2473
+ */
2474
+ /**
2475
+ * Disallow using the.
2476
+ * @config strict
2477
+ * @fixable
2478
+ * @see {@link https://typescript-eslint.io/rules/no-dynamic-delete}
2479
+ */
2480
+ /**
2481
+ * Disallow empty functions.
2482
+ * @config stylistic
2483
+ * @extension
2484
+ * @see {@link https://typescript-eslint.io/rules/no-empty-function}
2485
+ */
2486
+ /**
2487
+ * Disallow accidentally using the "empty object" type.
2488
+ * @config recommended
2489
+ * @see {@link https://typescript-eslint.io/rules/no-empty-object-type}
2490
+ */
2491
+ /**
2492
+ * Disallow the.
2493
+ * @config recommended
2494
+ * @fixable
2495
+ * @see {@link https://typescript-eslint.io/rules/no-explicit-any}
2496
+ */
525
2497
  "@typescript-eslint/no-explicit-any": ["error", { ignoreRestArgs: true }],
2498
+ /**
2499
+ * Disallow extra non-null assertions.
2500
+ * @config recommended
2501
+ * @fixable
2502
+ * @see {@link https://typescript-eslint.io/rules/no-extra-non-null-assertion}
2503
+ */
2504
+ /**
2505
+ * Disallow classes used as namespaces.
2506
+ * @config strict
2507
+ * @see {@link https://typescript-eslint.io/rules/no-extraneous-class}
2508
+ */
526
2509
  "@typescript-eslint/no-extraneous-class": "off",
2510
+ /**
2511
+ * Require Promise-like statements to be handled appropriately.
2512
+ * @config recommended
2513
+ * @typeChecked
2514
+ * @see {@link https://typescript-eslint.io/rules/no-floating-promises}
2515
+ */
2516
+ /**
2517
+ * Disallow iterating over an array with a for-in loop.
2518
+ * @config recommended
2519
+ * @typeChecked
2520
+ * @see {@link https://typescript-eslint.io/rules/no-for-in-array}
2521
+ */
2522
+ /**
2523
+ * Disallow the use of.
2524
+ * @config recommended
2525
+ * @typeChecked
2526
+ * @extension
2527
+ * @see {@link https://typescript-eslint.io/rules/no-implied-eval}
2528
+ */
2529
+ /**
2530
+ * Disallow explicit type declarations for variables or parameters initialized to a number, string, or boolean.
2531
+ * @config stylistic
2532
+ * @fixable
2533
+ * @see {@link https://typescript-eslint.io/rules/no-inferrable-types}
2534
+ */
2535
+ /**
2536
+ * Disallow void type outside of generic or return types.
2537
+ * @config strict
2538
+ * @see {@link https://typescript-eslint.io/rules/no-invalid-void-type}
2539
+ */
2540
+ /**
2541
+ * Disallow the void operator except when used to discard a value.
2542
+ * @config strict
2543
+ * @fixable
2544
+ * @typeChecked
2545
+ * @see {@link https://typescript-eslint.io/rules/no-meaningless-void-operator}
2546
+ */
527
2547
  "@typescript-eslint/no-meaningless-void-operator": "off",
2548
+ /**
2549
+ * Enforce valid definition of.
2550
+ * @config recommended
2551
+ * @see {@link https://typescript-eslint.io/rules/no-misused-new}
2552
+ */
2553
+ /**
2554
+ * Disallow Promises in places not designed to handle them.
2555
+ * @config recommended
2556
+ * @typeChecked
2557
+ * @see {@link https://typescript-eslint.io/rules/no-misused-promises}
2558
+ */
2559
+ /**
2560
+ * Disallow using the spread operator when it might cause unexpected behavior.
2561
+ * @config strict
2562
+ * @typeChecked
2563
+ * @see {@link https://typescript-eslint.io/rules/no-misused-spread}
2564
+ */
2565
+ /**
2566
+ * Disallow enums from having both number and string members.
2567
+ * @config strict
2568
+ * @typeChecked
2569
+ * @see {@link https://typescript-eslint.io/rules/no-mixed-enums}
2570
+ */
2571
+ /**
2572
+ * Disallow TypeScript namespaces.
2573
+ * @config recommended
2574
+ * @see {@link https://typescript-eslint.io/rules/no-namespace}
2575
+ */
2576
+ /**
2577
+ * Disallow non-null assertions in the left operand of a nullish coalescing operator.
2578
+ * @config strict
2579
+ * @see {@link https://typescript-eslint.io/rules/no-non-null-asserted-nullish-coalescing}
2580
+ */
2581
+ /**
2582
+ * Disallow non-null assertions after an optional chain expression.
2583
+ * @config recommended
2584
+ * @see {@link https://typescript-eslint.io/rules/no-non-null-asserted-optional-chain}
2585
+ */
2586
+ /**
2587
+ * Disallow non-null assertions using the.
2588
+ * @config strict
2589
+ * @see {@link https://typescript-eslint.io/rules/no-non-null-assertion}
2590
+ */
528
2591
  "@typescript-eslint/no-non-null-assertion": "off",
2592
+ /**
2593
+ * Disallow members of unions and intersections that do nothing or override type information.
2594
+ * @config recommended
2595
+ * @typeChecked
2596
+ * @see {@link https://typescript-eslint.io/rules/no-redundant-type-constituents}
2597
+ */
2598
+ /**
2599
+ * Disallow invocation of.
2600
+ * @config recommended
2601
+ * @see {@link https://typescript-eslint.io/rules/no-require-imports}
2602
+ */
2603
+ /**
2604
+ * Disallow aliasing.
2605
+ * @config recommended
2606
+ * @see {@link https://typescript-eslint.io/rules/no-this-alias}
2607
+ */
2608
+ /**
2609
+ * Disallow unnecessary equality comparisons against boolean literals.
2610
+ * @config strict
2611
+ * @fixable
2612
+ * @typeChecked
2613
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-boolean-literal-compare}
2614
+ */
2615
+ /**
2616
+ * Disallow conditionals where the type is always truthy or always falsy.
2617
+ * @config strict
2618
+ * @typeChecked
2619
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-condition}
2620
+ */
2621
+ /**
2622
+ * Disallow unnecessary template expressions.
2623
+ * @config strict
2624
+ * @fixable
2625
+ * @typeChecked
2626
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-template-expression}
2627
+ */
2628
+ /**
2629
+ * Disallow type arguments that are equal to the default.
2630
+ * @config strict
2631
+ * @fixable
2632
+ * @typeChecked
2633
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-type-arguments}
2634
+ */
2635
+ /**
2636
+ * Disallow type assertions that do not change the type of an expression.
2637
+ * @config recommended
2638
+ * @fixable
2639
+ * @typeChecked
2640
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-type-assertion}
2641
+ */
2642
+ /**
2643
+ * Disallow unnecessary constraints on generic types.
2644
+ * @config recommended
2645
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-type-constraint}
2646
+ */
2647
+ /**
2648
+ * Disallow conversion idioms when they do not change the type or value of the expression.
2649
+ * @config strict
2650
+ * @typeChecked
2651
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-type-conversion}
2652
+ */
2653
+ /**
2654
+ * Disallow type parameters that aren't used multiple times.
2655
+ * @config strict
2656
+ * @typeChecked
2657
+ * @see {@link https://typescript-eslint.io/rules/no-unnecessary-type-parameters}
2658
+ */
2659
+ /**
2660
+ * Disallow calling a function with a value with type.
2661
+ * @config recommended
2662
+ * @typeChecked
2663
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-argument}
2664
+ */
2665
+ /**
2666
+ * Disallow assigning a value with type.
2667
+ * @config recommended
2668
+ * @typeChecked
2669
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-assignment}
2670
+ */
2671
+ /**
2672
+ * Disallow calling a value with type.
2673
+ * @config recommended
2674
+ * @typeChecked
2675
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-call}
2676
+ */
2677
+ /**
2678
+ * Disallow unsafe declaration merging.
2679
+ * @config recommended
2680
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-declaration-merging}
2681
+ */
2682
+ /**
2683
+ * Disallow comparing an enum value with a non-enum value.
2684
+ * @config recommended
2685
+ * @typeChecked
2686
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-enum-comparison}
2687
+ */
2688
+ /**
2689
+ * Disallow using the unsafe built-in Function type.
2690
+ * @config recommended
2691
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-function-type}
2692
+ */
2693
+ /**
2694
+ * Disallow member access on a value with type.
2695
+ * @config recommended
2696
+ * @typeChecked
2697
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-member-access}
2698
+ */
2699
+ /**
2700
+ * Disallow returning a value with type.
2701
+ * @config recommended
2702
+ * @typeChecked
2703
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-return}
2704
+ */
2705
+ /**
2706
+ * Require unary negation to take a number.
2707
+ * @config recommended
2708
+ * @typeChecked
2709
+ * @see {@link https://typescript-eslint.io/rules/no-unsafe-unary-minus}
2710
+ */
2711
+ /**
2712
+ * Disallow unused expressions.
2713
+ * @config recommended
2714
+ * @extension
2715
+ * @see {@link https://typescript-eslint.io/rules/no-unused-expressions}
2716
+ */
2717
+ /**
2718
+ * Disallow unused variables.
2719
+ * @config recommended
2720
+ * @extension
2721
+ * @see {@link https://typescript-eslint.io/rules/no-unused-vars}
2722
+ */
529
2723
  "@typescript-eslint/no-unused-vars": ["error", {
530
2724
  args: "all",
531
2725
  argsIgnorePattern: "^_",
@@ -535,7 +2729,165 @@ const typescriptConfig = defineConfig([{
535
2729
  varsIgnorePattern: "^_",
536
2730
  ignoreRestSiblings: true
537
2731
  }],
2732
+ /**
2733
+ * Disallow unnecessary constructors.
2734
+ * @config strict
2735
+ * @extension
2736
+ * @see {@link https://typescript-eslint.io/rules/no-useless-constructor}
2737
+ */
2738
+ /**
2739
+ * Disallow using confusing built-in primitive class wrappers.
2740
+ * @config recommended
2741
+ * @fixable
2742
+ * @see {@link https://typescript-eslint.io/rules/no-wrapper-object-types}
2743
+ */
2744
+ /**
2745
+ * Enforce non-null assertions over explicit type assertions.
2746
+ * @config stylistic
2747
+ * @fixable
2748
+ * @typeChecked
2749
+ * @see {@link https://typescript-eslint.io/rules/non-nullable-type-assertion-style}
2750
+ */
2751
+ /**
2752
+ * Disallow throwing non-.
2753
+ * @config recommended
2754
+ * @typeChecked
2755
+ * @extension
2756
+ * @see {@link https://typescript-eslint.io/rules/only-throw-error}
2757
+ */
2758
+ /**
2759
+ * Enforce the use of.
2760
+ * @config recommended
2761
+ * @fixable
2762
+ * @see {@link https://typescript-eslint.io/rules/prefer-as-const}
2763
+ */
2764
+ /**
2765
+ * Enforce the use of Array.prototype.find() over Array.prototype.filter() followed by [0] when looking for a single result.
2766
+ * @config stylistic
2767
+ * @typeChecked
2768
+ * @see {@link https://typescript-eslint.io/rules/prefer-find}
2769
+ */
2770
+ /**
2771
+ * Enforce the use of.
2772
+ * @config stylistic
2773
+ * @see {@link https://typescript-eslint.io/rules/prefer-for-of}
2774
+ */
2775
+ /**
2776
+ * Enforce using function types instead of interfaces with call signatures.
2777
+ * @config stylistic
2778
+ * @fixable
2779
+ * @see {@link https://typescript-eslint.io/rules/prefer-function-type}
2780
+ */
2781
+ /**
2782
+ * Enforce.
2783
+ * @config stylistic
2784
+ * @fixable
2785
+ * @typeChecked
2786
+ * @see {@link https://typescript-eslint.io/rules/prefer-includes}
2787
+ */
2788
+ /**
2789
+ * Require all enum members to be literal values.
2790
+ * @config strict
2791
+ * @see {@link https://typescript-eslint.io/rules/prefer-literal-enum-member}
2792
+ */
2793
+ /**
2794
+ * Require using.
2795
+ * @config recommended
2796
+ * @fixable
2797
+ * @see {@link https://typescript-eslint.io/rules/prefer-namespace-keyword}
2798
+ */
2799
+ /**
2800
+ * Enforce using the nullish coalescing operator instead of logical assignments or chaining.
2801
+ * @config stylistic
2802
+ * @typeChecked
2803
+ * @see {@link https://typescript-eslint.io/rules/prefer-nullish-coalescing}
2804
+ */
2805
+ /**
2806
+ * Enforce using concise optional chain expressions instead of chained logical ands, negated logical ors, or empty objects.
2807
+ * @config stylistic
2808
+ * @fixable
2809
+ * @typeChecked
2810
+ * @see {@link https://typescript-eslint.io/rules/prefer-optional-chain}
2811
+ */
2812
+ /**
2813
+ * Require using Error objects as Promise rejection reasons.
2814
+ * @config recommended
2815
+ * @typeChecked
2816
+ * @extension
2817
+ * @see {@link https://typescript-eslint.io/rules/prefer-promise-reject-errors}
2818
+ */
2819
+ /**
2820
+ * Enforce using type parameter when calling.
2821
+ * @config strict
2822
+ * @fixable
2823
+ * @typeChecked
2824
+ * @see {@link https://typescript-eslint.io/rules/prefer-reduce-type-parameter}
2825
+ */
2826
+ /**
2827
+ * Enforce RegExp#exec over String#match if no global flag is provided.
2828
+ * @config stylistic
2829
+ * @fixable
2830
+ * @typeChecked
2831
+ * @see {@link https://typescript-eslint.io/rules/prefer-regexp-exec}
2832
+ */
2833
+ /**
2834
+ * Enforce that this is used when only this type is returned.
2835
+ * @config strict
2836
+ * @fixable
2837
+ * @typeChecked
2838
+ * @see {@link https://typescript-eslint.io/rules/prefer-return-this-type}
2839
+ */
2840
+ /**
2841
+ * Enforce using String#startsWith and String#endsWith over other equivalent methods of checking substrings.
2842
+ * @config stylistic
2843
+ * @fixable
2844
+ * @typeChecked
2845
+ * @see {@link https://typescript-eslint.io/rules/prefer-string-starts-ends-with}
2846
+ */
2847
+ /**
2848
+ * Enforce that get() types should be assignable to their equivalent set() type.
2849
+ * @config strict
2850
+ * @typeChecked
2851
+ * @see {@link https://typescript-eslint.io/rules/related-getter-setter-pairs}
2852
+ */
2853
+ /**
2854
+ * Disallow async functions which do not return promises and have no await expression.
2855
+ * @config recommended
2856
+ * @typeChecked
2857
+ * @extension
2858
+ * @see {@link https://typescript-eslint.io/rules/require-await}
2859
+ */
2860
+ /**
2861
+ * Require both operands of addition to be the same type and be bigint, number, or string.
2862
+ * @config recommended
2863
+ * @typeChecked
2864
+ * @see {@link https://typescript-eslint.io/rules/restrict-plus-operands}
2865
+ */
2866
+ /**
2867
+ * Enforce template literal expressions to be of string type.
2868
+ * @config recommended
2869
+ * @typeChecked
2870
+ * @see {@link https://typescript-eslint.io/rules/restrict-template-expressions}
2871
+ */
538
2872
  "@typescript-eslint/restrict-template-expressions": "off",
2873
+ /**
2874
+ * Enforce consistent awaiting of returned promises.
2875
+ * @config strict
2876
+ * @fixable
2877
+ * @typeChecked
2878
+ * @see {@link https://typescript-eslint.io/rules/return-await}
2879
+ */
2880
+ /**
2881
+ * Disallow certain triple slash directives in favor of ES6-style import declarations.
2882
+ * @config recommended
2883
+ * @see {@link https://typescript-eslint.io/rules/triple-slash-reference}
2884
+ */
2885
+ /**
2886
+ * Enforce unbound methods are called with their expected scope.
2887
+ * @config recommended
2888
+ * @typeChecked
2889
+ * @see {@link https://typescript-eslint.io/rules/unbound-method}
2890
+ */
539
2891
  "@typescript-eslint/unbound-method": ["error", { ignoreStatic: true }]
540
2892
  }
541
2893
  }, {
@@ -556,7 +2908,697 @@ const unicornConfig = defineConfig({
556
2908
  name: "unicorn-config",
557
2909
  plugins: { unicorn },
558
2910
  rules: {
2911
+ /**
2912
+ * Improve regexes by making them shorter, consistent, and safer.
2913
+ * @fixable
2914
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/better-regex.md}
2915
+ */
2916
+ /**
2917
+ * Enforce a specific parameter name in catch clauses.
2918
+ * @config recommended
2919
+ * @fixable
2920
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/catch-error-name.md}
2921
+ */
2922
+ /**
2923
+ * Enforce consistent assertion style with node:assert.
2924
+ * @config recommended
2925
+ * @fixable
2926
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-assert.md}
2927
+ */
2928
+ /**
2929
+ * Prefer passing Date directly to the constructor when cloning.
2930
+ * @config recommended
2931
+ * @config unopinionated
2932
+ * @fixable
2933
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-date-clone.md}
2934
+ */
2935
+ /**
2936
+ * Use destructured variables over properties.
2937
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-destructuring.md}
2938
+ */
2939
+ /**
2940
+ * Prefer consistent types when spreading a ternary in an array literal.
2941
+ * @config recommended
2942
+ * @fixable
2943
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-empty-array-spread.md}
2944
+ */
2945
+ /**
2946
+ * Enforce consistent style for element existence checks with indexOf(), lastIndexOf(), findIndex(), and findLastIndex().
2947
+ * @config recommended
2948
+ * @config unopinionated
2949
+ * @fixable
2950
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-existence-index-check.md}
2951
+ */
2952
+ /**
2953
+ * Move function definitions to the highest possible scope.
2954
+ * @config recommended
2955
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-function-scoping.md}
2956
+ */
2957
+ /**
2958
+ * Enforce correct Error subclassing.
2959
+ * @fixable
2960
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/custom-error-definition.md}
2961
+ */
2962
+ /**
2963
+ * Enforce no spaces between braces.
2964
+ * @config recommended
2965
+ * @fixable
2966
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/empty-brace-spaces.md}
2967
+ */
2968
+ /**
2969
+ * Enforce passing a message value when creating a built-in error.
2970
+ * @config recommended
2971
+ * @config unopinionated
2972
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/error-message.md}
2973
+ */
2974
+ /**
2975
+ * Require escape sequences to use uppercase or lowercase values.
2976
+ * @config recommended
2977
+ * @config unopinionated
2978
+ * @fixable
2979
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/escape-case.md}
2980
+ */
2981
+ /**
2982
+ * Add expiration conditions to TODO comments.
2983
+ * @config recommended
2984
+ * @config unopinionated
2985
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/expiring-todo-comments.md}
2986
+ */
2987
+ /**
2988
+ * Enforce explicitly comparing the length or size property of a value.
2989
+ * @config recommended
2990
+ * @fixable
2991
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/explicit-length-check.md}
2992
+ */
2993
+ /**
2994
+ * Enforce a case style for filenames.
2995
+ * @config recommended
2996
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/filename-case.md}
2997
+ */
559
2998
  "unicorn/filename-case": ["error", { case: "kebabCase" }],
2999
+ /**
3000
+ * Enforce specific import styles per module.
3001
+ * @config recommended
3002
+ * @config unopinionated
3003
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/import-style.md}
3004
+ */
3005
+ /**
3006
+ * Prevent usage of variables from outside the scope of isolated functions.
3007
+ * @config recommended
3008
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/isolated-functions.md}
3009
+ */
3010
+ /**
3011
+ * Enforce the use of new for all builtins, except String, Number, Boolean, Symbol and BigInt.
3012
+ * @config recommended
3013
+ * @config unopinionated
3014
+ * @fixable
3015
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/new-for-builtins.md}
3016
+ */
3017
+ /**
3018
+ * Enforce specifying rules to disable in eslint-disable comments.
3019
+ * @config recommended
3020
+ * @config unopinionated
3021
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-abusive-eslint-disable.md}
3022
+ */
3023
+ /**
3024
+ * Disallow recursive access to this within getters and setters.
3025
+ * @config recommended
3026
+ * @config unopinionated
3027
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-accessor-recursion.md}
3028
+ */
3029
+ /**
3030
+ * Disallow anonymous functions and classes as the default export.
3031
+ * @config recommended
3032
+ * @config unopinionated
3033
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-anonymous-default-export.md}
3034
+ */
3035
+ /**
3036
+ * Prevent passing a function reference directly to iterator methods.
3037
+ * @config recommended
3038
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-callback-reference.md}
3039
+ */
3040
+ /**
3041
+ * Prefer for…of over the forEach method.
3042
+ * @config recommended
3043
+ * @config unopinionated
3044
+ * @fixable
3045
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-for-each.md}
3046
+ */
3047
+ /**
3048
+ * Disallow using the this argument in array methods.
3049
+ * @config recommended
3050
+ * @config unopinionated
3051
+ * @fixable
3052
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-method-this-argument.md}
3053
+ */
3054
+ /**
3055
+ * Disallow Array#reduce() and Array#reduceRight().
3056
+ * @config recommended
3057
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-reduce.md}
3058
+ */
3059
+ /**
3060
+ * Prefer Array#toReversed() over Array#reverse().
3061
+ * @config recommended
3062
+ * @config unopinionated
3063
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-reverse.md}
3064
+ */
3065
+ /**
3066
+ * Prefer Array#toSorted() over Array#sort().
3067
+ * @config recommended
3068
+ * @config unopinionated
3069
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-sort.md}
3070
+ */
3071
+ /**
3072
+ * Disallow member access from await expression.
3073
+ * @config recommended
3074
+ * @fixable
3075
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-expression-member.md}
3076
+ */
3077
+ /**
3078
+ * Disallow using await in Promise method parameters.
3079
+ * @config recommended
3080
+ * @config unopinionated
3081
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-in-promise-methods.md}
3082
+ */
3083
+ /**
3084
+ * Do not use leading/trailing space between console.log parameters.
3085
+ * @config recommended
3086
+ * @config unopinionated
3087
+ * @fixable
3088
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-console-spaces.md}
3089
+ */
3090
+ /**
3091
+ * Do not use document.cookie directly.
3092
+ * @config recommended
3093
+ * @config unopinionated
3094
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-document-cookie.md}
3095
+ */
3096
+ /**
3097
+ * Disallow empty files.
3098
+ * @config recommended
3099
+ * @config unopinionated
3100
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-empty-file.md}
3101
+ */
3102
+ /**
3103
+ * Do not use a for loop that can be replaced with a for-of loop.
3104
+ * @config recommended
3105
+ * @fixable
3106
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-for-loop.md}
3107
+ */
3108
+ /**
3109
+ * Enforce the use of Unicode escapes instead of hexadecimal escapes.
3110
+ * @config recommended
3111
+ * @config unopinionated
3112
+ * @fixable
3113
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-hex-escape.md}
3114
+ */
3115
+ /**
3116
+ * Disallow immediate mutation after variable assignment.
3117
+ * @config recommended
3118
+ * @fixable
3119
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-immediate-mutation.md}
3120
+ */
3121
+ /**
3122
+ * Disallow instanceof with built-in objects.
3123
+ * @config recommended
3124
+ * @config unopinionated
3125
+ * @fixable
3126
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-instanceof-builtins.md}
3127
+ */
3128
+ /**
3129
+ * Disallow invalid options in fetch() and new Request().
3130
+ * @config recommended
3131
+ * @config unopinionated
3132
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-fetch-options.md}
3133
+ */
3134
+ /**
3135
+ * Prevent calling EventTarget#removeEventListener() with the result of an expression.
3136
+ * @config recommended
3137
+ * @config unopinionated
3138
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-remove-event-listener.md}
3139
+ */
3140
+ /**
3141
+ * Disallow identifiers starting with new or class.
3142
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-keyword-prefix.md}
3143
+ */
3144
+ /**
3145
+ * Disallow if statements as the only statement in if blocks without else.
3146
+ * @config recommended
3147
+ * @config unopinionated
3148
+ * @fixable
3149
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-lonely-if.md}
3150
+ */
3151
+ /**
3152
+ * Disallow a magic number as the depth argument in Array#flat(…).
3153
+ * @config recommended
3154
+ * @config unopinionated
3155
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-magic-array-flat-depth.md}
3156
+ */
3157
+ /**
3158
+ * Disallow named usage of default import and export.
3159
+ * @config recommended
3160
+ * @config unopinionated
3161
+ * @fixable
3162
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-named-default.md}
3163
+ */
3164
+ /**
3165
+ * Disallow negated conditions.
3166
+ * @config recommended
3167
+ * @config unopinionated
3168
+ * @fixable
3169
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negated-condition.md}
3170
+ */
3171
+ /**
3172
+ * Disallow negated expression in equality check.
3173
+ * @config recommended
3174
+ * @config unopinionated
3175
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-negation-in-equality-check.md}
3176
+ */
3177
+ /**
3178
+ * Disallow nested ternary expressions.
3179
+ * @config recommended
3180
+ * @fixable
3181
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-nested-ternary.md}
3182
+ */
3183
+ /**
3184
+ * Disallow new Array().
3185
+ * @config recommended
3186
+ * @config unopinionated
3187
+ * @fixable
3188
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-new-array.md}
3189
+ */
3190
+ /**
3191
+ * Enforce the use of Buffer.from() and Buffer.alloc() instead of the deprecated new Buffer().
3192
+ * @config recommended
3193
+ * @config unopinionated
3194
+ * @fixable
3195
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-new-buffer.md}
3196
+ */
3197
+ /**
3198
+ * Disallow the use of the null literal.
3199
+ * @config recommended
3200
+ * @fixable
3201
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-null.md}
3202
+ */
3203
+ /**
3204
+ * Disallow the use of objects as default parameters.
3205
+ * @config recommended
3206
+ * @config unopinionated
3207
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-object-as-default-parameter.md}
3208
+ */
3209
+ /**
3210
+ * Disallow process.exit().
3211
+ * @config recommended
3212
+ * @config unopinionated
3213
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-process-exit.md}
3214
+ */
3215
+ /**
3216
+ * Disallow passing single-element arrays to Promise methods.
3217
+ * @config recommended
3218
+ * @config unopinionated
3219
+ * @fixable
3220
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-single-promise-in-promise-methods.md}
3221
+ */
3222
+ /**
3223
+ * Disallow classes that only have static members.
3224
+ * @config recommended
3225
+ * @config unopinionated
3226
+ * @fixable
3227
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-static-only-class.md}
3228
+ */
3229
+ /**
3230
+ * Disallow then property.
3231
+ * @config recommended
3232
+ * @config unopinionated
3233
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-thenable.md}
3234
+ */
3235
+ /**
3236
+ * Disallow assigning this to a variable.
3237
+ * @config recommended
3238
+ * @config unopinionated
3239
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-this-assignment.md}
3240
+ */
3241
+ /**
3242
+ * Disallow comparing undefined using typeof.
3243
+ * @config recommended
3244
+ * @config unopinionated
3245
+ * @fixable
3246
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-typeof-undefined.md}
3247
+ */
3248
+ /**
3249
+ * Disallow using 1 as the depth argument of Array#flat().
3250
+ * @config recommended
3251
+ * @config unopinionated
3252
+ * @fixable
3253
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-array-flat-depth.md}
3254
+ */
3255
+ /**
3256
+ * Disallow using .length or Infinity as the deleteCount or skipCount argument of Array#{splice,toSpliced}().
3257
+ * @config recommended
3258
+ * @config unopinionated
3259
+ * @fixable
3260
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-array-splice-count.md}
3261
+ */
3262
+ /**
3263
+ * Disallow awaiting non-promise values.
3264
+ * @config recommended
3265
+ * @config unopinionated
3266
+ * @fixable
3267
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-await.md}
3268
+ */
3269
+ /**
3270
+ * Enforce the use of built-in methods instead of unnecessary polyfills.
3271
+ * @config recommended
3272
+ * @config unopinionated
3273
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md}
3274
+ */
3275
+ /**
3276
+ * Disallow using .length or Infinity as the end argument of {Array,String,TypedArray}#slice().
3277
+ * @config recommended
3278
+ * @config unopinionated
3279
+ * @fixable
3280
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-slice-end.md}
3281
+ */
3282
+ /**
3283
+ * Disallow unreadable array destructuring.
3284
+ * @config recommended
3285
+ * @config unopinionated
3286
+ * @fixable
3287
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unreadable-array-destructuring.md}
3288
+ */
3289
+ /**
3290
+ * Disallow unreadable IIFEs.
3291
+ * @config recommended
3292
+ * @config unopinionated
3293
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unreadable-iife.md}
3294
+ */
3295
+ /**
3296
+ * Disallow unused object properties.
3297
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unused-properties.md}
3298
+ */
3299
+ /**
3300
+ * Disallow useless values or fallbacks in Set, Map, WeakSet, or WeakMap.
3301
+ * @config recommended
3302
+ * @config unopinionated
3303
+ * @fixable
3304
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-collection-argument.md}
3305
+ */
3306
+ /**
3307
+ * Disallow unnecessary Error.captureStackTrace(…).
3308
+ * @config recommended
3309
+ * @config unopinionated
3310
+ * @fixable
3311
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-error-capture-stack-trace.md}
3312
+ */
3313
+ /**
3314
+ * Disallow useless fallback when spreading in object literals.
3315
+ * @config recommended
3316
+ * @config unopinionated
3317
+ * @fixable
3318
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-fallback-in-spread.md}
3319
+ */
3320
+ /**
3321
+ * Disallow useless array length check.
3322
+ * @config recommended
3323
+ * @config unopinionated
3324
+ * @fixable
3325
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-length-check.md}
3326
+ */
3327
+ /**
3328
+ * Disallow returning/yielding Promise.resolve/reject() in async functions or promise callbacks.
3329
+ * @config recommended
3330
+ * @config unopinionated
3331
+ * @fixable
3332
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-promise-resolve-reject.md}
3333
+ */
3334
+ /**
3335
+ * Disallow unnecessary spread.
3336
+ * @config recommended
3337
+ * @config unopinionated
3338
+ * @fixable
3339
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-spread.md}
3340
+ */
3341
+ /**
3342
+ * Disallow useless case in switch statements.
3343
+ * @config recommended
3344
+ * @config unopinionated
3345
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-switch-case.md}
3346
+ */
3347
+ /**
3348
+ * Disallow useless undefined.
3349
+ * @config recommended
3350
+ * @config unopinionated
3351
+ * @fixable
3352
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-undefined.md}
3353
+ */
3354
+ /**
3355
+ * Disallow number literals with zero fractions or dangling dots.
3356
+ * @config recommended
3357
+ * @config unopinionated
3358
+ * @fixable
3359
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-zero-fractions.md}
3360
+ */
3361
+ /**
3362
+ * Enforce proper case for numeric literals.
3363
+ * @config recommended
3364
+ * @config unopinionated
3365
+ * @fixable
3366
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/number-literal-case.md}
3367
+ */
3368
+ /**
3369
+ * Enforce the style of numeric separators by correctly grouping digits.
3370
+ * @config recommended
3371
+ * @config unopinionated
3372
+ * @fixable
3373
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/numeric-separators-style.md}
3374
+ */
3375
+ /**
3376
+ * Prefer .addEventListener() and .removeEventListener() over on-functions.
3377
+ * @config recommended
3378
+ * @config unopinionated
3379
+ * @fixable
3380
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-add-event-listener.md}
3381
+ */
3382
+ /**
3383
+ * Prefer .find(…) and .findLast(…) over the first or last element from .filter(…).
3384
+ * @config recommended
3385
+ * @config unopinionated
3386
+ * @fixable
3387
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md}
3388
+ */
3389
+ /**
3390
+ * Prefer Array#flat() over legacy techniques to flatten arrays.
3391
+ * @config recommended
3392
+ * @config unopinionated
3393
+ * @fixable
3394
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-flat.md}
3395
+ */
3396
+ /**
3397
+ * Prefer .flatMap(…) over .map(…).flat().
3398
+ * @config recommended
3399
+ * @config unopinionated
3400
+ * @fixable
3401
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-flat-map.md}
3402
+ */
3403
+ /**
3404
+ * Prefer Array#{indexOf,lastIndexOf}() over Array#{findIndex,findLastIndex}() when looking for the index of an item.
3405
+ * @config recommended
3406
+ * @config unopinionated
3407
+ * @fixable
3408
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-index-of.md}
3409
+ */
3410
+ /**
3411
+ * Prefer .some(…) over .filter(…).length check and .{find,findLast,findIndex,findLastIndex}(…).
3412
+ * @config recommended
3413
+ * @config unopinionated
3414
+ * @fixable
3415
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-some.md}
3416
+ */
3417
+ /**
3418
+ * Prefer .at() method for index access and String#charAt().
3419
+ * @config recommended
3420
+ * @config unopinionated
3421
+ * @fixable
3422
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-at.md}
3423
+ */
3424
+ /**
3425
+ * Prefer BigInt literals over the constructor.
3426
+ * @config recommended
3427
+ * @config unopinionated
3428
+ * @fixable
3429
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-bigint-literals.md}
3430
+ */
3431
+ /**
3432
+ * Prefer Blob#arrayBuffer() over FileReader#readAsArrayBuffer(…) and Blob#text() over FileReader#readAsText(…).
3433
+ * @config recommended
3434
+ * @config unopinionated
3435
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-blob-reading-methods.md}
3436
+ */
3437
+ /**
3438
+ * Prefer class field declarations over this assignments in constructors.
3439
+ * @config recommended
3440
+ * @config unopinionated
3441
+ * @fixable
3442
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-class-fields.md}
3443
+ */
3444
+ /**
3445
+ * Prefer using Element#classList.toggle() to toggle class names.
3446
+ * @config recommended
3447
+ * @config unopinionated
3448
+ * @fixable
3449
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-classlist-toggle.md}
3450
+ */
3451
+ /**
3452
+ * Prefer String#codePointAt(…) over String#charCodeAt(…) and String.fromCodePoint(…) over String.fromCharCode(…).
3453
+ * @config recommended
3454
+ * @config unopinionated
3455
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-code-point.md}
3456
+ */
3457
+ /**
3458
+ * Prefer Date.now() to get the number of milliseconds since the Unix Epoch.
3459
+ * @config recommended
3460
+ * @config unopinionated
3461
+ * @fixable
3462
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-date-now.md}
3463
+ */
3464
+ /**
3465
+ * Prefer default parameters over reassignment.
3466
+ * @config recommended
3467
+ * @config unopinionated
3468
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-default-parameters.md}
3469
+ */
3470
+ /**
3471
+ * Prefer Node#append() over Node#appendChild().
3472
+ * @config recommended
3473
+ * @config unopinionated
3474
+ * @fixable
3475
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-append.md}
3476
+ */
3477
+ /**
3478
+ * Prefer using .dataset on DOM elements over calling attribute methods.
3479
+ * @config recommended
3480
+ * @config unopinionated
3481
+ * @fixable
3482
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-dataset.md}
3483
+ */
3484
+ /**
3485
+ * Prefer childNode.remove() over parentNode.removeChild(childNode).
3486
+ * @config recommended
3487
+ * @config unopinionated
3488
+ * @fixable
3489
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-remove.md}
3490
+ */
3491
+ /**
3492
+ * Prefer .textContent over .innerText.
3493
+ * @config recommended
3494
+ * @config unopinionated
3495
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-text-content.md}
3496
+ */
3497
+ /**
3498
+ * Prefer EventTarget over EventEmitter.
3499
+ * @config recommended
3500
+ * @config unopinionated
3501
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-event-target.md}
3502
+ */
3503
+ /**
3504
+ * Prefer export…from when re-exporting.
3505
+ * @config recommended
3506
+ * @fixable
3507
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-export-from.md}
3508
+ */
3509
+ /**
3510
+ * Prefer globalThis over window, self, and global.
3511
+ * @config recommended
3512
+ * @config unopinionated
3513
+ * @fixable
3514
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-global-this.md}
3515
+ */
3516
+ /**
3517
+ * Prefer import.meta.{dirname,filename} over legacy techniques for getting file paths.
3518
+ * @fixable
3519
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-import-meta-properties.md}
3520
+ */
3521
+ /**
3522
+ * Prefer .includes() over .indexOf(), .lastIndexOf(), and Array#some() when checking for existence or non-existence.
3523
+ * @config recommended
3524
+ * @config unopinionated
3525
+ * @fixable
3526
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-includes.md}
3527
+ */
3528
+ /**
3529
+ * Prefer reading a JSON file as a buffer.
3530
+ * @fixable
3531
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-json-parse-buffer.md}
3532
+ */
3533
+ /**
3534
+ * Prefer KeyboardEvent#key over KeyboardEvent#keyCode.
3535
+ * @config recommended
3536
+ * @config unopinionated
3537
+ * @fixable
3538
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-keyboard-event-key.md}
3539
+ */
3540
+ /**
3541
+ * Prefer using a logical operator over a ternary.
3542
+ * @config recommended
3543
+ * @config unopinionated
3544
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-logical-operator-over-ternary.md}
3545
+ */
3546
+ /**
3547
+ * Prefer Math.min() and Math.max() over ternaries for simple comparisons.
3548
+ * @config recommended
3549
+ * @config unopinionated
3550
+ * @fixable
3551
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-math-min-max.md}
3552
+ */
3553
+ /**
3554
+ * Enforce the use of Math.trunc instead of bitwise operators.
3555
+ * @config recommended
3556
+ * @config unopinionated
3557
+ * @fixable
3558
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-math-trunc.md}
3559
+ */
3560
+ /**
3561
+ * Prefer .before() over .insertBefore(), .replaceWith() over .replaceChild(), prefer one of .before(), .after(), .append() or .prepend() over insertAdjacentText() and insertAdjacentElement().
3562
+ * @config recommended
3563
+ * @config unopinionated
3564
+ * @fixable
3565
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-modern-dom-apis.md}
3566
+ */
3567
+ /**
3568
+ * Prefer modern Math APIs over legacy patterns.
3569
+ * @config recommended
3570
+ * @config unopinionated
3571
+ * @fixable
3572
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-modern-math-apis.md}
3573
+ */
3574
+ /**
3575
+ * Prefer JavaScript modules (ESM) over CommonJS.
3576
+ * @config recommended
3577
+ * @config unopinionated
3578
+ * @fixable
3579
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-module.md}
3580
+ */
3581
+ /**
3582
+ * Prefer using String, Number, BigInt, Boolean, and Symbol directly.
3583
+ * @config recommended
3584
+ * @config unopinionated
3585
+ * @fixable
3586
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-native-coercion-functions.md}
3587
+ */
3588
+ /**
3589
+ * Prefer negative index over .length - index when possible.
3590
+ * @config recommended
3591
+ * @config unopinionated
3592
+ * @fixable
3593
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-negative-index.md}
3594
+ */
3595
+ /**
3596
+ * Prefer using the node: protocol when importing Node.js builtin modules.
3597
+ * @config recommended
3598
+ * @config unopinionated
3599
+ * @fixable
3600
+ * @see {@link https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-node-protocol.md}
3601
+ */
560
3602
  "unicorn/prefer-node-protocol": "error"
561
3603
  }
562
3604
  });
@@ -573,28 +3615,384 @@ const vitestConfig = defineConfig({
573
3615
  settings: { vitest: { typecheck: true } },
574
3616
  languageOptions: { globals: { ...vitest.environments.env.globals } },
575
3617
  rules: {
3618
+ /**
3619
+ * Require test file pattern.
3620
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-filename.md}
3621
+ */
3622
+ /**
3623
+ * Enforce using test or it but not both.
3624
+ * @fixable
3625
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-it.md}
3626
+ */
576
3627
  "vitest/consistent-test-it": ["error", { fn: "it" }],
3628
+ /**
3629
+ * Enforce using vitest or vi but not both.
3630
+ * @fixable
3631
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-vitest-vi.md}
3632
+ */
3633
+ /**
3634
+ * Enforce hoisted APIs to be on top of the file.
3635
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/hoisted-apis-on-top.md}
3636
+ */
3637
+ /**
3638
+ * Enforce a maximum number of expect per test.
3639
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/max-expects.md}
3640
+ */
3641
+ /**
3642
+ * Require describe block to be less than set max value or default value.
3643
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/max-nested-describe.md}
3644
+ */
3645
+ /**
3646
+ * Disallow alias methods.
3647
+ * @fixable
3648
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-alias-methods.md}
3649
+ */
3650
+ /**
3651
+ * Disallow conditional expects.
3652
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-expect.md}
3653
+ */
3654
+ /**
3655
+ * Disallow conditional tests.
3656
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-in-test.md}
3657
+ */
577
3658
  "vitest/no-conditional-in-test": "error",
3659
+ /**
3660
+ * Disallow conditional tests.
3661
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-tests.md}
3662
+ */
3663
+ /**
3664
+ * Disallow disabled tests.
3665
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-disabled-tests.md}
3666
+ */
3667
+ /**
3668
+ * Disallow using a callback in asynchronous tests and hooks.
3669
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-done-callback.md}
3670
+ */
3671
+ /**
3672
+ * Disallow duplicate hooks and teardown hooks.
3673
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-duplicate-hooks.md}
3674
+ */
578
3675
  "vitest/no-duplicate-hooks": "error",
3676
+ /**
3677
+ * Disallow focused tests.
3678
+ * @fixable
3679
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-focused-tests.md}
3680
+ */
3681
+ /**
3682
+ * Disallow setup and teardown hooks.
3683
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-hooks.md}
3684
+ */
3685
+ /**
3686
+ * Disallow importing Vitest globals.
3687
+ * @fixable
3688
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-importing-vitest-globals.md}
3689
+ */
3690
+ /**
3691
+ * Disallow string interpolation in snapshots.
3692
+ * @fixable
3693
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-interpolation-in-snapshots.md}
3694
+ */
3695
+ /**
3696
+ * Disallow large snapshots.
3697
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-large-snapshots.md}
3698
+ */
3699
+ /**
3700
+ * Disallow importing from mocks directory.
3701
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-mocks-import.md}
3702
+ */
3703
+ /**
3704
+ * Disallow the use of certain matchers.
3705
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-matchers.md}
3706
+ */
3707
+ /**
3708
+ * Disallow specific vi. methods.
3709
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-vi-methods.md}
3710
+ */
3711
+ /**
3712
+ * Disallow using expect outside of it or test blocks.
3713
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-standalone-expect.md}
3714
+ */
3715
+ /**
3716
+ * Disallow using the f and x prefixes in favour of .only and .skip.
3717
+ * @fixable
3718
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-test-prefixes.md}
3719
+ */
3720
+ /**
3721
+ * Disallow return statements in tests.
3722
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-test-return-statement.md}
3723
+ */
579
3724
  "vitest/no-test-return-statement": "error",
3725
+ /**
3726
+ * Enforce padding around afterAll blocks.
3727
+ * @fixable
3728
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-after-all-blocks.md}
3729
+ */
3730
+ /**
3731
+ * Enforce padding around afterEach blocks.
3732
+ * @fixable
3733
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-after-each-blocks.md}
3734
+ */
3735
+ /**
3736
+ * Enforce padding around vitest functions.
3737
+ * @fixable
3738
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-all.md}
3739
+ */
580
3740
  "vitest/padding-around-all": "error",
3741
+ /**
3742
+ * Enforce padding around beforeAll blocks.
3743
+ * @fixable
3744
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-before-all-blocks.md}
3745
+ */
3746
+ /**
3747
+ * Enforce padding around beforeEach blocks.
3748
+ * @fixable
3749
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-before-each-blocks.md}
3750
+ */
3751
+ /**
3752
+ * Enforce padding around describe blocks.
3753
+ * @fixable
3754
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-describe-blocks.md}
3755
+ */
3756
+ /**
3757
+ * Enforce padding around expect groups.
3758
+ * @fixable
3759
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-expect-groups.md}
3760
+ */
3761
+ /**
3762
+ * Enforce padding around test blocks.
3763
+ * @fixable
3764
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-test-blocks.md}
3765
+ */
3766
+ /**
3767
+ * Enforce using toBeCalledOnce() or toHaveBeenCalledOnce().
3768
+ * @fixable
3769
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-once.md}
3770
+ */
3771
+ /**
3772
+ * Enforce using toBeCalledTimes(1) or toHaveBeenCalledTimes(1).
3773
+ * @fixable
3774
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-times.md}
3775
+ */
3776
+ /**
3777
+ * Enforce using toBeCalledWith() or toHaveBeenCalledWith().
3778
+ * @fixable
3779
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-with.md}
3780
+ */
581
3781
  "vitest/prefer-called-with": "error",
3782
+ /**
3783
+ * Enforce using the built-in comparison matchers.
3784
+ * @fixable
3785
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-comparison-matcher.md}
3786
+ */
582
3787
  "vitest/prefer-comparison-matcher": "error",
3788
+ /**
3789
+ * Enforce using a function as a describe title over an equivalent string.
3790
+ * @fixable
3791
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-describe-function-title.md}
3792
+ */
3793
+ /**
3794
+ * Enforce using each rather than manual loops.
3795
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-each.md}
3796
+ */
583
3797
  "vitest/prefer-each": "error",
3798
+ /**
3799
+ * Enforce using the built-in quality matchers.
3800
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-equality-matcher.md}
3801
+ */
584
3802
  "vitest/prefer-equality-matcher": "error",
3803
+ /**
3804
+ * Enforce using expect assertions instead of callbacks.
3805
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-assertions.md}
3806
+ */
585
3807
  "vitest/prefer-expect-assertions": "error",
3808
+ /**
3809
+ * Enforce using expect().resolves over expect(await ...) syntax.
3810
+ * @fixable
3811
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-resolves.md}
3812
+ */
586
3813
  "vitest/prefer-expect-resolves": "error",
3814
+ /**
3815
+ * Enforce using expectTypeOf instead of expect(typeof ...).
3816
+ * @fixable
3817
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-type-of.md}
3818
+ */
3819
+ /**
3820
+ * Enforce having hooks in consistent order.
3821
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-in-order.md}
3822
+ */
587
3823
  "vitest/prefer-hooks-in-order": "error",
3824
+ /**
3825
+ * Enforce having hooks before any test cases.
3826
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-on-top.md}
3827
+ */
588
3828
  "vitest/prefer-hooks-on-top": "error",
3829
+ /**
3830
+ * Prefer dynamic import in mock.
3831
+ * @fixable
3832
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-import-in-mock.md}
3833
+ */
3834
+ /**
3835
+ * Enforce importing Vitest globals.
3836
+ * @fixable
3837
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-importing-vitest-globals.md}
3838
+ */
3839
+ /**
3840
+ * Enforce lowercase titles.
3841
+ * @fixable
3842
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-lowercase-title.md}
3843
+ */
589
3844
  "vitest/prefer-lowercase-title": ["error", { ignore: ["describe"] }],
3845
+ /**
3846
+ * Enforce mock resolved/rejected shorthands for promises.
3847
+ * @fixable
3848
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-mock-promise-shorthand.md}
3849
+ */
590
3850
  "vitest/prefer-mock-promise-shorthand": "error",
3851
+ /**
3852
+ * Enforce including a hint with external snapshots.
3853
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-snapshot-hint.md}
3854
+ */
591
3855
  "vitest/prefer-snapshot-hint": "error",
3856
+ /**
3857
+ * Enforce using vi.spyOn.
3858
+ * @fixable
3859
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-spy-on.md}
3860
+ */
592
3861
  "vitest/prefer-spy-on": "error",
3862
+ /**
3863
+ * Enforce using toBe(true) and toBe(false) over matchers that coerce types to boolean.
3864
+ * @fixable
3865
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-strict-boolean-matchers.md}
3866
+ */
3867
+ /**
3868
+ * Enforce strict equal over equal.
3869
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-strict-equal.md}
3870
+ */
593
3871
  "vitest/prefer-strict-equal": "error",
3872
+ /**
3873
+ * Enforce using toBe().
3874
+ * @fixable
3875
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be.md}
3876
+ */
3877
+ /**
3878
+ * Enforce using toBeFalsy().
3879
+ * @fixable
3880
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-falsy.md}
3881
+ */
3882
+ /**
3883
+ * Enforce using toBeObject().
3884
+ * @fixable
3885
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-object.md}
3886
+ */
3887
+ /**
3888
+ * Enforce using toBeTruthy.
3889
+ * @fixable
3890
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-truthy.md}
3891
+ */
3892
+ /**
3893
+ * Enforce using toContain().
3894
+ * @fixable
3895
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-contain.md}
3896
+ */
3897
+ /**
3898
+ * Enforce using toHaveLength().
3899
+ * @fixable
3900
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-have-length.md}
3901
+ */
3902
+ /**
3903
+ * Enforce using test.todo.
3904
+ * @fixable
3905
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-todo.md}
3906
+ */
594
3907
  "vitest/prefer-todo": "error",
3908
+ /**
3909
+ * Require vi.mocked() over fn as Mock.
3910
+ * @fixable
3911
+ * @typeChecked
3912
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-vi-mocked.md}
3913
+ */
595
3914
  "vitest/prefer-vi-mocked": "error",
3915
+ /**
3916
+ * Ensure that every expect.poll call is awaited.
3917
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-awaited-expect-poll.md}
3918
+ */
3919
+ /**
3920
+ * Require setup and teardown to be within a hook.
3921
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-hook.md}
3922
+ */
3923
+ /**
3924
+ * Enforce using type parameters with vitest mock functions.
3925
+ * @fixable
3926
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-mock-type-parameters.md}
3927
+ */
3928
+ /**
3929
+ * Require toThrow() to be called with an error message.
3930
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-to-throw-message.md}
3931
+ */
596
3932
  "vitest/require-to-throw-message": "error",
3933
+ /**
3934
+ * Enforce that all tests are in a top-level describe.
3935
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-top-level-describe.md}
3936
+ */
597
3937
  "vitest/require-top-level-describe": "error",
3938
+ /**
3939
+ * Require promises that have expectations in their chain to be valid.
3940
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect-in-promise.md}
3941
+ */
3942
+ /**
3943
+ * Disallow .todo usage.
3944
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/warn-todo.md}
3945
+ */
3946
+ /**
3947
+ * Enforce having expectation in test body.
3948
+ * @config recommended
3949
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/expect-expect.md}
3950
+ */
3951
+ /**
3952
+ * Disallow commented out tests.
3953
+ * @config recommended
3954
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-commented-out-tests.md}
3955
+ */
3956
+ /**
3957
+ * Disallow identical titles.
3958
+ * @config recommended
3959
+ * @fixable
3960
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-identical-title.md}
3961
+ */
3962
+ /**
3963
+ * Disallow importing node:test.
3964
+ * @config recommended
3965
+ * @fixable
3966
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-import-node-test.md}
3967
+ */
3968
+ /**
3969
+ * Prefer toHaveBeenCalledExactlyOnceWith over toHaveBeenCalledOnce and toHaveBeenCalledWith.
3970
+ * @config recommended
3971
+ * @fixable
3972
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-exactly-once-with.md}
3973
+ */
3974
+ /**
3975
+ * Require local Test Context for concurrent snapshot tests.
3976
+ * @config recommended
3977
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-local-test-context-for-concurrent-snapshots.md}
3978
+ */
3979
+ /**
3980
+ * Enforce valid describe callback.
3981
+ * @config recommended
3982
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-describe-callback.md}
3983
+ */
3984
+ /**
3985
+ * Enforce valid expect() usage.
3986
+ * @config recommended
3987
+ * @fixable
3988
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect.md}
3989
+ */
3990
+ /**
3991
+ * Enforce valid titles.
3992
+ * @config recommended
3993
+ * @fixable
3994
+ * @see {@link https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-title.md}
3995
+ */
598
3996
  "vitest/valid-title": ["error", { mustMatch: { test: "^should" } }]
599
3997
  }
600
3998
  });