@open-turo/eslint-config-react 20.0.2 → 20.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- 24.13.1
1
+ 24.14.0
@@ -1,5 +1,303 @@
1
1
  # Breaking changes in v20
2
2
 
3
+ This release bumps `@open-turo/eslint-config-typescript` to v20.x. The following breaking changes cascade from that dependency (newest first).
4
+
5
+ ## v20.1.0 - Perfectionist Rule Overrides (2026-03-09)
6
+
7
+ - `perfectionist/sort-classes`: Uses explicit groups for class member ordering instead of alphabetical.
8
+ - `perfectionist/sort-switch-case` and `perfectionist/sort-union-types`: Changed from alphabetical to natural sort order.
9
+
10
+ ```diff
11
+ diff --git a/test/__snapshots__/test.spec.js.snap b/test/__snapshots__/test.spec.js.snap
12
+ --- a/test/__snapshots__/test.spec.js.snap
13
+ +++ b/test/__snapshots__/test.spec.js.snap
14
+ @@ -1359,8 +1359,84 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
15
+ "perfectionist/sort-classes": [
16
+ 2,
17
+ {
18
+ - "order": "asc",
19
+ - "type": "alphabetical",
20
+ + "groups": [
21
+ + "index-signature",
22
+ + [
23
+ + "static-property",
24
+ + "static-accessor-property",
25
+ + ],
26
+ + [
27
+ + "static-get-method",
28
+ + "static-set-method",
29
+ + ],
30
+ + [
31
+ + "protected-static-property",
32
+ + "protected-static-accessor-property",
33
+ + ],
34
+ + [
35
+ + "protected-static-get-method",
36
+ + "protected-static-set-method",
37
+ + ],
38
+ + [
39
+ + "private-static-property",
40
+ + "private-static-accessor-property",
41
+ + ],
42
+ + [
43
+ + "private-static-get-method",
44
+ + "private-static-set-method",
45
+ + ],
46
+ + "static-block",
47
+ + [
48
+ + "property",
49
+ + "accessor-property",
50
+ + ],
51
+ + [
52
+ + "protected-property",
53
+ + "protected-accessor-property",
54
+ + ],
55
+ + [
56
+ + "private-property",
57
+ + "private-accessor-property",
58
+ + ],
59
+ + "constructor",
60
+ + [
61
+ + "get-method",
62
+ + "set-method",
63
+ + ],
64
+ + [
65
+ + "protected-get-method",
66
+ + "protected-set-method",
67
+ + ],
68
+ + [
69
+ + "private-get-method",
70
+ + "private-set-method",
71
+ + ],
72
+ + [
73
+ + "static-method",
74
+ + "static-function-property",
75
+ + ],
76
+ + [
77
+ + "protected-static-method",
78
+ + "protected-static-function-property",
79
+ + ],
80
+ + [
81
+ + "private-static-method",
82
+ + "private-static-function-property",
83
+ + ],
84
+ + [
85
+ + "method",
86
+ + "function-property",
87
+ + ],
88
+ + [
89
+ + "protected-method",
90
+ + "protected-function-property",
91
+ + ],
92
+ + [
93
+ + "private-method",
94
+ + "private-function-property",
95
+ + ],
96
+ + "unknown",
97
+ + ],
98
+ },
99
+ ],
100
+ @@ -1471,15 +1471,13 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
101
+ "perfectionist/sort-switch-case": [
102
+ 2,
103
+ {
104
+ - "order": "asc",
105
+ - "type": "alphabetical",
106
+ + "type": "natural",
107
+ },
108
+ ],
109
+ "perfectionist/sort-union-types": [
110
+ 2,
111
+ {
112
+ - "order": "asc",
113
+ - "type": "alphabetical",
114
+ + "type": "natural",
115
+ },
116
+ ],
117
+ ```
118
+
119
+ (Similar changes apply to index.mjs and legacy recommended config.)
120
+
121
+ ## v20.0.0 - Strict Type-Checked and Legacy Config Parity (2026-03-06)
122
+
123
+ - Flat config now enforces `strictTypeChecked` instead of `recommendedTypeChecked`, enabling additional @typescript-eslint rules that may raise new errors.
124
+ - eslint/recommended v9 rule changes backported to legacy config — rules previously off are now errors (constructor-super, getter-return, no-dupe-\*, no-undef, no-unused-vars, etc.).
125
+ - Some unicorn rules disabled: empty-brace-spaces, no-nested-ternary, number-literal-case, template-indent.
126
+
127
+ ```diff
128
+ diff --git a/test/__snapshots__/test.spec.js.snap b/test/__snapshots__/test.spec.js.snap
129
+ --- a/test/__snapshots__/test.spec.js.snap
130
+ +++ b/test/__snapshots__/test.spec.js.snap
131
+ @@ -553,6 +553,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
132
+ ],
133
+ "@typescript-eslint/ban-ts-comment": [
134
+ 2,
135
+ + {
136
+ + "minimumDescriptionLength": 10,
137
+ + },
138
+ ],
139
+ @@ -619,6 +622,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
140
+ "@typescript-eslint/no-duplicate-type-constituents": [
141
+ 2,
142
+ ],
143
+ + "@typescript-eslint/no-dynamic-delete": [
144
+ + 2,
145
+ + ],
146
+ @@ -646,18 +655,36 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
147
+ "@typescript-eslint/no-import-type-side-effects": [
148
+ 2,
149
+ ],
150
+ + "@typescript-eslint/no-invalid-void-type": [
151
+ + 2,
152
+ + ],
153
+ + "@typescript-eslint/no-meaningless-void-operator": [
154
+ + 2,
155
+ + ],
156
+ "@typescript-eslint/no-misused-new": [
157
+ 2,
158
+ ],
159
+ "@typescript-eslint/no-misused-promises": [
160
+ 2,
161
+ ],
162
+ + "@typescript-eslint/no-misused-spread": [
163
+ + 2,
164
+ + ],
165
+ + "@typescript-eslint/no-mixed-enums": [
166
+ + 2,
167
+ + ],
168
+ @@ -673,6 +700,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
169
+ "@typescript-eslint/no-unnecessary-condition": [
170
+ 0,
171
+ ],
172
+ + "@typescript-eslint/no-unnecessary-template-expression": [
173
+ + 2,
174
+ + ],
175
+ @@ -738,26 +777,57 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
176
+ "@typescript-eslint/prefer-as-const": [
177
+ 2,
178
+ ],
179
+ + "@typescript-eslint/prefer-literal-enum-member": [
180
+ + 2,
181
+ + ],
182
+ "@typescript-eslint/prefer-namespace-keyword": [
183
+ 2,
184
+ ],
185
+ "@typescript-eslint/prefer-promise-reject-errors": [
186
+ 2,
187
+ ],
188
+ + "@typescript-eslint/prefer-reduce-type-parameter": [
189
+ + 2,
190
+ + ],
191
+ + "@typescript-eslint/prefer-return-this-type": [
192
+ + 2,
193
+ + ],
194
+ @@ -780,6 +850,12 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
195
+ "@typescript-eslint/unbound-method": [
196
+ 2,
197
+ ],
198
+ + "@typescript-eslint/unified-signatures": [
199
+ + 2,
200
+ + ],
201
+ + "@typescript-eslint/use-unknown-in-catch-callback-variable": [
202
+ + 2,
203
+ + ],
204
+ @@ -1222,6 +1298,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
205
+ "no-reserved-keys": [
206
+ 0,
207
+ ],
208
+ + "no-return-await": [
209
+ + 0,
210
+ + ],
211
+ @@ -1310,6 +1389,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
212
+ "no-useless-catch": [
213
+ 2,
214
+ ],
215
+ + "no-useless-constructor": [
216
+ + 0,
217
+ + ],
218
+ @@ -7049,7 +7361,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
219
+ "off",
220
+ ],
221
+ "constructor-super": [
222
+ - "off",
223
+ + 2,
224
+ ],
225
+ @@ -7112,7 +7424,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
226
+ "off",
227
+ ],
228
+ "getter-return": [
229
+ - "off",
230
+ + 2,
231
+ ],
232
+ @@ -7591,7 +7903,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
233
+ 0,
234
+ ],
235
+ "no-const-assign": [
236
+ - "off",
237
+ + 2,
238
+ ],
239
+ @@ -7714,7 +8026,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
240
+ "error",
241
+ ],
242
+ "no-redeclare": [
243
+ - "off",
244
+ + 2,
245
+ ],
246
+ @@ -7756,19 +8068,19 @@ exports[`validate config the legacy recommended config is correct 1`] = `
247
+ "off",
248
+ ],
249
+ "no-undef": [
250
+ - "off",
251
+ + 2,
252
+ ],
253
+ @@ -7783,7 +8095,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
254
+ "error",
255
+ ],
256
+ "no-unused-vars": [
257
+ - "off",
258
+ + 2,
259
+ ],
260
+ @@ -7804,7 +8116,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
261
+ "off",
262
+ ],
263
+ "no-with": [
264
+ - "off",
265
+ + 2,
266
+ ],
267
+ @@ -9108,7 +9494,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
268
+ "off",
269
+ ],
270
+ "unicorn/empty-brace-spaces": [
271
+ - "error",
272
+ + 0,
273
+ ],
274
+ @@ -9201,7 +9587,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
275
+ "error",
276
+ ],
277
+ "unicorn/no-nested-ternary": [
278
+ - "error",
279
+ + 0,
280
+ ],
281
+ @@ -9270,7 +9656,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
282
+ "error",
283
+ ],
284
+ "unicorn/number-literal-case": [
285
+ - "error",
286
+ + 0,
287
+ ],
288
+ @@ -9459,7 +9845,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
289
+ "error",
290
+ ],
291
+ "unicorn/template-indent": [
292
+ - "error",
293
+ + 0,
294
+ ],
295
+ ```
296
+
297
+ (Similar @typescript-eslint changes apply to index.mjs. Additional legacy rules changed from "off" to error: no-class-assign, no-dupe-args, no-dupe-class-members, no-dupe-keys, no-func-assign, no-import-assign, no-new-native-nonconstructor, no-obj-calls, no-setter-return, no-this-before-super, no-unreachable, no-unsafe-negation.)
298
+
299
+ ## eslint-plugin-sonarjs v3 → v4
300
+
3
301
  - `eslint-plugin-sonarjs` upgrade from v3 to v4 results in a corresponding major version change due to configuration changes. As codified in snapshots:
4
302
 
5
303
  ```diff
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Turo eslint configuration for react",
4
4
  "type": "module",
5
5
  "dependencies": {
6
- "@open-turo/eslint-config-typescript": "19.0.2",
6
+ "@open-turo/eslint-config-typescript": "20.1.0",
7
7
  "eslint-plugin-jsx-a11y": "6.10.2",
8
8
  "eslint-plugin-react": "7.37.5",
9
9
  "eslint-plugin-react-hooks": "7.0.1",
@@ -48,5 +48,5 @@
48
48
  "access": "public"
49
49
  },
50
50
  "repository": "https://github.com/open-turo/eslint-config-react",
51
- "version": "20.0.2"
51
+ "version": "20.0.3"
52
52
  }
@@ -553,6 +553,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
553
553
  ],
554
554
  "@typescript-eslint/ban-ts-comment": [
555
555
  2,
556
+ {
557
+ "minimumDescriptionLength": 10,
558
+ },
556
559
  ],
557
560
  "@typescript-eslint/block-spacing": [
558
561
  0,
@@ -619,6 +622,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
619
622
  "@typescript-eslint/no-duplicate-type-constituents": [
620
623
  2,
621
624
  ],
625
+ "@typescript-eslint/no-dynamic-delete": [
626
+ 2,
627
+ ],
622
628
  "@typescript-eslint/no-empty-object-type": [
623
629
  2,
624
630
  ],
@@ -634,6 +640,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
634
640
  "@typescript-eslint/no-extra-semi": [
635
641
  0,
636
642
  ],
643
+ "@typescript-eslint/no-extraneous-class": [
644
+ 2,
645
+ ],
637
646
  "@typescript-eslint/no-floating-promises": [
638
647
  2,
639
648
  ],
@@ -646,18 +655,36 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
646
655
  "@typescript-eslint/no-import-type-side-effects": [
647
656
  2,
648
657
  ],
658
+ "@typescript-eslint/no-invalid-void-type": [
659
+ 2,
660
+ ],
661
+ "@typescript-eslint/no-meaningless-void-operator": [
662
+ 2,
663
+ ],
649
664
  "@typescript-eslint/no-misused-new": [
650
665
  2,
651
666
  ],
652
667
  "@typescript-eslint/no-misused-promises": [
653
668
  2,
654
669
  ],
670
+ "@typescript-eslint/no-misused-spread": [
671
+ 2,
672
+ ],
673
+ "@typescript-eslint/no-mixed-enums": [
674
+ 2,
675
+ ],
655
676
  "@typescript-eslint/no-namespace": [
656
677
  2,
657
678
  ],
679
+ "@typescript-eslint/no-non-null-asserted-nullish-coalescing": [
680
+ 2,
681
+ ],
658
682
  "@typescript-eslint/no-non-null-asserted-optional-chain": [
659
683
  2,
660
684
  ],
685
+ "@typescript-eslint/no-non-null-assertion": [
686
+ 2,
687
+ ],
661
688
  "@typescript-eslint/no-redundant-type-constituents": [
662
689
  2,
663
690
  ],
@@ -673,6 +700,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
673
700
  "@typescript-eslint/no-unnecessary-condition": [
674
701
  0,
675
702
  ],
703
+ "@typescript-eslint/no-unnecessary-template-expression": [
704
+ 2,
705
+ ],
676
706
  "@typescript-eslint/no-unnecessary-type-arguments": [
677
707
  0,
678
708
  ],
@@ -682,6 +712,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
682
712
  "@typescript-eslint/no-unnecessary-type-constraint": [
683
713
  2,
684
714
  ],
715
+ "@typescript-eslint/no-unnecessary-type-conversion": [
716
+ 2,
717
+ ],
685
718
  "@typescript-eslint/no-unnecessary-type-parameters": [
686
719
  0,
687
720
  ],
@@ -726,6 +759,12 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
726
759
  "argsIgnorePattern": "^_",
727
760
  },
728
761
  ],
762
+ "@typescript-eslint/no-useless-constructor": [
763
+ 2,
764
+ ],
765
+ "@typescript-eslint/no-useless-default-assignment": [
766
+ 2,
767
+ ],
729
768
  "@typescript-eslint/no-wrapper-object-types": [
730
769
  2,
731
770
  ],
@@ -738,26 +777,57 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
738
777
  "@typescript-eslint/prefer-as-const": [
739
778
  2,
740
779
  ],
780
+ "@typescript-eslint/prefer-literal-enum-member": [
781
+ 2,
782
+ ],
741
783
  "@typescript-eslint/prefer-namespace-keyword": [
742
784
  2,
743
785
  ],
744
786
  "@typescript-eslint/prefer-promise-reject-errors": [
745
787
  2,
746
788
  ],
789
+ "@typescript-eslint/prefer-reduce-type-parameter": [
790
+ 2,
791
+ ],
792
+ "@typescript-eslint/prefer-return-this-type": [
793
+ 2,
794
+ ],
747
795
  "@typescript-eslint/prefer-ts-expect-error": [
748
796
  2,
749
797
  ],
750
798
  "@typescript-eslint/quotes": [
751
799
  0,
752
800
  ],
801
+ "@typescript-eslint/related-getter-setter-pairs": [
802
+ 2,
803
+ ],
753
804
  "@typescript-eslint/require-await": [
754
805
  2,
755
806
  ],
756
807
  "@typescript-eslint/restrict-plus-operands": [
757
808
  2,
809
+ {
810
+ "allowAny": false,
811
+ "allowBoolean": false,
812
+ "allowNullish": false,
813
+ "allowNumberAndString": false,
814
+ "allowRegExp": false,
815
+ },
758
816
  ],
759
817
  "@typescript-eslint/restrict-template-expressions": [
760
818
  2,
819
+ {
820
+ "allowAny": false,
821
+ "allowBoolean": false,
822
+ "allowNever": false,
823
+ "allowNullish": false,
824
+ "allowNumber": false,
825
+ "allowRegExp": false,
826
+ },
827
+ ],
828
+ "@typescript-eslint/return-await": [
829
+ 2,
830
+ "error-handling-correctness-only",
761
831
  ],
762
832
  "@typescript-eslint/semi": [
763
833
  0,
@@ -780,6 +850,12 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
780
850
  "@typescript-eslint/unbound-method": [
781
851
  2,
782
852
  ],
853
+ "@typescript-eslint/unified-signatures": [
854
+ 2,
855
+ ],
856
+ "@typescript-eslint/use-unknown-in-catch-callback-variable": [
857
+ 2,
858
+ ],
783
859
  "array-bracket-newline": [
784
860
  0,
785
861
  ],
@@ -1222,6 +1298,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
1222
1298
  "no-reserved-keys": [
1223
1299
  0,
1224
1300
  ],
1301
+ "no-return-await": [
1302
+ 0,
1303
+ ],
1225
1304
  "no-self-assign": [
1226
1305
  2,
1227
1306
  {
@@ -1310,6 +1389,9 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
1310
1389
  "no-useless-catch": [
1311
1390
  2,
1312
1391
  ],
1392
+ "no-useless-constructor": [
1393
+ 0,
1394
+ ],
1313
1395
  "no-useless-escape": [
1314
1396
  2,
1315
1397
  {
@@ -1359,8 +1441,84 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
1359
1441
  "perfectionist/sort-classes": [
1360
1442
  2,
1361
1443
  {
1362
- "order": "asc",
1363
- "type": "alphabetical",
1444
+ "groups": [
1445
+ "index-signature",
1446
+ [
1447
+ "static-property",
1448
+ "static-accessor-property",
1449
+ ],
1450
+ [
1451
+ "static-get-method",
1452
+ "static-set-method",
1453
+ ],
1454
+ [
1455
+ "protected-static-property",
1456
+ "protected-static-accessor-property",
1457
+ ],
1458
+ [
1459
+ "protected-static-get-method",
1460
+ "protected-static-set-method",
1461
+ ],
1462
+ [
1463
+ "private-static-property",
1464
+ "private-static-accessor-property",
1465
+ ],
1466
+ [
1467
+ "private-static-get-method",
1468
+ "private-static-set-method",
1469
+ ],
1470
+ "static-block",
1471
+ [
1472
+ "property",
1473
+ "accessor-property",
1474
+ ],
1475
+ [
1476
+ "protected-property",
1477
+ "protected-accessor-property",
1478
+ ],
1479
+ [
1480
+ "private-property",
1481
+ "private-accessor-property",
1482
+ ],
1483
+ "constructor",
1484
+ [
1485
+ "get-method",
1486
+ "set-method",
1487
+ ],
1488
+ [
1489
+ "protected-get-method",
1490
+ "protected-set-method",
1491
+ ],
1492
+ [
1493
+ "private-get-method",
1494
+ "private-set-method",
1495
+ ],
1496
+ [
1497
+ "static-method",
1498
+ "static-function-property",
1499
+ ],
1500
+ [
1501
+ "protected-static-method",
1502
+ "protected-static-function-property",
1503
+ ],
1504
+ [
1505
+ "private-static-method",
1506
+ "private-static-function-property",
1507
+ ],
1508
+ [
1509
+ "method",
1510
+ "function-property",
1511
+ ],
1512
+ [
1513
+ "protected-method",
1514
+ "protected-function-property",
1515
+ ],
1516
+ [
1517
+ "private-method",
1518
+ "private-function-property",
1519
+ ],
1520
+ "unknown",
1521
+ ],
1364
1522
  },
1365
1523
  ],
1366
1524
  "perfectionist/sort-decorators": [
@@ -1471,15 +1629,13 @@ exports[`validate config the flat config is correct for index.cjs 1`] = `
1471
1629
  "perfectionist/sort-switch-case": [
1472
1630
  2,
1473
1631
  {
1474
- "order": "asc",
1475
- "type": "alphabetical",
1632
+ "type": "natural",
1476
1633
  },
1477
1634
  ],
1478
1635
  "perfectionist/sort-union-types": [
1479
1636
  2,
1480
1637
  {
1481
- "order": "asc",
1482
- "type": "alphabetical",
1638
+ "type": "natural",
1483
1639
  },
1484
1640
  ],
1485
1641
  "perfectionist/sort-variable-declarations": [
@@ -3629,6 +3785,9 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
3629
3785
  ],
3630
3786
  "@typescript-eslint/ban-ts-comment": [
3631
3787
  2,
3788
+ {
3789
+ "minimumDescriptionLength": 10,
3790
+ },
3632
3791
  ],
3633
3792
  "@typescript-eslint/block-spacing": [
3634
3793
  0,
@@ -3695,6 +3854,9 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
3695
3854
  "@typescript-eslint/no-duplicate-type-constituents": [
3696
3855
  2,
3697
3856
  ],
3857
+ "@typescript-eslint/no-dynamic-delete": [
3858
+ 2,
3859
+ ],
3698
3860
  "@typescript-eslint/no-empty-object-type": [
3699
3861
  2,
3700
3862
  ],
@@ -3710,6 +3872,9 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
3710
3872
  "@typescript-eslint/no-extra-semi": [
3711
3873
  0,
3712
3874
  ],
3875
+ "@typescript-eslint/no-extraneous-class": [
3876
+ 2,
3877
+ ],
3713
3878
  "@typescript-eslint/no-floating-promises": [
3714
3879
  2,
3715
3880
  ],
@@ -3722,18 +3887,36 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
3722
3887
  "@typescript-eslint/no-import-type-side-effects": [
3723
3888
  2,
3724
3889
  ],
3890
+ "@typescript-eslint/no-invalid-void-type": [
3891
+ 2,
3892
+ ],
3893
+ "@typescript-eslint/no-meaningless-void-operator": [
3894
+ 2,
3895
+ ],
3725
3896
  "@typescript-eslint/no-misused-new": [
3726
3897
  2,
3727
3898
  ],
3728
3899
  "@typescript-eslint/no-misused-promises": [
3729
3900
  2,
3730
3901
  ],
3902
+ "@typescript-eslint/no-misused-spread": [
3903
+ 2,
3904
+ ],
3905
+ "@typescript-eslint/no-mixed-enums": [
3906
+ 2,
3907
+ ],
3731
3908
  "@typescript-eslint/no-namespace": [
3732
3909
  2,
3733
3910
  ],
3911
+ "@typescript-eslint/no-non-null-asserted-nullish-coalescing": [
3912
+ 2,
3913
+ ],
3734
3914
  "@typescript-eslint/no-non-null-asserted-optional-chain": [
3735
3915
  2,
3736
3916
  ],
3917
+ "@typescript-eslint/no-non-null-assertion": [
3918
+ 2,
3919
+ ],
3737
3920
  "@typescript-eslint/no-redundant-type-constituents": [
3738
3921
  2,
3739
3922
  ],
@@ -3749,6 +3932,9 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
3749
3932
  "@typescript-eslint/no-unnecessary-condition": [
3750
3933
  0,
3751
3934
  ],
3935
+ "@typescript-eslint/no-unnecessary-template-expression": [
3936
+ 2,
3937
+ ],
3752
3938
  "@typescript-eslint/no-unnecessary-type-arguments": [
3753
3939
  0,
3754
3940
  ],
@@ -3758,6 +3944,9 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
3758
3944
  "@typescript-eslint/no-unnecessary-type-constraint": [
3759
3945
  2,
3760
3946
  ],
3947
+ "@typescript-eslint/no-unnecessary-type-conversion": [
3948
+ 2,
3949
+ ],
3761
3950
  "@typescript-eslint/no-unnecessary-type-parameters": [
3762
3951
  0,
3763
3952
  ],
@@ -3802,6 +3991,12 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
3802
3991
  "argsIgnorePattern": "^_",
3803
3992
  },
3804
3993
  ],
3994
+ "@typescript-eslint/no-useless-constructor": [
3995
+ 2,
3996
+ ],
3997
+ "@typescript-eslint/no-useless-default-assignment": [
3998
+ 2,
3999
+ ],
3805
4000
  "@typescript-eslint/no-wrapper-object-types": [
3806
4001
  2,
3807
4002
  ],
@@ -3814,26 +4009,57 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
3814
4009
  "@typescript-eslint/prefer-as-const": [
3815
4010
  2,
3816
4011
  ],
4012
+ "@typescript-eslint/prefer-literal-enum-member": [
4013
+ 2,
4014
+ ],
3817
4015
  "@typescript-eslint/prefer-namespace-keyword": [
3818
4016
  2,
3819
4017
  ],
3820
4018
  "@typescript-eslint/prefer-promise-reject-errors": [
3821
4019
  2,
3822
4020
  ],
4021
+ "@typescript-eslint/prefer-reduce-type-parameter": [
4022
+ 2,
4023
+ ],
4024
+ "@typescript-eslint/prefer-return-this-type": [
4025
+ 2,
4026
+ ],
3823
4027
  "@typescript-eslint/prefer-ts-expect-error": [
3824
4028
  2,
3825
4029
  ],
3826
4030
  "@typescript-eslint/quotes": [
3827
4031
  0,
3828
4032
  ],
4033
+ "@typescript-eslint/related-getter-setter-pairs": [
4034
+ 2,
4035
+ ],
3829
4036
  "@typescript-eslint/require-await": [
3830
4037
  2,
3831
4038
  ],
3832
4039
  "@typescript-eslint/restrict-plus-operands": [
3833
4040
  2,
4041
+ {
4042
+ "allowAny": false,
4043
+ "allowBoolean": false,
4044
+ "allowNullish": false,
4045
+ "allowNumberAndString": false,
4046
+ "allowRegExp": false,
4047
+ },
3834
4048
  ],
3835
4049
  "@typescript-eslint/restrict-template-expressions": [
3836
4050
  2,
4051
+ {
4052
+ "allowAny": false,
4053
+ "allowBoolean": false,
4054
+ "allowNever": false,
4055
+ "allowNullish": false,
4056
+ "allowNumber": false,
4057
+ "allowRegExp": false,
4058
+ },
4059
+ ],
4060
+ "@typescript-eslint/return-await": [
4061
+ 2,
4062
+ "error-handling-correctness-only",
3837
4063
  ],
3838
4064
  "@typescript-eslint/semi": [
3839
4065
  0,
@@ -3856,6 +4082,12 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
3856
4082
  "@typescript-eslint/unbound-method": [
3857
4083
  2,
3858
4084
  ],
4085
+ "@typescript-eslint/unified-signatures": [
4086
+ 2,
4087
+ ],
4088
+ "@typescript-eslint/use-unknown-in-catch-callback-variable": [
4089
+ 2,
4090
+ ],
3859
4091
  "array-bracket-newline": [
3860
4092
  0,
3861
4093
  ],
@@ -4298,6 +4530,9 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
4298
4530
  "no-reserved-keys": [
4299
4531
  0,
4300
4532
  ],
4533
+ "no-return-await": [
4534
+ 0,
4535
+ ],
4301
4536
  "no-self-assign": [
4302
4537
  2,
4303
4538
  {
@@ -4386,6 +4621,9 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
4386
4621
  "no-useless-catch": [
4387
4622
  2,
4388
4623
  ],
4624
+ "no-useless-constructor": [
4625
+ 0,
4626
+ ],
4389
4627
  "no-useless-escape": [
4390
4628
  2,
4391
4629
  {
@@ -4435,8 +4673,84 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
4435
4673
  "perfectionist/sort-classes": [
4436
4674
  2,
4437
4675
  {
4438
- "order": "asc",
4439
- "type": "alphabetical",
4676
+ "groups": [
4677
+ "index-signature",
4678
+ [
4679
+ "static-property",
4680
+ "static-accessor-property",
4681
+ ],
4682
+ [
4683
+ "static-get-method",
4684
+ "static-set-method",
4685
+ ],
4686
+ [
4687
+ "protected-static-property",
4688
+ "protected-static-accessor-property",
4689
+ ],
4690
+ [
4691
+ "protected-static-get-method",
4692
+ "protected-static-set-method",
4693
+ ],
4694
+ [
4695
+ "private-static-property",
4696
+ "private-static-accessor-property",
4697
+ ],
4698
+ [
4699
+ "private-static-get-method",
4700
+ "private-static-set-method",
4701
+ ],
4702
+ "static-block",
4703
+ [
4704
+ "property",
4705
+ "accessor-property",
4706
+ ],
4707
+ [
4708
+ "protected-property",
4709
+ "protected-accessor-property",
4710
+ ],
4711
+ [
4712
+ "private-property",
4713
+ "private-accessor-property",
4714
+ ],
4715
+ "constructor",
4716
+ [
4717
+ "get-method",
4718
+ "set-method",
4719
+ ],
4720
+ [
4721
+ "protected-get-method",
4722
+ "protected-set-method",
4723
+ ],
4724
+ [
4725
+ "private-get-method",
4726
+ "private-set-method",
4727
+ ],
4728
+ [
4729
+ "static-method",
4730
+ "static-function-property",
4731
+ ],
4732
+ [
4733
+ "protected-static-method",
4734
+ "protected-static-function-property",
4735
+ ],
4736
+ [
4737
+ "private-static-method",
4738
+ "private-static-function-property",
4739
+ ],
4740
+ [
4741
+ "method",
4742
+ "function-property",
4743
+ ],
4744
+ [
4745
+ "protected-method",
4746
+ "protected-function-property",
4747
+ ],
4748
+ [
4749
+ "private-method",
4750
+ "private-function-property",
4751
+ ],
4752
+ "unknown",
4753
+ ],
4440
4754
  },
4441
4755
  ],
4442
4756
  "perfectionist/sort-decorators": [
@@ -4547,15 +4861,13 @@ exports[`validate config the flat config is correct for index.mjs 1`] = `
4547
4861
  "perfectionist/sort-switch-case": [
4548
4862
  2,
4549
4863
  {
4550
- "order": "asc",
4551
- "type": "alphabetical",
4864
+ "type": "natural",
4552
4865
  },
4553
4866
  ],
4554
4867
  "perfectionist/sort-union-types": [
4555
4868
  2,
4556
4869
  {
4557
- "order": "asc",
4558
- "type": "alphabetical",
4870
+ "type": "natural",
4559
4871
  },
4560
4872
  ],
4561
4873
  "perfectionist/sort-variable-declarations": [
@@ -7049,7 +7361,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7049
7361
  "off",
7050
7362
  ],
7051
7363
  "constructor-super": [
7052
- "off",
7364
+ 2,
7053
7365
  ],
7054
7366
  "curly": [
7055
7367
  0,
@@ -7112,7 +7424,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7112
7424
  "off",
7113
7425
  ],
7114
7426
  "getter-return": [
7115
- "off",
7427
+ 2,
7116
7428
  ],
7117
7429
  "implicit-arrow-linebreak": [
7118
7430
  "off",
@@ -7576,7 +7888,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7576
7888
  "error",
7577
7889
  ],
7578
7890
  "no-class-assign": [
7579
- "off",
7891
+ 2,
7580
7892
  ],
7581
7893
  "no-comma-dangle": [
7582
7894
  "off",
@@ -7591,7 +7903,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7591
7903
  0,
7592
7904
  ],
7593
7905
  "no-const-assign": [
7594
- "off",
7906
+ 2,
7595
7907
  ],
7596
7908
  "no-constant-binary-expression": [
7597
7909
  "error",
@@ -7609,16 +7921,16 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7609
7921
  "error",
7610
7922
  ],
7611
7923
  "no-dupe-args": [
7612
- "off",
7924
+ 2,
7613
7925
  ],
7614
7926
  "no-dupe-class-members": [
7615
- "off",
7927
+ 2,
7616
7928
  ],
7617
7929
  "no-dupe-else-if": [
7618
7930
  "error",
7619
7931
  ],
7620
7932
  "no-dupe-keys": [
7621
- "off",
7933
+ 2,
7622
7934
  ],
7623
7935
  "no-duplicate-case": [
7624
7936
  "error",
@@ -7654,7 +7966,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7654
7966
  "off",
7655
7967
  ],
7656
7968
  "no-func-assign": [
7657
- "off",
7969
+ 2,
7658
7970
  ],
7659
7971
  "no-global-assign": [
7660
7972
  "error",
@@ -7663,7 +7975,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7663
7975
  "off",
7664
7976
  ],
7665
7977
  "no-import-assign": [
7666
- "off",
7978
+ 2,
7667
7979
  ],
7668
7980
  "no-invalid-regexp": [
7669
7981
  "error",
@@ -7696,7 +8008,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7696
8008
  "off",
7697
8009
  ],
7698
8010
  "no-new-native-nonconstructor": [
7699
- "off",
8011
+ 2,
7700
8012
  ],
7701
8013
  "no-new-symbol": [
7702
8014
  "off",
@@ -7705,7 +8017,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7705
8017
  "error",
7706
8018
  ],
7707
8019
  "no-obj-calls": [
7708
- "off",
8020
+ 2,
7709
8021
  ],
7710
8022
  "no-octal": [
7711
8023
  "error",
@@ -7714,7 +8026,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7714
8026
  "error",
7715
8027
  ],
7716
8028
  "no-redeclare": [
7717
- "off",
8029
+ 2,
7718
8030
  ],
7719
8031
  "no-regex-spaces": [
7720
8032
  "error",
@@ -7729,7 +8041,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7729
8041
  "error",
7730
8042
  ],
7731
8043
  "no-setter-return": [
7732
- "off",
8044
+ 2,
7733
8045
  ],
7734
8046
  "no-shadow-restricted-names": [
7735
8047
  "error",
@@ -7747,7 +8059,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7747
8059
  0,
7748
8060
  ],
7749
8061
  "no-this-before-super": [
7750
- "off",
8062
+ 2,
7751
8063
  ],
7752
8064
  "no-throw-literal": [
7753
8065
  "off",
@@ -7756,19 +8068,19 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7756
8068
  "off",
7757
8069
  ],
7758
8070
  "no-undef": [
7759
- "off",
8071
+ 2,
7760
8072
  ],
7761
8073
  "no-unexpected-multiline": [
7762
8074
  0,
7763
8075
  ],
7764
8076
  "no-unreachable": [
7765
- "off",
8077
+ 2,
7766
8078
  ],
7767
8079
  "no-unsafe-finally": [
7768
8080
  "error",
7769
8081
  ],
7770
8082
  "no-unsafe-negation": [
7771
- "off",
8083
+ 2,
7772
8084
  ],
7773
8085
  "no-unsafe-optional-chaining": [
7774
8086
  "error",
@@ -7783,7 +8095,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7783
8095
  "error",
7784
8096
  ],
7785
8097
  "no-unused-vars": [
7786
- "off",
8098
+ 2,
7787
8099
  ],
7788
8100
  "no-useless-backreference": [
7789
8101
  "error",
@@ -7804,7 +8116,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7804
8116
  "off",
7805
8117
  ],
7806
8118
  "no-with": [
7807
- "off",
8119
+ 2,
7808
8120
  ],
7809
8121
  "no-wrap-func": [
7810
8122
  "off",
@@ -7840,8 +8152,84 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7840
8152
  "perfectionist/sort-classes": [
7841
8153
  "error",
7842
8154
  {
7843
- "order": "asc",
7844
- "type": "alphabetical",
8155
+ "groups": [
8156
+ "index-signature",
8157
+ [
8158
+ "static-property",
8159
+ "static-accessor-property",
8160
+ ],
8161
+ [
8162
+ "static-get-method",
8163
+ "static-set-method",
8164
+ ],
8165
+ [
8166
+ "protected-static-property",
8167
+ "protected-static-accessor-property",
8168
+ ],
8169
+ [
8170
+ "protected-static-get-method",
8171
+ "protected-static-set-method",
8172
+ ],
8173
+ [
8174
+ "private-static-property",
8175
+ "private-static-accessor-property",
8176
+ ],
8177
+ [
8178
+ "private-static-get-method",
8179
+ "private-static-set-method",
8180
+ ],
8181
+ "static-block",
8182
+ [
8183
+ "property",
8184
+ "accessor-property",
8185
+ ],
8186
+ [
8187
+ "protected-property",
8188
+ "protected-accessor-property",
8189
+ ],
8190
+ [
8191
+ "private-property",
8192
+ "private-accessor-property",
8193
+ ],
8194
+ "constructor",
8195
+ [
8196
+ "get-method",
8197
+ "set-method",
8198
+ ],
8199
+ [
8200
+ "protected-get-method",
8201
+ "protected-set-method",
8202
+ ],
8203
+ [
8204
+ "private-get-method",
8205
+ "private-set-method",
8206
+ ],
8207
+ [
8208
+ "static-method",
8209
+ "static-function-property",
8210
+ ],
8211
+ [
8212
+ "protected-static-method",
8213
+ "protected-static-function-property",
8214
+ ],
8215
+ [
8216
+ "private-static-method",
8217
+ "private-static-function-property",
8218
+ ],
8219
+ [
8220
+ "method",
8221
+ "function-property",
8222
+ ],
8223
+ [
8224
+ "protected-method",
8225
+ "protected-function-property",
8226
+ ],
8227
+ [
8228
+ "private-method",
8229
+ "private-function-property",
8230
+ ],
8231
+ "unknown",
8232
+ ],
7845
8233
  },
7846
8234
  ],
7847
8235
  "perfectionist/sort-decorators": [
@@ -7952,15 +8340,13 @@ exports[`validate config the legacy recommended config is correct 1`] = `
7952
8340
  "perfectionist/sort-switch-case": [
7953
8341
  "error",
7954
8342
  {
7955
- "order": "asc",
7956
- "type": "alphabetical",
8343
+ "type": "natural",
7957
8344
  },
7958
8345
  ],
7959
8346
  "perfectionist/sort-union-types": [
7960
8347
  "error",
7961
8348
  {
7962
- "order": "asc",
7963
- "type": "alphabetical",
8349
+ "type": "natural",
7964
8350
  },
7965
8351
  ],
7966
8352
  "perfectionist/sort-variable-declarations": [
@@ -9108,7 +9494,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
9108
9494
  "off",
9109
9495
  ],
9110
9496
  "unicorn/empty-brace-spaces": [
9111
- "error",
9497
+ 0,
9112
9498
  ],
9113
9499
  "unicorn/error-message": [
9114
9500
  "error",
@@ -9201,7 +9587,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
9201
9587
  "error",
9202
9588
  ],
9203
9589
  "unicorn/no-nested-ternary": [
9204
- "error",
9590
+ 0,
9205
9591
  ],
9206
9592
  "unicorn/no-new-array": [
9207
9593
  "error",
@@ -9270,7 +9656,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
9270
9656
  "error",
9271
9657
  ],
9272
9658
  "unicorn/number-literal-case": [
9273
- "error",
9659
+ 0,
9274
9660
  ],
9275
9661
  "unicorn/numeric-separators-style": [
9276
9662
  "error",
@@ -9459,7 +9845,7 @@ exports[`validate config the legacy recommended config is correct 1`] = `
9459
9845
  "error",
9460
9846
  ],
9461
9847
  "unicorn/template-indent": [
9462
- "error",
9848
+ 0,
9463
9849
  ],
9464
9850
  "unicorn/text-encoding-identifier-case": [
9465
9851
  "error",