@ethang/eslint-config 17.6.1 → 18.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.
Files changed (3) hide show
  1. package/README.md +12 -5
  2. package/eslint.config.js +543 -861
  3. package/package.json +1 -7
package/eslint.config.js CHANGED
@@ -1,11 +1,8 @@
1
1
  // @ts-check
2
2
  import parser from "@typescript-eslint/parser";
3
- import astro from "eslint-plugin-astro";
4
3
  import a11y from "eslint-plugin-jsx-a11y/lib/index.js";
5
4
  import n from "eslint-plugin-n";
6
5
  import eslintPluginPrettier from "eslint-plugin-prettier/recommended";
7
- import react from "eslint-plugin-react";
8
- import reactHooks from "eslint-plugin-react-hooks";
9
6
  import unicorn from "eslint-plugin-unicorn";
10
7
  import tseslint from "typescript-eslint";
11
8
  import sonar from "eslint-plugin-sonarjs";
@@ -22,870 +19,555 @@ const languageOptions = {
22
19
 
23
20
  const ignores = ["eslint.config.js", "node_modules", "dist"];
24
21
 
25
- export default tseslint.config(
26
- eslintPluginPrettier,
27
- {
28
- files: ["**/*.{astro}"],
29
- ignores,
30
- languageOptions,
31
- plugins: { astro },
32
- rules: {
33
- "astro/missing-client-only-directive-value": "error",
34
- "astro/no-conflict-set-directives": "error",
35
- "astro/no-deprecated-astro-canonicalurl": "error",
36
- "astro/no-deprecated-astro-fetchcontent": "error",
37
- "astro/no-deprecated-astro-resolve": "error",
38
- "astro/no-deprecated-getentrybyslug": "error",
39
- "astro/no-exports-from-components": "error",
40
- "astro/no-set-html-directive": "off",
41
- "astro/no-set-text-directive": "error",
42
- "astro/no-unused-css-selector": "error",
43
- "astro/no-unused-define-vars-in-style": "error",
44
- "astro/prefer-class-list-directive": "error",
45
- "astro/prefer-object-class-list": "error",
46
- "astro/prefer-split-class-list": "error",
47
- "astro/semi": "error",
48
- "astro/valid-compile": "error",
49
- "astro/jsx-a11y/alt-text": "error",
50
- "astro/jsx-a11y/anchor-ambiguous-text": "error",
51
- "astro/jsx-a11y/anchor-has-content": "error",
52
- "astro/jsx-a11y/anchor-is-valid": "error",
53
- "astro/jsx-a11y/aria-activedescendant-has-tabindex": "error",
54
- "astro/jsx-a11y/aria-props": "error",
55
- "astro/jsx-a11y/aria-proptypes": "error",
56
- "astro/jsx-a11y/aria-role": "error",
57
- "astro/jsx-a11y/aria-unsupported-elements": "error",
58
- "astro/jsx-a11y/autocomplete-valid": "error",
59
- "astro/jsx-a11y/click-events-have-key-events": "error",
60
- "astro/jsx-a11y/control-has-associated-label": "error",
61
- "astro/jsx-a11y/heading-has-content": "error",
62
- "astro/jsx-a11y/html-has-lang": "error",
63
- "astro/jsx-a11y/iframe-has-title": "error",
64
- "astro/jsx-a11y/img-redundant-alt": "error",
65
- "astro/jsx-a11y/interactive-supports-focus": "error",
66
- "astro/jsx-a11y/label-has-associated-control": "error",
67
- "astro/jsx-a11y/lang": "error",
68
- "astro/jsx-a11y/media-has-caption": "error",
69
- "astro/jsx-a11y/mouse-events-have-key-events": "error",
70
- "astro/jsx-a11y/no-access-key": "error",
71
- "astro/jsx-a11y/no-aria-hidden-on-focusable": "error",
72
- "astro/jsx-a11y/no-autofocus": "error",
73
- "astro/jsx-a11y/no-distracting-elements": "error",
74
- "astro/jsx-a11y/no-interactive-element-to-noninteractive-role": "error",
75
- "astro/jsx-a11y/no-noninteractive-element-interactions": "error",
76
- "astro/jsx-a11y/no-noninteractive-element-to-interactive-role": "error",
77
- "astro/jsx-a11y/no-noninteractive-tabindex": "error",
78
- "astro/jsx-a11y/no-redundant-roles": "error",
79
- "astro/jsx-a11y/no-static-element-interactions": "error",
80
- "astro/jsx-a11y/prefer-tag-over-role": "error",
81
- "astro/jsx-a11y/role-has-required-aria-props": "error",
82
- "astro/jsx-a11y/role-supports-aria-props": "error",
83
- "astro/jsx-a11y/scope": "error",
84
- "astro/jsx-a11y/tabindex-no-positive": "error",
85
- },
22
+ export default tseslint.config(eslintPluginPrettier, {
23
+ files: ["**/*.{js,ts,mjs,jsx,tsx}"],
24
+ ignores,
25
+ languageOptions,
26
+ plugins: {
27
+ "@typescript-eslint": tseslint.plugin,
28
+ a11y,
29
+ n,
30
+ perfectionist,
31
+ sonar,
32
+ unicorn,
33
+ "@tanstack/query": tanstack,
86
34
  },
87
- {
88
- files: ["**/*.{jsx,tsx}"],
89
- ignores,
90
- languageOptions,
91
- plugins: {
92
- react,
93
- "react-hooks": reactHooks,
94
- },
95
- rules: {
96
- "react/boolean-prop-naming": "error",
97
- "react/button-has-type": "error",
98
- "react/checked-requires-onchange-or-readonly": "error",
99
- "react/default-props-match-prop-types": "error",
100
- "react/destructuring-assignment": "error",
101
- "react/display-name": "error",
102
- "react/forbid-component-props": "error",
103
- "react/forbid-dom-props": "off",
104
- "react/forbid-elements": "off",
105
- "react/forbid-foreign-prop-types": "off",
106
- "react/forbid-prop-types": "off",
107
- "react/function-component-definition": "error",
108
- "react/hook-use-state": "error",
109
- "react/iframe-missing-sandbox": "error",
110
- "react/jsx-boolean-value": "error",
111
- "react/jsx-curly-brace-presence": "error",
112
- "react/jsx-filename-extension": [
113
- "error",
114
- { extensions: [".jsx", ".tsx"] },
115
- ],
116
- "react/jsx-fragments": "error",
117
- "react/jsx-handler-names": "error",
118
- "react/jsx-key": "error",
119
- "react/jsx-max-depth": "error",
120
- "react/jsx-no-bind": "error",
121
- "react/jsx-no-comment-textnodes": "error",
122
- "react/jsx-no-constructed-context-values": "error",
123
- "react/jsx-no-duplicate-props": "error",
124
- "react/jsx-no-leaked-render": "error",
125
- "react/jsx-no-literals": "off",
126
- "react/jsx-no-script-url": "error",
127
- "react/jsx-no-target-blank": "error",
128
- "react/jsx-no-undef": "error",
129
- "react/jsx-no-useless-fragment": "error",
130
- "react/jsx-pascal-case": "error",
131
- "react/jsx-props-no-spread-multi": "error",
132
- "react/jsx-props-no-spreading": "off",
133
- "react/jsx-sort-default-props": "off",
134
- "react/jsx-sort-props": "off", // Conflicts with perfectionist/sort-jsx-props
135
- "react/jsx-uses-react": "error",
136
- "react/jsx-uses-vars": "error",
137
- "react/no-access-state-in-setstate": "error",
138
- "react/no-adjacent-inline-elements": "error",
139
- "react/no-array-index-key": "error",
140
- "react/no-arrow-function-lifecycle": "error",
141
- "react/no-children-prop": "error",
142
- "react/no-danger": "off",
143
- "react/no-danger-with-children": "error",
144
- "react/no-deprecated": "error",
145
- "react/no-did-mount-set-state": "error",
146
- "react/no-did-update-set-state": "error",
147
- "react/no-direct-mutation-state": "error",
148
- "react/no-find-dom-node": "error",
149
- "react/no-invalid-html-attribute": "error",
150
- "react/no-is-mounted": "error",
151
- "react/no-multi-comp": "error",
152
- "react/no-namespace": "error",
153
- "react/no-object-type-as-default-prop": "error",
154
- "react/no-redundant-should-component-update": "error",
155
- "react/no-render-return-value": "error",
156
- "react/no-set-state": "error",
157
- "react/no-string-refs": "error",
158
- "react/no-this-in-sfc": "error",
159
- "react/no-typos": "error",
160
- "react/no-unescaped-entities": "error",
161
- "react/no-unknown-property": "error",
162
- "react/no-unsafe": "error",
163
- "react/no-unstable-nested-components": "error",
164
- "react/no-unused-class-component-methods": "error",
165
- "react/no-unused-prop-types": "error",
166
- "react/no-unused-state": "error",
167
- "react/no-will-update-set-state": "error",
168
- "react/prefer-es6-class": "error",
169
- "react/prefer-exact-props": "error",
170
- "react/prefer-read-only-props": "error",
171
- "react/prefer-stateless-function": "error",
172
- "react/prop-types": "error",
173
- "react/react-in-jsx-scope": "off",
174
- "react/require-default-props": "off",
175
- "react/require-optimization": "error",
176
- "react/require-render-return": "error",
177
- "react/self-closing-comp": "error",
178
- "react/sort-comp": "error",
179
- "react/sort-default-props": "error",
180
- "react/sort-prop-types": "error",
181
- "react/state-in-constructor": "error",
182
- "react/static-property-placement": "error",
183
- "react/style-prop-object": "error",
184
- "react/void-dom-elements-no-children": "error",
35
+ rules: {
36
+ "accessor-pairs": "error",
37
+ "array-callback-return": "error",
38
+ "arrow-body-style": ["error", "always"],
39
+ "block-scoped-var": "error",
40
+ "constructor-super": "error",
41
+ eqeqeq: "error",
42
+ "for-direction": "error",
43
+ "func-name-matching": "error",
44
+ "func-style": [
45
+ "error",
46
+ "declaration",
47
+ {
48
+ allowArrowFunctions: true,
49
+ },
50
+ ],
51
+ "getter-return": "error",
52
+ "grouped-accessor-pairs": "error",
53
+ "guard-for-in": "error",
54
+ "logical-assignment-operators": "error",
55
+ "max-classes-per-file": "error",
56
+ "max-depth": "error",
57
+ "max-lines": "error",
58
+ "max-lines-per-function": "error",
59
+ "max-nested-callbacks": "error",
60
+ "max-statements": "error",
61
+ "no-alert": "error",
62
+ "no-async-promise-executor": "error",
63
+ "no-await-in-loop": "error",
64
+ "no-bitwise": "error",
65
+ "no-caller": "error",
66
+ "no-case-declarations": "error",
67
+ "no-class-assign": "error",
68
+ "no-compare-neg-zero": "error",
69
+ "no-cond-assign": "error",
70
+ "no-console": "error",
71
+ "no-const-assign": "error",
72
+ "no-constant-binary-expression": "error",
73
+ "no-constant-condition": "error",
74
+ "no-constructor-return": "error",
75
+ "no-control-regex": "error",
76
+ "no-debugger": "error",
77
+ "no-delete-var": "error",
78
+ "no-div-regex": "error",
79
+ "no-dupe-args": "error",
80
+ "no-dupe-else-if": "error",
81
+ "no-dupe-keys": "error",
82
+ "no-duplicate-case": "error",
83
+ "no-else-return": "error",
84
+ "no-empty": "error",
85
+ "no-empty-character-class": "error",
86
+ "no-empty-pattern": "error",
87
+ "no-empty-static-block": "error",
88
+ "no-eq-null": "error",
89
+ "no-eval": "error",
90
+ "no-ex-assign": "error",
91
+ "no-extend-native": "error",
92
+ "no-extra-bind": "error",
93
+ "no-extra-boolean-cast": "error",
94
+ "no-extra-label": "error",
95
+ "no-fallthrough": "error",
96
+ "no-func-assign": "error",
97
+ "no-global-assign": "error",
98
+ "no-implicit-coercion": "error",
99
+ "no-import-assign": "error",
100
+ "no-inner-declarations": "error",
101
+ "no-invalid-regexp": "error",
102
+ "no-irregular-whitespace": "error",
103
+ "no-iterator": "error",
104
+ "no-label-var": "error",
105
+ "no-labels": "error",
106
+ "no-lone-blocks": "error",
107
+ "no-lonely-if": "error",
108
+ "no-loss-of-precision": "error",
109
+ "no-misleading-character-class": "error",
110
+ "no-multi-assign": "error",
111
+ "no-multi-str": "error",
112
+ "no-negated-condition": "error",
113
+ "no-nested-ternary": "error",
114
+ "no-new": "error",
115
+ "no-new-func": "error",
116
+ "no-new-native-nonconstructor": "error",
117
+ "no-new-wrappers": "error",
118
+ "no-nonoctal-decimal-escape": "error",
119
+ "no-obj-calls": "error",
120
+ "no-object-constructor": "error",
121
+ "no-octal": "error",
122
+ "no-octal-escape": "error",
123
+ "no-param-reassign": "error",
124
+ "no-plusplus": "error",
125
+ "no-promise-executor-return": "error",
126
+ "no-proto": "error",
127
+ "no-prototype-builtins": "error",
128
+ "no-regex-spaces": "error",
129
+ "no-return-assign": "error",
130
+ "no-script-url": "error",
131
+ "no-self-assign": "error",
132
+ "no-self-compare": "error",
133
+ "no-sequences": "error",
134
+ "no-setter-return": "error",
135
+ "no-shadow-restricted-names": "error",
136
+ "no-sparse-arrays": "error",
137
+ "no-this-before-super": "error",
138
+ "no-undef-init": "error",
139
+ "no-unmodified-loop-condition": "error",
140
+ "no-unneeded-ternary": "error",
141
+ "no-unreachable": "error",
142
+ "no-unreachable-loop": "error",
143
+ "no-unsafe-finally": "error",
144
+ "no-unsafe-negation": "error",
145
+ "no-unsafe-optional-chaining": "error",
146
+ "no-unused-labels": "error",
147
+ "no-unused-private-class-members": "error",
148
+ "no-useless-backreference": "error",
149
+ "no-useless-call": "error",
150
+ "no-useless-catch": "error",
151
+ "no-useless-computed-key": "error",
152
+ "no-useless-concat": "error",
153
+ "no-useless-escape": "error",
154
+ "no-useless-rename": "error",
155
+ "no-useless-return": "error",
156
+ "no-var": "error",
157
+ "no-void": "error",
158
+ "no-with": "error",
159
+ "object-shorthand": "error",
160
+ "operator-assignment": "error",
161
+ "prefer-arrow-callback": "error",
162
+ "prefer-const": "error",
163
+ "prefer-exponentiation-operator": "error",
164
+ "prefer-named-capture-group": "error",
165
+ "prefer-numeric-literals": "error",
166
+ "prefer-object-has-own": "error",
167
+ "prefer-object-spread": "error",
168
+ "prefer-regex-literals": "error",
169
+ "prefer-rest-params": "error",
170
+ "prefer-spread": "error",
171
+ "prefer-template": "error",
172
+ radix: "error",
173
+ "require-atomic-updates": "error",
174
+ "require-unicode-regexp": "error",
175
+ "require-yield": "error",
176
+ "sort-vars": "error",
177
+ strict: "error",
178
+ "symbol-description": "error",
179
+ "unicode-bom": "error",
180
+ "use-isnan": "error",
181
+ "valid-typeof": "error",
182
+ "vars-on-top": "error",
183
+ yoda: ["error", "always"],
185
184
 
186
- "react-hooks/exhaustive-deps": "error",
187
- "react-hooks/rules-of-hooks": "error",
188
- },
189
- },
190
- {
191
- files: ["**/*.{js,ts,mjs,jsx,tsx}"],
192
- ignores,
193
- languageOptions,
194
- plugins: {
195
- "@typescript-eslint": tseslint.plugin,
196
- a11y,
197
- n,
198
- perfectionist,
199
- sonar,
200
- unicorn,
201
- "@tanstack/query": tanstack,
202
- },
203
- rules: {
204
- "accessor-pairs": "error",
205
- "array-callback-return": "error",
206
- "arrow-body-style": ["error", "always"],
207
- "block-scoped-var": "error",
208
- "callback-return": "off", // deprecated
209
- camelcase: "off", // not useful
210
- complexity: "off", // Handled by Sonar
211
- "consistent-this": "off",
212
- "consistent-return": "off",
213
- "constructor-super": "error",
214
- "capitalized-comments": "off", // conflicts with commenting/uncommenting shortcuts
215
- "class-methods-use-this": "off", // not needed
216
- "default-case": "off",
217
- "default-case-last": "off",
218
- "default-param-last": "off", // Handled by tseslint
219
- "dot-notation": "off", // Handled by tseslint
220
- eqeqeq: "error",
221
- "for-direction": "error",
222
- "func-names": "off",
223
- "func-name-matching": "error",
224
- "func-style": [
225
- "error",
226
- "declaration",
227
- {
228
- allowArrowFunctions: true,
229
- },
230
- ],
231
- "getter-return": "error",
232
- "global-require": "off", // Deprecated
233
- "grouped-accessor-pairs": "error",
234
- "guard-for-in": "error",
235
- "handle-callback-err": "off", // Deprecated
236
- "id-blacklist": "off", // Deprecated
237
- "id-denylist": "off",
238
- "id-length": "off",
239
- "id-match": "off",
240
- "init-declarations": "off",
241
- "line-comment-position": "off",
242
- "lines-around-directive": "off",
243
- "lines-between-class-members": "off",
244
- "logical-assignment-operators": "error",
245
- "max-classes-per-file": "error",
246
- "max-depth": "error",
247
- "max-lines": "error",
248
- "max-lines-per-function": "error",
249
- "max-nested-callbacks": "error",
250
- "max-params": "off", // Handled by tseslint
251
- "max-statements": "error",
252
- "multiline-comment-style": "off",
253
- "new-cap": "off",
254
- "newline-after-var": "off",
255
- "newline-before-return": "off",
256
- "no-alert": "error",
257
- "no-array-constructor": "off", // Handled by tseslint
258
- "no-async-promise-executor": "error",
259
- "no-await-in-loop": "error",
260
- "no-bitwise": "error",
261
- "no-buffer-constructor": "off",
262
- "no-caller": "error",
263
- "no-case-declarations": "error",
264
- "no-continue": "off",
265
- "no-catch-shadow": "off",
266
- "no-class-assign": "error",
267
- "no-compare-neg-zero": "error",
268
- "no-cond-assign": "error",
269
- "no-console": "error",
270
- "no-const-assign": "error",
271
- "no-constant-binary-expression": "error",
272
- "no-constant-condition": "error",
273
- "no-constructor-return": "error",
274
- "no-control-regex": "error",
275
- "no-debugger": "error",
276
- "no-delete-var": "error",
277
- "no-div-regex": "error",
278
- "no-dupe-args": "error",
279
- "no-dupe-class-members": "off", // Checked by ts compiler
280
- "no-dupe-else-if": "error",
281
- "no-dupe-keys": "error",
282
- "no-duplicate-case": "error",
283
- "no-duplicate-imports": "off", // Conflicts with seperate type imports
284
- "no-else-return": "error",
285
- "no-empty": "error",
286
- "no-empty-character-class": "error",
287
- "no-empty-function": "off", // Handled by tseslint
288
- "no-empty-pattern": "error",
289
- "no-empty-static-block": "error",
290
- "no-eq-null": "error",
291
- "no-eval": "error",
292
- "no-ex-assign": "error",
293
- "no-extend-native": "error",
294
- "no-extra-bind": "error",
295
- "no-extra-boolean-cast": "error",
296
- "no-extra-label": "error",
297
- "no-fallthrough": "error",
298
- "no-func-assign": "error",
299
- "no-global-assign": "error",
300
- "no-implicit-coercion": "error",
301
- "no-implicit-globals": "off",
302
- "no-implied-eval": "off", // Handled by tseslint
303
- "no-import-assign": "error",
304
- "no-inline-comments": "off",
305
- "no-inner-declarations": "error",
306
- "no-invalid-regexp": "error",
307
- "no-invalid-this": "off", // Checked by ts compiler
308
- "no-irregular-whitespace": "error",
309
- "no-iterator": "error",
310
- "no-label-var": "error",
311
- "no-labels": "error",
312
- "no-lone-blocks": "error",
313
- "no-lonely-if": "error",
314
- "no-loop-func": "off", // Handled by tseslint
315
- "no-loss-of-precision": "error",
316
- "no-magic-numbers": "off",
317
- "no-misleading-character-class": "error",
318
- "no-mixed-requires": "off",
319
- "no-multi-assign": "error",
320
- "no-multi-str": "error",
321
- "no-native-reassign": "off",
322
- "no-negated-condition": "error",
323
- "no-negated-in-lhs": "off",
324
- "no-nested-ternary": "error",
325
- "no-new": "error",
326
- "no-new-func": "error",
327
- "no-new-native-nonconstructor": "error",
328
- "no-new-require": "off",
329
- "no-new-object": "off",
330
- "no-new-symbol": "off",
331
- "no-new-wrappers": "error",
332
- "no-nonoctal-decimal-escape": "error",
333
- "no-obj-calls": "error",
334
- "no-object-constructor": "error",
335
- "no-octal": "error",
336
- "no-octal-escape": "error",
337
- "no-param-reassign": "error",
338
- "no-path-concat": "off",
339
- "no-plusplus": "error",
340
- "no-process-env": "off",
341
- "no-process-exit": "off",
342
- "no-promise-executor-return": "error",
343
- "no-proto": "error",
344
- "no-prototype-builtins": "error",
345
- "no-redeclare": "off", // Checked by ts compiler
346
- "no-regex-spaces": "error",
347
- "no-restricted-exports": "off",
348
- "no-restricted-globals": "off",
349
- "no-restricted-imports": "off", // Handled by tseslint
350
- "no-restricted-modules": "off",
351
- "no-restricted-properties": "off",
352
- "no-restricted-syntax": "off",
353
- "no-return-assign": "error",
354
- "no-return-await": "off", // Handled by tseslint
355
- "no-script-url": "error",
356
- "no-self-assign": "error",
357
- "no-self-compare": "error",
358
- "no-sequences": "error",
359
- "no-setter-return": "error",
360
- "no-shadow": "off", // Handled by tseslint
361
- "no-shadow-restricted-names": "error",
362
- "no-sparse-arrays": "error",
363
- "no-sync": "off",
364
- "no-template-curly-in-string": "off",
365
- "no-ternary": "off",
366
- "no-this-before-super": "error",
367
- "no-throw-literal": "off", // Handled by tseslint
368
- "no-undef": "off",
369
- "no-undef-init": "error",
370
- "no-undefined": "off",
371
- "no-underscore-dangle": "off",
372
- "no-unmodified-loop-condition": "error",
373
- "no-unneeded-ternary": "error",
374
- "no-unreachable": "error",
375
- "no-unreachable-loop": "error",
376
- "no-unsafe-finally": "error",
377
- "no-unsafe-negation": "error",
378
- "no-unsafe-optional-chaining": "error",
379
- "no-unused-expressions": "off", // Handled by tseslint
380
- "no-unused-labels": "error",
381
- "no-unused-private-class-members": "error",
382
- "no-unused-vars": "off", // Handled by tseslint
383
- "no-use-before-define": "off",
384
- "no-useless-assignment": "off", // Currently causing version errors
385
- "no-useless-backreference": "error",
386
- "no-useless-call": "error",
387
- "no-useless-catch": "error",
388
- "no-useless-computed-key": "error",
389
- "no-useless-concat": "error",
390
- "no-useless-constructor": "off", // Handled by tseslint
391
- "no-useless-escape": "error",
392
- "no-useless-rename": "error",
393
- "no-useless-return": "error",
394
- "no-var": "error",
395
- "no-void": "error",
396
- "no-warning-comments": "off",
397
- "no-with": "error",
398
- "object-shorthand": "error",
399
- "one-var": "off",
400
- "operator-assignment": "error",
401
- "padding-line-between-statements": "off",
402
- "prefer-arrow-callback": "error",
403
- "prefer-const": "error",
404
- "prefer-destructuring": "off", // Handled by tseslint
405
- "prefer-exponentiation-operator": "error",
406
- "prefer-named-capture-group": "error",
407
- "prefer-numeric-literals": "error",
408
- "prefer-object-has-own": "error",
409
- "prefer-object-spread": "error",
410
- "prefer-promise-reject-errors": "off", // Handled by tseslint
411
- "prefer-reflect": "off",
412
- "prefer-regex-literals": "error",
413
- "prefer-rest-params": "error",
414
- "prefer-spread": "error",
415
- "prefer-template": "error",
416
- radix: "error",
417
- "require-atomic-updates": "error",
418
- "require-await": "off", // Handled by tseslint
419
- "require-unicode-regexp": "error",
420
- "require-yield": "error",
421
- "spaced-comment": "off",
422
- "sort-imports": "off",
423
- "sort-keys": "off", // Handled by perfectionist
424
- "sort-vars": "error",
425
- strict: "error",
426
- "symbol-description": "error",
427
- "unicode-bom": "error",
428
- "use-isnan": "error",
429
- "valid-typeof": "error",
430
- "vars-on-top": "error",
431
- yoda: ["error", "always"],
432
-
433
- "n/callback-return": "off",
434
- "n/exports-style": ["error", "exports"],
435
- "n/file-extension-in-import": "off", // buggy with .ts
436
- "n/global-require": "off",
437
- "n/handle-callback-err": "error",
438
- "n/hashbang": "off",
439
- "n/no-hide-core-modules": "off",
440
- "n/no-callback-literal": "off",
441
- "n/no-deprecated-api": "error",
442
- "n/no-exports-assign": "error",
443
- "n/no-extraneous-import": "error",
444
- "n/no-extraneous-require": "error",
445
- "n/no-missing-import": "off",
446
- "n/no-missing-require": "error",
447
- "n/no-mixed-requires": "off",
448
- "n/no-new-require": "off",
449
- "n/no-path-concat": "error",
450
- "n/no-process-env": "off",
451
- "n/no-process-exit": "off",
452
- "n/no-restricted-import": "off",
453
- "n/no-restricted-require": "off",
454
- "n/no-sync": "off",
455
- "n/no-unpublished-bin": "error",
456
- "n/no-unpublished-require": "off",
457
- "n/no-unpublished-import": "off",
458
- "n/no-unsupported-features/es-builtins": "error",
459
- "n/no-unsupported-features/es-syntax": "error",
460
- "n/no-unsupported-features/node-builtins": "error",
461
- "n/prefer-global/buffer": "error",
462
- "n/prefer-global/console": "error",
463
- "n/prefer-global/process": "error",
464
- "n/prefer-global/text-decoder": "error",
465
- "n/prefer-global/text-encoder": "error",
466
- "n/prefer-global/url-search-params": "error",
467
- "n/prefer-global/url": "error",
468
- "n/prefer-promises/dns": "off",
469
- "n/prefer-promises/fs": "off",
470
- "n/prefer-node-protocol": "error",
471
- "n/process-exit-as-throw": "off",
472
- "n/shebang": "off",
185
+ "n/exports-style": ["error", "exports"],
186
+ "n/handle-callback-err": "error",
187
+ "n/no-deprecated-api": "error",
188
+ "n/no-exports-assign": "error",
189
+ "n/no-extraneous-import": "error",
190
+ "n/no-extraneous-require": "error",
191
+ "n/no-missing-require": "error",
192
+ "n/no-path-concat": "error",
193
+ "n/no-unpublished-bin": "error",
194
+ "n/no-unsupported-features/es-builtins": "error",
195
+ "n/no-unsupported-features/es-syntax": "error",
196
+ "n/no-unsupported-features/node-builtins": "error",
197
+ "n/prefer-global/buffer": "error",
198
+ "n/prefer-global/console": "error",
199
+ "n/prefer-global/process": "error",
200
+ "n/prefer-global/text-decoder": "error",
201
+ "n/prefer-global/text-encoder": "error",
202
+ "n/prefer-global/url-search-params": "error",
203
+ "n/prefer-global/url": "error",
204
+ "n/prefer-node-protocol": "error",
473
205
 
474
- "@typescript-eslint/adjacent-overload-signatures": "off", // Conflicts with perfectionist
475
- "@typescript-eslint/array-type": "error",
476
- "@typescript-eslint/await-thenable": "error",
477
- "@typescript-eslint/ban-ts-comment": "error",
478
- "@typescript-eslint/ban-tslint-comment": "error",
479
- "@typescript-eslint/class-literal-property-style": "error",
480
- "@typescript-eslint/class-methods-use-this": "off",
481
- "@typescript-eslint/consistent-generic-constructors": "error",
482
- "@typescript-eslint/consistent-indexed-object-style": "error",
483
- "@typescript-eslint/consistent-return": "off",
484
- "@typescript-eslint/consistent-type-assertions": "error",
485
- "@typescript-eslint/consistent-type-definitions": ["error", "type"],
486
- "@typescript-eslint/consistent-type-exports": "error",
487
- "@typescript-eslint/consistent-type-imports": "error",
488
- "@typescript-eslint/default-param-last": "error",
489
- "@typescript-eslint/dot-notation": "error",
490
- "@typescript-eslint/explicit-function-return-type": "off",
491
- "@typescript-eslint/explicit-member-accessibility": "error",
492
- "@typescript-eslint/explicit-module-boundary-types": "off",
493
- "@typescript-eslint/init-declarations": "off",
494
- "@typescript-eslint/lines-between-class-members": "off",
495
- "@typescript-eslint/max-params": "error",
496
- "@typescript-eslint/member-ordering": "off", // Conflicts with perfectionist/sort-classes
497
- "@typescript-eslint/method-signature-style": "error",
498
- "@typescript-eslint/naming-convention": "off",
499
- "@typescript-eslint/no-array-constructor": "error",
500
- "@typescript-eslint/no-array-delete": "error",
501
- "@typescript-eslint/no-base-to-string": "error",
502
- "@typescript-eslint/no-confusing-non-null-assertion": "error",
503
- "@typescript-eslint/no-confusing-void-expression": "error",
504
- "@typescript-eslint/no-dupe-class-members": "off",
505
- "@typescript-eslint/no-duplicate-enum-values": "error",
506
- "@typescript-eslint/no-duplicate-type-constituents": "error",
507
- "@typescript-eslint/no-dynamic-delete": "error",
508
- "@typescript-eslint/no-empty-function": "error",
509
- "@typescript-eslint/no-empty-interface": "off", // Deprecated
510
- "@typescript-eslint/no-empty-object-type": "error",
511
- "@typescript-eslint/no-explicit-any": "error",
512
- "@typescript-eslint/no-extra-non-null-assertion": "error",
513
- "@typescript-eslint/no-extraneous-class": "error",
514
- "@typescript-eslint/no-floating-promises": "error",
515
- "@typescript-eslint/no-for-in-array": "error",
516
- "@typescript-eslint/no-implied-eval": "error",
517
- "@typescript-eslint/no-import-type-side-effects": "error",
518
- "@typescript-eslint/no-inferrable-types": "error",
519
- "@typescript-eslint/no-invalid-this": "off",
520
- "@typescript-eslint/no-invalid-void-type": "error",
521
- "@typescript-eslint/no-loop-func": "error",
522
- "@typescript-eslint/no-loss-of-precision": "off", // Deprecated
523
- "@typescript-eslint/no-magic-numbers": "off",
524
- "@typescript-eslint/no-meaningless-void-operator": "error",
525
- "@typescript-eslint/no-misused-new": "error",
526
- "@typescript-eslint/no-misused-promises": "error",
527
- "@typescript-eslint/no-mixed-enums": "error",
528
- "@typescript-eslint/no-namespace": "error",
529
- "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error",
530
- "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
531
- "@typescript-eslint/no-non-null-assertion": "error",
532
- "@typescript-eslint/no-redeclare": "off",
533
- "@typescript-eslint/no-redundant-type-constituents": "error",
534
- "@typescript-eslint/no-require-imports": "error",
535
- "@typescript-eslint/no-restricted-imports": "error",
536
- "@typescript-eslint/no-restricted-types": "error",
537
- "@typescript-eslint/no-shadow": "error",
538
- "@typescript-eslint/no-this-alias": "error",
539
- "@typescript-eslint/no-type-alias": "off",
540
- "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
541
- "@typescript-eslint/no-unnecessary-condition": "error",
542
- "@typescript-eslint/no-unnecessary-parameter-property-assignment":
543
- "error",
544
- "@typescript-eslint/no-unnecessary-qualifier": "error",
545
- "@typescript-eslint/no-unnecessary-type-arguments": "error",
546
- "@typescript-eslint/no-unnecessary-type-assertion": "error",
547
- "@typescript-eslint/no-unnecessary-type-constraint": "error",
548
- "@typescript-eslint/no-unnecessary-type-parameters": "error",
549
- "@typescript-eslint/no-unsafe-argument": "error",
550
- "@typescript-eslint/no-unsafe-assignment": "error",
551
- "@typescript-eslint/no-unsafe-call": "error",
552
- "@typescript-eslint/no-unsafe-declaration-merging": "error",
553
- "@typescript-eslint/no-unsafe-enum-comparison": "error",
554
- "@typescript-eslint/no-unsafe-function-type": "error",
555
- "@typescript-eslint/no-unsafe-member-access": "error",
556
- "@typescript-eslint/no-unsafe-return": "error",
557
- "@typescript-eslint/no-unsafe-unary-minus": "error",
558
- "@typescript-eslint/no-unused-expressions": "error",
559
- "@typescript-eslint/no-unused-vars": [
560
- "error",
561
- {
562
- args: "all",
563
- argsIgnorePattern: "^_",
564
- caughtErrors: "all",
565
- caughtErrorsIgnorePattern: "^_",
566
- destructuredArrayIgnorePattern: "^_",
567
- ignoreRestSiblings: true,
568
- varsIgnorePattern: "^_",
569
- },
570
- ],
571
- "@typescript-eslint/no-use-before-define": "off",
572
- "@typescript-eslint/no-useless-constructor": "error",
573
- "@typescript-eslint/no-useless-empty-export": "error",
574
- "@typescript-eslint/no-unnecessary-template-expression": "error",
575
- "@typescript-eslint/no-var-requires": "off", // Deprecated
576
- "@typescript-eslint/no-wrapper-object-types": "error",
577
- "@typescript-eslint/non-nullable-type-assertion-style": "error",
578
- "@typescript-eslint/only-throw-error": "error",
579
- "@typescript-eslint/padding-line-between-statements": "off",
580
- "@typescript-eslint/parameter-properties": "off",
581
- "@typescript-eslint/prefer-as-const": "error",
582
- "@typescript-eslint/prefer-destructuring": "error",
583
- "@typescript-eslint/prefer-enum-initializers": "error",
584
- "@typescript-eslint/prefer-find": "error",
585
- "@typescript-eslint/prefer-for-of": "error",
586
- "@typescript-eslint/prefer-function-type": "error",
587
- "@typescript-eslint/prefer-includes": "error",
588
- "@typescript-eslint/prefer-literal-enum-member": "error",
589
- "@typescript-eslint/prefer-namespace-keyword": "error",
590
- "@typescript-eslint/prefer-nullish-coalescing": "error",
591
- "@typescript-eslint/prefer-optional-chain": "error",
592
- "@typescript-eslint/prefer-promise-reject-errors": "error",
593
- "@typescript-eslint/prefer-readonly": "error",
594
- "@typescript-eslint/prefer-readonly-parameter-types": "off",
595
- "@typescript-eslint/prefer-reduce-type-parameter": "error",
596
- "@typescript-eslint/prefer-regexp-exec": "error",
597
- "@typescript-eslint/prefer-return-this-type": "error",
598
- "@typescript-eslint/prefer-string-starts-ends-with": "error",
599
- "@typescript-eslint/prefer-ts-expect-error": "off",
600
- "@typescript-eslint/promise-function-async": "error",
601
- "@typescript-eslint/require-array-sort-compare": "error",
602
- "@typescript-eslint/require-await": "error",
603
- "@typescript-eslint/restrict-plus-operands": "error",
604
- "@typescript-eslint/restrict-template-expressions": "error",
605
- "@typescript-eslint/return-await": "error",
606
- "@typescript-eslint/sort-type-constituents": "off",
607
- "@typescript-eslint/strict-boolean-expressions": "error",
608
- "@typescript-eslint/switch-exhaustiveness-check": "error",
609
- "@typescript-eslint/triple-slash-reference": "error",
610
- "@typescript-eslint/typedef": "off",
611
- "@typescript-eslint/unbound-method": "error",
612
- "@typescript-eslint/unified-signatures": "error",
613
- "@typescript-eslint/use-unknown-in-catch-callback-variable": "error",
206
+ "@typescript-eslint/array-type": "error",
207
+ "@typescript-eslint/await-thenable": "error",
208
+ "@typescript-eslint/ban-ts-comment": "error",
209
+ "@typescript-eslint/ban-tslint-comment": "error",
210
+ "@typescript-eslint/class-literal-property-style": "error",
211
+ "@typescript-eslint/consistent-generic-constructors": "error",
212
+ "@typescript-eslint/consistent-indexed-object-style": "error",
213
+ "@typescript-eslint/consistent-type-assertions": "error",
214
+ "@typescript-eslint/consistent-type-definitions": ["error", "type"],
215
+ "@typescript-eslint/consistent-type-exports": "error",
216
+ "@typescript-eslint/consistent-type-imports": "error",
217
+ "@typescript-eslint/default-param-last": "error",
218
+ "@typescript-eslint/dot-notation": "error",
219
+ "@typescript-eslint/explicit-member-accessibility": "error",
220
+ "@typescript-eslint/max-params": "error",
221
+ "@typescript-eslint/method-signature-style": "error",
222
+ "@typescript-eslint/no-array-constructor": "error",
223
+ "@typescript-eslint/no-array-delete": "error",
224
+ "@typescript-eslint/no-base-to-string": "error",
225
+ "@typescript-eslint/no-confusing-non-null-assertion": "error",
226
+ "@typescript-eslint/no-confusing-void-expression": "error",
227
+ "@typescript-eslint/no-duplicate-enum-values": "error",
228
+ "@typescript-eslint/no-duplicate-type-constituents": "error",
229
+ "@typescript-eslint/no-dynamic-delete": "error",
230
+ "@typescript-eslint/no-empty-function": "error",
231
+ "@typescript-eslint/no-empty-object-type": "error",
232
+ "@typescript-eslint/no-explicit-any": "error",
233
+ "@typescript-eslint/no-extra-non-null-assertion": "error",
234
+ "@typescript-eslint/no-extraneous-class": "error",
235
+ "@typescript-eslint/no-floating-promises": "error",
236
+ "@typescript-eslint/no-for-in-array": "error",
237
+ "@typescript-eslint/no-implied-eval": "error",
238
+ "@typescript-eslint/no-import-type-side-effects": "error",
239
+ "@typescript-eslint/no-inferrable-types": "error",
240
+ "@typescript-eslint/no-invalid-void-type": "error",
241
+ "@typescript-eslint/no-loop-func": "error",
242
+ "@typescript-eslint/no-meaningless-void-operator": "error",
243
+ "@typescript-eslint/no-misused-new": "error",
244
+ "@typescript-eslint/no-misused-promises": "error",
245
+ "@typescript-eslint/no-mixed-enums": "error",
246
+ "@typescript-eslint/no-namespace": "error",
247
+ "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error",
248
+ "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
249
+ "@typescript-eslint/no-non-null-assertion": "error",
250
+ "@typescript-eslint/no-redundant-type-constituents": "error",
251
+ "@typescript-eslint/no-require-imports": "error",
252
+ "@typescript-eslint/no-restricted-imports": "error",
253
+ "@typescript-eslint/no-restricted-types": "error",
254
+ "@typescript-eslint/no-shadow": "error",
255
+ "@typescript-eslint/no-this-alias": "error",
256
+ "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
257
+ "@typescript-eslint/no-unnecessary-condition": "error",
258
+ "@typescript-eslint/no-unnecessary-parameter-property-assignment": "error",
259
+ "@typescript-eslint/no-unnecessary-qualifier": "error",
260
+ "@typescript-eslint/no-unnecessary-type-arguments": "error",
261
+ "@typescript-eslint/no-unnecessary-type-assertion": "error",
262
+ "@typescript-eslint/no-unnecessary-type-constraint": "error",
263
+ "@typescript-eslint/no-unnecessary-type-parameters": "error",
264
+ "@typescript-eslint/no-unsafe-argument": "error",
265
+ "@typescript-eslint/no-unsafe-assignment": "error",
266
+ "@typescript-eslint/no-unsafe-call": "error",
267
+ "@typescript-eslint/no-unsafe-declaration-merging": "error",
268
+ "@typescript-eslint/no-unsafe-enum-comparison": "error",
269
+ "@typescript-eslint/no-unsafe-function-type": "error",
270
+ "@typescript-eslint/no-unsafe-member-access": "error",
271
+ "@typescript-eslint/no-unsafe-return": "error",
272
+ "@typescript-eslint/no-unsafe-unary-minus": "error",
273
+ "@typescript-eslint/no-unused-expressions": "error",
274
+ "@typescript-eslint/no-unused-vars": [
275
+ "error",
276
+ {
277
+ args: "all",
278
+ argsIgnorePattern: "^_",
279
+ caughtErrors: "all",
280
+ caughtErrorsIgnorePattern: "^_",
281
+ destructuredArrayIgnorePattern: "^_",
282
+ ignoreRestSiblings: true,
283
+ varsIgnorePattern: "^_",
284
+ },
285
+ ],
286
+ "@typescript-eslint/no-useless-constructor": "error",
287
+ "@typescript-eslint/no-useless-empty-export": "error",
288
+ "@typescript-eslint/no-unnecessary-template-expression": "error",
289
+ "@typescript-eslint/no-wrapper-object-types": "error",
290
+ "@typescript-eslint/non-nullable-type-assertion-style": "error",
291
+ "@typescript-eslint/only-throw-error": "error",
292
+ "@typescript-eslint/prefer-as-const": "error",
293
+ "@typescript-eslint/prefer-destructuring": "error",
294
+ "@typescript-eslint/prefer-enum-initializers": "error",
295
+ "@typescript-eslint/prefer-find": "error",
296
+ "@typescript-eslint/prefer-for-of": "error",
297
+ "@typescript-eslint/prefer-function-type": "error",
298
+ "@typescript-eslint/prefer-includes": "error",
299
+ "@typescript-eslint/prefer-literal-enum-member": "error",
300
+ "@typescript-eslint/prefer-namespace-keyword": "error",
301
+ "@typescript-eslint/prefer-nullish-coalescing": "error",
302
+ "@typescript-eslint/prefer-optional-chain": "error",
303
+ "@typescript-eslint/prefer-promise-reject-errors": "error",
304
+ "@typescript-eslint/prefer-readonly": "error",
305
+ "@typescript-eslint/prefer-reduce-type-parameter": "error",
306
+ "@typescript-eslint/prefer-regexp-exec": "error",
307
+ "@typescript-eslint/prefer-return-this-type": "error",
308
+ "@typescript-eslint/prefer-string-starts-ends-with": "error",
309
+ "@typescript-eslint/promise-function-async": "error",
310
+ "@typescript-eslint/require-array-sort-compare": "error",
311
+ "@typescript-eslint/require-await": "error",
312
+ "@typescript-eslint/restrict-plus-operands": "error",
313
+ "@typescript-eslint/restrict-template-expressions": "error",
314
+ "@typescript-eslint/return-await": "error",
315
+ "@typescript-eslint/strict-boolean-expressions": "error",
316
+ "@typescript-eslint/switch-exhaustiveness-check": "error",
317
+ "@typescript-eslint/triple-slash-reference": "error",
318
+ "@typescript-eslint/unbound-method": "error",
319
+ "@typescript-eslint/unified-signatures": "error",
320
+ "@typescript-eslint/use-unknown-in-catch-callback-variable": "error",
614
321
 
615
- "unicorn/better-regex": "error",
616
- "unicorn/catch-error-name": "error",
617
- "unicorn/consistent-destructuring": "error",
618
- "unicorn/consistent-empty-array-spread": "error",
619
- "unicorn/consistent-function-scoping": "error",
620
- "unicorn/custom-error-definition": "error",
621
- "unicorn/no-length-as-slice-end": "error",
622
- "unicorn/error-message": "error",
623
- "unicorn/escape-case": "error",
624
- "unicorn/explicit-length-check": "off",
625
- "unicorn/expiring-todo-comments": "error",
626
- "unicorn/filename-case": "error",
627
- "unicorn/import-index": "off",
628
- "unicorn/import-style": "error",
629
- "unicorn/new-for-builtins": "error",
630
- "unicorn/no-abusive-eslint-disable": "error",
631
- "unicorn/no-anonymous-default-export": "error",
632
- "unicorn/no-array-callback-reference": "error",
633
- "unicorn/no-array-for-each": "error",
634
- "unicorn/no-array-instanceof": "off",
635
- "unicorn/no-array-method-this-argument": "error",
636
- "unicorn/no-array-push-push": "error",
637
- "unicorn/no-array-reduce": "error",
638
- "unicorn/no-await-expression-member": "error",
639
- "unicorn/no-await-in-promise-methods": "error",
640
- "unicorn/no-console-spaces": "error",
641
- "unicorn/no-document-cookie": "error",
642
- "unicorn/no-empty-file": "error",
643
- "unicorn/no-for-loop": "error",
644
- "unicorn/no-fn-reference-in-iterator": "off",
645
- "unicorn/no-hex-escape": "error",
646
- "unicorn/no-instanceof-array": "error",
647
- "unicorn/no-invalid-fetch-options": "error",
648
- "unicorn/no-invalid-remove-event-listener": "error",
649
- "unicorn/no-keyword-prefix": "off",
650
- "unicorn/no-lonely-if": "error",
651
- "unicorn/no-magic-array-flat-depth": "error",
652
- "unicorn/no-negated-condition": "error",
653
- "unicorn/no-negation-in-equality-check": "error",
654
- "unicorn/no-new-array": "error",
655
- "unicorn/no-new-buffer": "error",
656
- "unicorn/prefer-dataset": "off",
657
- "unicorn/prefer-event-key": "off",
658
- "unicorn/prefer-exponentiation-operator": "off",
659
- "unicorn/prefer-flat-map": "off",
660
- "unicorn/prefer-node-append": "off",
661
- "unicorn/prefer-node-remove": "off",
662
- "unicorn/prefer-object-has-own": "off",
663
- "unicorn/prefer-replace-all": "off",
664
- "unicorn/prefer-starts-ends-with": "off",
665
- "unicorn/prefer-text-content": "off",
666
- "unicorn/prefer-trim-start-end": "off",
667
- "unicorn/regex-shorthand": "off",
668
- "unicorn/no-null": "off",
669
- "unicorn/no-object-as-default-parameter": "error",
670
- "unicorn/no-process-exit": "error",
671
- "unicorn/no-reduce": "off",
672
- "unicorn/no-single-promise-in-promise-methods": "error",
673
- "unicorn/no-static-only-class": "error",
674
- "unicorn/no-thenable": "error",
675
- "unicorn/no-this-assignment": "error",
676
- "unicorn/no-typeof-undefined": "error",
677
- "unicorn/no-unnecessary-await": "error",
678
- "unicorn/no-unnecessary-polyfills": "error",
679
- "unicorn/no-unreadable-array-destructuring": "error",
680
- "unicorn/no-unreadable-iife": "error",
681
- "unicorn/no-unsafe-regex": "off",
682
- "unicorn/no-unused-properties": "error",
683
- "unicorn/no-useless-fallback-in-spread": "error",
684
- "unicorn/no-useless-length-check": "error",
685
- "unicorn/no-useless-promise-resolve-reject": "error",
686
- "unicorn/no-useless-spread": "error",
687
- "unicorn/no-useless-switch-case": "error",
688
- "unicorn/no-useless-undefined": "error",
689
- "unicorn/no-zero-fractions": "error",
690
- "unicorn/numeric-separators-style": "error",
691
- "unicorn/prefer-add-event-listener": "error",
692
- "unicorn/prefer-array-find": "error",
693
- "unicorn/prefer-array-flat": "error",
694
- "unicorn/prefer-array-flat-map": "error",
695
- "unicorn/prefer-array-index-of": "error",
696
- "unicorn/prefer-array-some": "error",
697
- "unicorn/prefer-at": "error",
698
- "unicorn/prefer-blob-reading-methods": "error",
699
- "unicorn/prefer-code-point": "error",
700
- "unicorn/prefer-date-now": "error",
701
- "unicorn/prefer-default-parameters": "error",
702
- "unicorn/prefer-dom-node-append": "error",
703
- "unicorn/prefer-dom-node-dataset": "error",
704
- "unicorn/prefer-dom-node-remove": "error",
705
- "unicorn/prefer-dom-node-text-content": "error",
706
- "unicorn/prefer-event-target": "error",
707
- "unicorn/prefer-export-from": "error",
708
- "unicorn/prefer-includes": "error",
709
- "unicorn/prefer-json-parse-buffer": "error",
710
- "unicorn/prefer-keyboard-event-key": "error",
711
- "unicorn/prefer-logical-operator-over-ternary": "error",
712
- "unicorn/prefer-math-trunc": "error",
713
- "unicorn/prefer-modern-dom-apis": "error",
714
- "unicorn/prefer-modern-math-apis": "error",
715
- "unicorn/prefer-module": "error",
716
- "unicorn/prefer-native-coercion-functions": "error",
717
- "unicorn/prefer-negative-index": "error",
718
- "unicorn/prefer-node-protocol": "error",
719
- "unicorn/prefer-number-properties": "error",
720
- "unicorn/prefer-object-from-entries": "error",
721
- "unicorn/prefer-optional-catch-binding": "error",
722
- "unicorn/prefer-prototype-methods": "error",
723
- "unicorn/prefer-query-selector": "error",
724
- "unicorn/prefer-reflect-apply": "error",
725
- "unicorn/prefer-regexp-test": "error",
726
- "unicorn/prefer-set-has": "error",
727
- "unicorn/prefer-set-size": "error",
728
- "unicorn/prefer-spread": "error",
729
- "unicorn/prefer-string-raw": "error",
730
- "unicorn/prefer-string-replace-all": "error",
731
- "unicorn/prefer-string-slice": "error",
732
- "unicorn/prefer-string-starts-ends-with": "error",
733
- "unicorn/prefer-string-trim-start-end": "error",
734
- "unicorn/prefer-structured-clone": "error",
735
- "unicorn/prefer-switch": "error",
736
- "unicorn/prefer-ternary": "error",
737
- "unicorn/prefer-top-level-await": "error",
738
- "unicorn/prefer-type-error": "error",
739
- "unicorn/prevent-abbreviations": "error",
740
- "unicorn/relative-url-style": "error",
741
- "unicorn/require-array-join-separator": "error",
742
- "unicorn/require-number-to-fixed-digits-argument": "error",
743
- "unicorn/require-post-message-target-origin": "error",
744
- "unicorn/string-content": "error",
745
- "unicorn/switch-case-braces": "error",
746
- "unicorn/text-encoding-identifier-case": "error",
747
- "unicorn/throw-new-error": "error",
322
+ "unicorn/better-regex": "error",
323
+ "unicorn/catch-error-name": "error",
324
+ "unicorn/consistent-destructuring": "error",
325
+ "unicorn/consistent-empty-array-spread": "error",
326
+ "unicorn/consistent-function-scoping": "error",
327
+ "unicorn/custom-error-definition": "error",
328
+ "unicorn/no-length-as-slice-end": "error",
329
+ "unicorn/error-message": "error",
330
+ "unicorn/escape-case": "error",
331
+ "unicorn/expiring-todo-comments": "error",
332
+ "unicorn/filename-case": "error",
333
+ "unicorn/import-style": "error",
334
+ "unicorn/new-for-builtins": "error",
335
+ "unicorn/no-abusive-eslint-disable": "error",
336
+ "unicorn/no-anonymous-default-export": "error",
337
+ "unicorn/no-array-callback-reference": "error",
338
+ "unicorn/no-array-for-each": "error",
339
+ "unicorn/no-array-method-this-argument": "error",
340
+ "unicorn/no-array-push-push": "error",
341
+ "unicorn/no-array-reduce": "error",
342
+ "unicorn/no-await-expression-member": "error",
343
+ "unicorn/no-await-in-promise-methods": "error",
344
+ "unicorn/no-console-spaces": "error",
345
+ "unicorn/no-document-cookie": "error",
346
+ "unicorn/no-empty-file": "error",
347
+ "unicorn/no-for-loop": "error",
348
+ "unicorn/no-hex-escape": "error",
349
+ "unicorn/no-instanceof-array": "error",
350
+ "unicorn/no-invalid-fetch-options": "error",
351
+ "unicorn/no-invalid-remove-event-listener": "error",
352
+ "unicorn/no-lonely-if": "error",
353
+ "unicorn/no-magic-array-flat-depth": "error",
354
+ "unicorn/no-negated-condition": "error",
355
+ "unicorn/no-negation-in-equality-check": "error",
356
+ "unicorn/no-new-array": "error",
357
+ "unicorn/no-new-buffer": "error",
358
+ "unicorn/no-object-as-default-parameter": "error",
359
+ "unicorn/no-process-exit": "error",
360
+ "unicorn/no-single-promise-in-promise-methods": "error",
361
+ "unicorn/no-static-only-class": "error",
362
+ "unicorn/no-thenable": "error",
363
+ "unicorn/no-this-assignment": "error",
364
+ "unicorn/no-typeof-undefined": "error",
365
+ "unicorn/no-unnecessary-await": "error",
366
+ "unicorn/no-unnecessary-polyfills": "error",
367
+ "unicorn/no-unreadable-array-destructuring": "error",
368
+ "unicorn/no-unreadable-iife": "error",
369
+ "unicorn/no-unused-properties": "error",
370
+ "unicorn/no-useless-fallback-in-spread": "error",
371
+ "unicorn/no-useless-length-check": "error",
372
+ "unicorn/no-useless-promise-resolve-reject": "error",
373
+ "unicorn/no-useless-spread": "error",
374
+ "unicorn/no-useless-switch-case": "error",
375
+ "unicorn/no-useless-undefined": "error",
376
+ "unicorn/no-zero-fractions": "error",
377
+ "unicorn/numeric-separators-style": "error",
378
+ "unicorn/prefer-add-event-listener": "error",
379
+ "unicorn/prefer-array-find": "error",
380
+ "unicorn/prefer-array-flat": "error",
381
+ "unicorn/prefer-array-flat-map": "error",
382
+ "unicorn/prefer-array-index-of": "error",
383
+ "unicorn/prefer-array-some": "error",
384
+ "unicorn/prefer-at": "error",
385
+ "unicorn/prefer-blob-reading-methods": "error",
386
+ "unicorn/prefer-code-point": "error",
387
+ "unicorn/prefer-date-now": "error",
388
+ "unicorn/prefer-default-parameters": "error",
389
+ "unicorn/prefer-dom-node-append": "error",
390
+ "unicorn/prefer-dom-node-dataset": "error",
391
+ "unicorn/prefer-dom-node-remove": "error",
392
+ "unicorn/prefer-dom-node-text-content": "error",
393
+ "unicorn/prefer-event-target": "error",
394
+ "unicorn/prefer-export-from": "error",
395
+ "unicorn/prefer-includes": "error",
396
+ "unicorn/prefer-json-parse-buffer": "error",
397
+ "unicorn/prefer-keyboard-event-key": "error",
398
+ "unicorn/prefer-logical-operator-over-ternary": "error",
399
+ "unicorn/prefer-math-trunc": "error",
400
+ "unicorn/prefer-modern-dom-apis": "error",
401
+ "unicorn/prefer-modern-math-apis": "error",
402
+ "unicorn/prefer-module": "error",
403
+ "unicorn/prefer-native-coercion-functions": "error",
404
+ "unicorn/prefer-negative-index": "error",
405
+ "unicorn/prefer-node-protocol": "error",
406
+ "unicorn/prefer-number-properties": "error",
407
+ "unicorn/prefer-object-from-entries": "error",
408
+ "unicorn/prefer-optional-catch-binding": "error",
409
+ "unicorn/prefer-prototype-methods": "error",
410
+ "unicorn/prefer-query-selector": "error",
411
+ "unicorn/prefer-reflect-apply": "error",
412
+ "unicorn/prefer-regexp-test": "error",
413
+ "unicorn/prefer-set-has": "error",
414
+ "unicorn/prefer-set-size": "error",
415
+ "unicorn/prefer-spread": "error",
416
+ "unicorn/prefer-string-raw": "error",
417
+ "unicorn/prefer-string-replace-all": "error",
418
+ "unicorn/prefer-string-slice": "error",
419
+ "unicorn/prefer-string-starts-ends-with": "error",
420
+ "unicorn/prefer-string-trim-start-end": "error",
421
+ "unicorn/prefer-structured-clone": "error",
422
+ "unicorn/prefer-switch": "error",
423
+ "unicorn/prefer-ternary": "error",
424
+ "unicorn/prefer-top-level-await": "error",
425
+ "unicorn/prefer-type-error": "error",
426
+ "unicorn/prevent-abbreviations": "error",
427
+ "unicorn/relative-url-style": "error",
428
+ "unicorn/require-array-join-separator": "error",
429
+ "unicorn/require-number-to-fixed-digits-argument": "error",
430
+ "unicorn/require-post-message-target-origin": "error",
431
+ "unicorn/string-content": "error",
432
+ "unicorn/switch-case-braces": "error",
433
+ "unicorn/text-encoding-identifier-case": "error",
434
+ "unicorn/throw-new-error": "error",
748
435
 
749
- "sonar/cognitive-complexity": "error",
750
- "sonar/elseif-without-else": "error",
751
- "sonar/max-switch-cases": "error",
752
- "sonar/no-all-duplicated-branches": "error",
753
- "sonar/no-collapsible-if": "error",
754
- "sonar/no-collection-size-mischeck": "error",
755
- "sonar/no-duplicate-string": "error",
756
- "sonar/no-duplicated-branches": "error",
757
- "sonar/no-element-overwrite": "error",
758
- "sonar/no-empty-collection": "error",
759
- "sonar/no-extra-arguments": "error",
760
- "sonar/no-gratuitous-expressions": "error",
761
- "sonar/no-identical-conditions": "error",
762
- "sonar/no-identical-expressions": "error",
763
- "sonar/no-identical-functions": "error",
764
- "sonar/no-ignored-return": "error",
765
- "sonar/no-inverted-boolean-check": "error",
766
- "sonar/no-nested-switch": "error",
767
- "sonar/no-nested-template-literals": "error",
768
- "sonar/no-one-iteration-loop": "error",
769
- "sonar/no-redundant-boolean": "error",
770
- "sonar/no-redundant-jump": "error",
771
- "sonar/no-same-line-conditional": "error",
772
- "sonar/no-small-switch": "error",
773
- "sonar/no-unused-collection": "error",
774
- "sonar/no-use-of-empty-return-value": "error",
775
- "sonar/no-useless-catch": "error",
776
- "sonar/non-existent-operator": "error",
777
- "sonar/prefer-immediate-return": "error",
778
- "sonar/prefer-object-literal": "error",
779
- "sonar/prefer-single-boolean-return": "error",
780
- "sonar/prefer-while": "error",
436
+ "sonar/cognitive-complexity": "error",
437
+ "sonar/elseif-without-else": "error",
438
+ "sonar/max-switch-cases": "error",
439
+ "sonar/no-all-duplicated-branches": "error",
440
+ "sonar/no-collapsible-if": "error",
441
+ "sonar/no-collection-size-mischeck": "error",
442
+ "sonar/no-duplicate-string": "error",
443
+ "sonar/no-duplicated-branches": "error",
444
+ "sonar/no-element-overwrite": "error",
445
+ "sonar/no-empty-collection": "error",
446
+ "sonar/no-extra-arguments": "error",
447
+ "sonar/no-gratuitous-expressions": "error",
448
+ "sonar/no-identical-conditions": "error",
449
+ "sonar/no-identical-expressions": "error",
450
+ "sonar/no-identical-functions": "error",
451
+ "sonar/no-ignored-return": "error",
452
+ "sonar/no-inverted-boolean-check": "error",
453
+ "sonar/no-nested-switch": "error",
454
+ "sonar/no-nested-template-literals": "error",
455
+ "sonar/no-one-iteration-loop": "error",
456
+ "sonar/no-redundant-boolean": "error",
457
+ "sonar/no-redundant-jump": "error",
458
+ "sonar/no-same-line-conditional": "error",
459
+ "sonar/no-small-switch": "error",
460
+ "sonar/no-unused-collection": "error",
461
+ "sonar/no-use-of-empty-return-value": "error",
462
+ "sonar/no-useless-catch": "error",
463
+ "sonar/non-existent-operator": "error",
464
+ "sonar/prefer-immediate-return": "error",
465
+ "sonar/prefer-object-literal": "error",
466
+ "sonar/prefer-single-boolean-return": "error",
467
+ "sonar/prefer-while": "error",
781
468
 
782
- "@tanstack/query/exhaustive-deps": "error",
783
- // "@tanstack/query/no-deprecated-options": "error", // not yet implemented
784
- "@tanstack/query/no-rest-destructuring": "error",
785
- "@tanstack/query/stable-query-client": "error",
469
+ "@tanstack/query/exhaustive-deps": "error",
470
+ // "@tanstack/query/no-deprecated-options": "error", // not yet implemented
471
+ "@tanstack/query/no-rest-destructuring": "error",
472
+ "@tanstack/query/stable-query-client": "error",
786
473
 
787
- "perfectionist/sort-array-includes": "error",
788
- "perfectionist/sort-astro-attributes": [
789
- "error",
790
- {
791
- groups: ["astro-shorthand", "shorthand", "multiline"],
792
- },
793
- ],
794
- "perfectionist/sort-classes": "error",
795
- "perfectionist/sort-enums": "error",
796
- "perfectionist/sort-exports": "error",
797
- "perfectionist/sort-imports": [
798
- "error",
799
- {
800
- groups: [
801
- "type",
802
- ["builtin", "external"],
803
- "internal-type",
804
- "internal",
805
- ["parent-type", "sibling-type", "index-type"],
806
- ["parent", "sibling", "index"],
807
- "object",
808
- "unknown",
809
- ],
810
- newlinesBetween: "always",
811
- },
812
- ],
813
- "perfectionist/sort-interfaces": "error",
814
- "perfectionist/sort-jsx-props": [
815
- "error",
816
- { groups: ["shorthand", "multiline"] },
817
- ],
818
- "perfectionist/sort-maps": "error",
819
- "perfectionist/sort-named-exports": "error",
820
- "perfectionist/sort-named-imports": "error",
821
- "perfectionist/sort-object-types": "error",
822
- "perfectionist/sort-objects": "error",
823
- "perfectionist/sort-svelte-attributes": [
824
- "error",
825
- {
826
- groups: ["svelte-shorthand", "shorthand", "multiline"],
827
- },
828
- ],
829
- "perfectionist/sort-intersection-types": "error",
830
- "perfectionist/sort-switch-case": [
831
- "error",
832
- {
833
- type: "alphabetical",
834
- order: "asc",
835
- },
836
- ],
837
- "perfectionist/sort-union-types": "error",
838
- "perfectionist/sort-variable-declarations": [
839
- "error",
840
- {
841
- type: "alphabetical",
842
- order: "asc",
843
- },
844
- ],
845
- "perfectionist/sort-vue-attributes": [
846
- "error",
847
- { groups: ["shorthand", "multiline"] },
848
- ],
474
+ "perfectionist/sort-array-includes": "error",
475
+ "perfectionist/sort-astro-attributes": [
476
+ "error",
477
+ {
478
+ groups: ["astro-shorthand", "shorthand", "multiline"],
479
+ },
480
+ ],
481
+ "perfectionist/sort-classes": "error",
482
+ "perfectionist/sort-enums": "error",
483
+ "perfectionist/sort-exports": "error",
484
+ "perfectionist/sort-imports": [
485
+ "error",
486
+ {
487
+ groups: [
488
+ "type",
489
+ ["builtin", "external"],
490
+ "internal-type",
491
+ "internal",
492
+ ["parent-type", "sibling-type", "index-type"],
493
+ ["parent", "sibling", "index"],
494
+ "object",
495
+ "unknown",
496
+ ],
497
+ newlinesBetween: "always",
498
+ },
499
+ ],
500
+ "perfectionist/sort-interfaces": "error",
501
+ "perfectionist/sort-jsx-props": [
502
+ "error",
503
+ { groups: ["shorthand", "multiline"] },
504
+ ],
505
+ "perfectionist/sort-maps": "error",
506
+ "perfectionist/sort-named-exports": "error",
507
+ "perfectionist/sort-named-imports": "error",
508
+ "perfectionist/sort-object-types": "error",
509
+ "perfectionist/sort-objects": "error",
510
+ "perfectionist/sort-svelte-attributes": [
511
+ "error",
512
+ {
513
+ groups: ["svelte-shorthand", "shorthand", "multiline"],
514
+ },
515
+ ],
516
+ "perfectionist/sort-intersection-types": "error",
517
+ "perfectionist/sort-switch-case": [
518
+ "error",
519
+ {
520
+ type: "alphabetical",
521
+ order: "asc",
522
+ },
523
+ ],
524
+ "perfectionist/sort-union-types": "error",
525
+ "perfectionist/sort-variable-declarations": [
526
+ "error",
527
+ {
528
+ type: "alphabetical",
529
+ order: "asc",
530
+ },
531
+ ],
532
+ "perfectionist/sort-vue-attributes": [
533
+ "error",
534
+ { groups: ["shorthand", "multiline"] },
535
+ ],
849
536
 
850
- "a11y/accessible-emoji": "off",
851
- "a11y/alt-text": "error",
852
- "a11y/anchor-ambiguous-text": "error",
853
- "a11y/anchor-has-content": "error",
854
- "a11y/anchor-is-valid": "error",
855
- "a11y/aria-activedescendant-has-tabindex": "error",
856
- "a11y/aria-props": "error",
857
- "a11y/aria-proptypes": "error",
858
- "a11y/aria-role": "error",
859
- "a11y/aria-unsupported-elements": "error",
860
- "a11y/autocomplete-valid": "error",
861
- "a11y/click-events-have-key-events": "error",
862
- "a11y/control-has-associated-label": "error",
863
- "a11y/heading-has-content": "error",
864
- "a11y/html-has-lang": "error",
865
- "a11y/iframe-has-title": "error",
866
- "a11y/img-redundant-alt": "error",
867
- "a11y/interactive-supports-focus": "error",
868
- "a11y/label-has-associated-control": "error",
869
- "a11y/label-has-for": "off",
870
- "a11y/lang": "error",
871
- "a11y/media-has-caption": "off",
872
- "a11y/mouse-events-have-key-events": "error",
873
- "a11y/no-access-key": "error",
874
- "a11y/no-aria-hidden-on-focusable": "error",
875
- "a11y/no-autofocus": "error",
876
- "a11y/no-distracting-elements": "error",
877
- "a11y/no-interactive-element-to-noninteractive-role": "error",
878
- "a11y/no-noninteractive-element-interactions": "error",
879
- "a11y/no-noninteractive-element-to-interactive-role": "error",
880
- "a11y/no-noninteractive-tabindex": "error",
881
- "a11y/no-onchange": "off",
882
- "a11y/no-redundant-roles": "error",
883
- "a11y/no-static-element-interactions": "error",
884
- "a11y/prefer-tag-over-role": "error",
885
- "a11y/role-has-required-aria-props": "error",
886
- "a11y/role-supports-aria-props": "error",
887
- "a11y/scope": "error",
888
- "a11y/tabindex-no-positive": "error",
889
- },
537
+ "a11y/alt-text": "error",
538
+ "a11y/anchor-ambiguous-text": "error",
539
+ "a11y/anchor-has-content": "error",
540
+ "a11y/anchor-is-valid": "error",
541
+ "a11y/aria-activedescendant-has-tabindex": "error",
542
+ "a11y/aria-props": "error",
543
+ "a11y/aria-proptypes": "error",
544
+ "a11y/aria-role": "error",
545
+ "a11y/aria-unsupported-elements": "error",
546
+ "a11y/autocomplete-valid": "error",
547
+ "a11y/click-events-have-key-events": "error",
548
+ "a11y/control-has-associated-label": "error",
549
+ "a11y/heading-has-content": "error",
550
+ "a11y/html-has-lang": "error",
551
+ "a11y/iframe-has-title": "error",
552
+ "a11y/img-redundant-alt": "error",
553
+ "a11y/interactive-supports-focus": "error",
554
+ "a11y/label-has-associated-control": "error",
555
+ "a11y/lang": "error",
556
+ "a11y/mouse-events-have-key-events": "error",
557
+ "a11y/no-access-key": "error",
558
+ "a11y/no-aria-hidden-on-focusable": "error",
559
+ "a11y/no-autofocus": "error",
560
+ "a11y/no-distracting-elements": "error",
561
+ "a11y/no-interactive-element-to-noninteractive-role": "error",
562
+ "a11y/no-noninteractive-element-interactions": "error",
563
+ "a11y/no-noninteractive-element-to-interactive-role": "error",
564
+ "a11y/no-noninteractive-tabindex": "error",
565
+ "a11y/no-redundant-roles": "error",
566
+ "a11y/no-static-element-interactions": "error",
567
+ "a11y/prefer-tag-over-role": "error",
568
+ "a11y/role-has-required-aria-props": "error",
569
+ "a11y/role-supports-aria-props": "error",
570
+ "a11y/scope": "error",
571
+ "a11y/tabindex-no-positive": "error",
890
572
  },
891
- );
573
+ });