@ztd-me/eslint 0.0.0-stage → 0.1.0

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.
@@ -0,0 +1,1903 @@
1
+ [
2
+ {
3
+ "group": "shared",
4
+ "rule": "complexity",
5
+ "value": [
6
+ "error",
7
+ {
8
+ "max": 10,
9
+ "variant": "classic"
10
+ }
11
+ ],
12
+ "status": "enabled",
13
+ "source": "https://eslint.org/docs/latest/rules/complexity"
14
+ },
15
+ {
16
+ "group": "shared",
17
+ "rule": "sonarjs/cognitive-complexity",
18
+ "value": [
19
+ "error",
20
+ 15
21
+ ],
22
+ "status": "enabled",
23
+ "source": "https://sonarsource.github.io/rspec/#/rspec/S3776/javascript"
24
+ },
25
+ {
26
+ "group": "shared",
27
+ "rule": "max-depth",
28
+ "value": [
29
+ "error",
30
+ {
31
+ "max": 4
32
+ }
33
+ ],
34
+ "status": "enabled",
35
+ "source": "https://eslint.org/docs/latest/rules/max-depth"
36
+ },
37
+ {
38
+ "group": "shared",
39
+ "rule": "max-lines-per-function",
40
+ "value": [
41
+ "error",
42
+ {
43
+ "max": 60,
44
+ "skipBlankLines": true,
45
+ "skipComments": true,
46
+ "IIFEs": true
47
+ }
48
+ ],
49
+ "status": "enabled",
50
+ "source": "https://eslint.org/docs/latest/rules/max-lines-per-function"
51
+ },
52
+ {
53
+ "group": "shared",
54
+ "rule": "max-lines",
55
+ "value": [
56
+ "error",
57
+ {
58
+ "max": 300,
59
+ "skipBlankLines": true,
60
+ "skipComments": true
61
+ }
62
+ ],
63
+ "status": "enabled",
64
+ "source": "https://eslint.org/docs/latest/rules/max-lines"
65
+ },
66
+ {
67
+ "group": "shared",
68
+ "rule": "max-params",
69
+ "value": [
70
+ "error",
71
+ {
72
+ "max": 4
73
+ }
74
+ ],
75
+ "status": "enabled",
76
+ "source": "https://eslint.org/docs/latest/rules/max-params"
77
+ },
78
+ {
79
+ "group": "shared",
80
+ "rule": "style/max-len",
81
+ "value": [
82
+ "error",
83
+ {
84
+ "code": 120,
85
+ "comments": 120,
86
+ "tabWidth": 2,
87
+ "ignoreUrls": true,
88
+ "ignoreStrings": false,
89
+ "ignoreTemplateLiterals": false,
90
+ "ignoreRegExpLiterals": false,
91
+ "ignoreComments": false,
92
+ "ignoreTrailingComments": false
93
+ }
94
+ ],
95
+ "status": "enabled",
96
+ "source": "https://eslint.style/rules/max-len"
97
+ },
98
+ {
99
+ "group": "shared",
100
+ "rule": "eqeqeq",
101
+ "value": [
102
+ "error",
103
+ "always"
104
+ ],
105
+ "status": "enabled",
106
+ "source": "https://eslint.org/docs/latest/rules/eqeqeq"
107
+ },
108
+ {
109
+ "group": "shared",
110
+ "rule": "curly",
111
+ "value": [
112
+ "error",
113
+ "all"
114
+ ],
115
+ "status": "enabled",
116
+ "source": "https://eslint.org/docs/latest/rules/curly"
117
+ },
118
+ {
119
+ "group": "shared",
120
+ "rule": "array-callback-return",
121
+ "value": [
122
+ "error",
123
+ {
124
+ "allowImplicit": false,
125
+ "checkForEach": true,
126
+ "allowVoid": false
127
+ }
128
+ ],
129
+ "status": "enabled",
130
+ "source": "https://eslint.org/docs/latest/rules/array-callback-return"
131
+ },
132
+ {
133
+ "group": "shared",
134
+ "rule": "no-empty",
135
+ "value": [
136
+ "error",
137
+ {
138
+ "allowEmptyCatch": false
139
+ }
140
+ ],
141
+ "status": "enabled",
142
+ "source": "https://eslint.org/docs/latest/rules/no-empty"
143
+ },
144
+ {
145
+ "group": "shared",
146
+ "rule": "no-shadow",
147
+ "value": [
148
+ "error",
149
+ {
150
+ "builtinGlobals": false,
151
+ "hoist": "all",
152
+ "ignoreOnInitialization": false
153
+ }
154
+ ],
155
+ "status": "enabled",
156
+ "source": "https://eslint.org/docs/latest/rules/no-shadow"
157
+ },
158
+ {
159
+ "group": "shared",
160
+ "rule": "no-nested-ternary",
161
+ "value": "error",
162
+ "status": "enabled",
163
+ "source": "https://eslint.org/docs/latest/rules/no-nested-ternary"
164
+ },
165
+ {
166
+ "group": "shared",
167
+ "rule": "no-unused-expressions",
168
+ "value": [
169
+ "error",
170
+ {
171
+ "allowShortCircuit": false,
172
+ "allowTernary": false,
173
+ "allowTaggedTemplates": true,
174
+ "enforceForJSX": true
175
+ }
176
+ ],
177
+ "status": "enabled",
178
+ "source": "https://eslint.org/docs/latest/rules/no-unused-expressions"
179
+ },
180
+ {
181
+ "group": "shared",
182
+ "rule": "eslint-comments/require-description",
183
+ "value": [
184
+ "error",
185
+ {
186
+ "ignore": [
187
+ "eslint-enable"
188
+ ]
189
+ }
190
+ ],
191
+ "status": "enabled",
192
+ "source": "https://eslint-community.github.io/eslint-plugin-eslint-comments/rules/require-description.html"
193
+ },
194
+ {
195
+ "group": "shared",
196
+ "rule": "unused-imports/no-unused-vars",
197
+ "value": [
198
+ "error",
199
+ {
200
+ "args": "all",
201
+ "argsIgnorePattern": "^_",
202
+ "caughtErrors": "all",
203
+ "caughtErrorsIgnorePattern": "^_",
204
+ "vars": "all",
205
+ "varsIgnorePattern": "^_",
206
+ "ignoreRestSiblings": true,
207
+ "reportUsedIgnorePattern": true
208
+ }
209
+ ],
210
+ "status": "enabled",
211
+ "source": "https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-vars.md"
212
+ },
213
+ {
214
+ "group": "shared",
215
+ "rule": "style/array-bracket-newline",
216
+ "value": [
217
+ "error",
218
+ {
219
+ "multiline": true
220
+ }
221
+ ],
222
+ "status": "replaced: ztd/array-layout (full researched policy)",
223
+ "source": "https://eslint.style/rules/array-bracket-newline"
224
+ },
225
+ {
226
+ "group": "shared",
227
+ "rule": "style/array-element-newline",
228
+ "value": [
229
+ "error",
230
+ {
231
+ "ArrayExpression": {
232
+ "minItems": 3,
233
+ "multiline": true,
234
+ "consistent": true
235
+ },
236
+ "ArrayPattern": "consistent"
237
+ }
238
+ ],
239
+ "status": "replaced: ztd/array-layout (full researched policy)",
240
+ "source": "https://eslint.style/rules/array-element-newline"
241
+ },
242
+ {
243
+ "group": "shared",
244
+ "rule": "no-constant-binary-expression",
245
+ "value": "error",
246
+ "status": "enabled",
247
+ "source": "https://eslint.org/docs/latest/rules/no-constant-binary-expression"
248
+ },
249
+ {
250
+ "group": "shared",
251
+ "rule": "no-unsafe-optional-chaining",
252
+ "value": [
253
+ "error",
254
+ {
255
+ "disallowArithmeticOperators": true
256
+ }
257
+ ],
258
+ "status": "enabled",
259
+ "source": "https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining"
260
+ },
261
+ {
262
+ "group": "shared",
263
+ "rule": "no-promise-executor-return",
264
+ "value": [
265
+ "error",
266
+ {
267
+ "allowVoid": false
268
+ }
269
+ ],
270
+ "status": "enabled",
271
+ "source": "https://eslint.org/docs/latest/rules/no-promise-executor-return"
272
+ },
273
+ {
274
+ "group": "shared",
275
+ "rule": "no-setter-return",
276
+ "value": "error",
277
+ "status": "enabled",
278
+ "source": "https://eslint.org/docs/latest/rules/no-setter-return"
279
+ },
280
+ {
281
+ "group": "ts-syntax",
282
+ "rule": "ts/no-explicit-any",
283
+ "value": [
284
+ "error",
285
+ {
286
+ "fixToUnknown": false,
287
+ "ignoreRestArgs": false
288
+ }
289
+ ],
290
+ "status": "enabled",
291
+ "source": "https://typescript-eslint.io/rules/no-explicit-any"
292
+ },
293
+ {
294
+ "group": "ts-syntax",
295
+ "rule": "ts/no-non-null-assertion",
296
+ "value": "error",
297
+ "status": "enabled",
298
+ "source": "https://typescript-eslint.io/rules/no-non-null-assertion"
299
+ },
300
+ {
301
+ "group": "ts-syntax",
302
+ "rule": "ts/no-empty-object-type",
303
+ "value": [
304
+ "error",
305
+ {
306
+ "allowInterfaces": "never",
307
+ "allowObjectTypes": "never"
308
+ }
309
+ ],
310
+ "status": "enabled",
311
+ "source": "https://typescript-eslint.io/rules/no-empty-object-type"
312
+ },
313
+ {
314
+ "group": "ts-syntax",
315
+ "rule": "ts/ban-ts-comment",
316
+ "value": [
317
+ "error",
318
+ {
319
+ "ts-ignore": true,
320
+ "ts-nocheck": true,
321
+ "ts-check": false,
322
+ "ts-expect-error": "allow-with-description",
323
+ "minimumDescriptionLength": 10
324
+ }
325
+ ],
326
+ "status": "enabled",
327
+ "source": "https://typescript-eslint.io/rules/ban-ts-comment"
328
+ },
329
+ {
330
+ "group": "ts-syntax",
331
+ "rule": "ts/consistent-type-assertions",
332
+ "value": [
333
+ "error",
334
+ {
335
+ "assertionStyle": "as",
336
+ "objectLiteralTypeAssertions": "never",
337
+ "arrayLiteralTypeAssertions": "never"
338
+ }
339
+ ],
340
+ "status": "enabled",
341
+ "source": "https://typescript-eslint.io/rules/consistent-type-assertions"
342
+ },
343
+ {
344
+ "group": "ts-syntax",
345
+ "rule": "ts/explicit-module-boundary-types",
346
+ "value": [
347
+ "error",
348
+ {
349
+ "allowArgumentsExplicitlyTypedAsAny": false,
350
+ "allowDirectConstAssertionInArrowFunctions": false,
351
+ "allowHigherOrderFunctions": false,
352
+ "allowOverloadFunctions": false,
353
+ "allowTypedFunctionExpressions": true
354
+ }
355
+ ],
356
+ "status": "enabled",
357
+ "source": "https://typescript-eslint.io/rules/explicit-module-boundary-types"
358
+ },
359
+ {
360
+ "group": "ts-syntax",
361
+ "rule": "ts/no-useless-constructor",
362
+ "value": "error",
363
+ "status": "enabled",
364
+ "source": "https://typescript-eslint.io/rules/no-useless-constructor"
365
+ },
366
+ {
367
+ "group": "ts-syntax",
368
+ "rule": "ts/no-invalid-void-type",
369
+ "value": [
370
+ "error",
371
+ {
372
+ "allowAsThisParameter": true,
373
+ "allowInGenericTypeArguments": true
374
+ }
375
+ ],
376
+ "status": "enabled",
377
+ "source": "https://typescript-eslint.io/rules/no-invalid-void-type"
378
+ },
379
+ {
380
+ "group": "ts-syntax",
381
+ "rule": "ts/no-extraneous-class",
382
+ "value": [
383
+ "error",
384
+ {
385
+ "allowConstructorOnly": false,
386
+ "allowEmpty": false,
387
+ "allowStaticOnly": false,
388
+ "allowWithDecorator": true
389
+ }
390
+ ],
391
+ "status": "enabled",
392
+ "source": "https://typescript-eslint.io/rules/no-extraneous-class"
393
+ },
394
+ {
395
+ "group": "ts-syntax",
396
+ "rule": "ts/max-params",
397
+ "value": [
398
+ "error",
399
+ {
400
+ "max": 4,
401
+ "countVoidThis": false
402
+ }
403
+ ],
404
+ "status": "enabled",
405
+ "source": "https://typescript-eslint.io/rules/max-params"
406
+ },
407
+ {
408
+ "group": "ts-syntax",
409
+ "rule": "ts/no-shadow",
410
+ "value": [
411
+ "error",
412
+ {
413
+ "builtinGlobals": false,
414
+ "hoist": "functions-and-types",
415
+ "ignoreOnInitialization": false,
416
+ "ignoreTypeValueShadow": true,
417
+ "ignoreFunctionTypeParameterNameValueShadow": true
418
+ }
419
+ ],
420
+ "status": "enabled",
421
+ "source": "https://typescript-eslint.io/rules/no-shadow"
422
+ },
423
+ {
424
+ "group": "ts-syntax",
425
+ "rule": "ts/no-unused-expressions",
426
+ "value": [
427
+ "error",
428
+ {
429
+ "allowShortCircuit": false,
430
+ "allowTernary": false,
431
+ "allowTaggedTemplates": true,
432
+ "enforceForJSX": true
433
+ }
434
+ ],
435
+ "status": "enabled",
436
+ "source": "https://typescript-eslint.io/rules/no-unused-expressions"
437
+ },
438
+ {
439
+ "group": "typed",
440
+ "rule": "ts/strict-boolean-expressions",
441
+ "value": [
442
+ "error",
443
+ {
444
+ "allowAny": false,
445
+ "allowNumber": false,
446
+ "allowString": false,
447
+ "allowNullableBoolean": false,
448
+ "allowNullableEnum": false,
449
+ "allowNullableNumber": false,
450
+ "allowNullableObject": false,
451
+ "allowNullableString": false
452
+ }
453
+ ],
454
+ "status": "enabled",
455
+ "source": "https://typescript-eslint.io/rules/strict-boolean-expressions"
456
+ },
457
+ {
458
+ "group": "typed",
459
+ "rule": "ts/no-floating-promises",
460
+ "value": [
461
+ "error",
462
+ {
463
+ "checkThenables": true,
464
+ "ignoreVoid": false,
465
+ "ignoreIIFE": false,
466
+ "allowForKnownSafeCalls": [],
467
+ "allowForKnownSafePromises": []
468
+ }
469
+ ],
470
+ "status": "enabled",
471
+ "source": "https://typescript-eslint.io/rules/no-floating-promises"
472
+ },
473
+ {
474
+ "group": "typed",
475
+ "rule": "ts/no-misused-promises",
476
+ "value": [
477
+ "error",
478
+ {
479
+ "checksConditionals": {
480
+ "flagUnions": "all"
481
+ },
482
+ "checksSpreads": true,
483
+ "checksVoidReturn": true
484
+ }
485
+ ],
486
+ "status": "enabled",
487
+ "source": "https://typescript-eslint.io/rules/no-misused-promises"
488
+ },
489
+ {
490
+ "group": "typed",
491
+ "rule": "ts/restrict-plus-operands",
492
+ "value": [
493
+ "error",
494
+ {
495
+ "allowAny": false,
496
+ "allowBoolean": false,
497
+ "allowNullish": false,
498
+ "allowNumberAndString": false,
499
+ "allowRegExp": false,
500
+ "skipCompoundAssignments": false
501
+ }
502
+ ],
503
+ "status": "enabled",
504
+ "source": "https://typescript-eslint.io/rules/restrict-plus-operands"
505
+ },
506
+ {
507
+ "group": "typed",
508
+ "rule": "ts/restrict-template-expressions",
509
+ "value": [
510
+ "error",
511
+ {
512
+ "allow": [],
513
+ "allowAny": false,
514
+ "allowArray": false,
515
+ "allowBoolean": false,
516
+ "allowNullish": false,
517
+ "allowNumber": true,
518
+ "allowRegExp": false,
519
+ "allowNever": false
520
+ }
521
+ ],
522
+ "status": "enabled",
523
+ "source": "https://typescript-eslint.io/rules/restrict-template-expressions"
524
+ },
525
+ {
526
+ "group": "typed",
527
+ "rule": "ts/return-await",
528
+ "value": [
529
+ "error",
530
+ "always"
531
+ ],
532
+ "status": "enabled",
533
+ "source": "https://typescript-eslint.io/rules/return-await"
534
+ },
535
+ {
536
+ "group": "typed",
537
+ "rule": "ts/switch-exhaustiveness-check",
538
+ "value": [
539
+ "error",
540
+ {
541
+ "allowDefaultCaseForExhaustiveSwitch": true,
542
+ "considerDefaultExhaustiveForUnions": false,
543
+ "requireDefaultForNonUnion": true
544
+ }
545
+ ],
546
+ "status": "enabled",
547
+ "source": "https://typescript-eslint.io/rules/switch-exhaustiveness-check"
548
+ },
549
+ {
550
+ "group": "typed",
551
+ "rule": "ts/only-throw-error",
552
+ "value": [
553
+ "error",
554
+ {
555
+ "allow": [],
556
+ "allowRethrowing": true,
557
+ "allowThrowingAny": false,
558
+ "allowThrowingUnknown": false
559
+ }
560
+ ],
561
+ "status": "enabled",
562
+ "source": "https://typescript-eslint.io/rules/only-throw-error"
563
+ },
564
+ {
565
+ "group": "typed",
566
+ "rule": "ts/no-unsafe-type-assertion",
567
+ "value": "error",
568
+ "status": "enabled",
569
+ "source": "https://typescript-eslint.io/rules/no-unsafe-type-assertion"
570
+ },
571
+ {
572
+ "group": "typed",
573
+ "rule": "ts/use-unknown-in-catch-callback-variable",
574
+ "value": "error",
575
+ "status": "enabled",
576
+ "source": "https://typescript-eslint.io/rules/use-unknown-in-catch-callback-variable"
577
+ },
578
+ {
579
+ "group": "typed",
580
+ "rule": "ts/no-unnecessary-condition",
581
+ "value": [
582
+ "error",
583
+ {
584
+ "allowConstantLoopConditions": "only-allowed-literals",
585
+ "checkTypePredicates": true
586
+ }
587
+ ],
588
+ "status": "enabled",
589
+ "source": "https://typescript-eslint.io/rules/no-unnecessary-condition"
590
+ },
591
+ {
592
+ "group": "typed",
593
+ "rule": "ts/no-base-to-string",
594
+ "value": [
595
+ "error",
596
+ {
597
+ "checkUnknown": true,
598
+ "ignoredTypeNames": [
599
+ "Error",
600
+ "RegExp",
601
+ "URL",
602
+ "URLSearchParams"
603
+ ]
604
+ }
605
+ ],
606
+ "status": "enabled",
607
+ "source": "https://typescript-eslint.io/rules/no-base-to-string"
608
+ },
609
+ {
610
+ "group": "typed",
611
+ "rule": "ts/no-misused-spread",
612
+ "value": [
613
+ "error",
614
+ {
615
+ "allow": []
616
+ }
617
+ ],
618
+ "status": "enabled",
619
+ "source": "https://typescript-eslint.io/rules/no-misused-spread"
620
+ },
621
+ {
622
+ "group": "typed",
623
+ "rule": "ts/no-unsafe-enum-comparison",
624
+ "value": "error",
625
+ "status": "enabled",
626
+ "source": "https://typescript-eslint.io/rules/no-unsafe-enum-comparison"
627
+ },
628
+ {
629
+ "group": "typed",
630
+ "rule": "ts/no-deprecated",
631
+ "value": [
632
+ "error",
633
+ {
634
+ "allow": []
635
+ }
636
+ ],
637
+ "status": "enabled",
638
+ "source": "https://typescript-eslint.io/rules/no-deprecated"
639
+ },
640
+ {
641
+ "group": "typed",
642
+ "rule": "ts/consistent-type-exports",
643
+ "value": [
644
+ "error",
645
+ {
646
+ "fixMixedExportsWithInlineTypeSpecifier": false
647
+ }
648
+ ],
649
+ "status": "enabled",
650
+ "source": "https://typescript-eslint.io/rules/consistent-type-exports"
651
+ },
652
+ {
653
+ "group": "typed",
654
+ "rule": "ts/prefer-readonly",
655
+ "value": [
656
+ "error",
657
+ {
658
+ "onlyInlineLambdas": false
659
+ }
660
+ ],
661
+ "status": "enabled",
662
+ "source": "https://typescript-eslint.io/rules/prefer-readonly"
663
+ },
664
+ {
665
+ "group": "typed",
666
+ "rule": "ts/require-array-sort-compare",
667
+ "value": [
668
+ "error",
669
+ {
670
+ "ignoreStringArrays": true
671
+ }
672
+ ],
673
+ "status": "enabled",
674
+ "source": "https://typescript-eslint.io/rules/require-array-sort-compare"
675
+ },
676
+ {
677
+ "group": "typed",
678
+ "rule": "ts/require-await",
679
+ "value": "error",
680
+ "status": "enabled",
681
+ "source": "https://typescript-eslint.io/rules/require-await"
682
+ },
683
+ {
684
+ "group": "typed",
685
+ "rule": "ts/prefer-nullish-coalescing",
686
+ "value": [
687
+ "error",
688
+ {
689
+ "ignoreConditionalTests": true,
690
+ "ignoreMixedLogicalExpressions": false,
691
+ "ignorePrimitives": {
692
+ "bigint": false,
693
+ "boolean": false,
694
+ "number": false,
695
+ "string": false
696
+ }
697
+ }
698
+ ],
699
+ "status": "enabled",
700
+ "source": "https://typescript-eslint.io/rules/prefer-nullish-coalescing"
701
+ },
702
+ {
703
+ "group": "typed",
704
+ "rule": "ts/prefer-optional-chain",
705
+ "value": [
706
+ "error",
707
+ {
708
+ "requireNullish": true,
709
+ "allowPotentiallyUnsafeFixesThatModifyTheReturnTypeIKnowWhatImDoing": false
710
+ }
711
+ ],
712
+ "status": "enabled",
713
+ "source": "https://typescript-eslint.io/rules/prefer-optional-chain"
714
+ },
715
+ {
716
+ "group": "typed",
717
+ "rule": "ts/no-array-delete",
718
+ "value": "error",
719
+ "status": "enabled",
720
+ "source": "https://typescript-eslint.io/rules/no-array-delete"
721
+ },
722
+ {
723
+ "group": "typed",
724
+ "rule": "ts/no-unsafe-unary-minus",
725
+ "value": "error",
726
+ "status": "enabled",
727
+ "source": "https://typescript-eslint.io/rules/no-unsafe-unary-minus"
728
+ },
729
+ {
730
+ "group": "typed",
731
+ "rule": "ts/prefer-promise-reject-errors",
732
+ "value": [
733
+ "error",
734
+ {
735
+ "allowEmptyReject": false,
736
+ "allowThrowingAny": false,
737
+ "allowThrowingUnknown": false
738
+ }
739
+ ],
740
+ "status": "enabled",
741
+ "source": "https://typescript-eslint.io/rules/prefer-promise-reject-errors"
742
+ },
743
+ {
744
+ "group": "typed",
745
+ "rule": "ts/await-thenable",
746
+ "value": "error",
747
+ "status": "enabled",
748
+ "source": "https://typescript-eslint.io/rules/await-thenable"
749
+ },
750
+ {
751
+ "group": "typed",
752
+ "rule": "ts/no-for-in-array",
753
+ "value": "error",
754
+ "status": "enabled",
755
+ "source": "https://typescript-eslint.io/rules/no-for-in-array"
756
+ },
757
+ {
758
+ "group": "typed",
759
+ "rule": "ts/no-implied-eval",
760
+ "value": "error",
761
+ "status": "enabled",
762
+ "source": "https://typescript-eslint.io/rules/no-implied-eval"
763
+ },
764
+ {
765
+ "group": "typed",
766
+ "rule": "ts/no-unnecessary-type-assertion",
767
+ "value": "error",
768
+ "status": "enabled",
769
+ "source": "https://typescript-eslint.io/rules/no-unnecessary-type-assertion"
770
+ },
771
+ {
772
+ "group": "typed",
773
+ "rule": "ts/no-unsafe-argument",
774
+ "value": "error",
775
+ "status": "enabled",
776
+ "source": "https://typescript-eslint.io/rules/no-unsafe-argument"
777
+ },
778
+ {
779
+ "group": "typed",
780
+ "rule": "ts/no-unsafe-assignment",
781
+ "value": "error",
782
+ "status": "enabled",
783
+ "source": "https://typescript-eslint.io/rules/no-unsafe-assignment"
784
+ },
785
+ {
786
+ "group": "typed",
787
+ "rule": "ts/no-unsafe-call",
788
+ "value": "error",
789
+ "status": "enabled",
790
+ "source": "https://typescript-eslint.io/rules/no-unsafe-call"
791
+ },
792
+ {
793
+ "group": "typed",
794
+ "rule": "ts/no-unsafe-member-access",
795
+ "value": "error",
796
+ "status": "enabled",
797
+ "source": "https://typescript-eslint.io/rules/no-unsafe-member-access"
798
+ },
799
+ {
800
+ "group": "typed",
801
+ "rule": "ts/no-unsafe-return",
802
+ "value": "error",
803
+ "status": "enabled",
804
+ "source": "https://typescript-eslint.io/rules/no-unsafe-return"
805
+ },
806
+ {
807
+ "group": "typed",
808
+ "rule": "ts/unbound-method",
809
+ "value": "error",
810
+ "status": "enabled",
811
+ "source": "https://typescript-eslint.io/rules/unbound-method"
812
+ },
813
+ {
814
+ "group": "react",
815
+ "rule": "react/exhaustive-deps",
816
+ "value": [
817
+ "error",
818
+ {
819
+ "enableDangerousAutofixThisMayCauseInfiniteLoops": false,
820
+ "requireExplicitEffectDeps": false
821
+ }
822
+ ],
823
+ "status": "enabled",
824
+ "source": "https://eslint-react.xyz/docs/rules/exhaustive-deps"
825
+ },
826
+ {
827
+ "group": "react",
828
+ "rule": "react/no-array-index-key",
829
+ "value": "error",
830
+ "status": "enabled",
831
+ "source": "https://eslint-react.xyz/docs/rules/no-array-index-key"
832
+ },
833
+ {
834
+ "group": "react",
835
+ "rule": "react/purity",
836
+ "value": "error",
837
+ "status": "enabled",
838
+ "source": "https://eslint-react.xyz/docs/rules/purity"
839
+ },
840
+ {
841
+ "group": "react",
842
+ "rule": "react/set-state-in-effect",
843
+ "value": "error",
844
+ "status": "enabled",
845
+ "source": "https://eslint-react.xyz/docs/rules/set-state-in-effect"
846
+ },
847
+ {
848
+ "group": "react",
849
+ "rule": "react/web-api-no-leaked-event-listener",
850
+ "value": "error",
851
+ "status": "enabled",
852
+ "source": "https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener"
853
+ },
854
+ {
855
+ "group": "react",
856
+ "rule": "react/web-api-no-leaked-intersection-observer",
857
+ "value": "error",
858
+ "status": "enabled",
859
+ "source": "https://eslint-react.xyz/docs/rules/web-api-no-leaked-intersection-observer"
860
+ },
861
+ {
862
+ "group": "react",
863
+ "rule": "react/web-api-no-leaked-interval",
864
+ "value": "error",
865
+ "status": "enabled",
866
+ "source": "https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval"
867
+ },
868
+ {
869
+ "group": "react",
870
+ "rule": "react/web-api-no-leaked-resize-observer",
871
+ "value": "error",
872
+ "status": "enabled",
873
+ "source": "https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer"
874
+ },
875
+ {
876
+ "group": "react",
877
+ "rule": "react/web-api-no-leaked-timeout",
878
+ "value": "error",
879
+ "status": "enabled",
880
+ "source": "https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout"
881
+ },
882
+ {
883
+ "group": "react",
884
+ "rule": "react/jsx-no-comment-textnodes",
885
+ "value": "error",
886
+ "status": "enabled",
887
+ "source": "https://eslint-react.xyz/docs/rules/jsx-no-comment-textnodes"
888
+ },
889
+ {
890
+ "group": "react",
891
+ "rule": "react/jsx-no-leaked-dollar",
892
+ "value": "error",
893
+ "status": "enabled",
894
+ "source": "https://eslint-react.xyz/docs/rules/jsx-no-leaked-dollar"
895
+ },
896
+ {
897
+ "group": "react",
898
+ "rule": "react/jsx-no-leaked-semicolon",
899
+ "value": "error",
900
+ "status": "enabled",
901
+ "source": "https://eslint-react.xyz/docs/rules/jsx-no-leaked-semicolon"
902
+ },
903
+ {
904
+ "group": "react",
905
+ "rule": "react/dom-no-dangerously-set-innerhtml",
906
+ "value": "error",
907
+ "status": "enabled",
908
+ "source": "https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml"
909
+ },
910
+ {
911
+ "group": "react",
912
+ "rule": "react/dom-no-script-url",
913
+ "value": "error",
914
+ "status": "enabled",
915
+ "source": "https://eslint-react.xyz/docs/rules/dom-no-script-url"
916
+ },
917
+ {
918
+ "group": "react",
919
+ "rule": "react/dom-no-unsafe-iframe-sandbox",
920
+ "value": "error",
921
+ "status": "enabled",
922
+ "source": "https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox"
923
+ },
924
+ {
925
+ "group": "react",
926
+ "rule": "react/web-api-no-leaked-fetch",
927
+ "value": "error",
928
+ "status": "opt-in: react.experimental",
929
+ "source": "https://eslint-react.xyz/docs/rules/web-api-no-leaked-fetch"
930
+ },
931
+ {
932
+ "group": "react",
933
+ "rule": "react/use-state",
934
+ "value": [
935
+ "error",
936
+ {
937
+ "enforceAssignment": true,
938
+ "enforceLazyInitialization": true,
939
+ "enforceSetterName": true
940
+ }
941
+ ],
942
+ "status": "enabled",
943
+ "source": "https://eslint-react.xyz/docs/rules/use-state"
944
+ },
945
+ {
946
+ "group": "react",
947
+ "rule": "react/no-unstable-context-value",
948
+ "value": "error",
949
+ "status": "enabled",
950
+ "source": "https://eslint-react.xyz/docs/rules/no-unstable-context-value"
951
+ },
952
+ {
953
+ "group": "react",
954
+ "rule": "react/no-unstable-default-props",
955
+ "value": [
956
+ "error",
957
+ {
958
+ "safeDefaultProps": []
959
+ }
960
+ ],
961
+ "status": "enabled",
962
+ "source": "https://eslint-react.xyz/docs/rules/no-unstable-default-props"
963
+ },
964
+ {
965
+ "group": "react",
966
+ "rule": "react/dom-no-missing-button-type",
967
+ "value": "error",
968
+ "status": "enabled",
969
+ "source": "https://eslint-react.xyz/docs/rules/dom-no-missing-button-type"
970
+ },
971
+ {
972
+ "group": "react",
973
+ "rule": "react/dom-no-missing-iframe-sandbox",
974
+ "value": "error",
975
+ "status": "enabled",
976
+ "source": "https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox"
977
+ },
978
+ {
979
+ "group": "react",
980
+ "rule": "react/dom-no-unsafe-target-blank",
981
+ "value": "error",
982
+ "status": "enabled",
983
+ "source": "https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank"
984
+ },
985
+ {
986
+ "group": "react",
987
+ "rule": "react/rules-of-hooks",
988
+ "value": "error",
989
+ "status": "enabled",
990
+ "source": "https://eslint-react.xyz/docs/rules/rules-of-hooks"
991
+ },
992
+ {
993
+ "group": "react",
994
+ "rule": "react/error-boundaries",
995
+ "value": "error",
996
+ "status": "enabled",
997
+ "source": "https://eslint-react.xyz/docs/rules/error-boundaries"
998
+ },
999
+ {
1000
+ "group": "react",
1001
+ "rule": "react/no-missing-key",
1002
+ "value": "error",
1003
+ "status": "enabled",
1004
+ "source": "https://eslint-react.xyz/docs/rules/no-missing-key"
1005
+ },
1006
+ {
1007
+ "group": "react",
1008
+ "rule": "react/no-nested-component-definitions",
1009
+ "value": "error",
1010
+ "status": "enabled",
1011
+ "source": "https://eslint-react.xyz/docs/rules/no-nested-component-definitions"
1012
+ },
1013
+ {
1014
+ "group": "react",
1015
+ "rule": "react/no-nested-lazy-component-declarations",
1016
+ "value": "error",
1017
+ "status": "enabled",
1018
+ "source": "https://eslint-react.xyz/docs/rules/no-nested-lazy-component-declarations"
1019
+ },
1020
+ {
1021
+ "group": "react",
1022
+ "rule": "react/set-state-in-render",
1023
+ "value": "error",
1024
+ "status": "enabled",
1025
+ "source": "https://eslint-react.xyz/docs/rules/set-state-in-render"
1026
+ },
1027
+ {
1028
+ "group": "react",
1029
+ "rule": "react/static-components",
1030
+ "value": "error",
1031
+ "status": "enabled",
1032
+ "source": "https://eslint-react.xyz/docs/rules/static-components"
1033
+ },
1034
+ {
1035
+ "group": "react",
1036
+ "rule": "react/use-memo",
1037
+ "value": "error",
1038
+ "status": "enabled",
1039
+ "source": "https://eslint-react.xyz/docs/rules/use-memo"
1040
+ },
1041
+ {
1042
+ "group": "react",
1043
+ "rule": "react/dom-no-dangerously-set-innerhtml-with-children",
1044
+ "value": "error",
1045
+ "status": "enabled",
1046
+ "source": "https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children"
1047
+ },
1048
+ {
1049
+ "group": "react",
1050
+ "rule": "react/dom-no-void-elements-with-children",
1051
+ "value": "error",
1052
+ "status": "enabled",
1053
+ "source": "https://eslint-react.xyz/docs/rules/dom-no-void-elements-with-children"
1054
+ },
1055
+ {
1056
+ "group": "react",
1057
+ "rule": "react/no-leaked-conditional-rendering",
1058
+ "value": "error",
1059
+ "status": "enabled: typed React files only",
1060
+ "source": "https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering"
1061
+ },
1062
+ {
1063
+ "group": "react",
1064
+ "rule": "react-hooks/globals",
1065
+ "value": "error",
1066
+ "status": "enabled",
1067
+ "source": "https://react.dev/reference/eslint-plugin-react-hooks/lints/globals"
1068
+ },
1069
+ {
1070
+ "group": "react",
1071
+ "rule": "react-hooks/immutability",
1072
+ "value": "error",
1073
+ "status": "enabled",
1074
+ "source": "https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability"
1075
+ },
1076
+ {
1077
+ "group": "react",
1078
+ "rule": "react-hooks/refs",
1079
+ "value": "error",
1080
+ "status": "enabled",
1081
+ "source": "https://react.dev/reference/eslint-plugin-react-hooks/lints/refs"
1082
+ },
1083
+ {
1084
+ "group": "react",
1085
+ "rule": "react-hooks/config",
1086
+ "value": "error",
1087
+ "status": "opt-in: react.compiler",
1088
+ "source": "https://react.dev/reference/eslint-plugin-react-hooks/lints/config"
1089
+ },
1090
+ {
1091
+ "group": "react",
1092
+ "rule": "react-hooks/gating",
1093
+ "value": "error",
1094
+ "status": "opt-in: react.compiler",
1095
+ "source": "https://react.dev/reference/eslint-plugin-react-hooks/lints/gating"
1096
+ },
1097
+ {
1098
+ "group": "react",
1099
+ "rule": "react-hooks/incompatible-library",
1100
+ "value": "error",
1101
+ "status": "opt-in: react.compiler",
1102
+ "source": "https://react.dev/reference/eslint-plugin-react-hooks/lints/incompatible-library"
1103
+ },
1104
+ {
1105
+ "group": "react",
1106
+ "rule": "react-hooks/preserve-manual-memoization",
1107
+ "value": "error",
1108
+ "status": "opt-in: react.compiler",
1109
+ "source": "https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization"
1110
+ },
1111
+ {
1112
+ "group": "react-a11y",
1113
+ "rule": "jsx-a11y/alt-text",
1114
+ "value": "error",
1115
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1116
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/alt-text.md"
1117
+ },
1118
+ {
1119
+ "group": "react-a11y",
1120
+ "rule": "jsx-a11y/anchor-has-content",
1121
+ "value": "error",
1122
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1123
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-has-content.md"
1124
+ },
1125
+ {
1126
+ "group": "react-a11y",
1127
+ "rule": "jsx-a11y/anchor-is-valid",
1128
+ "value": "error",
1129
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1130
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/anchor-is-valid.md"
1131
+ },
1132
+ {
1133
+ "group": "react-a11y",
1134
+ "rule": "jsx-a11y/aria-activedescendant-has-tabindex",
1135
+ "value": "error",
1136
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1137
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-activedescendant-has-tabindex.md"
1138
+ },
1139
+ {
1140
+ "group": "react-a11y",
1141
+ "rule": "jsx-a11y/aria-props",
1142
+ "value": "error",
1143
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1144
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-props.md"
1145
+ },
1146
+ {
1147
+ "group": "react-a11y",
1148
+ "rule": "jsx-a11y/aria-proptypes",
1149
+ "value": "error",
1150
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1151
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-proptypes.md"
1152
+ },
1153
+ {
1154
+ "group": "react-a11y",
1155
+ "rule": "jsx-a11y/aria-role",
1156
+ "value": "error",
1157
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1158
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-role.md"
1159
+ },
1160
+ {
1161
+ "group": "react-a11y",
1162
+ "rule": "jsx-a11y/aria-unsupported-elements",
1163
+ "value": "error",
1164
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1165
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/aria-unsupported-elements.md"
1166
+ },
1167
+ {
1168
+ "group": "react-a11y",
1169
+ "rule": "jsx-a11y/autocomplete-valid",
1170
+ "value": "error",
1171
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1172
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/autocomplete-valid.md"
1173
+ },
1174
+ {
1175
+ "group": "react-a11y",
1176
+ "rule": "jsx-a11y/click-events-have-key-events",
1177
+ "value": "error",
1178
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1179
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/click-events-have-key-events.md"
1180
+ },
1181
+ {
1182
+ "group": "react-a11y",
1183
+ "rule": "jsx-a11y/heading-has-content",
1184
+ "value": "error",
1185
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1186
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/heading-has-content.md"
1187
+ },
1188
+ {
1189
+ "group": "react-a11y",
1190
+ "rule": "jsx-a11y/html-has-lang",
1191
+ "value": "error",
1192
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1193
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/html-has-lang.md"
1194
+ },
1195
+ {
1196
+ "group": "react-a11y",
1197
+ "rule": "jsx-a11y/iframe-has-title",
1198
+ "value": "error",
1199
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1200
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/iframe-has-title.md"
1201
+ },
1202
+ {
1203
+ "group": "react-a11y",
1204
+ "rule": "jsx-a11y/img-redundant-alt",
1205
+ "value": "error",
1206
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1207
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/img-redundant-alt.md"
1208
+ },
1209
+ {
1210
+ "group": "react-a11y",
1211
+ "rule": "jsx-a11y/interactive-supports-focus",
1212
+ "value": [
1213
+ "error",
1214
+ {
1215
+ "tabbable": [
1216
+ "button",
1217
+ "checkbox",
1218
+ "link",
1219
+ "progressbar",
1220
+ "searchbox",
1221
+ "slider",
1222
+ "spinbutton",
1223
+ "switch",
1224
+ "textbox"
1225
+ ]
1226
+ }
1227
+ ],
1228
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1229
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/interactive-supports-focus.md"
1230
+ },
1231
+ {
1232
+ "group": "react-a11y",
1233
+ "rule": "jsx-a11y/label-has-associated-control",
1234
+ "value": [
1235
+ "error",
1236
+ {
1237
+ "assert": "either",
1238
+ "depth": 3
1239
+ }
1240
+ ],
1241
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1242
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/label-has-associated-control.md"
1243
+ },
1244
+ {
1245
+ "group": "react-a11y",
1246
+ "rule": "jsx-a11y/media-has-caption",
1247
+ "value": "error",
1248
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1249
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/media-has-caption.md"
1250
+ },
1251
+ {
1252
+ "group": "react-a11y",
1253
+ "rule": "jsx-a11y/mouse-events-have-key-events",
1254
+ "value": "error",
1255
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1256
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/mouse-events-have-key-events.md"
1257
+ },
1258
+ {
1259
+ "group": "react-a11y",
1260
+ "rule": "jsx-a11y/no-access-key",
1261
+ "value": "error",
1262
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1263
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-access-key.md"
1264
+ },
1265
+ {
1266
+ "group": "react-a11y",
1267
+ "rule": "jsx-a11y/no-autofocus",
1268
+ "value": "error",
1269
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1270
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-autofocus.md"
1271
+ },
1272
+ {
1273
+ "group": "react-a11y",
1274
+ "rule": "jsx-a11y/no-distracting-elements",
1275
+ "value": "error",
1276
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1277
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-distracting-elements.md"
1278
+ },
1279
+ {
1280
+ "group": "react-a11y",
1281
+ "rule": "jsx-a11y/no-interactive-element-to-noninteractive-role",
1282
+ "value": "error",
1283
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1284
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-interactive-element-to-noninteractive-role.md"
1285
+ },
1286
+ {
1287
+ "group": "react-a11y",
1288
+ "rule": "jsx-a11y/no-noninteractive-element-interactions",
1289
+ "value": [
1290
+ "error",
1291
+ {
1292
+ "body": [
1293
+ "onError",
1294
+ "onLoad"
1295
+ ],
1296
+ "iframe": [
1297
+ "onError",
1298
+ "onLoad"
1299
+ ],
1300
+ "img": [
1301
+ "onError",
1302
+ "onLoad"
1303
+ ]
1304
+ }
1305
+ ],
1306
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1307
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-interactions.md"
1308
+ },
1309
+ {
1310
+ "group": "react-a11y",
1311
+ "rule": "jsx-a11y/no-noninteractive-element-to-interactive-role",
1312
+ "value": "error",
1313
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1314
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-element-to-interactive-role.md"
1315
+ },
1316
+ {
1317
+ "group": "react-a11y",
1318
+ "rule": "jsx-a11y/no-noninteractive-tabindex",
1319
+ "value": "error",
1320
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1321
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-noninteractive-tabindex.md"
1322
+ },
1323
+ {
1324
+ "group": "react-a11y",
1325
+ "rule": "jsx-a11y/no-redundant-roles",
1326
+ "value": "error",
1327
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1328
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-redundant-roles.md"
1329
+ },
1330
+ {
1331
+ "group": "react-a11y",
1332
+ "rule": "jsx-a11y/no-static-element-interactions",
1333
+ "value": "error",
1334
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1335
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-static-element-interactions.md"
1336
+ },
1337
+ {
1338
+ "group": "react-a11y",
1339
+ "rule": "jsx-a11y/role-has-required-aria-props",
1340
+ "value": "error",
1341
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1342
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-has-required-aria-props.md"
1343
+ },
1344
+ {
1345
+ "group": "react-a11y",
1346
+ "rule": "jsx-a11y/role-supports-aria-props",
1347
+ "value": "error",
1348
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1349
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/role-supports-aria-props.md"
1350
+ },
1351
+ {
1352
+ "group": "react-a11y",
1353
+ "rule": "jsx-a11y/scope",
1354
+ "value": "error",
1355
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1356
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/scope.md"
1357
+ },
1358
+ {
1359
+ "group": "react-a11y",
1360
+ "rule": "jsx-a11y/tabindex-no-positive",
1361
+ "value": "error",
1362
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1363
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/tabindex-no-positive.md"
1364
+ },
1365
+ {
1366
+ "group": "react-a11y",
1367
+ "rule": "jsx-a11y/control-has-associated-label",
1368
+ "value": [
1369
+ "error",
1370
+ {
1371
+ "depth": 3,
1372
+ "ignoreElements": [
1373
+ "input",
1374
+ "select",
1375
+ "textarea"
1376
+ ]
1377
+ }
1378
+ ],
1379
+ "status": "disabled: JSX a11y ESLint 10 peer incompatibility (user instruction)",
1380
+ "source": "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/control-has-associated-label.md"
1381
+ },
1382
+ {
1383
+ "group": "vue",
1384
+ "rule": "vue/no-dupe-keys",
1385
+ "value": "error",
1386
+ "status": "enabled",
1387
+ "source": "https://eslint.vuejs.org/rules/no-dupe-keys.html"
1388
+ },
1389
+ {
1390
+ "group": "vue",
1391
+ "rule": "vue/no-v-html",
1392
+ "value": "error",
1393
+ "status": "enabled",
1394
+ "source": "https://eslint.vuejs.org/rules/no-v-html.html"
1395
+ },
1396
+ {
1397
+ "group": "vue",
1398
+ "rule": "vue/no-setup-props-reactivity-loss",
1399
+ "value": "error",
1400
+ "status": "enabled",
1401
+ "source": "https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html"
1402
+ },
1403
+ {
1404
+ "group": "vue",
1405
+ "rule": "vue/no-ref-object-reactivity-loss",
1406
+ "value": "error",
1407
+ "status": "enabled",
1408
+ "source": "https://eslint.vuejs.org/rules/no-ref-object-reactivity-loss.html"
1409
+ },
1410
+ {
1411
+ "group": "vue",
1412
+ "rule": "vue/no-mutating-props",
1413
+ "value": [
1414
+ "error",
1415
+ {
1416
+ "shallowOnly": false
1417
+ }
1418
+ ],
1419
+ "status": "enabled",
1420
+ "source": "https://eslint.vuejs.org/rules/no-mutating-props.html"
1421
+ },
1422
+ {
1423
+ "group": "vue",
1424
+ "rule": "vue/require-explicit-emits",
1425
+ "value": [
1426
+ "error",
1427
+ {
1428
+ "allowProps": false
1429
+ }
1430
+ ],
1431
+ "status": "enabled",
1432
+ "source": "https://eslint.vuejs.org/rules/require-explicit-emits.html"
1433
+ },
1434
+ {
1435
+ "group": "vue",
1436
+ "rule": "vue/require-explicit-slots",
1437
+ "value": "error",
1438
+ "status": "enabled",
1439
+ "source": "https://eslint.vuejs.org/rules/require-explicit-slots.html"
1440
+ },
1441
+ {
1442
+ "group": "vue",
1443
+ "rule": "vue/require-prop-types",
1444
+ "value": "error",
1445
+ "status": "enabled",
1446
+ "source": "https://eslint.vuejs.org/rules/require-prop-types.html"
1447
+ },
1448
+ {
1449
+ "group": "vue",
1450
+ "rule": "vue/no-undef-components",
1451
+ "value": [
1452
+ "error",
1453
+ {
1454
+ "ignorePatterns": []
1455
+ }
1456
+ ],
1457
+ "status": "enabled",
1458
+ "source": "https://eslint.vuejs.org/rules/no-undef-components.html"
1459
+ },
1460
+ {
1461
+ "group": "vue",
1462
+ "rule": "vue/no-undef-directives",
1463
+ "value": [
1464
+ "error",
1465
+ {
1466
+ "ignore": []
1467
+ }
1468
+ ],
1469
+ "status": "enabled",
1470
+ "source": "https://eslint.vuejs.org/rules/no-undef-directives.html"
1471
+ },
1472
+ {
1473
+ "group": "vue",
1474
+ "rule": "vue/no-unused-emit-declarations",
1475
+ "value": "error",
1476
+ "status": "enabled",
1477
+ "source": "https://eslint.vuejs.org/rules/no-unused-emit-declarations.html"
1478
+ },
1479
+ {
1480
+ "group": "vue",
1481
+ "rule": "vue/html-button-has-type",
1482
+ "value": [
1483
+ "error",
1484
+ {
1485
+ "button": true,
1486
+ "submit": true,
1487
+ "reset": true
1488
+ }
1489
+ ],
1490
+ "status": "enabled",
1491
+ "source": "https://eslint.vuejs.org/rules/html-button-has-type.html"
1492
+ },
1493
+ {
1494
+ "group": "vue",
1495
+ "rule": "vue/no-template-target-blank",
1496
+ "value": [
1497
+ "error",
1498
+ {
1499
+ "allowReferrer": false,
1500
+ "enforceDynamicLinks": "always"
1501
+ }
1502
+ ],
1503
+ "status": "enabled",
1504
+ "source": "https://eslint.vuejs.org/rules/no-template-target-blank.html"
1505
+ },
1506
+ {
1507
+ "group": "vue",
1508
+ "rule": "vue/eqeqeq",
1509
+ "value": [
1510
+ "error",
1511
+ "always"
1512
+ ],
1513
+ "status": "enabled",
1514
+ "source": "https://eslint.vuejs.org/rules/eqeqeq.html"
1515
+ },
1516
+ {
1517
+ "group": "vue",
1518
+ "rule": "vue/max-lines-per-block",
1519
+ "value": [
1520
+ "error",
1521
+ {
1522
+ "script": 200,
1523
+ "template": 200,
1524
+ "style": 150,
1525
+ "skipBlankLines": true
1526
+ }
1527
+ ],
1528
+ "status": "enabled",
1529
+ "source": "https://eslint.vuejs.org/rules/max-lines-per-block.html"
1530
+ },
1531
+ {
1532
+ "group": "vue",
1533
+ "rule": "vue/max-template-depth",
1534
+ "value": [
1535
+ "error",
1536
+ {
1537
+ "maxDepth": 5
1538
+ }
1539
+ ],
1540
+ "status": "enabled",
1541
+ "source": "https://eslint.vuejs.org/rules/max-template-depth.html"
1542
+ },
1543
+ {
1544
+ "group": "vue",
1545
+ "rule": "vue/max-len",
1546
+ "value": [
1547
+ "error",
1548
+ {
1549
+ "code": 120,
1550
+ "template": 120,
1551
+ "comments": 120,
1552
+ "tabWidth": 2,
1553
+ "ignoreUrls": true,
1554
+ "ignoreStrings": false,
1555
+ "ignoreTemplateLiterals": false,
1556
+ "ignoreRegExpLiterals": false,
1557
+ "ignoreHTMLAttributeValues": false,
1558
+ "ignoreHTMLTextContents": false
1559
+ }
1560
+ ],
1561
+ "status": "enabled",
1562
+ "source": "https://eslint.vuejs.org/rules/max-len.html"
1563
+ },
1564
+ {
1565
+ "group": "vue",
1566
+ "rule": "vue/array-bracket-newline",
1567
+ "value": [
1568
+ "error",
1569
+ {
1570
+ "multiline": true
1571
+ }
1572
+ ],
1573
+ "status": "replaced: ztd/array-layout (full researched policy)",
1574
+ "source": "https://eslint.vuejs.org/rules/array-bracket-newline.html"
1575
+ },
1576
+ {
1577
+ "group": "vue",
1578
+ "rule": "vue/array-element-newline",
1579
+ "value": [
1580
+ "error",
1581
+ {
1582
+ "ArrayExpression": {
1583
+ "minItems": 3,
1584
+ "multiline": true,
1585
+ "consistent": true
1586
+ },
1587
+ "ArrayPattern": "consistent"
1588
+ }
1589
+ ],
1590
+ "status": "replaced: ztd/array-layout (full researched policy)",
1591
+ "source": "https://eslint.vuejs.org/rules/array-element-newline.html"
1592
+ },
1593
+ {
1594
+ "group": "vue",
1595
+ "rule": "vue/no-template-shadow",
1596
+ "value": "error",
1597
+ "status": "enabled",
1598
+ "source": "https://eslint.vuejs.org/rules/no-template-shadow.html"
1599
+ },
1600
+ {
1601
+ "group": "vue",
1602
+ "rule": "vue/one-component-per-file",
1603
+ "value": "error",
1604
+ "status": "enabled",
1605
+ "source": "https://eslint.vuejs.org/rules/one-component-per-file.html"
1606
+ },
1607
+ {
1608
+ "group": "vue",
1609
+ "rule": "vue/no-required-prop-with-default",
1610
+ "value": "error",
1611
+ "status": "enabled",
1612
+ "source": "https://eslint.vuejs.org/rules/no-required-prop-with-default.html"
1613
+ },
1614
+ {
1615
+ "group": "vue",
1616
+ "rule": "vue/html-end-tags",
1617
+ "value": "error",
1618
+ "status": "enabled",
1619
+ "source": "https://eslint.vuejs.org/rules/html-end-tags.html"
1620
+ },
1621
+ {
1622
+ "group": "vue",
1623
+ "rule": "vue/no-async-in-computed-properties",
1624
+ "value": "error",
1625
+ "status": "enabled",
1626
+ "source": "https://eslint.vuejs.org/rules/no-async-in-computed-properties.html"
1627
+ },
1628
+ {
1629
+ "group": "vue",
1630
+ "rule": "vue/no-side-effects-in-computed-properties",
1631
+ "value": "error",
1632
+ "status": "enabled",
1633
+ "source": "https://eslint.vuejs.org/rules/no-side-effects-in-computed-properties.html"
1634
+ },
1635
+ {
1636
+ "group": "vue",
1637
+ "rule": "vue/no-use-v-if-with-v-for",
1638
+ "value": "error",
1639
+ "status": "enabled",
1640
+ "source": "https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html"
1641
+ },
1642
+ {
1643
+ "group": "vue",
1644
+ "rule": "vue/require-v-for-key",
1645
+ "value": "error",
1646
+ "status": "enabled",
1647
+ "source": "https://eslint.vuejs.org/rules/require-v-for-key.html"
1648
+ },
1649
+ {
1650
+ "group": "vue",
1651
+ "rule": "vue/no-watch-after-await",
1652
+ "value": "error",
1653
+ "status": "enabled",
1654
+ "source": "https://eslint.vuejs.org/rules/no-watch-after-await.html"
1655
+ },
1656
+ {
1657
+ "group": "vue",
1658
+ "rule": "vue/no-lifecycle-after-await",
1659
+ "value": "error",
1660
+ "status": "enabled",
1661
+ "source": "https://eslint.vuejs.org/rules/no-lifecycle-after-await.html"
1662
+ },
1663
+ {
1664
+ "group": "vue",
1665
+ "rule": "vue/no-expose-after-await",
1666
+ "value": "error",
1667
+ "status": "enabled",
1668
+ "source": "https://eslint.vuejs.org/rules/no-expose-after-await.html"
1669
+ },
1670
+ {
1671
+ "group": "vue-a11y",
1672
+ "rule": "vue-a11y/alt-text",
1673
+ "value": "error",
1674
+ "status": "enabled",
1675
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/alt-text.html"
1676
+ },
1677
+ {
1678
+ "group": "vue-a11y",
1679
+ "rule": "vue-a11y/anchor-has-content",
1680
+ "value": "error",
1681
+ "status": "enabled",
1682
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/anchor-has-content.html"
1683
+ },
1684
+ {
1685
+ "group": "vue-a11y",
1686
+ "rule": "vue-a11y/aria-props",
1687
+ "value": "error",
1688
+ "status": "enabled",
1689
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-props.html"
1690
+ },
1691
+ {
1692
+ "group": "vue-a11y",
1693
+ "rule": "vue-a11y/aria-role",
1694
+ "value": "error",
1695
+ "status": "enabled",
1696
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-role.html"
1697
+ },
1698
+ {
1699
+ "group": "vue-a11y",
1700
+ "rule": "vue-a11y/aria-unsupported-elements",
1701
+ "value": "error",
1702
+ "status": "enabled",
1703
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/aria-unsupported-elements.html"
1704
+ },
1705
+ {
1706
+ "group": "vue-a11y",
1707
+ "rule": "vue-a11y/click-events-have-key-events",
1708
+ "value": "error",
1709
+ "status": "enabled",
1710
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/click-events-have-key-events.html"
1711
+ },
1712
+ {
1713
+ "group": "vue-a11y",
1714
+ "rule": "vue-a11y/form-control-has-label",
1715
+ "value": "error",
1716
+ "status": "enabled",
1717
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/form-control-has-label.html"
1718
+ },
1719
+ {
1720
+ "group": "vue-a11y",
1721
+ "rule": "vue-a11y/heading-has-content",
1722
+ "value": "error",
1723
+ "status": "enabled",
1724
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/heading-has-content.html"
1725
+ },
1726
+ {
1727
+ "group": "vue-a11y",
1728
+ "rule": "vue-a11y/iframe-has-title",
1729
+ "value": "error",
1730
+ "status": "enabled",
1731
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/iframe-has-title.html"
1732
+ },
1733
+ {
1734
+ "group": "vue-a11y",
1735
+ "rule": "vue-a11y/interactive-supports-focus",
1736
+ "value": "error",
1737
+ "status": "enabled",
1738
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/interactive-supports-focus.html"
1739
+ },
1740
+ {
1741
+ "group": "vue-a11y",
1742
+ "rule": "vue-a11y/label-has-for",
1743
+ "value": [
1744
+ "error",
1745
+ {
1746
+ "required": {
1747
+ "some": [
1748
+ "nesting",
1749
+ "id"
1750
+ ]
1751
+ },
1752
+ "allowChildren": false
1753
+ }
1754
+ ],
1755
+ "status": "enabled",
1756
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/label-has-for.html"
1757
+ },
1758
+ {
1759
+ "group": "vue-a11y",
1760
+ "rule": "vue-a11y/media-has-caption",
1761
+ "value": "error",
1762
+ "status": "enabled",
1763
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/media-has-caption.html"
1764
+ },
1765
+ {
1766
+ "group": "vue-a11y",
1767
+ "rule": "vue-a11y/mouse-events-have-key-events",
1768
+ "value": "error",
1769
+ "status": "enabled",
1770
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/mouse-events-have-key-events.html"
1771
+ },
1772
+ {
1773
+ "group": "vue-a11y",
1774
+ "rule": "vue-a11y/no-access-key",
1775
+ "value": "error",
1776
+ "status": "enabled",
1777
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-access-key.html"
1778
+ },
1779
+ {
1780
+ "group": "vue-a11y",
1781
+ "rule": "vue-a11y/no-aria-hidden-on-focusable",
1782
+ "value": "error",
1783
+ "status": "enabled",
1784
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-aria-hidden-on-focusable.html"
1785
+ },
1786
+ {
1787
+ "group": "vue-a11y",
1788
+ "rule": "vue-a11y/no-autofocus",
1789
+ "value": "error",
1790
+ "status": "enabled",
1791
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-autofocus.html"
1792
+ },
1793
+ {
1794
+ "group": "vue-a11y",
1795
+ "rule": "vue-a11y/no-distracting-elements",
1796
+ "value": "error",
1797
+ "status": "enabled",
1798
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-distracting-elements.html"
1799
+ },
1800
+ {
1801
+ "group": "vue-a11y",
1802
+ "rule": "vue-a11y/no-redundant-roles",
1803
+ "value": "error",
1804
+ "status": "enabled",
1805
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-redundant-roles.html"
1806
+ },
1807
+ {
1808
+ "group": "vue-a11y",
1809
+ "rule": "vue-a11y/no-role-presentation-on-focusable",
1810
+ "value": "error",
1811
+ "status": "enabled",
1812
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-role-presentation-on-focusable.html"
1813
+ },
1814
+ {
1815
+ "group": "vue-a11y",
1816
+ "rule": "vue-a11y/no-static-element-interactions",
1817
+ "value": "error",
1818
+ "status": "enabled",
1819
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/no-static-element-interactions.html"
1820
+ },
1821
+ {
1822
+ "group": "vue-a11y",
1823
+ "rule": "vue-a11y/role-has-required-aria-props",
1824
+ "value": "error",
1825
+ "status": "enabled",
1826
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/role-has-required-aria-props.html"
1827
+ },
1828
+ {
1829
+ "group": "vue-a11y",
1830
+ "rule": "vue-a11y/tabindex-no-positive",
1831
+ "value": "error",
1832
+ "status": "enabled",
1833
+ "source": "https://vue-a11y.github.io/eslint-plugin-vuejs-accessibility/rules/tabindex-no-positive.html"
1834
+ },
1835
+ {
1836
+ "group": "tests",
1837
+ "rule": "test/valid-expect",
1838
+ "value": [
1839
+ "error",
1840
+ {
1841
+ "alwaysAwait": true,
1842
+ "minArgs": 1,
1843
+ "maxArgs": 1
1844
+ }
1845
+ ],
1846
+ "status": "enabled",
1847
+ "source": "https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect.md"
1848
+ },
1849
+ {
1850
+ "group": "tests",
1851
+ "rule": "test/no-conditional-expect",
1852
+ "value": [
1853
+ "error",
1854
+ {
1855
+ "expectAssertions": false
1856
+ }
1857
+ ],
1858
+ "status": "enabled",
1859
+ "source": "https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-expect.md"
1860
+ },
1861
+ {
1862
+ "group": "tests",
1863
+ "rule": "test/no-conditional-tests",
1864
+ "value": "error",
1865
+ "status": "enabled",
1866
+ "source": "https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-tests.md"
1867
+ },
1868
+ {
1869
+ "group": "tests",
1870
+ "rule": "test/no-disabled-tests",
1871
+ "value": "error",
1872
+ "status": "enabled",
1873
+ "source": "https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-disabled-tests.md"
1874
+ },
1875
+ {
1876
+ "group": "tests",
1877
+ "rule": "test/expect-expect",
1878
+ "value": [
1879
+ "error",
1880
+ {
1881
+ "assertFunctionNames": [
1882
+ "expect",
1883
+ "assert"
1884
+ ],
1885
+ "additionalTestBlockFunctions": []
1886
+ }
1887
+ ],
1888
+ "status": "enabled",
1889
+ "source": "https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/expect-expect.md"
1890
+ },
1891
+ {
1892
+ "group": "tests",
1893
+ "rule": "test/unbound-method",
1894
+ "value": [
1895
+ "error",
1896
+ {
1897
+ "ignoreStatic": false
1898
+ }
1899
+ ],
1900
+ "status": "enabled",
1901
+ "source": "https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/unbound-method.md"
1902
+ }
1903
+ ]