@ethang/eslint-config 24.0.1 → 24.0.2

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 (75) hide show
  1. package/build.ts +48 -0
  2. package/dist/config.html.js +2 -0
  3. package/dist/config.html.js.map +1 -0
  4. package/dist/eslint.config.d.ts +4 -0
  5. package/dist/eslint.config.js +2 -0
  6. package/dist/package.json +67 -0
  7. package/eslint.config.js +28 -2
  8. package/package.json +1 -1
  9. package/src/README.md +132 -0
  10. package/src/build/create-config-file.ts +70 -0
  11. package/src/build/create-config.ts +98 -0
  12. package/src/build/get-react-version.ts +19 -0
  13. package/src/build/list-utilities.ts +137 -0
  14. package/src/build/rule-list.ts +283 -0
  15. package/src/build/update-readme.ts +259 -0
  16. package/src/build/update-rules.ts +173 -0
  17. package/src/config.angular.js +122 -0
  18. package/src/config.astro.js +69 -0
  19. package/src/config.html.js +73 -0
  20. package/src/config.react.js +111 -0
  21. package/src/config.solid.js +34 -0
  22. package/src/config.storybook.js +31 -0
  23. package/src/config.tailwind.js +28 -0
  24. package/src/constants.js +16 -0
  25. package/src/eslint.config.js +1075 -0
  26. package/src/eslint.html.js +73 -0
  27. package/src/setup/a11y.ts +19 -0
  28. package/src/setup/angular.ts +36 -0
  29. package/src/setup/astro.ts +14 -0
  30. package/src/setup/compat.ts +13 -0
  31. package/src/setup/cspell.ts +100 -0
  32. package/src/setup/css.ts +15 -0
  33. package/src/setup/eslint.ts +250 -0
  34. package/src/setup/gen-rules.ts +85 -0
  35. package/src/setup/html.ts +17 -0
  36. package/src/setup/json.ts +17 -0
  37. package/src/setup/lodash.ts +59 -0
  38. package/src/setup/markdown.ts +16 -0
  39. package/src/setup/perfectionist.ts +49 -0
  40. package/src/setup/react.ts +37 -0
  41. package/src/setup/solid.ts +21 -0
  42. package/src/setup/sonar.ts +40 -0
  43. package/src/setup/storybook.ts +10 -0
  44. package/src/setup/tailwind.ts +12 -0
  45. package/src/setup/tanstack-query.ts +8 -0
  46. package/src/setup/tanstack-router.ts +8 -0
  47. package/src/setup/typescript-eslint.ts +114 -0
  48. package/src/setup/unicorn.ts +38 -0
  49. package/src/tsconfig.json +3 -0
  50. package/tsconfig.json +3 -0
  51. /package/{README.md → dist/README.md} +0 -0
  52. /package/{chunk-WK3YS7OG.js → dist/chunk-WK3YS7OG.js} +0 -0
  53. /package/{chunk-WK3YS7OG.js.map → dist/chunk-WK3YS7OG.js.map} +0 -0
  54. /package/{config.angular.d.ts → dist/config.angular.d.ts} +0 -0
  55. /package/{config.angular.js → dist/config.angular.js} +0 -0
  56. /package/{config.angular.js.map → dist/config.angular.js.map} +0 -0
  57. /package/{config.astro.d.ts → dist/config.astro.d.ts} +0 -0
  58. /package/{config.astro.js → dist/config.astro.js} +0 -0
  59. /package/{config.astro.js.map → dist/config.astro.js.map} +0 -0
  60. /package/{config.react.d.ts → dist/config.html.d.ts} +0 -0
  61. /package/{config.solid.d.ts → dist/config.react.d.ts} +0 -0
  62. /package/{config.react.js → dist/config.react.js} +0 -0
  63. /package/{config.react.js.map → dist/config.react.js.map} +0 -0
  64. /package/{config.storybook.d.ts → dist/config.solid.d.ts} +0 -0
  65. /package/{config.solid.js → dist/config.solid.js} +0 -0
  66. /package/{config.solid.js.map → dist/config.solid.js.map} +0 -0
  67. /package/{eslint.config.d.ts → dist/config.storybook.d.ts} +0 -0
  68. /package/{config.storybook.js → dist/config.storybook.js} +0 -0
  69. /package/{config.storybook.js.map → dist/config.storybook.js.map} +0 -0
  70. /package/{config.tailwind.d.ts → dist/config.tailwind.d.ts} +0 -0
  71. /package/{config.tailwind.js → dist/config.tailwind.js} +0 -0
  72. /package/{config.tailwind.js.map → dist/config.tailwind.js.map} +0 -0
  73. /package/{constants.js → dist/constants.js} +0 -0
  74. /package/{constants.js.map → dist/constants.js.map} +0 -0
  75. /package/{eslint.config.js.map → dist/eslint.config.js.map} +0 -0
@@ -0,0 +1,1075 @@
1
+ // @ts-nocheck
2
+ import { defineConfig } from "eslint/config";
3
+ import { ignores, languageOptions } from "./constants.js";
4
+ import a11y from "eslint-plugin-jsx-a11y";
5
+ import compat from "eslint-plugin-compat";
6
+ import cspell from "@cspell/eslint-plugin";
7
+ import css from "@eslint/css";
8
+ import eslintConfigPrettier from "eslint-config-prettier";
9
+ import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
10
+ import json from "@eslint/json";
11
+ import lodashConfig from "eslint-plugin-lodash";
12
+ import markdown from "@eslint/markdown";
13
+ import perfectionist from "eslint-plugin-perfectionist";
14
+ import sonar from "eslint-plugin-sonarjs";
15
+ import tanstackQuery from "@tanstack/eslint-plugin-query";
16
+ import tanstackRouter from "@tanstack/eslint-plugin-router";
17
+ import tseslint from "typescript-eslint";
18
+ import unicorn from "eslint-plugin-unicorn";
19
+
20
+ export default defineConfig(
21
+ {
22
+ files: ["**/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts}"],
23
+ ignores,
24
+ languageOptions,
25
+ settings: {
26
+ react: { version: "19.2.3" },
27
+ },
28
+ plugins: {
29
+ compat: compat,
30
+ "@typescript-eslint": tseslint.plugin,
31
+ unicorn: unicorn,
32
+ lodash: lodashConfig,
33
+ sonar: sonar,
34
+ perfectionist: perfectionist,
35
+ "@tanstack/query": tanstackQuery,
36
+ "@tanstack/router": tanstackRouter,
37
+ a11y: a11y,
38
+ cspell: cspell,
39
+ },
40
+ rules: {
41
+ "compat/compat": "error",
42
+ "accessor-pairs": "error",
43
+ "array-callback-return": "error",
44
+ "arrow-body-style": ["error", "always"],
45
+ "block-scoped-var": "error",
46
+ camelcase: "off",
47
+ "capitalized-comments": "off",
48
+ "class-methods-use-this": "off",
49
+ complexity: "off",
50
+ "consistent-return": "off",
51
+ "consistent-this": "off",
52
+ "constructor-super": "error",
53
+ curly: "off",
54
+ "default-case": "off",
55
+ "default-case-last": "off",
56
+ "default-param-last": "off",
57
+ "dot-notation": "off",
58
+ eqeqeq: "error",
59
+ "for-direction": "error",
60
+ "func-name-matching": "error",
61
+ "func-names": "off",
62
+ "func-style": ["error", "declaration", { allowArrowFunctions: true }],
63
+ "getter-return": "error",
64
+ "grouped-accessor-pairs": "error",
65
+ "guard-for-in": "error",
66
+ "id-denylist": "off",
67
+ "id-length": "off",
68
+ "id-match": "off",
69
+ "init-declarations": "off",
70
+ "logical-assignment-operators": "error",
71
+ "max-classes-per-file": "error",
72
+ "max-depth": "error",
73
+ "max-lines": "off",
74
+ "max-lines-per-function": "off",
75
+ "max-nested-callbacks": "error",
76
+ "max-params": "off",
77
+ "max-statements": "off",
78
+ "new-cap": "off",
79
+ "no-alert": "error",
80
+ "no-array-constructor": "off",
81
+ "no-async-promise-executor": "error",
82
+ "no-await-in-loop": "error",
83
+ "no-bitwise": "error",
84
+ "no-caller": "error",
85
+ "no-case-declarations": "error",
86
+ "no-class-assign": "error",
87
+ "no-compare-neg-zero": "error",
88
+ "no-cond-assign": "error",
89
+ "no-console": "error",
90
+ "no-const-assign": "error",
91
+ "no-constant-binary-expression": "error",
92
+ "no-constant-condition": "error",
93
+ "no-constructor-return": "error",
94
+ "no-continue": "error",
95
+ "no-control-regex": "error",
96
+ "no-debugger": "error",
97
+ "no-delete-var": "error",
98
+ "no-div-regex": "error",
99
+ "no-dupe-args": "error",
100
+ "no-dupe-class-members": "off",
101
+ "no-dupe-else-if": "error",
102
+ "no-dupe-keys": "error",
103
+ "no-duplicate-case": "error",
104
+ "no-duplicate-imports": "error",
105
+ "no-else-return": "error",
106
+ "no-empty": "error",
107
+ "no-empty-character-class": "error",
108
+ "no-empty-function": "off",
109
+ "no-empty-pattern": "error",
110
+ "no-empty-static-block": "error",
111
+ "no-eq-null": "error",
112
+ "no-eval": "error",
113
+ "no-ex-assign": "error",
114
+ "no-extend-native": "error",
115
+ "no-extra-bind": "error",
116
+ "no-extra-boolean-cast": "error",
117
+ "no-extra-label": "error",
118
+ "no-fallthrough": "error",
119
+ "no-func-assign": "error",
120
+ "no-global-assign": "error",
121
+ "no-implicit-coercion": "error",
122
+ "no-implicit-globals": "off",
123
+ "no-implied-eval": "off",
124
+ "no-import-assign": "error",
125
+ "no-inline-comments": "off",
126
+ "no-inner-declarations": "error",
127
+ "no-invalid-regexp": "error",
128
+ "no-invalid-this": "error",
129
+ "no-irregular-whitespace": "error",
130
+ "no-iterator": "error",
131
+ "no-label-var": "error",
132
+ "no-labels": "error",
133
+ "no-lone-blocks": "error",
134
+ "no-lonely-if": "error",
135
+ "no-loop-func": "error",
136
+ "no-loss-of-precision": "error",
137
+ "no-magic-numbers": "off",
138
+ "no-misleading-character-class": "error",
139
+ "no-multi-assign": "error",
140
+ "no-multi-str": "error",
141
+ "no-negated-condition": "error",
142
+ "no-nested-ternary": "error",
143
+ "no-new": "error",
144
+ "no-new-func": "error",
145
+ "no-new-native-nonconstructor": "error",
146
+ "no-new-wrappers": "error",
147
+ "no-nonoctal-decimal-escape": "error",
148
+ "no-obj-calls": "error",
149
+ "no-object-constructor": "error",
150
+ "no-octal": "error",
151
+ "no-octal-escape": "error",
152
+ "no-param-reassign": "error",
153
+ "no-plusplus": "error",
154
+ "no-promise-executor-return": "error",
155
+ "no-proto": "error",
156
+ "no-prototype-builtins": "error",
157
+ "no-redeclare": "off",
158
+ "no-regex-spaces": "error",
159
+ "no-restricted-exports": "off",
160
+ "no-restricted-globals": "off",
161
+ "no-restricted-imports": "off",
162
+ "no-restricted-properties": "off",
163
+ "no-restricted-syntax": "off",
164
+ "no-return-assign": "error",
165
+ "no-script-url": "error",
166
+ "no-self-assign": "error",
167
+ "no-self-compare": "error",
168
+ "no-sequences": "error",
169
+ "no-setter-return": "error",
170
+ "no-shadow": "off",
171
+ "no-shadow-restricted-names": "error",
172
+ "no-sparse-arrays": "error",
173
+ "no-template-curly-in-string": "off",
174
+ "no-ternary": "off",
175
+ "no-this-before-super": "error",
176
+ "no-throw-literal": "off",
177
+ "no-unassigned-vars": "error",
178
+ "no-undef": "off",
179
+ "no-undef-init": "error",
180
+ "no-undefined": "off",
181
+ "no-underscore-dangle": "off",
182
+ "no-unexpected-multiline": "off",
183
+ "no-unmodified-loop-condition": "error",
184
+ "no-unneeded-ternary": "error",
185
+ "no-unreachable": "error",
186
+ "no-unreachable-loop": "error",
187
+ "no-unsafe-finally": "error",
188
+ "no-unsafe-negation": "error",
189
+ "no-unsafe-optional-chaining": [
190
+ "error",
191
+ { disallowArithmeticOperators: true },
192
+ ],
193
+ "no-unused-expressions": "off",
194
+ "no-unused-labels": "error",
195
+ "no-unused-private-class-members": "error",
196
+ "no-unused-vars": "off",
197
+ "no-use-before-define": "off",
198
+ "no-useless-assignment": "off",
199
+ "no-useless-backreference": "error",
200
+ "no-useless-call": "error",
201
+ "no-useless-catch": "error",
202
+ "no-useless-computed-key": "error",
203
+ "no-useless-concat": "error",
204
+ "no-useless-constructor": "off",
205
+ "no-useless-escape": "error",
206
+ "no-useless-rename": "error",
207
+ "no-useless-return": "error",
208
+ "no-var": "error",
209
+ "no-void": "error",
210
+ "no-warning-comments": "off",
211
+ "no-with": "error",
212
+ "object-shorthand": "error",
213
+ "one-var": "off",
214
+ "operator-assignment": "error",
215
+ "prefer-arrow-callback": "off",
216
+ "prefer-const": "error",
217
+ "prefer-destructuring": "off",
218
+ "prefer-exponentiation-operator": "error",
219
+ "prefer-named-capture-group": "error",
220
+ "prefer-numeric-literals": "error",
221
+ "prefer-object-has-own": "error",
222
+ "prefer-object-spread": "error",
223
+ "prefer-promise-reject-errors": "off",
224
+ "prefer-regex-literals": "error",
225
+ "prefer-rest-params": "error",
226
+ "prefer-spread": "error",
227
+ "prefer-template": "error",
228
+ "preserve-caught-error": "error",
229
+ radix: "error",
230
+ "require-atomic-updates": "error",
231
+ "require-await": "off",
232
+ "require-unicode-regexp": "error",
233
+ "require-yield": "error",
234
+ "sort-imports": "off",
235
+ "sort-keys": "off",
236
+ "sort-vars": "error",
237
+ strict: "error",
238
+ "symbol-description": "error",
239
+ "unicode-bom": "error",
240
+ "use-isnan": "error",
241
+ "valid-typeof": "error",
242
+ "vars-on-top": "error",
243
+ yoda: ["error", "always"],
244
+ "@typescript-eslint/adjacent-overload-signatures": "off",
245
+ "@typescript-eslint/array-type": "error",
246
+ "@typescript-eslint/await-thenable": "error",
247
+ "@typescript-eslint/ban-ts-comment": "error",
248
+ "@typescript-eslint/ban-tslint-comment": "error",
249
+ "@typescript-eslint/class-literal-property-style": "error",
250
+ "@typescript-eslint/class-methods-use-this": "off",
251
+ "@typescript-eslint/consistent-generic-constructors": "error",
252
+ "@typescript-eslint/consistent-indexed-object-style": "error",
253
+ "@typescript-eslint/consistent-return": "off",
254
+ "@typescript-eslint/consistent-type-assertions": "error",
255
+ "@typescript-eslint/consistent-type-definitions": ["error", "type"],
256
+ "@typescript-eslint/consistent-type-exports": "error",
257
+ "@typescript-eslint/consistent-type-imports": [
258
+ "error",
259
+ { fixStyle: "inline-type-imports" },
260
+ ],
261
+ "@typescript-eslint/default-param-last": "error",
262
+ "@typescript-eslint/dot-notation": "error",
263
+ "@typescript-eslint/explicit-function-return-type": "off",
264
+ "@typescript-eslint/explicit-member-accessibility": "error",
265
+ "@typescript-eslint/explicit-module-boundary-types": "off",
266
+ "@typescript-eslint/init-declarations": "off",
267
+ "@typescript-eslint/max-params": "off",
268
+ "@typescript-eslint/member-ordering": "off",
269
+ "@typescript-eslint/method-signature-style": "error",
270
+ "@typescript-eslint/naming-convention": "off",
271
+ "@typescript-eslint/no-array-constructor": "error",
272
+ "@typescript-eslint/no-array-delete": "error",
273
+ "@typescript-eslint/no-base-to-string": "error",
274
+ "@typescript-eslint/no-confusing-non-null-assertion": "error",
275
+ "@typescript-eslint/no-confusing-void-expression": "error",
276
+ "@typescript-eslint/no-deprecated": "error",
277
+ "@typescript-eslint/no-dupe-class-members": "off",
278
+ "@typescript-eslint/no-duplicate-enum-values": "error",
279
+ "@typescript-eslint/no-duplicate-type-constituents": "error",
280
+ "@typescript-eslint/no-dynamic-delete": "error",
281
+ "@typescript-eslint/no-empty-function": "error",
282
+ "@typescript-eslint/no-empty-object-type": "error",
283
+ "@typescript-eslint/no-explicit-any": "error",
284
+ "@typescript-eslint/no-extra-non-null-assertion": "error",
285
+ "@typescript-eslint/no-extraneous-class": "error",
286
+ "@typescript-eslint/no-floating-promises": "error",
287
+ "@typescript-eslint/no-for-in-array": "error",
288
+ "@typescript-eslint/no-implied-eval": "error",
289
+ "@typescript-eslint/no-import-type-side-effects": "error",
290
+ "@typescript-eslint/no-inferrable-types": "error",
291
+ "@typescript-eslint/no-invalid-this": "off",
292
+ "@typescript-eslint/no-invalid-void-type": "error",
293
+ "@typescript-eslint/no-loop-func": "error",
294
+ "@typescript-eslint/no-magic-numbers": "off",
295
+ "@typescript-eslint/no-meaningless-void-operator": "error",
296
+ "@typescript-eslint/no-misused-new": "error",
297
+ "@typescript-eslint/no-misused-promises": "error",
298
+ "@typescript-eslint/no-misused-spread": "error",
299
+ "@typescript-eslint/no-mixed-enums": "error",
300
+ "@typescript-eslint/no-namespace": "error",
301
+ "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error",
302
+ "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
303
+ "@typescript-eslint/no-non-null-assertion": "error",
304
+ "@typescript-eslint/no-redeclare": "off",
305
+ "@typescript-eslint/no-redundant-type-constituents": "error",
306
+ "@typescript-eslint/no-require-imports": "error",
307
+ "@typescript-eslint/no-restricted-imports": "error",
308
+ "@typescript-eslint/no-restricted-types": "error",
309
+ "@typescript-eslint/no-shadow": "error",
310
+ "@typescript-eslint/no-this-alias": "error",
311
+ "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
312
+ "@typescript-eslint/no-unnecessary-condition": "error",
313
+ "@typescript-eslint/no-unnecessary-parameter-property-assignment":
314
+ "error",
315
+ "@typescript-eslint/no-unnecessary-qualifier": "error",
316
+ "@typescript-eslint/no-unnecessary-template-expression": "error",
317
+ "@typescript-eslint/no-unnecessary-type-arguments": "error",
318
+ "@typescript-eslint/no-unnecessary-type-assertion": "error",
319
+ "@typescript-eslint/no-unnecessary-type-constraint": "error",
320
+ "@typescript-eslint/no-unnecessary-type-conversion": "error",
321
+ "@typescript-eslint/no-unnecessary-type-parameters": "off",
322
+ "@typescript-eslint/no-unsafe-argument": "error",
323
+ "@typescript-eslint/no-unsafe-assignment": "error",
324
+ "@typescript-eslint/no-unsafe-call": "error",
325
+ "@typescript-eslint/no-unsafe-declaration-merging": "error",
326
+ "@typescript-eslint/no-unsafe-enum-comparison": "error",
327
+ "@typescript-eslint/no-unsafe-function-type": "error",
328
+ "@typescript-eslint/no-unsafe-member-access": "error",
329
+ "@typescript-eslint/no-unsafe-return": "error",
330
+ "@typescript-eslint/no-unsafe-type-assertion": "error",
331
+ "@typescript-eslint/no-unsafe-unary-minus": "error",
332
+ "@typescript-eslint/no-unused-expressions": "error",
333
+ "@typescript-eslint/no-unused-private-class-members": "error",
334
+ "@typescript-eslint/no-unused-vars": [
335
+ "error",
336
+ {
337
+ args: "all",
338
+ argsIgnorePattern: "^_",
339
+ caughtErrors: "all",
340
+ caughtErrorsIgnorePattern: "^_",
341
+ destructuredArrayIgnorePattern: "^_",
342
+ ignoreRestSiblings: true,
343
+ varsIgnorePattern: "^_",
344
+ },
345
+ ],
346
+ "@typescript-eslint/no-use-before-define": "off",
347
+ "@typescript-eslint/no-useless-constructor": "error",
348
+ "@typescript-eslint/no-useless-empty-export": "error",
349
+ "@typescript-eslint/no-wrapper-object-types": "error",
350
+ "@typescript-eslint/non-nullable-type-assertion-style": "error",
351
+ "@typescript-eslint/only-throw-error": "error",
352
+ "@typescript-eslint/parameter-properties": "off",
353
+ "@typescript-eslint/prefer-as-const": "error",
354
+ "@typescript-eslint/prefer-destructuring": "error",
355
+ "@typescript-eslint/prefer-enum-initializers": "error",
356
+ "@typescript-eslint/prefer-find": "error",
357
+ "@typescript-eslint/prefer-for-of": "error",
358
+ "@typescript-eslint/prefer-function-type": "error",
359
+ "@typescript-eslint/prefer-includes": "error",
360
+ "@typescript-eslint/prefer-literal-enum-member": "error",
361
+ "@typescript-eslint/prefer-namespace-keyword": "error",
362
+ "@typescript-eslint/prefer-nullish-coalescing": "error",
363
+ "@typescript-eslint/prefer-optional-chain": "error",
364
+ "@typescript-eslint/prefer-promise-reject-errors": "error",
365
+ "@typescript-eslint/prefer-readonly": "error",
366
+ "@typescript-eslint/prefer-readonly-parameter-types": "off",
367
+ "@typescript-eslint/prefer-reduce-type-parameter": "error",
368
+ "@typescript-eslint/prefer-regexp-exec": "error",
369
+ "@typescript-eslint/prefer-return-this-type": "error",
370
+ "@typescript-eslint/prefer-string-starts-ends-with": "error",
371
+ "@typescript-eslint/promise-function-async": "error",
372
+ "@typescript-eslint/related-getter-setter-pairs": "error",
373
+ "@typescript-eslint/require-array-sort-compare": "error",
374
+ "@typescript-eslint/require-await": "error",
375
+ "@typescript-eslint/restrict-plus-operands": "error",
376
+ "@typescript-eslint/restrict-template-expressions": "error",
377
+ "@typescript-eslint/return-await": "error",
378
+ "@typescript-eslint/strict-boolean-expressions": "error",
379
+ "@typescript-eslint/switch-exhaustiveness-check": "error",
380
+ "@typescript-eslint/triple-slash-reference": "error",
381
+ "@typescript-eslint/unbound-method": "error",
382
+ "@typescript-eslint/unified-signatures": "error",
383
+ "@typescript-eslint/use-unknown-in-catch-callback-variable": "error",
384
+ "unicorn/better-regex": "error",
385
+ "unicorn/catch-error-name": "error",
386
+ "unicorn/consistent-assert": "error",
387
+ "unicorn/consistent-date-clone": "error",
388
+ "unicorn/consistent-destructuring": "error",
389
+ "unicorn/consistent-empty-array-spread": "error",
390
+ "unicorn/consistent-existence-index-check": "error",
391
+ "unicorn/consistent-function-scoping": "error",
392
+ "unicorn/custom-error-definition": "error",
393
+ "unicorn/empty-brace-spaces": "off",
394
+ "unicorn/error-message": "error",
395
+ "unicorn/escape-case": "error",
396
+ "unicorn/expiring-todo-comments": "error",
397
+ "unicorn/explicit-length-check": "off",
398
+ "unicorn/filename-case": "error",
399
+ "unicorn/import-style": "error",
400
+ "unicorn/new-for-builtins": "error",
401
+ "unicorn/no-abusive-eslint-disable": "error",
402
+ "unicorn/no-accessor-recursion": "error",
403
+ "unicorn/no-anonymous-default-export": "error",
404
+ "unicorn/no-array-callback-reference": "error",
405
+ "unicorn/no-array-for-each": "error",
406
+ "unicorn/no-array-method-this-argument": "error",
407
+ "unicorn/no-array-reduce": "error",
408
+ "unicorn/no-array-reverse": "error",
409
+ "unicorn/no-array-sort": "error",
410
+ "unicorn/no-await-expression-member": "error",
411
+ "unicorn/no-await-in-promise-methods": "error",
412
+ "unicorn/no-console-spaces": "error",
413
+ "unicorn/no-document-cookie": "error",
414
+ "unicorn/no-empty-file": "error",
415
+ "unicorn/no-for-loop": "error",
416
+ "unicorn/no-hex-escape": "error",
417
+ "unicorn/no-immediate-mutation": "error",
418
+ "unicorn/no-instanceof-builtins": "error",
419
+ "unicorn/no-invalid-fetch-options": "error",
420
+ "unicorn/no-invalid-remove-event-listener": "error",
421
+ "unicorn/no-keyword-prefix": "off",
422
+ "unicorn/no-lonely-if": "error",
423
+ "unicorn/no-magic-array-flat-depth": "error",
424
+ "unicorn/no-named-default": "error",
425
+ "unicorn/no-negated-condition": "error",
426
+ "unicorn/no-negation-in-equality-check": "error",
427
+ "unicorn/no-nested-ternary": "off",
428
+ "unicorn/no-new-array": "error",
429
+ "unicorn/no-new-buffer": "error",
430
+ "unicorn/no-null": "off",
431
+ "unicorn/no-object-as-default-parameter": "error",
432
+ "unicorn/no-process-exit": "error",
433
+ "unicorn/no-single-promise-in-promise-methods": "error",
434
+ "unicorn/no-static-only-class": "error",
435
+ "unicorn/no-thenable": "error",
436
+ "unicorn/no-this-assignment": "error",
437
+ "unicorn/no-typeof-undefined": "error",
438
+ "unicorn/no-unnecessary-array-flat-depth": "error",
439
+ "unicorn/no-unnecessary-array-splice-count": "error",
440
+ "unicorn/no-unnecessary-await": "error",
441
+ "unicorn/no-unnecessary-polyfills": "error",
442
+ "unicorn/no-unnecessary-slice-end": "error",
443
+ "unicorn/no-unreadable-array-destructuring": "error",
444
+ "unicorn/no-unreadable-iife": "error",
445
+ "unicorn/no-unused-properties": "error",
446
+ "unicorn/no-useless-collection-argument": "error",
447
+ "unicorn/no-useless-error-capture-stack-trace": "error",
448
+ "unicorn/no-useless-fallback-in-spread": "error",
449
+ "unicorn/no-useless-length-check": "error",
450
+ "unicorn/no-useless-promise-resolve-reject": "error",
451
+ "unicorn/no-useless-spread": "error",
452
+ "unicorn/no-useless-switch-case": "error",
453
+ "unicorn/no-useless-undefined": "error",
454
+ "unicorn/no-zero-fractions": "error",
455
+ "unicorn/number-literal-case": "off",
456
+ "unicorn/numeric-separators-style": "error",
457
+ "unicorn/prefer-add-event-listener": "error",
458
+ "unicorn/prefer-array-find": "error",
459
+ "unicorn/prefer-array-flat": "error",
460
+ "unicorn/prefer-array-flat-map": "error",
461
+ "unicorn/prefer-array-index-of": "error",
462
+ "unicorn/prefer-array-some": "error",
463
+ "unicorn/prefer-at": "error",
464
+ "unicorn/prefer-bigint-literals": "error",
465
+ "unicorn/prefer-blob-reading-methods": "error",
466
+ "unicorn/prefer-class-fields": "error",
467
+ "unicorn/prefer-classlist-toggle": "error",
468
+ "unicorn/prefer-code-point": "error",
469
+ "unicorn/prefer-date-now": "error",
470
+ "unicorn/prefer-default-parameters": "error",
471
+ "unicorn/prefer-dom-node-append": "error",
472
+ "unicorn/prefer-dom-node-dataset": "error",
473
+ "unicorn/prefer-dom-node-remove": "error",
474
+ "unicorn/prefer-dom-node-text-content": "error",
475
+ "unicorn/prefer-event-target": "error",
476
+ "unicorn/prefer-export-from": "error",
477
+ "unicorn/prefer-global-this": "error",
478
+ "unicorn/prefer-import-meta-properties": "error",
479
+ "unicorn/prefer-includes": "error",
480
+ "unicorn/prefer-json-parse-buffer": "error",
481
+ "unicorn/prefer-keyboard-event-key": "error",
482
+ "unicorn/prefer-logical-operator-over-ternary": "error",
483
+ "unicorn/prefer-math-min-max": "error",
484
+ "unicorn/prefer-math-trunc": "error",
485
+ "unicorn/prefer-modern-dom-apis": "error",
486
+ "unicorn/prefer-modern-math-apis": "error",
487
+ "unicorn/prefer-module": "error",
488
+ "unicorn/prefer-native-coercion-functions": "error",
489
+ "unicorn/prefer-negative-index": "error",
490
+ "unicorn/prefer-node-protocol": "error",
491
+ "unicorn/prefer-number-properties": "error",
492
+ "unicorn/prefer-object-from-entries": "error",
493
+ "unicorn/prefer-optional-catch-binding": "error",
494
+ "unicorn/prefer-prototype-methods": "error",
495
+ "unicorn/prefer-query-selector": "error",
496
+ "unicorn/prefer-reflect-apply": "error",
497
+ "unicorn/prefer-regexp-test": "error",
498
+ "unicorn/prefer-response-static-json": "error",
499
+ "unicorn/prefer-set-has": "error",
500
+ "unicorn/prefer-set-size": "error",
501
+ "unicorn/prefer-single-call": "error",
502
+ "unicorn/prefer-spread": "error",
503
+ "unicorn/prefer-string-raw": "error",
504
+ "unicorn/prefer-string-replace-all": "error",
505
+ "unicorn/prefer-string-slice": "error",
506
+ "unicorn/prefer-string-starts-ends-with": "error",
507
+ "unicorn/prefer-string-trim-start-end": "error",
508
+ "unicorn/prefer-structured-clone": "error",
509
+ "unicorn/prefer-switch": "error",
510
+ "unicorn/prefer-ternary": "error",
511
+ "unicorn/prefer-top-level-await": "error",
512
+ "unicorn/prefer-type-error": "error",
513
+ "unicorn/prevent-abbreviations": "error",
514
+ "unicorn/relative-url-style": "error",
515
+ "unicorn/require-array-join-separator": "error",
516
+ "unicorn/require-module-attributes": "error",
517
+ "unicorn/require-module-specifiers": "error",
518
+ "unicorn/require-number-to-fixed-digits-argument": "error",
519
+ "unicorn/require-post-message-target-origin": "error",
520
+ "unicorn/string-content": "error",
521
+ "unicorn/switch-case-braces": "error",
522
+ "unicorn/template-indent": "off",
523
+ "unicorn/text-encoding-identifier-case": "error",
524
+ "unicorn/throw-new-error": "error",
525
+ "lodash/callback-binding": "error",
526
+ "lodash/chain-style": [2, "as-needed"],
527
+ "lodash/chaining": "error",
528
+ "lodash/collection-method-value": "error",
529
+ "lodash/collection-ordering": "error",
530
+ "lodash/collection-return": "error",
531
+ "lodash/consistent-compose": [2, "flow"],
532
+ "lodash/identity-shorthand": [2, "always"],
533
+ "lodash/import-scope": [2, "method"],
534
+ "lodash/matches-prop-shorthand": [2, "always"],
535
+ "lodash/matches-shorthand": [2, "always", 3],
536
+ "lodash/no-commit": "error",
537
+ "lodash/no-double-unwrap": "error",
538
+ "lodash/no-extra-args": "error",
539
+ "lodash/no-unbound-this": "error",
540
+ "lodash/path-style": [2, "array"],
541
+ "lodash/prefer-compact": "error",
542
+ "lodash/prefer-constant": "error",
543
+ "lodash/prefer-filter": "error",
544
+ "lodash/prefer-find": "error",
545
+ "lodash/prefer-flat-map": "error",
546
+ "lodash/prefer-get": "error",
547
+ "lodash/prefer-immutable-method": "error",
548
+ "lodash/prefer-includes": [2, { includeNative: true }],
549
+ "lodash/prefer-invoke-map": "error",
550
+ "lodash/prefer-is-nil": "error",
551
+ "lodash/prefer-lodash-chain": "error",
552
+ "lodash/prefer-lodash-method": "error",
553
+ "lodash/prefer-lodash-typecheck": "error",
554
+ "lodash/prefer-map": "error",
555
+ "lodash/prefer-matches": "error",
556
+ "lodash/prefer-noop": "error",
557
+ "lodash/prefer-over-quantifier": "error",
558
+ "lodash/prefer-reject": "error",
559
+ "lodash/prefer-some": [2, { includeNative: true }],
560
+ "lodash/prefer-startswith": "error",
561
+ "lodash/prefer-thru": "error",
562
+ "lodash/prefer-times": "error",
563
+ "lodash/prefer-wrapper-method": "error",
564
+ "lodash/preferred-alias": "error",
565
+ "lodash/prop-shorthand": [2, "always"],
566
+ "lodash/unwrap": "error",
567
+ "sonar/anchor-precedence": "error",
568
+ "sonar/argument-type": "error",
569
+ "sonar/arguments-order": "error",
570
+ "sonar/arguments-usage": "error",
571
+ "sonar/array-callback-without-return": "error",
572
+ "sonar/array-constructor": "error",
573
+ "sonar/arrow-function-convention": "off",
574
+ "sonar/assertions-in-tests": "error",
575
+ "sonar/aws-apigateway-public-api": "error",
576
+ "sonar/aws-ec2-rds-dms-public": "error",
577
+ "sonar/aws-ec2-unencrypted-ebs-volume": "error",
578
+ "sonar/aws-efs-unencrypted": "error",
579
+ "sonar/aws-iam-all-privileges": "error",
580
+ "sonar/aws-iam-all-resources-accessible": "error",
581
+ "sonar/aws-iam-privilege-escalation": "error",
582
+ "sonar/aws-iam-public-access": "error",
583
+ "sonar/aws-opensearchservice-domain": "error",
584
+ "sonar/aws-rds-unencrypted-databases": "error",
585
+ "sonar/aws-restricted-ip-admin-access": "error",
586
+ "sonar/aws-s3-bucket-granted-access": "error",
587
+ "sonar/aws-s3-bucket-insecure-http": "error",
588
+ "sonar/aws-s3-bucket-public-access": "error",
589
+ "sonar/aws-s3-bucket-versioning": "error",
590
+ "sonar/aws-sagemaker-unencrypted-notebook": "error",
591
+ "sonar/aws-sns-unencrypted-topics": "error",
592
+ "sonar/aws-sqs-unencrypted-queue": "error",
593
+ "sonar/bitwise-operators": "error",
594
+ "sonar/block-scoped-var": "error",
595
+ "sonar/bool-param-default": "error",
596
+ "sonar/call-argument-line": "error",
597
+ "sonar/chai-determinate-assertion": "error",
598
+ "sonar/class-name": "error",
599
+ "sonar/class-prototype": "error",
600
+ "sonar/code-eval": "error",
601
+ "sonar/cognitive-complexity": "error",
602
+ "sonar/comma-or-logical-or-case": "error",
603
+ "sonar/comment-regex": "off",
604
+ "sonar/concise-regex": "error",
605
+ "sonar/confidential-information-logging": "error",
606
+ "sonar/constructor-for-side-effects": "error",
607
+ "sonar/content-length": "error",
608
+ "sonar/content-security-policy": "error",
609
+ "sonar/cookie-no-httponly": "error",
610
+ "sonar/cors": "error",
611
+ "sonar/csrf": "error",
612
+ "sonar/cyclomatic-complexity": "off",
613
+ "sonar/declarations-in-global-scope": "error",
614
+ "sonar/deprecation": "error",
615
+ "sonar/destructuring-assignment-syntax": "error",
616
+ "sonar/different-types-comparison": "error",
617
+ "sonar/disabled-auto-escaping": "error",
618
+ "sonar/disabled-resource-integrity": "error",
619
+ "sonar/disabled-timeout": "error",
620
+ "sonar/duplicates-in-character-class": "error",
621
+ "sonar/elseif-without-else": "error",
622
+ "sonar/empty-string-repetition": "error",
623
+ "sonar/encryption-secure-mode": "error",
624
+ "sonar/existing-groups": "error",
625
+ "sonar/expression-complexity": "error",
626
+ "sonar/file-header": "off",
627
+ "sonar/file-name-differ-from-class": "error",
628
+ "sonar/file-permissions": "error",
629
+ "sonar/file-uploads": "error",
630
+ "sonar/fixme-tag": "error",
631
+ "sonar/for-in": "error",
632
+ "sonar/for-loop-increment-sign": "error",
633
+ "sonar/frame-ancestors": "error",
634
+ "sonar/function-inside-loop": "error",
635
+ "sonar/function-name": [
636
+ "error",
637
+ { format: "^(?:[a-z][a-zA-Z0-9]*|[A-Z][A-Z0-9]*)$" },
638
+ ],
639
+ "sonar/function-return-type": "off",
640
+ "sonar/future-reserved-words": "error",
641
+ "sonar/generator-without-yield": "error",
642
+ "sonar/hashing": "error",
643
+ "sonar/hidden-files": "error",
644
+ "sonar/in-operator-type-error": "error",
645
+ "sonar/inconsistent-function-call": "error",
646
+ "sonar/index-of-compare-to-positive-number": "error",
647
+ "sonar/insecure-cookie": "error",
648
+ "sonar/insecure-jwt-token": "error",
649
+ "sonar/inverted-assertion-arguments": "error",
650
+ "sonar/jsx-no-leaked-render": "error",
651
+ "sonar/label-position": "error",
652
+ "sonar/link-with-target-blank": "error",
653
+ "sonar/max-lines": "error",
654
+ "sonar/max-lines-per-function": "error",
655
+ "sonar/max-switch-cases": "error",
656
+ "sonar/max-union-size": "off",
657
+ "sonar/misplaced-loop-counter": "error",
658
+ "sonar/nested-control-flow": "error",
659
+ "sonar/new-operator-misuse": "error",
660
+ "sonar/no-all-duplicated-branches": "error",
661
+ "sonar/no-alphabetical-sort": "error",
662
+ "sonar/no-angular-bypass-sanitization": "error",
663
+ "sonar/no-array-delete": "error",
664
+ "sonar/no-associative-arrays": "error",
665
+ "sonar/no-async-constructor": "error",
666
+ "sonar/no-built-in-override": "error",
667
+ "sonar/no-case-label-in-switch": "error",
668
+ "sonar/no-clear-text-protocols": "error",
669
+ "sonar/no-code-after-done": "error",
670
+ "sonar/no-collapsible-if": "error",
671
+ "sonar/no-collection-size-mischeck": "error",
672
+ "sonar/no-commented-code": "error",
673
+ "sonar/no-control-regex": "error",
674
+ "sonar/no-dead-store": "error",
675
+ "sonar/no-delete-var": "error",
676
+ "sonar/no-duplicate-in-composite": "error",
677
+ "sonar/no-duplicate-string": "error",
678
+ "sonar/no-duplicated-branches": "error",
679
+ "sonar/no-element-overwrite": "error",
680
+ "sonar/no-empty-after-reluctant": "error",
681
+ "sonar/no-empty-alternatives": "error",
682
+ "sonar/no-empty-character-class": "error",
683
+ "sonar/no-empty-collection": "error",
684
+ "sonar/no-empty-group": "error",
685
+ "sonar/no-empty-test-file": "error",
686
+ "sonar/no-equals-in-for-termination": "error",
687
+ "sonar/no-exclusive-tests": "error",
688
+ "sonar/no-extra-arguments": "error",
689
+ "sonar/no-fallthrough": "error",
690
+ "sonar/no-for-in-iterable": "error",
691
+ "sonar/no-function-declaration-in-block": "error",
692
+ "sonar/no-global-this": "error",
693
+ "sonar/no-globals-shadowing": "error",
694
+ "sonar/no-gratuitous-expressions": "error",
695
+ "sonar/no-hardcoded-ip": "error",
696
+ "sonar/no-hardcoded-passwords": "error",
697
+ "sonar/no-hardcoded-secrets": "error",
698
+ "sonar/no-hook-setter-in-body": "error",
699
+ "sonar/no-identical-conditions": "error",
700
+ "sonar/no-identical-expressions": "error",
701
+ "sonar/no-identical-functions": "error",
702
+ "sonar/no-ignored-exceptions": "error",
703
+ "sonar/no-ignored-return": "error",
704
+ "sonar/no-implicit-dependencies": "off",
705
+ "sonar/no-implicit-global": "error",
706
+ "sonar/no-in-misuse": "error",
707
+ "sonar/no-incomplete-assertions": "error",
708
+ "sonar/no-inconsistent-returns": "off",
709
+ "sonar/no-incorrect-string-concat": "error",
710
+ "sonar/no-internal-api-use": "error",
711
+ "sonar/no-intrusive-permissions": "error",
712
+ "sonar/no-invalid-regexp": "error",
713
+ "sonar/no-invariant-returns": "error",
714
+ "sonar/no-inverted-boolean-check": "error",
715
+ "sonar/no-ip-forward": "error",
716
+ "sonar/no-labels": "error",
717
+ "sonar/no-literal-call": "error",
718
+ "sonar/no-mime-sniff": "error",
719
+ "sonar/no-misleading-array-reverse": "error",
720
+ "sonar/no-misleading-character-class": "error",
721
+ "sonar/no-mixed-content": "error",
722
+ "sonar/no-nested-assignment": "error",
723
+ "sonar/no-nested-conditional": "error",
724
+ "sonar/no-nested-functions": "error",
725
+ "sonar/no-nested-incdec": "error",
726
+ "sonar/no-nested-switch": "error",
727
+ "sonar/no-nested-template-literals": "error",
728
+ "sonar/no-os-command-from-path": "error",
729
+ "sonar/no-parameter-reassignment": "error",
730
+ "sonar/no-primitive-wrappers": "error",
731
+ "sonar/no-redundant-assignments": "error",
732
+ "sonar/no-redundant-boolean": "error",
733
+ "sonar/no-redundant-jump": "error",
734
+ "sonar/no-redundant-optional": "error",
735
+ "sonar/no-reference-error": "off",
736
+ "sonar/no-referrer-policy": "error",
737
+ "sonar/no-regex-spaces": "error",
738
+ "sonar/no-require-or-define": "error",
739
+ "sonar/no-return-type-any": "error",
740
+ "sonar/no-same-argument-assert": "error",
741
+ "sonar/no-same-line-conditional": "error",
742
+ "sonar/no-selector-parameter": "error",
743
+ "sonar/no-skipped-tests": "error",
744
+ "sonar/no-small-switch": "error",
745
+ "sonar/no-sonar-comments": "error",
746
+ "sonar/no-table-as-layout": "error",
747
+ "sonar/no-try-promise": "error",
748
+ "sonar/no-undefined-argument": "error",
749
+ "sonar/no-undefined-assignment": "off",
750
+ "sonar/no-unenclosed-multiline-block": "error",
751
+ "sonar/no-uniq-key": "error",
752
+ "sonar/no-unsafe-unzip": "error",
753
+ "sonar/no-unthrown-error": "error",
754
+ "sonar/no-unused-collection": "error",
755
+ "sonar/no-unused-function-argument": "error",
756
+ "sonar/no-unused-vars": "error",
757
+ "sonar/no-use-of-empty-return-value": "error",
758
+ "sonar/no-useless-catch": "error",
759
+ "sonar/no-useless-increment": "error",
760
+ "sonar/no-useless-intersection": "error",
761
+ "sonar/no-useless-react-setstate": "error",
762
+ "sonar/no-variable-usage-before-declaration": "error",
763
+ "sonar/no-weak-cipher": "error",
764
+ "sonar/no-weak-keys": "error",
765
+ "sonar/no-wildcard-import": "error",
766
+ "sonar/non-existent-operator": "error",
767
+ "sonar/non-number-in-arithmetic-expression": "error",
768
+ "sonar/null-dereference": "error",
769
+ "sonar/object-alt-content": "error",
770
+ "sonar/operation-returning-nan": "error",
771
+ "sonar/os-command": "error",
772
+ "sonar/post-message": "error",
773
+ "sonar/prefer-default-last": "error",
774
+ "sonar/prefer-immediate-return": "error",
775
+ "sonar/prefer-object-literal": "error",
776
+ "sonar/prefer-promise-shorthand": "error",
777
+ "sonar/prefer-read-only-props": "error",
778
+ "sonar/prefer-regexp-exec": "error",
779
+ "sonar/prefer-single-boolean-return": "error",
780
+ "sonar/prefer-type-guard": "error",
781
+ "sonar/prefer-while": "error",
782
+ "sonar/production-debug": "error",
783
+ "sonar/pseudo-random": "error",
784
+ "sonar/public-static-readonly": "error",
785
+ "sonar/publicly-writable-directories": "error",
786
+ "sonar/reduce-initial-value": "error",
787
+ "sonar/redundant-type-aliases": "error",
788
+ "sonar/regex-complexity": "error",
789
+ "sonar/session-regeneration": "error",
790
+ "sonar/shorthand-property-grouping": "off",
791
+ "sonar/single-char-in-character-classes": "error",
792
+ "sonar/single-character-alternation": "error",
793
+ "sonar/slow-regex": "error",
794
+ "sonar/sql-queries": "error",
795
+ "sonar/stable-tests": "error",
796
+ "sonar/stateful-regex": "error",
797
+ "sonar/strict-transport-security": "error",
798
+ "sonar/strings-comparison": "error",
799
+ "sonar/super-invocation": "error",
800
+ "sonar/table-header": "error",
801
+ "sonar/table-header-reference": "error",
802
+ "sonar/test-check-exception": "error",
803
+ "sonar/todo-tag": "off",
804
+ "sonar/too-many-break-or-continue-in-loop": "error",
805
+ "sonar/unicode-aware-regex": "error",
806
+ "sonar/unused-import": "error",
807
+ "sonar/unused-named-groups": "error",
808
+ "sonar/unverified-certificate": "error",
809
+ "sonar/unverified-hostname": "error",
810
+ "sonar/updated-const-var": "error",
811
+ "sonar/updated-loop-counter": "error",
812
+ "sonar/use-type-alias": "error",
813
+ "sonar/values-not-convertible-to-numbers": "error",
814
+ "sonar/variable-name": "error",
815
+ "sonar/void-use": "error",
816
+ "sonar/weak-ssl": "error",
817
+ "sonar/x-powered-by": "error",
818
+ "sonar/xml-parser-xxe": "error",
819
+ "perfectionist/sort-array-includes": "error",
820
+ "perfectionist/sort-classes": "error",
821
+ "perfectionist/sort-decorators": "error",
822
+ "perfectionist/sort-enums": "error",
823
+ "perfectionist/sort-exports": "error",
824
+ "perfectionist/sort-heritage-clauses": "error",
825
+ "perfectionist/sort-imports": "error",
826
+ "perfectionist/sort-interfaces": "error",
827
+ "perfectionist/sort-intersection-types": "error",
828
+ "perfectionist/sort-jsx-props": [
829
+ "error",
830
+ { groups: ["shorthand", "multiline"] },
831
+ ],
832
+ "perfectionist/sort-maps": "error",
833
+ "perfectionist/sort-modules": "error",
834
+ "perfectionist/sort-named-exports": "error",
835
+ "perfectionist/sort-named-imports": "error",
836
+ "perfectionist/sort-object-types": "error",
837
+ "perfectionist/sort-objects": ["error", { partitionByComment: true }],
838
+ "perfectionist/sort-sets": "error",
839
+ "perfectionist/sort-switch-case": [
840
+ "error",
841
+ { order: "asc", type: "alphabetical" },
842
+ ],
843
+ "perfectionist/sort-union-types": "error",
844
+ "perfectionist/sort-variable-declarations": [
845
+ "error",
846
+ { order: "asc", type: "alphabetical" },
847
+ ],
848
+ "@tanstack/query/exhaustive-deps": "error",
849
+ "@tanstack/query/infinite-query-property-order": "error",
850
+ "@tanstack/query/mutation-property-order": "error",
851
+ "@tanstack/query/no-rest-destructuring": "error",
852
+ "@tanstack/query/no-unstable-deps": "error",
853
+ "@tanstack/query/no-void-query-fn": "error",
854
+ "@tanstack/query/stable-query-client": "error",
855
+ "@tanstack/router/create-route-property-order": "error",
856
+ "a11y/alt-text": "error",
857
+ "a11y/anchor-ambiguous-text": "error",
858
+ "a11y/anchor-has-content": "error",
859
+ "a11y/anchor-is-valid": "error",
860
+ "a11y/aria-activedescendant-has-tabindex": "error",
861
+ "a11y/aria-props": "error",
862
+ "a11y/aria-proptypes": "error",
863
+ "a11y/aria-role": "error",
864
+ "a11y/aria-unsupported-elements": "error",
865
+ "a11y/autocomplete-valid": "error",
866
+ "a11y/click-events-have-key-events": "error",
867
+ "a11y/control-has-associated-label": "off",
868
+ "a11y/heading-has-content": "error",
869
+ "a11y/html-has-lang": "error",
870
+ "a11y/iframe-has-title": "error",
871
+ "a11y/img-redundant-alt": "error",
872
+ "a11y/interactive-supports-focus": "error",
873
+ "a11y/label-has-associated-control": "error",
874
+ "a11y/lang": "error",
875
+ "a11y/media-has-caption": "off",
876
+ "a11y/mouse-events-have-key-events": "error",
877
+ "a11y/no-access-key": "error",
878
+ "a11y/no-aria-hidden-on-focusable": "error",
879
+ "a11y/no-autofocus": "error",
880
+ "a11y/no-distracting-elements": "error",
881
+ "a11y/no-interactive-element-to-noninteractive-role": "error",
882
+ "a11y/no-noninteractive-element-interactions": "error",
883
+ "a11y/no-noninteractive-element-to-interactive-role": "error",
884
+ "a11y/no-noninteractive-tabindex": "error",
885
+ "a11y/no-redundant-roles": "error",
886
+ "a11y/no-static-element-interactions": "error",
887
+ "a11y/prefer-tag-over-role": "error",
888
+ "a11y/role-has-required-aria-props": "error",
889
+ "a11y/role-supports-aria-props": "error",
890
+ "a11y/scope": "error",
891
+ "a11y/tabindex-no-positive": "error",
892
+ "cspell/spellchecker": [
893
+ "error",
894
+ {
895
+ cspell: {
896
+ words: [
897
+ "tauri",
898
+ "Applynetic",
899
+ "julianday",
900
+ "typicode",
901
+ "toolbelt",
902
+ "taze",
903
+ "ethang",
904
+ "TSESTree",
905
+ "Boop",
906
+ "cldr",
907
+ "astro",
908
+ "laravel",
909
+ "qwik",
910
+ "sitecore",
911
+ "uswds",
912
+ "mediat",
913
+ "Packt",
914
+ "Academind",
915
+ "Udemy",
916
+ "Colte",
917
+ "Bootcamp",
918
+ "HTMX",
919
+ "MERN",
920
+ "Nuxt",
921
+ "Credly",
922
+ "Sterett",
923
+ "Beyonder",
924
+ "hotspot",
925
+ "lqip",
926
+ "Hawn",
927
+ "nextui",
928
+ "speculationrules",
929
+ "zustand",
930
+ "vinxi",
931
+ "datasource",
932
+ "turso",
933
+ "supabase",
934
+ "solidjs",
935
+ "labelledby",
936
+ "svix",
937
+ "blockqoute",
938
+ "cortexjs",
939
+ "mathrm",
940
+ "nums",
941
+ "lifecycles",
942
+ "krausest",
943
+ "Signalis",
944
+ "Plass",
945
+ "Iteree",
946
+ "Sonner",
947
+ "cmdk",
948
+ "ngsw",
949
+ "dexie",
950
+ "leetcode",
951
+ "ngsrc",
952
+ "sindresorhus",
953
+ "rogan",
954
+ "heroui",
955
+ "millis",
956
+ "duckdb",
957
+ "pthread",
958
+ "remeda",
959
+ "radash",
960
+ "noto",
961
+ "nosniff",
962
+ "SAMEORIGIN",
963
+ "starcoder",
964
+ "logprobs",
965
+ "sealioning",
966
+ "swebok",
967
+ "pluralsight",
968
+ "skillset",
969
+ "junie",
970
+ ],
971
+ },
972
+ },
973
+ ],
974
+ },
975
+ },
976
+ {
977
+ files: ["**/*.md"],
978
+ plugins: {
979
+ markdown: markdown,
980
+ },
981
+ rules: {
982
+ "markdown/fenced-code-language": "error",
983
+ "markdown/heading-increment": "error",
984
+ "markdown/no-bare-urls": "error",
985
+ "markdown/no-duplicate-definitions": "error",
986
+ "markdown/no-duplicate-headings": "error",
987
+ "markdown/no-empty-definitions": "error",
988
+ "markdown/no-empty-images": "error",
989
+ "markdown/no-empty-links": "error",
990
+ "markdown/no-html": "error",
991
+ "markdown/no-invalid-label-refs": "error",
992
+ "markdown/no-missing-atx-heading-space": "error",
993
+ "markdown/no-missing-label-refs": "error",
994
+ "markdown/no-missing-link-fragments": "error",
995
+ "markdown/no-multiple-h1": "error",
996
+ "markdown/no-reference-like-urls": "error",
997
+ "markdown/no-reversed-media-syntax": "error",
998
+ "markdown/no-space-in-emphasis": "error",
999
+ "markdown/no-unused-definitions": "error",
1000
+ "markdown/require-alt-text": "error",
1001
+ "markdown/table-column-count": "error",
1002
+ },
1003
+ },
1004
+ {
1005
+ files: ["**/*.css"],
1006
+ language: "css/css",
1007
+ plugins: {
1008
+ css: css,
1009
+ },
1010
+ rules: {
1011
+ "css/font-family-fallbacks": "error",
1012
+ "css/no-duplicate-imports": "error",
1013
+ "css/no-duplicate-keyframe-selectors": "error",
1014
+ "css/no-empty-blocks": "error",
1015
+ "css/no-important": "error",
1016
+ "css/no-invalid-at-rule-placement": "error",
1017
+ "css/no-invalid-at-rules": "off",
1018
+ "css/no-invalid-named-grid-areas": "error",
1019
+ "css/no-invalid-properties": "error",
1020
+ "css/no-unmatchable-selectors": "error",
1021
+ "css/prefer-logical-properties": "error",
1022
+ "css/relative-font-units": "error",
1023
+ "css/selector-complexity": "error",
1024
+ "css/use-baseline": ["error", { available: "newly" }],
1025
+ "css/use-layers": "error",
1026
+ },
1027
+ },
1028
+ {
1029
+ files: ["**/*.json"],
1030
+ language: "json/json",
1031
+ plugins: {
1032
+ json: json,
1033
+ },
1034
+ rules: {
1035
+ "json/no-duplicate-keys": "error",
1036
+ "json/no-empty-keys": "error",
1037
+ "json/no-unnormalized-keys": "error",
1038
+ "json/no-unsafe-values": "error",
1039
+ "json/sort-keys": "error",
1040
+ "json/top-level-interop": "error",
1041
+ },
1042
+ },
1043
+ {
1044
+ files: ["**/*.jsonc"],
1045
+ language: "json/jsonc",
1046
+ plugins: {
1047
+ json: json,
1048
+ },
1049
+ rules: {
1050
+ "json/no-duplicate-keys": "error",
1051
+ "json/no-empty-keys": "error",
1052
+ "json/no-unnormalized-keys": "error",
1053
+ "json/no-unsafe-values": "error",
1054
+ "json/sort-keys": "error",
1055
+ "json/top-level-interop": "error",
1056
+ },
1057
+ },
1058
+ {
1059
+ files: ["**/*.json5"],
1060
+ language: "json/json5",
1061
+ plugins: {
1062
+ json: json,
1063
+ },
1064
+ rules: {
1065
+ "json/no-duplicate-keys": "error",
1066
+ "json/no-empty-keys": "error",
1067
+ "json/no-unnormalized-keys": "error",
1068
+ "json/no-unsafe-values": "error",
1069
+ "json/sort-keys": "error",
1070
+ "json/top-level-interop": "error",
1071
+ },
1072
+ },
1073
+ eslintConfigPrettier,
1074
+ eslintPluginPrettierRecommended,
1075
+ );