@qntx/oxlint 1.0.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.
package/dist/index.mjs ADDED
@@ -0,0 +1,1056 @@
1
+ //#region src/config.ts
2
+ const config = {
3
+ plugins: [
4
+ "eslint",
5
+ "import",
6
+ "node",
7
+ "oxc",
8
+ "promise",
9
+ "typescript",
10
+ "unicorn",
11
+ "vitest"
12
+ ],
13
+ env: {
14
+ browser: true,
15
+ node: true
16
+ },
17
+ options: {
18
+ reportUnusedDisableDirectives: "error",
19
+ typeAware: true,
20
+ typeCheck: true
21
+ },
22
+ settings: { vitest: { typecheck: true } },
23
+ ignorePatterns: [
24
+ "**/.vite-hooks/**",
25
+ "**/build/**",
26
+ "**/coverage/**",
27
+ "**/dist/**",
28
+ "**/node_modules/**"
29
+ ],
30
+ rules: {
31
+ "eslint/accessor-pairs": ["error", { enforceForClassMembers: true }],
32
+ "eslint/array-callback-return": ["error", { allowImplicit: true }],
33
+ "eslint/arrow-body-style": "off",
34
+ "eslint/block-scoped-var": "off",
35
+ "eslint/capitalized-comments": "off",
36
+ "eslint/class-methods-use-this": "off",
37
+ "eslint/complexity": "off",
38
+ "eslint/constructor-super": "off",
39
+ "eslint/curly": ["error", "all"],
40
+ "eslint/default-case": "off",
41
+ "eslint/default-case-last": "error",
42
+ "eslint/default-param-last": "error",
43
+ "eslint/eqeqeq": "error",
44
+ "eslint/for-direction": "error",
45
+ "eslint/func-name-matching": [
46
+ "error",
47
+ "never",
48
+ { considerPropertyDescriptor: true }
49
+ ],
50
+ "eslint/func-names": "off",
51
+ "eslint/func-style": [
52
+ "error",
53
+ "declaration",
54
+ { allowArrowFunctions: true }
55
+ ],
56
+ "eslint/getter-return": "error",
57
+ "eslint/grouped-accessor-pairs": ["error", "getBeforeSet"],
58
+ "eslint/guard-for-in": "error",
59
+ "eslint/id-denylist": "off",
60
+ "eslint/id-length": "off",
61
+ "eslint/id-match": "off",
62
+ "eslint/init-declarations": "off",
63
+ "eslint/logical-assignment-operators": "off",
64
+ "eslint/max-classes-per-file": "off",
65
+ "eslint/max-depth": "off",
66
+ "eslint/max-lines": "off",
67
+ "eslint/max-lines-per-function": "off",
68
+ "eslint/max-nested-callbacks": "off",
69
+ "eslint/max-params": "off",
70
+ "eslint/max-statements": "off",
71
+ "eslint/new-cap": "off",
72
+ "eslint/no-alert": "error",
73
+ "eslint/no-array-constructor": "error",
74
+ "eslint/no-async-promise-executor": "error",
75
+ "eslint/no-await-in-loop": "error",
76
+ "eslint/no-bitwise": "error",
77
+ "eslint/no-caller": "error",
78
+ "eslint/no-case-declarations": "error",
79
+ "eslint/no-class-assign": "off",
80
+ "eslint/no-compare-neg-zero": "error",
81
+ "eslint/no-cond-assign": "error",
82
+ "eslint/no-console": "error",
83
+ "eslint/no-const-assign": "off",
84
+ "eslint/no-constant-binary-expression": "error",
85
+ "eslint/no-constant-condition": "error",
86
+ "eslint/no-constructor-return": "error",
87
+ "eslint/no-continue": "off",
88
+ "eslint/no-control-regex": "error",
89
+ "eslint/no-debugger": "error",
90
+ "eslint/no-delete-var": "off",
91
+ "eslint/no-div-regex": "off",
92
+ "eslint/no-dupe-class-members": "off",
93
+ "eslint/no-dupe-else-if": "error",
94
+ "eslint/no-dupe-keys": "off",
95
+ "eslint/no-duplicate-case": "error",
96
+ "eslint/no-duplicate-imports": "off",
97
+ "eslint/no-else-return": ["error", { allowElseIf: false }],
98
+ "eslint/no-empty": ["error", { allowEmptyCatch: true }],
99
+ "eslint/no-empty-character-class": "error",
100
+ "eslint/no-empty-function": "error",
101
+ "eslint/no-empty-pattern": "error",
102
+ "eslint/no-empty-static-block": "error",
103
+ "eslint/no-eq-null": "error",
104
+ "eslint/no-eval": "error",
105
+ "eslint/no-ex-assign": "error",
106
+ "eslint/no-extend-native": "error",
107
+ "eslint/no-extra-bind": "error",
108
+ "eslint/no-extra-boolean-cast": "error",
109
+ "eslint/no-extra-label": "error",
110
+ "eslint/no-fallthrough": "off",
111
+ "eslint/no-func-assign": "off",
112
+ "eslint/no-global-assign": "error",
113
+ "eslint/no-implicit-coercion": "error",
114
+ "eslint/no-implicit-globals": "error",
115
+ "eslint/no-implied-eval": "error",
116
+ "eslint/no-import-assign": "off",
117
+ "eslint/no-inline-comments": "off",
118
+ "eslint/no-inner-declarations": "off",
119
+ "eslint/no-invalid-regexp": "error",
120
+ "eslint/no-irregular-whitespace": "off",
121
+ "eslint/no-iterator": "off",
122
+ "eslint/no-label-var": "off",
123
+ "eslint/no-labels": "off",
124
+ "eslint/no-lone-blocks": "off",
125
+ "eslint/no-lonely-if": "error",
126
+ "eslint/no-loop-func": "error",
127
+ "eslint/no-loss-of-precision": "error",
128
+ "eslint/no-magic-numbers": "off",
129
+ "eslint/no-misleading-character-class": "error",
130
+ "eslint/no-multi-assign": "error",
131
+ "eslint/no-multi-str": "off",
132
+ "eslint/no-negated-condition": "off",
133
+ "eslint/no-nested-ternary": "off",
134
+ "eslint/no-new": "off",
135
+ "eslint/no-new-func": "error",
136
+ "eslint/no-new-native-nonconstructor": "off",
137
+ "eslint/no-new-wrappers": "error",
138
+ "eslint/no-nonoctal-decimal-escape": "error",
139
+ "eslint/no-obj-calls": "off",
140
+ "eslint/no-object-constructor": "error",
141
+ "eslint/no-param-reassign": "error",
142
+ "eslint/no-plusplus": "off",
143
+ "eslint/no-promise-executor-return": "error",
144
+ "eslint/no-proto": "error",
145
+ "eslint/no-prototype-builtins": "off",
146
+ "eslint/no-redeclare": "off",
147
+ "eslint/no-regex-spaces": "error",
148
+ "eslint/no-restricted-exports": "off",
149
+ "eslint/no-restricted-globals": "off",
150
+ "eslint/no-restricted-imports": "off",
151
+ "eslint/no-restricted-properties": "off",
152
+ "eslint/no-return-assign": ["error", "always"],
153
+ "eslint/no-script-url": "error",
154
+ "eslint/no-self-assign": ["error", { props: true }],
155
+ "eslint/no-self-compare": "error",
156
+ "eslint/no-sequences": "error",
157
+ "eslint/no-setter-return": "off",
158
+ "eslint/no-shadow": "off",
159
+ "eslint/no-shadow-restricted-names": "error",
160
+ "eslint/no-sparse-arrays": "error",
161
+ "eslint/no-template-curly-in-string": "error",
162
+ "eslint/no-ternary": "off",
163
+ "eslint/no-this-before-super": "off",
164
+ "eslint/no-throw-literal": "error",
165
+ "eslint/no-unassigned-vars": "error",
166
+ "eslint/no-undef": "off",
167
+ "eslint/no-undefined": "off",
168
+ "eslint/no-underscore-dangle": "off",
169
+ "eslint/no-unexpected-multiline": "off",
170
+ "eslint/no-unmodified-loop-condition": "error",
171
+ "eslint/no-unneeded-ternary": "error",
172
+ "eslint/no-unreachable": "off",
173
+ "eslint/no-unsafe-finally": "error",
174
+ "eslint/no-unsafe-negation": "error",
175
+ "eslint/no-unsafe-optional-chaining": ["error", { disallowArithmeticOperators: true }],
176
+ "eslint/no-unused-expressions": ["error", { enforceForJSX: true }],
177
+ "eslint/no-unused-labels": "error",
178
+ "eslint/no-unused-private-class-members": "error",
179
+ "eslint/no-unused-vars": ["error", {
180
+ argsIgnorePattern: "^_",
181
+ caughtErrorsIgnorePattern: "^_",
182
+ destructuredArrayIgnorePattern: "^_",
183
+ varsIgnorePattern: "^_"
184
+ }],
185
+ "eslint/no-use-before-define": "off",
186
+ "eslint/no-useless-assignment": "error",
187
+ "eslint/no-useless-backreference": "error",
188
+ "eslint/no-useless-call": "error",
189
+ "eslint/no-useless-catch": "error",
190
+ "eslint/no-useless-computed-key": "error",
191
+ "eslint/no-useless-concat": "error",
192
+ "eslint/no-useless-constructor": "off",
193
+ "eslint/no-useless-escape": "error",
194
+ "eslint/no-useless-rename": "error",
195
+ "eslint/no-useless-return": "error",
196
+ "eslint/no-var": "error",
197
+ "eslint/no-void": "off",
198
+ "eslint/no-warning-comments": "error",
199
+ "eslint/no-with": "error",
200
+ "eslint/object-shorthand": ["error", "always"],
201
+ "eslint/one-var": "off",
202
+ "eslint/operator-assignment": ["error", "always"],
203
+ "eslint/prefer-arrow-callback": ["error", { allowNamedFunctions: true }],
204
+ "eslint/prefer-const": "error",
205
+ "eslint/prefer-destructuring": "error",
206
+ "eslint/prefer-exponentiation-operator": "error",
207
+ "eslint/prefer-named-capture-group": "off",
208
+ "eslint/prefer-numeric-literals": "off",
209
+ "eslint/prefer-object-has-own": "error",
210
+ "eslint/prefer-object-spread": "error",
211
+ "eslint/prefer-promise-reject-errors": "error",
212
+ "eslint/prefer-regex-literals": "error",
213
+ "eslint/prefer-rest-params": "error",
214
+ "eslint/prefer-spread": "error",
215
+ "eslint/prefer-template": "error",
216
+ "eslint/preserve-caught-error": "error",
217
+ "eslint/radix": "error",
218
+ "eslint/require-await": "off",
219
+ "eslint/require-unicode-regexp": "off",
220
+ "eslint/require-yield": "error",
221
+ "eslint/sort-imports": "off",
222
+ "eslint/sort-keys": "off",
223
+ "eslint/sort-vars": "off",
224
+ "eslint/symbol-description": "error",
225
+ "eslint/unicode-bom": ["error", "never"],
226
+ "eslint/use-isnan": "error",
227
+ "eslint/valid-typeof": ["error", { requireStringLiterals: false }],
228
+ "eslint/vars-on-top": "off",
229
+ "eslint/yoda": [
230
+ "error",
231
+ "never",
232
+ { exceptRange: true }
233
+ ],
234
+ "import/consistent-type-specifier-style": ["error", "prefer-top-level"],
235
+ "import/default": "error",
236
+ "import/exports-last": "off",
237
+ "import/extensions": "off",
238
+ "import/first": "error",
239
+ "import/group-exports": "off",
240
+ "import/max-dependencies": "off",
241
+ "import/namespace": "error",
242
+ "import/newline-after-import": "error",
243
+ "import/no-absolute-path": "error",
244
+ "import/no-amd": "off",
245
+ "import/no-anonymous-default-export": "error",
246
+ "import/no-commonjs": ["error", { allowConditionalRequire: false }],
247
+ "import/no-cycle": "error",
248
+ "import/no-default-export": "off",
249
+ "import/no-duplicates": "error",
250
+ "import/no-dynamic-require": "off",
251
+ "import/no-empty-named-blocks": "error",
252
+ "import/no-mutable-exports": "error",
253
+ "import/no-named-as-default": "error",
254
+ "import/no-named-as-default-member": "error",
255
+ "import/no-named-default": "error",
256
+ "import/no-named-export": "off",
257
+ "import/no-namespace": "off",
258
+ "import/no-nodejs-modules": "off",
259
+ "import/no-relative-parent-imports": "off",
260
+ "import/no-self-import": "error",
261
+ "import/no-unassigned-import": "error",
262
+ "import/no-webpack-loader-syntax": "off",
263
+ "import/prefer-default-export": "off",
264
+ "import/unambiguous": "error",
265
+ "node/callback-return": "off",
266
+ "node/exports-style": "off",
267
+ "node/global-require": "off",
268
+ "node/handle-callback-err": ["error", "error"],
269
+ "node/no-exports-assign": "off",
270
+ "node/no-mixed-requires": "off",
271
+ "node/no-new-require": "off",
272
+ "node/no-path-concat": "error",
273
+ "node/no-process-env": "off",
274
+ "node/no-sync": "off",
275
+ "node/no-top-level-await": "off",
276
+ "oxc/approx-constant": "error",
277
+ "oxc/bad-array-method-on-arguments": "error",
278
+ "oxc/bad-bitwise-operator": "error",
279
+ "oxc/bad-char-at-comparison": "error",
280
+ "oxc/bad-comparison-sequence": "error",
281
+ "oxc/bad-match-all-arg": "error",
282
+ "oxc/bad-min-max-func": "error",
283
+ "oxc/bad-object-literal-comparison": "error",
284
+ "oxc/bad-replace-all-arg": "error",
285
+ "oxc/branches-sharing-code": "error",
286
+ "oxc/const-comparisons": "error",
287
+ "oxc/double-comparisons": "error",
288
+ "oxc/erasing-op": "error",
289
+ "oxc/misrefactored-assign-op": "error",
290
+ "oxc/missing-throw": "error",
291
+ "oxc/no-accumulating-spread": "error",
292
+ "oxc/no-async-await": "off",
293
+ "oxc/no-async-endpoint-handlers": "off",
294
+ "oxc/no-barrel-file": "off",
295
+ "oxc/no-const-enum": "off",
296
+ "oxc/no-map-spread": "error",
297
+ "oxc/no-optional-chaining": "off",
298
+ "oxc/no-rest-spread-properties": "off",
299
+ "oxc/no-this-in-exported-function": "error",
300
+ "oxc/number-arg-out-of-range": "error",
301
+ "oxc/only-used-in-recursion": "error",
302
+ "oxc/uninvoked-array-callback": "error",
303
+ "promise/always-return": "error",
304
+ "promise/avoid-new": "off",
305
+ "promise/catch-or-return": "error",
306
+ "promise/no-callback-in-promise": "error",
307
+ "promise/no-multiple-resolved": "error",
308
+ "promise/no-nesting": "error",
309
+ "promise/no-new-statics": "error",
310
+ "promise/no-promise-in-callback": "error",
311
+ "promise/no-return-in-finally": "error",
312
+ "promise/no-return-wrap": ["error", { allowReject: true }],
313
+ "promise/param-names": "error",
314
+ "promise/prefer-await-to-callbacks": "off",
315
+ "promise/prefer-await-to-then": "error",
316
+ "promise/prefer-catch": "error",
317
+ "promise/spec-only": "error",
318
+ "promise/valid-params": "error",
319
+ "typescript/adjacent-overload-signatures": "error",
320
+ "typescript/array-type": ["error", {
321
+ default: "array-simple",
322
+ readonly: "generic"
323
+ }],
324
+ "typescript/await-thenable": "error",
325
+ "typescript/ban-ts-comment": ["error", {
326
+ "ts-check": true,
327
+ "ts-expect-error": "allow-with-description",
328
+ "ts-ignore": true,
329
+ "ts-nocheck": true
330
+ }],
331
+ "typescript/ban-tslint-comment": "error",
332
+ "typescript/ban-types": "off",
333
+ "typescript/class-literal-property-style": ["error", "fields"],
334
+ "typescript/consistent-generic-constructors": ["error", "constructor"],
335
+ "typescript/consistent-indexed-object-style": ["error", "record"],
336
+ "typescript/consistent-return": "error",
337
+ "typescript/consistent-type-assertions": ["error", { assertionStyle: "as" }],
338
+ "typescript/consistent-type-definitions": ["error", "type"],
339
+ "typescript/consistent-type-exports": "error",
340
+ "typescript/consistent-type-imports": ["error", {
341
+ fixStyle: "separate-type-imports",
342
+ prefer: "type-imports"
343
+ }],
344
+ "typescript/dot-notation": "error",
345
+ "typescript/explicit-function-return-type": "off",
346
+ "typescript/explicit-member-accessibility": ["error", { accessibility: "no-public" }],
347
+ "typescript/explicit-module-boundary-types": ["error", { allowArgumentsExplicitlyTypedAsAny: false }],
348
+ "typescript/method-signature-style": ["error", "property"],
349
+ "typescript/no-array-delete": "error",
350
+ "typescript/no-base-to-string": "error",
351
+ "typescript/no-confusing-non-null-assertion": "error",
352
+ "typescript/no-confusing-void-expression": ["error", { ignoreArrowShorthand: true }],
353
+ "typescript/no-deprecated": "error",
354
+ "typescript/no-duplicate-enum-values": "error",
355
+ "typescript/no-duplicate-type-constituents": "error",
356
+ "typescript/no-dynamic-delete": "error",
357
+ "typescript/no-empty-interface": "error",
358
+ "typescript/no-empty-object-type": "error",
359
+ "typescript/no-explicit-any": "error",
360
+ "typescript/no-extra-non-null-assertion": "error",
361
+ "typescript/no-extraneous-class": "error",
362
+ "typescript/no-floating-promises": "error",
363
+ "typescript/no-for-in-array": "error",
364
+ "typescript/no-implied-eval": "error",
365
+ "typescript/no-import-type-side-effects": "error",
366
+ "typescript/no-inferrable-types": "error",
367
+ "typescript/no-invalid-void-type": "error",
368
+ "typescript/no-meaningless-void-operator": "error",
369
+ "typescript/no-misused-new": "error",
370
+ "typescript/no-misused-promises": ["error", {
371
+ checksConditionals: true,
372
+ checksVoidReturn: true
373
+ }],
374
+ "typescript/no-misused-spread": "error",
375
+ "typescript/no-mixed-enums": "error",
376
+ "typescript/no-namespace": ["error", { allowDeclarations: true }],
377
+ "typescript/no-non-null-asserted-nullish-coalescing": "error",
378
+ "typescript/no-non-null-asserted-optional-chain": "error",
379
+ "typescript/no-non-null-assertion": "error",
380
+ "typescript/no-redundant-type-constituents": "error",
381
+ "typescript/no-require-imports": "error",
382
+ "typescript/no-restricted-types": ["error", { types: {
383
+ "[]": true,
384
+ null: true,
385
+ object: true
386
+ } }],
387
+ "typescript/no-this-alias": "error",
388
+ "typescript/no-unnecessary-boolean-literal-compare": "error",
389
+ "typescript/no-unnecessary-parameter-property-assignment": "error",
390
+ "typescript/no-unnecessary-qualifier": "error",
391
+ "typescript/no-unnecessary-template-expression": "error",
392
+ "typescript/no-unnecessary-type-arguments": "error",
393
+ "typescript/no-unnecessary-type-assertion": "error",
394
+ "typescript/no-unnecessary-type-constraint": "error",
395
+ "typescript/no-unnecessary-type-conversion": "error",
396
+ "typescript/no-unnecessary-type-parameters": "error",
397
+ "typescript/no-unsafe-argument": "error",
398
+ "typescript/no-unsafe-assignment": "error",
399
+ "typescript/no-unsafe-call": "error",
400
+ "typescript/no-unsafe-declaration-merging": "error",
401
+ "typescript/no-unsafe-enum-comparison": "error",
402
+ "typescript/no-unsafe-function-type": "error",
403
+ "typescript/no-unsafe-member-access": "error",
404
+ "typescript/no-unsafe-return": "error",
405
+ "typescript/no-unsafe-type-assertion": "error",
406
+ "typescript/no-unsafe-unary-minus": "error",
407
+ "typescript/no-useless-default-assignment": "error",
408
+ "typescript/no-useless-empty-export": "error",
409
+ "typescript/no-var-requires": "off",
410
+ "typescript/no-wrapper-object-types": "error",
411
+ "typescript/non-nullable-type-assertion-style": "error",
412
+ "typescript/only-throw-error": ["error", { allowThrowingAny: false }],
413
+ "typescript/parameter-properties": ["error", { prefer: "class-property" }],
414
+ "typescript/prefer-as-const": "error",
415
+ "typescript/prefer-enum-initializers": "error",
416
+ "typescript/prefer-find": "error",
417
+ "typescript/prefer-for-of": "error",
418
+ "typescript/prefer-function-type": "error",
419
+ "typescript/prefer-includes": "error",
420
+ "typescript/prefer-literal-enum-member": "error",
421
+ "typescript/prefer-namespace-keyword": "off",
422
+ "typescript/prefer-nullish-coalescing": ["error", { ignoreConditionalTests: false }],
423
+ "typescript/prefer-promise-reject-errors": "error",
424
+ "typescript/prefer-readonly": "error",
425
+ "typescript/prefer-readonly-parameter-types": "off",
426
+ "typescript/prefer-reduce-type-parameter": "error",
427
+ "typescript/prefer-regexp-exec": "error",
428
+ "typescript/prefer-return-this-type": "error",
429
+ "typescript/prefer-string-starts-ends-with": "error",
430
+ "typescript/prefer-ts-expect-error": "error",
431
+ "typescript/promise-function-async": "error",
432
+ "typescript/related-getter-setter-pairs": "error",
433
+ "typescript/require-array-sort-compare": ["error", { ignoreStringArrays: true }],
434
+ "typescript/require-await": "error",
435
+ "typescript/restrict-plus-operands": "error",
436
+ "typescript/restrict-template-expressions": ["error", {
437
+ allowAny: false,
438
+ allowBoolean: false,
439
+ allowNever: false,
440
+ allowNullish: false,
441
+ allowNumber: true
442
+ }],
443
+ "typescript/return-await": ["error", "in-try-catch"],
444
+ "typescript/strict-boolean-expressions": "error",
445
+ "typescript/strict-void-return": "error",
446
+ "typescript/switch-exhaustiveness-check": ["error", {
447
+ allowDefaultCaseForExhaustiveSwitch: false,
448
+ considerDefaultExhaustiveForUnions: true,
449
+ requireDefaultForNonUnion: true
450
+ }],
451
+ "typescript/triple-slash-reference": "error",
452
+ "typescript/unbound-method": "error",
453
+ "typescript/unified-signatures": "error",
454
+ "typescript/use-unknown-in-catch-callback-variable": "error",
455
+ "unicorn/catch-error-name": "error",
456
+ "unicorn/consistent-assert": "error",
457
+ "unicorn/consistent-date-clone": "error",
458
+ "unicorn/consistent-empty-array-spread": "error",
459
+ "unicorn/consistent-existence-index-check": "error",
460
+ "unicorn/consistent-function-scoping": "error",
461
+ "unicorn/consistent-template-literal-escape": "error",
462
+ "unicorn/custom-error-definition": "error",
463
+ "unicorn/empty-brace-spaces": "off",
464
+ "unicorn/error-message": "error",
465
+ "unicorn/escape-case": "error",
466
+ "unicorn/explicit-length-check": "error",
467
+ "unicorn/explicit-timer-delay": ["error", "never"],
468
+ "unicorn/filename-case": "off",
469
+ "unicorn/import-style": "off",
470
+ "unicorn/max-nested-calls": "off",
471
+ "unicorn/new-for-builtins": "error",
472
+ "unicorn/no-abusive-eslint-disable": "error",
473
+ "unicorn/no-accessor-recursion": "error",
474
+ "unicorn/no-anonymous-default-export": "off",
475
+ "unicorn/no-array-callback-reference": "off",
476
+ "unicorn/no-array-fill-with-reference-type": "error",
477
+ "unicorn/no-array-for-each": "error",
478
+ "unicorn/no-array-method-this-argument": "error",
479
+ "unicorn/no-array-reduce": "error",
480
+ "unicorn/no-array-reverse": "error",
481
+ "unicorn/no-array-sort": ["error"],
482
+ "unicorn/no-await-expression-member": "error",
483
+ "unicorn/no-await-in-promise-methods": "error",
484
+ "unicorn/no-confusing-array-with": "error",
485
+ "unicorn/no-console-spaces": "error",
486
+ "unicorn/no-document-cookie": "error",
487
+ "unicorn/no-empty-file": "error",
488
+ "unicorn/no-hex-escape": "error",
489
+ "unicorn/no-immediate-mutation": "error",
490
+ "unicorn/no-instanceof-array": "error",
491
+ "unicorn/no-instanceof-builtins": "error",
492
+ "unicorn/no-invalid-fetch-options": "error",
493
+ "unicorn/no-invalid-remove-event-listener": "error",
494
+ "unicorn/no-length-as-slice-end": "error",
495
+ "unicorn/no-lonely-if": "error",
496
+ "unicorn/no-magic-array-flat-depth": "error",
497
+ "unicorn/no-negated-condition": "error",
498
+ "unicorn/no-negation-in-equality-check": "error",
499
+ "unicorn/no-nested-ternary": "error",
500
+ "unicorn/no-new-array": "error",
501
+ "unicorn/no-new-buffer": "error",
502
+ "unicorn/no-null": "off",
503
+ "unicorn/no-object-as-default-parameter": "error",
504
+ "unicorn/no-process-exit": "error",
505
+ "unicorn/no-single-promise-in-promise-methods": "error",
506
+ "unicorn/no-static-only-class": "error",
507
+ "unicorn/no-thenable": "error",
508
+ "unicorn/no-this-assignment": "error",
509
+ "unicorn/no-typeof-undefined": ["error", { checkGlobalVariables: true }],
510
+ "unicorn/no-unnecessary-array-flat-depth": "error",
511
+ "unicorn/no-unnecessary-array-splice-count": "error",
512
+ "unicorn/no-unnecessary-await": "error",
513
+ "unicorn/no-unnecessary-slice-end": "error",
514
+ "unicorn/no-unreadable-array-destructuring": "error",
515
+ "unicorn/no-unreadable-iife": "error",
516
+ "unicorn/no-useless-collection-argument": "error",
517
+ "unicorn/no-useless-error-capture-stack-trace": "error",
518
+ "unicorn/no-useless-fallback-in-spread": "error",
519
+ "unicorn/no-useless-length-check": "error",
520
+ "unicorn/no-useless-promise-resolve-reject": "error",
521
+ "unicorn/no-useless-spread": "error",
522
+ "unicorn/no-useless-switch-case": "error",
523
+ "unicorn/no-useless-undefined": "off",
524
+ "unicorn/no-zero-fractions": "error",
525
+ "unicorn/number-literal-case": "error",
526
+ "unicorn/numeric-separators-style": ["error", { onlyIfContainsSeparator: true }],
527
+ "unicorn/prefer-add-event-listener": "error",
528
+ "unicorn/prefer-array-find": "error",
529
+ "unicorn/prefer-array-flat": "error",
530
+ "unicorn/prefer-array-flat-map": "error",
531
+ "unicorn/prefer-array-index-of": "error",
532
+ "unicorn/prefer-array-some": "error",
533
+ "unicorn/prefer-at": "error",
534
+ "unicorn/prefer-bigint-literals": "off",
535
+ "unicorn/prefer-blob-reading-methods": "error",
536
+ "unicorn/prefer-class-fields": "error",
537
+ "unicorn/prefer-classlist-toggle": "error",
538
+ "unicorn/prefer-code-point": "error",
539
+ "unicorn/prefer-date-now": "error",
540
+ "unicorn/prefer-default-parameters": "error",
541
+ "unicorn/prefer-dom-node-append": "error",
542
+ "unicorn/prefer-dom-node-dataset": "error",
543
+ "unicorn/prefer-dom-node-remove": "error",
544
+ "unicorn/prefer-dom-node-text-content": "error",
545
+ "unicorn/prefer-event-target": "error",
546
+ "unicorn/prefer-export-from": "error",
547
+ "unicorn/prefer-global-this": "error",
548
+ "unicorn/prefer-import-meta-properties": "error",
549
+ "unicorn/prefer-includes": "error",
550
+ "unicorn/prefer-keyboard-event-key": "error",
551
+ "unicorn/prefer-logical-operator-over-ternary": "error",
552
+ "unicorn/prefer-math-min-max": "error",
553
+ "unicorn/prefer-math-trunc": "error",
554
+ "unicorn/prefer-modern-dom-apis": "error",
555
+ "unicorn/prefer-modern-math-apis": "error",
556
+ "unicorn/prefer-module": "error",
557
+ "unicorn/prefer-native-coercion-functions": "error",
558
+ "unicorn/prefer-negative-index": "error",
559
+ "unicorn/prefer-node-protocol": "error",
560
+ "unicorn/prefer-number-coercion": "error",
561
+ "unicorn/prefer-number-properties": ["error", {
562
+ checkInfinity: true,
563
+ checkNaN: true
564
+ }],
565
+ "unicorn/prefer-object-from-entries": "error",
566
+ "unicorn/prefer-optional-catch-binding": "error",
567
+ "unicorn/prefer-prototype-methods": "error",
568
+ "unicorn/prefer-query-selector": "error",
569
+ "unicorn/prefer-reflect-apply": "error",
570
+ "unicorn/prefer-regexp-test": "error",
571
+ "unicorn/prefer-response-static-json": "error",
572
+ "unicorn/prefer-set-has": "error",
573
+ "unicorn/prefer-set-size": "error",
574
+ "unicorn/prefer-single-call": "error",
575
+ "unicorn/prefer-spread": "error",
576
+ "unicorn/prefer-string-raw": "error",
577
+ "unicorn/prefer-string-replace-all": "error",
578
+ "unicorn/prefer-string-slice": "error",
579
+ "unicorn/prefer-string-starts-ends-with": "error",
580
+ "unicorn/prefer-string-trim-start-end": "error",
581
+ "unicorn/prefer-structured-clone": "error",
582
+ "unicorn/prefer-ternary": ["error", "always"],
583
+ "unicorn/prefer-top-level-await": "error",
584
+ "unicorn/prefer-type-error": "error",
585
+ "unicorn/relative-url-style": ["error", "never"],
586
+ "unicorn/require-array-join-separator": "error",
587
+ "unicorn/require-module-attributes": "error",
588
+ "unicorn/require-module-specifiers": "error",
589
+ "unicorn/require-number-to-fixed-digits-argument": "error",
590
+ "unicorn/require-post-message-target-origin": "error",
591
+ "unicorn/switch-case-braces": ["error", "avoid"],
592
+ "unicorn/switch-case-break-position": "error",
593
+ "unicorn/text-encoding-identifier-case": "error",
594
+ "unicorn/throw-new-error": "error",
595
+ "vitest/consistent-each-for": "off",
596
+ "vitest/consistent-test-filename": "off",
597
+ "vitest/consistent-test-it": "off",
598
+ "vitest/consistent-vitest-vi": "off",
599
+ "vitest/expect-expect": "off",
600
+ "vitest/hoisted-apis-on-top": "off",
601
+ "vitest/max-expects": "off",
602
+ "vitest/max-nested-describe": "off",
603
+ "vitest/no-alias-methods": "off",
604
+ "vitest/no-commented-out-tests": "off",
605
+ "vitest/no-conditional-expect": "off",
606
+ "vitest/no-conditional-in-test": "off",
607
+ "vitest/no-conditional-tests": "off",
608
+ "vitest/no-disabled-tests": "off",
609
+ "vitest/no-duplicate-hooks": "off",
610
+ "vitest/no-focused-tests": "off",
611
+ "vitest/no-hooks": "off",
612
+ "vitest/no-identical-title": "off",
613
+ "vitest/no-import-node-test": "off",
614
+ "vitest/no-importing-vitest-globals": "off",
615
+ "vitest/no-interpolation-in-snapshots": "off",
616
+ "vitest/no-large-snapshots": "off",
617
+ "vitest/no-mocks-import": "off",
618
+ "vitest/no-restricted-matchers": "off",
619
+ "vitest/no-restricted-vi-methods": "off",
620
+ "vitest/no-standalone-expect": "off",
621
+ "vitest/no-test-prefixes": "off",
622
+ "vitest/no-test-return-statement": "off",
623
+ "vitest/no-unneeded-async-expect-function": "off",
624
+ "vitest/padding-around-after-all-blocks": "off",
625
+ "vitest/padding-around-test-blocks": "off",
626
+ "vitest/prefer-called-exactly-once-with": "off",
627
+ "vitest/prefer-called-once": "off",
628
+ "vitest/prefer-called-times": "off",
629
+ "vitest/prefer-called-with": "off",
630
+ "vitest/prefer-comparison-matcher": "off",
631
+ "vitest/prefer-describe-function-title": "off",
632
+ "vitest/prefer-each": "off",
633
+ "vitest/prefer-equality-matcher": "off",
634
+ "vitest/prefer-expect-assertions": "off",
635
+ "vitest/prefer-expect-resolves": "off",
636
+ "vitest/prefer-expect-type-of": "off",
637
+ "vitest/prefer-hooks-in-order": "off",
638
+ "vitest/prefer-hooks-on-top": "off",
639
+ "vitest/prefer-import-in-mock": "off",
640
+ "vitest/prefer-importing-vitest-globals": "off",
641
+ "vitest/prefer-lowercase-title": "off",
642
+ "vitest/prefer-mock-promise-shorthand": "off",
643
+ "vitest/prefer-mock-return-shorthand": "off",
644
+ "vitest/prefer-snapshot-hint": "off",
645
+ "vitest/prefer-spy-on": "off",
646
+ "vitest/prefer-strict-boolean-matchers": "off",
647
+ "vitest/prefer-strict-equal": "off",
648
+ "vitest/prefer-to-be": "off",
649
+ "vitest/prefer-to-be-falsy": "off",
650
+ "vitest/prefer-to-be-object": "off",
651
+ "vitest/prefer-to-be-truthy": "off",
652
+ "vitest/prefer-to-contain": "off",
653
+ "vitest/prefer-to-have-been-called-times": "off",
654
+ "vitest/prefer-to-have-length": "off",
655
+ "vitest/prefer-todo": "off",
656
+ "vitest/require-awaited-expect-poll": "off",
657
+ "vitest/require-hook": "off",
658
+ "vitest/require-local-test-context-for-concurrent-snapshots": "off",
659
+ "vitest/require-mock-type-parameters": "off",
660
+ "vitest/require-test-timeout": "off",
661
+ "vitest/require-to-throw-message": "off",
662
+ "vitest/require-top-level-describe": "off",
663
+ "vitest/valid-describe-callback": "off",
664
+ "vitest/valid-expect": "off",
665
+ "vitest/valid-expect-in-promise": "off",
666
+ "vitest/valid-title": "off",
667
+ "vitest/warn-todo": "off"
668
+ },
669
+ overrides: [
670
+ {
671
+ files: ["**/*.d.{ts,cts,mts}", "**/*.test-d.{ts,cts,mts}"],
672
+ rules: {
673
+ "import/no-empty-named-blocks": "off",
674
+ "import/no-unassigned-import": "off",
675
+ "import/unambiguous": "off",
676
+ "typescript/consistent-type-definitions": "off",
677
+ "typescript/no-empty-object-type": "off",
678
+ "typescript/no-restricted-types": "off",
679
+ "typescript/no-useless-empty-export": "off",
680
+ "unicorn/require-module-specifiers": "off"
681
+ }
682
+ },
683
+ {
684
+ files: ["**/*.test.{js,jsx,ts,tsx,cjs,cts,mjs,mts}", "**/*.test-d.{ts,cts,mts}"],
685
+ excludeFiles: ["**/e2e/**"],
686
+ rules: {
687
+ "eslint/getter-return": "off",
688
+ "eslint/no-empty-function": "off",
689
+ "eslint/no-param-reassign": "off",
690
+ "eslint/no-promise-executor-return": "off",
691
+ "eslint/no-useless-assignment": "off",
692
+ "import/no-unassigned-import": "off",
693
+ "import/unambiguous": "off",
694
+ "oxc/approx-constant": "off",
695
+ "oxc/no-accumulating-spread": "off",
696
+ "oxc/no-map-spread": "off",
697
+ "promise/catch-or-return": "off",
698
+ "promise/no-callback-in-promise": "off",
699
+ "promise/no-promise-in-callback": "off",
700
+ "promise/no-return-wrap": "off",
701
+ "promise/prefer-await-to-then": "off",
702
+ "eslint/no-console": "off",
703
+ "typescript/ban-ts-comment": "off",
704
+ "typescript/explicit-module-boundary-types": "off",
705
+ "typescript/no-explicit-any": "off",
706
+ "typescript/no-non-null-assertion": "off",
707
+ "typescript/no-unsafe-type-assertion": "off",
708
+ "typescript/strict-boolean-expressions": "off",
709
+ "typescript/unbound-method": "off",
710
+ "typescript/no-base-to-string": "off",
711
+ "typescript/no-confusing-void-expression": "off",
712
+ "typescript/no-extraneous-class": "off",
713
+ "typescript/no-restricted-types": "off",
714
+ "typescript/no-unsafe-argument": "off",
715
+ "typescript/no-unsafe-assignment": "off",
716
+ "typescript/no-unsafe-call": "off",
717
+ "typescript/no-unsafe-declaration-merging": "off",
718
+ "typescript/no-unsafe-enum-comparison": "off",
719
+ "typescript/no-unsafe-function-type": "off",
720
+ "typescript/no-unsafe-member-access": "off",
721
+ "typescript/no-unsafe-return": "off",
722
+ "typescript/no-unsafe-unary-minus": "off",
723
+ "typescript/only-throw-error": "off",
724
+ "typescript/restrict-template-expressions": "off",
725
+ "typescript/strict-void-return": "off",
726
+ "unicorn/consistent-function-scoping": "off",
727
+ "unicorn/error-message": "off",
728
+ "unicorn/no-array-fill-with-reference-type": "off",
729
+ "unicorn/no-empty-file": "off",
730
+ "unicorn/no-useless-promise-resolve-reject": "off",
731
+ "unicorn/prefer-single-call": "off",
732
+ "vitest/consistent-each-for": ["error", {
733
+ test: "each",
734
+ describe: "each",
735
+ it: "each",
736
+ suite: "each"
737
+ }],
738
+ "vitest/consistent-vitest-vi": "error",
739
+ "vitest/expect-expect": "error",
740
+ "vitest/hoisted-apis-on-top": "error",
741
+ "vitest/no-commented-out-tests": "error",
742
+ "vitest/no-conditional-expect": "error",
743
+ "vitest/no-conditional-in-test": "error",
744
+ "vitest/no-disabled-tests": "error",
745
+ "vitest/no-duplicate-hooks": "error",
746
+ "vitest/no-focused-tests": "error",
747
+ "vitest/no-identical-title": "error",
748
+ "vitest/no-import-node-test": "error",
749
+ "vitest/no-interpolation-in-snapshots": "error",
750
+ "vitest/no-mocks-import": "error",
751
+ "vitest/no-standalone-expect": "error",
752
+ "vitest/no-test-return-statement": "error",
753
+ "vitest/no-unneeded-async-expect-function": "error",
754
+ "vitest/padding-around-after-all-blocks": "error",
755
+ "vitest/padding-around-test-blocks": "error",
756
+ "vitest/prefer-called-exactly-once-with": "error",
757
+ "vitest/prefer-called-times": "error",
758
+ "vitest/prefer-comparison-matcher": "error",
759
+ "vitest/prefer-describe-function-title": "error",
760
+ "vitest/prefer-each": "error",
761
+ "vitest/prefer-equality-matcher": "error",
762
+ "vitest/prefer-expect-resolves": "error",
763
+ "vitest/prefer-expect-type-of": "error",
764
+ "vitest/prefer-hooks-in-order": "error",
765
+ "vitest/prefer-hooks-on-top": "error",
766
+ "vitest/prefer-mock-promise-shorthand": "error",
767
+ "vitest/prefer-mock-return-shorthand": "error",
768
+ "vitest/prefer-strict-boolean-matchers": "error",
769
+ "vitest/prefer-strict-equal": "error",
770
+ "vitest/prefer-to-be": "error",
771
+ "vitest/prefer-to-be-object": "error",
772
+ "vitest/prefer-to-contain": "error",
773
+ "vitest/prefer-to-have-been-called-times": "error",
774
+ "vitest/prefer-to-have-length": "error",
775
+ "vitest/prefer-todo": "error",
776
+ "vitest/require-awaited-expect-poll": "error",
777
+ "vitest/require-local-test-context-for-concurrent-snapshots": "error",
778
+ "vitest/require-to-throw-message": "error",
779
+ "vitest/valid-describe-callback": "error",
780
+ "vitest/valid-expect": "error",
781
+ "vitest/valid-expect-in-promise": "error",
782
+ "vitest/valid-title": "error",
783
+ "vitest/warn-todo": "error"
784
+ }
785
+ },
786
+ {
787
+ files: ["**/*.config.{js,ts,cjs,cts,mjs,mts}", "**/*.setup.{js,ts,cjs,cts,mjs,mts}"],
788
+ rules: {
789
+ "import/no-anonymous-default-export": ["error", { allowObject: true }],
790
+ "import/no-unassigned-import": "off",
791
+ "import/unambiguous": "off",
792
+ "typescript/no-useless-empty-export": "off",
793
+ "unicorn/no-empty-file": "off"
794
+ }
795
+ }
796
+ ]
797
+ };
798
+ //#endregion
799
+ //#region src/merge.ts
800
+ const REPLACE_IF_EMPTY = /* @__PURE__ */ new Set([
801
+ "ignorePatterns",
802
+ "plugins",
803
+ "jsPlugins",
804
+ "overrides"
805
+ ]);
806
+ function merge(...parts) {
807
+ const out = {};
808
+ for (const part of parts) {
809
+ if (part === void 0) continue;
810
+ for (const key of Object.keys(part)) {
811
+ const value = Reflect.get(part, key);
812
+ if (value === void 0 || value === null) {
813
+ Reflect.deleteProperty(out, key);
814
+ continue;
815
+ }
816
+ const prev = Reflect.get(out, key);
817
+ if (Array.isArray(value) && value.length === 0 && REPLACE_IF_EMPTY.has(key)) {
818
+ assign(out, key, []);
819
+ continue;
820
+ }
821
+ if (key === "jsPlugins" && Array.isArray(prev) && Array.isArray(value)) {
822
+ const plugins = /* @__PURE__ */ new Map();
823
+ for (const plugin of [...pluginEntries(prev), ...pluginEntries(value)]) plugins.set(typeof plugin === "string" ? plugin : plugin.name, plugin);
824
+ out.jsPlugins = [...plugins.values()];
825
+ continue;
826
+ }
827
+ if (Array.isArray(prev) && Array.isArray(value)) {
828
+ assign(out, key, uniqueConcat(prev, value));
829
+ continue;
830
+ }
831
+ if (isPlain(prev) && isPlain(value)) {
832
+ const next = { ...prev };
833
+ for (const [nestedKey, nestedValue] of Object.entries(value)) if (nestedValue === void 0 || nestedValue === null) Reflect.deleteProperty(next, nestedKey);
834
+ else next[nestedKey] = nestedValue;
835
+ assign(out, key, next);
836
+ continue;
837
+ }
838
+ assign(out, key, value);
839
+ }
840
+ }
841
+ return out;
842
+ }
843
+ function uniqueConcat(left, right) {
844
+ const seen = /* @__PURE__ */ new Set();
845
+ const result = [];
846
+ for (const item of [...copyUnknownArray(left), ...copyUnknownArray(right)]) {
847
+ if (seen.has(item)) continue;
848
+ seen.add(item);
849
+ result.push(item);
850
+ }
851
+ return result;
852
+ }
853
+ function copyUnknownArray(value) {
854
+ return value.map((item) => item);
855
+ }
856
+ function assign(out, key, value) {
857
+ Object.assign(out, { [key]: value });
858
+ }
859
+ function pluginEntries(value) {
860
+ const entries = [];
861
+ for (const item of value) {
862
+ if (typeof item === "string") {
863
+ entries.push(item);
864
+ continue;
865
+ }
866
+ if (isPlain(item) && typeof item.name === "string" && typeof item.specifier === "string") entries.push({
867
+ name: item.name,
868
+ specifier: item.specifier
869
+ });
870
+ }
871
+ return entries;
872
+ }
873
+ function isPlain(value) {
874
+ return typeof value === "object" && value !== null && !Array.isArray(value);
875
+ }
876
+ const react = merge(config, {
877
+ plugins: [
878
+ "jsx-a11y",
879
+ "react",
880
+ "react-perf"
881
+ ],
882
+ rules: {
883
+ "jsx-a11y/alt-text": "error",
884
+ "jsx-a11y/anchor-ambiguous-text": "error",
885
+ "jsx-a11y/anchor-has-content": "error",
886
+ "jsx-a11y/anchor-is-valid": "error",
887
+ "jsx-a11y/aria-activedescendant-has-tabindex": "error",
888
+ "jsx-a11y/aria-props": "error",
889
+ "jsx-a11y/aria-proptypes": "error",
890
+ "jsx-a11y/aria-role": "error",
891
+ "jsx-a11y/aria-unsupported-elements": "error",
892
+ "jsx-a11y/autocomplete-valid": "error",
893
+ "jsx-a11y/click-events-have-key-events": "error",
894
+ "jsx-a11y/control-has-associated-label": "error",
895
+ "jsx-a11y/heading-has-content": "error",
896
+ "jsx-a11y/html-has-lang": "error",
897
+ "jsx-a11y/iframe-has-title": "error",
898
+ "jsx-a11y/img-redundant-alt": "error",
899
+ "jsx-a11y/interactive-supports-focus": "error",
900
+ "jsx-a11y/label-has-associated-control": "error",
901
+ "jsx-a11y/lang": "error",
902
+ "jsx-a11y/media-has-caption": "off",
903
+ "jsx-a11y/mouse-events-have-key-events": "error",
904
+ "jsx-a11y/no-access-key": "error",
905
+ "jsx-a11y/no-aria-hidden-on-focusable": "error",
906
+ "jsx-a11y/no-autofocus": "error",
907
+ "jsx-a11y/no-distracting-elements": "error",
908
+ "jsx-a11y/no-interactive-element-to-noninteractive-role": "error",
909
+ "jsx-a11y/no-noninteractive-element-interactions": "error",
910
+ "jsx-a11y/no-noninteractive-element-to-interactive-role": "error",
911
+ "jsx-a11y/no-noninteractive-tabindex": "error",
912
+ "jsx-a11y/no-redundant-roles": "error",
913
+ "jsx-a11y/no-static-element-interactions": "error",
914
+ "jsx-a11y/prefer-tag-over-role": "error",
915
+ "jsx-a11y/role-has-required-aria-props": "error",
916
+ "jsx-a11y/role-supports-aria-props": "error",
917
+ "jsx-a11y/scope": "error",
918
+ "jsx-a11y/tabindex-no-positive": "error",
919
+ "react-perf/jsx-no-jsx-as-prop": "off",
920
+ "react-perf/jsx-no-new-array-as-prop": "error",
921
+ "react-perf/jsx-no-new-function-as-prop": "off",
922
+ "react-perf/jsx-no-new-object-as-prop": "off",
923
+ "react/button-has-type": "error",
924
+ "react/checked-requires-onchange-or-readonly": "error",
925
+ "react/display-name": "off",
926
+ "react/exhaustive-deps": "error",
927
+ "react/forbid-component-props": "off",
928
+ "react/forbid-dom-props": "off",
929
+ "react/forbid-elements": "off",
930
+ "react/forward-ref-uses-ref": "off",
931
+ "react/function-component-definition": "off",
932
+ "react/hook-use-state": "error",
933
+ "react/iframe-missing-sandbox": "error",
934
+ "react/jsx-boolean-value": "error",
935
+ "react/jsx-curly-brace-presence": ["error", {
936
+ children: "never",
937
+ propElementValues: "always",
938
+ props: "never"
939
+ }],
940
+ "react/jsx-filename-extension": ["error", { extensions: [".jsx", ".tsx"] }],
941
+ "react/jsx-fragments": "error",
942
+ "react/jsx-handler-names": "error",
943
+ "react/jsx-key": "error",
944
+ "react/jsx-max-depth": "off",
945
+ "react/jsx-no-comment-textnodes": "error",
946
+ "react/jsx-no-constructed-context-values": "error",
947
+ "react/jsx-no-duplicate-props": "error",
948
+ "react/jsx-no-literals": "off",
949
+ "react/jsx-no-script-url": "error",
950
+ "react/jsx-no-target-blank": ["error", { warnOnSpreadAttributes: true }],
951
+ "react/jsx-no-undef": "error",
952
+ "react/jsx-no-useless-fragment": "error",
953
+ "react/jsx-pascal-case": "error",
954
+ "react/jsx-props-no-spread-multi": "error",
955
+ "react/jsx-props-no-spreading": "off",
956
+ "react/no-array-index-key": "error",
957
+ "react/no-children-prop": "error",
958
+ "react/no-clone-element": "off",
959
+ "react/no-danger": "error",
960
+ "react/no-danger-with-children": "error",
961
+ "react/no-did-mount-set-state": "off",
962
+ "react/no-did-update-set-state": "off",
963
+ "react/no-direct-mutation-state": "off",
964
+ "react/no-find-dom-node": "off",
965
+ "react/no-is-mounted": "off",
966
+ "react/no-multi-comp": "off",
967
+ "react/no-namespace": "error",
968
+ "react/no-object-type-as-default-prop": "error",
969
+ "react/no-react-children": "off",
970
+ "react/no-redundant-should-component-update": "off",
971
+ "react/no-render-return-value": "off",
972
+ "react/no-set-state": "off",
973
+ "react/no-string-refs": "off",
974
+ "react/no-this-in-sfc": "off",
975
+ "react/no-unescaped-entities": "error",
976
+ "react/no-unknown-property": "error",
977
+ "react/no-unsafe": "error",
978
+ "react/no-unstable-nested-components": "error",
979
+ "react/no-will-update-set-state": "off",
980
+ "react/only-export-components": "error",
981
+ "react/prefer-es6-class": "off",
982
+ "react/prefer-function-component": "off",
983
+ "react/capitalized-calls": "error",
984
+ "react/error-boundaries": "error",
985
+ "react/exhaustive-effect-dependencies": "error",
986
+ "react/globals": "error",
987
+ "react/hooks": "error",
988
+ "react/immutability": "error",
989
+ "react/incompatible-library": "error",
990
+ "react/invariant": "error",
991
+ "react/memo-dependencies": "error",
992
+ "react/no-deriving-state-in-effects": "error",
993
+ "react/preserve-manual-memoization": "error",
994
+ "react/purity": "error",
995
+ "react/refs": "error",
996
+ "react/rule-suppression": "error",
997
+ "react/set-state-in-effect": "error",
998
+ "react/set-state-in-render": "error",
999
+ "react/static-components": "error",
1000
+ "react/syntax": "error",
1001
+ "react/todo": "off",
1002
+ "react/unsupported-syntax": "error",
1003
+ "react/use-memo": "error",
1004
+ "react/void-use-memo": "error",
1005
+ "react/react-in-jsx-scope": "off",
1006
+ "react/require-render-return": "off",
1007
+ "react/rules-of-hooks": "error",
1008
+ "react/self-closing-comp": "error",
1009
+ "react/state-in-constructor": "off",
1010
+ "react/style-prop-object": "error",
1011
+ "react/void-dom-elements-no-children": "error"
1012
+ },
1013
+ overrides: [{
1014
+ files: ["**/*.test.{js,jsx,ts,tsx,cjs,cts,mjs,mts}", "**/*.test-d.{ts,cts,mts}"],
1015
+ excludeFiles: ["**/e2e/**"],
1016
+ rules: {
1017
+ "jsx-a11y/alt-text": "off",
1018
+ "jsx-a11y/anchor-ambiguous-text": "off",
1019
+ "jsx-a11y/anchor-has-content": "off",
1020
+ "jsx-a11y/anchor-is-valid": "off",
1021
+ "jsx-a11y/click-events-have-key-events": "error",
1022
+ "jsx-a11y/control-has-associated-label": "off",
1023
+ "jsx-a11y/heading-has-content": "off",
1024
+ "jsx-a11y/html-has-lang": "off",
1025
+ "jsx-a11y/iframe-has-title": "off",
1026
+ "jsx-a11y/interactive-supports-focus": "off",
1027
+ "jsx-a11y/label-has-associated-control": "off",
1028
+ "jsx-a11y/lang": "off",
1029
+ "jsx-a11y/mouse-events-have-key-events": "error",
1030
+ "jsx-a11y/no-access-key": "off",
1031
+ "jsx-a11y/no-autofocus": "off",
1032
+ "jsx-a11y/no-distracting-elements": "off",
1033
+ "jsx-a11y/no-interactive-element-to-noninteractive-role": "off",
1034
+ "jsx-a11y/no-noninteractive-element-interactions": "error",
1035
+ "jsx-a11y/no-noninteractive-element-to-interactive-role": "off",
1036
+ "jsx-a11y/no-noninteractive-tabindex": "off",
1037
+ "jsx-a11y/no-redundant-roles": "off",
1038
+ "jsx-a11y/no-static-element-interactions": "off",
1039
+ "jsx-a11y/prefer-tag-over-role": "off",
1040
+ "jsx-a11y/scope": "off",
1041
+ "jsx-a11y/tabindex-no-positive": "off",
1042
+ "react-perf/jsx-no-new-array-as-prop": "off",
1043
+ "react/button-has-type": "off",
1044
+ "react/checked-requires-onchange-or-readonly": "off",
1045
+ "react/jsx-no-target-blank": "off",
1046
+ "react/jsx-no-useless-fragment": "off",
1047
+ "react/no-array-index-key": "off",
1048
+ "react/no-children-prop": "off",
1049
+ "react/no-danger": "off",
1050
+ "react/no-object-type-as-default-prop": "off",
1051
+ "react/no-unstable-nested-components": "error"
1052
+ }
1053
+ }]
1054
+ });
1055
+ //#endregion
1056
+ export { config, config as default, merge, react };