@vef-framework/dev 2.0.10 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/cjs/_internal/_rolldown/runtime.cjs +1 -0
  2. package/dist/cjs/index.cjs +1 -1
  3. package/dist/cjs/lint/commitlint.cjs +1 -1
  4. package/dist/cjs/lint/eslint.cjs +1 -1
  5. package/dist/cjs/lint/index.cjs +1 -1
  6. package/dist/cjs/lint/local-react-plugin.cjs +1 -0
  7. package/dist/cjs/lint/stylelint.cjs +1 -1
  8. package/dist/cjs/vite/chunks.cjs +1 -1
  9. package/dist/cjs/vite/config.cjs +1 -1
  10. package/dist/cjs/vite/constants.cjs +1 -1
  11. package/dist/cjs/vite/define.cjs +10 -11
  12. package/dist/cjs/vite/index.cjs +1 -1
  13. package/dist/cjs/vite/plugin-app-config.cjs +1 -1
  14. package/dist/cjs/vite/plugin-auto-enhance/core.cjs +1 -1
  15. package/dist/cjs/vite/plugin-auto-enhance/index.cjs +1 -1
  16. package/dist/cjs/vite/plugin-auto-enhance/plugins/index.cjs +1 -1
  17. package/dist/cjs/vite/plugin-auto-enhance/plugins/operation-column-width.cjs +1 -1
  18. package/dist/cjs/vite/plugin-conventional-config.cjs +1 -1
  19. package/dist/cjs/vite/plugin-eslint.cjs +1 -1
  20. package/dist/cjs/vite/plugin-html.cjs +2 -2
  21. package/dist/cjs/vite/plugin-icons.cjs +1 -1
  22. package/dist/cjs/vite/plugin-injection.cjs +1 -1
  23. package/dist/cjs/vite/plugin-inspect.cjs +1 -1
  24. package/dist/cjs/vite/plugin-react.cjs +1 -1
  25. package/dist/cjs/vite/plugin-router.cjs +3 -3
  26. package/dist/cjs/vite/plugin-stylelint.cjs +1 -1
  27. package/dist/cjs/vite/plugin-svgr.cjs +1 -1
  28. package/dist/cjs/vite/plugin-tsconfig-paths.cjs +1 -1
  29. package/dist/cjs/vite/postcss.cjs +1 -1
  30. package/dist/cli/index.js +5 -5
  31. package/dist/es/index.js +8 -10
  32. package/dist/es/lint/commitlint.js +5 -4
  33. package/dist/es/lint/eslint.js +650 -931
  34. package/dist/es/lint/index.js +3 -8
  35. package/dist/es/lint/local-react-plugin.js +42 -0
  36. package/dist/es/lint/stylelint.js +55 -74
  37. package/dist/es/vite/chunks.js +19 -16
  38. package/dist/es/vite/config.js +59 -66
  39. package/dist/es/vite/constants.js +9 -9
  40. package/dist/es/vite/define.js +16 -16
  41. package/dist/es/vite/index.js +1 -4
  42. package/dist/es/vite/plugin-app-config.js +10 -14
  43. package/dist/es/vite/plugin-auto-enhance/core.js +85 -85
  44. package/dist/es/vite/plugin-auto-enhance/index.js +13 -14
  45. package/dist/es/vite/plugin-auto-enhance/plugins/index.js +1 -4
  46. package/dist/es/vite/plugin-auto-enhance/plugins/operation-column-width.js +174 -108
  47. package/dist/es/vite/plugin-conventional-config.js +28 -42
  48. package/dist/es/vite/plugin-eslint.js +9 -4
  49. package/dist/es/vite/plugin-html.js +50 -53
  50. package/dist/es/vite/plugin-icons.js +6 -5
  51. package/dist/es/vite/plugin-injection.js +1 -11
  52. package/dist/es/vite/plugin-react.js +21 -63
  53. package/dist/es/vite/plugin-router.js +38 -31
  54. package/dist/es/vite/plugin-stylelint.js +9 -4
  55. package/dist/es/vite/plugin-svgr.js +2 -7
  56. package/dist/es/vite/plugin-tsconfig-paths.js +3 -6
  57. package/dist/types/src/lint/commitlint.d.ts +2 -0
  58. package/dist/types/src/lint/local-react-plugin.d.ts +29 -0
  59. package/dist/types/src/lint/stylelint.d.ts +2 -0
  60. package/dist/types/{vite → src/vite}/chunks.d.ts +0 -5
  61. package/dist/types/src/vite/config.d.ts +12 -0
  62. package/dist/types/src/vite/constants.d.ts +12 -0
  63. package/dist/types/src/vite/define.d.ts +4 -0
  64. package/dist/types/src/vite/plugin-app-config.d.ts +19 -0
  65. package/dist/types/{vite → src/vite}/plugin-auto-enhance/core.d.ts +6 -21
  66. package/dist/types/src/vite/plugin-auto-enhance/index.d.ts +10 -0
  67. package/dist/types/src/vite/plugin-auto-enhance/plugins/operation-column-width.d.ts +5 -0
  68. package/dist/types/{vite → src/vite}/plugin-auto-enhance/types.d.ts +7 -9
  69. package/dist/types/{vite → src/vite}/plugin-conventional-config.d.ts +1 -14
  70. package/dist/types/src/vite/plugin-eslint.d.ts +7 -0
  71. package/dist/types/src/vite/plugin-html.d.ts +7 -0
  72. package/dist/types/{vite → src/vite}/plugin-icons.d.ts +3 -3
  73. package/dist/types/src/vite/plugin-injection.d.ts +5 -0
  74. package/dist/types/src/vite/plugin-inspect.d.ts +5 -0
  75. package/dist/types/{vite → src/vite}/plugin-react.d.ts +10 -5
  76. package/dist/types/src/vite/plugin-router.d.ts +14 -0
  77. package/dist/types/src/vite/plugin-stylelint.d.ts +7 -0
  78. package/dist/types/src/vite/plugin-svgr.d.ts +7 -0
  79. package/dist/types/src/vite/plugin-tsconfig-paths.d.ts +8 -0
  80. package/dist/types/{vite → src/vite}/postcss.d.ts +0 -5
  81. package/package.json +66 -66
  82. package/tsconfig.base.json +0 -1
  83. package/dist/types/lint/commitlint.d.ts +0 -8
  84. package/dist/types/lint/stylelint.d.ts +0 -7
  85. package/dist/types/vite/config.d.ts +0 -39
  86. package/dist/types/vite/constants.d.ts +0 -48
  87. package/dist/types/vite/define.d.ts +0 -12
  88. package/dist/types/vite/plugin-app-config.d.ts +0 -28
  89. package/dist/types/vite/plugin-auto-enhance/index.d.ts +0 -30
  90. package/dist/types/vite/plugin-auto-enhance/plugins/operation-column-width.d.ts +0 -14
  91. package/dist/types/vite/plugin-eslint.d.ts +0 -7
  92. package/dist/types/vite/plugin-html.d.ts +0 -7
  93. package/dist/types/vite/plugin-injection.d.ts +0 -7
  94. package/dist/types/vite/plugin-inspect.d.ts +0 -7
  95. package/dist/types/vite/plugin-router.d.ts +0 -9
  96. package/dist/types/vite/plugin-stylelint.d.ts +0 -7
  97. package/dist/types/vite/plugin-svgr.d.ts +0 -7
  98. package/dist/types/vite/plugin-tsconfig-paths.d.ts +0 -8
  99. package/dist/types/{cli → src/cli}/index.d.ts +0 -0
  100. package/dist/types/{index.d.ts → src/index.d.ts} +0 -0
  101. package/dist/types/{lint → src/lint}/eslint.d.ts +0 -0
  102. package/dist/types/{lint → src/lint}/index.d.ts +0 -0
  103. package/dist/types/{vite → src/vite}/index.d.ts +1 -1
  104. /package/dist/types/{vite → src/vite}/plugin-auto-enhance/plugins/index.d.ts +0 -0
@@ -1,956 +1,675 @@
1
- import n from "@eslint-community/eslint-plugin-eslint-comments/configs";
2
- import s from "@eslint-react/eslint-plugin";
3
- import i from "@eslint/js";
4
- import a from "@stylistic/eslint-plugin";
5
- import l from "@tanstack/eslint-plugin-query";
6
- import c from "@tanstack/eslint-plugin-router";
7
- import p from "eslint-config-flat-gitignore";
8
- import u from "eslint-plugin-antfu";
9
- import * as e from "eslint-plugin-format";
10
- import m from "eslint-plugin-import-lite";
11
- import f from "eslint-plugin-perfectionist";
12
- import d from "eslint-plugin-react-hooks";
13
- import y from "eslint-plugin-react-refresh";
14
- import g from "eslint-plugin-regexp";
15
- import b from "eslint-plugin-unicorn";
16
- import w from "eslint-plugin-unused-imports";
17
- import { defineConfig as x } from "eslint/config";
18
- import o from "typescript-eslint";
19
- const r = {
20
- singleQuote: !1,
21
- semi: !0,
22
- tabWidth: 2,
23
- useTabs: !1,
24
- trailingComma: "none",
25
- endOfLine: "lf",
26
- printWidth: 120,
27
- proseWrap: "never",
1
+ import { localReactPlugin as l, localReactRules as c } from "./local-react-plugin.js";
2
+ import p from "@eslint-community/eslint-plugin-eslint-comments/configs";
3
+ import u from "@eslint-react/eslint-plugin";
4
+ import m from "@eslint/js";
5
+ import f from "@stylistic/eslint-plugin";
6
+ import d from "@tanstack/eslint-plugin-query";
7
+ import y from "@tanstack/eslint-plugin-router";
8
+ import g from "eslint-config-flat-gitignore";
9
+ import b from "eslint-plugin-antfu";
10
+ import o from "eslint-plugin-format";
11
+ import w from "eslint-plugin-import-lite";
12
+ import v from "eslint-plugin-jsdoc";
13
+ import x from "eslint-plugin-perfectionist";
14
+ import h from "eslint-plugin-react-dom";
15
+ import k from "eslint-plugin-react-hooks";
16
+ import j from "eslint-plugin-react-naming-convention";
17
+ import S from "eslint-plugin-react-web-api";
18
+ import R from "eslint-plugin-regexp";
19
+ import _ from "eslint-plugin-unicorn";
20
+ import E from "eslint-plugin-unused-imports";
21
+ import { defineConfig as O } from "eslint/config";
22
+ import t from "typescript-eslint";
23
+ var L = {
28
24
  arrowParens: "avoid",
29
- htmlWhitespaceSensitivity: "strict",
30
25
  bracketSameLine: !1,
31
26
  bracketSpacing: !0,
27
+ endOfLine: "lf",
28
+ htmlWhitespaceSensitivity: "strict",
29
+ jsxSingleQuote: !1,
32
30
  objectWrap: "preserve",
31
+ printWidth: 120,
32
+ proseWrap: "never",
33
33
  quoteProps: "as-needed",
34
- jsxSingleQuote: !1,
35
- singleAttributePerLine: !1
36
- };
37
- function T(...t) {
38
- return x(
39
- p({
40
- root: !0,
41
- strict: !0
42
- }),
34
+ semi: !0,
35
+ singleAttributePerLine: !1,
36
+ singleQuote: !1,
37
+ tabWidth: 2,
38
+ trailingComma: "none",
39
+ useTabs: !1
40
+ }, P = {
41
+ "accessor-pairs": ["error", {
42
+ enforceForClassMembers: !0,
43
+ setWithoutGet: !0
44
+ }],
45
+ "array-callback-return": ["error", { allowImplicit: !0 }],
46
+ "arrow-body-style": [
47
+ "error",
48
+ "as-needed",
49
+ { requireReturnForObjectLiteral: !0 }
50
+ ],
51
+ "block-scoped-var": "error",
52
+ camelcase: ["error", {
53
+ ignoreGlobals: !0,
54
+ properties: "always"
55
+ }],
56
+ curly: ["error", "all"],
57
+ "default-case-last": "error",
58
+ "dot-notation": ["error", { allowKeywords: !0 }],
59
+ eqeqeq: ["error", "smart"],
60
+ "func-style": [
61
+ "error",
62
+ "declaration",
63
+ { allowArrowFunctions: !0 }
64
+ ],
65
+ "new-cap": ["error", {
66
+ capIsNew: !1,
67
+ newIsCap: !0,
68
+ properties: !0
69
+ }],
70
+ "no-alert": "error",
71
+ "no-caller": "error",
72
+ "no-cond-assign": ["error", "always"],
73
+ "no-empty": ["error", { allowEmptyCatch: !0 }],
74
+ "no-eq-null": "error",
75
+ "no-eval": "error",
76
+ "no-extend-native": "error",
77
+ "no-extra-bind": "error",
78
+ "no-extra-label": "error",
79
+ "no-implied-eval": "error",
80
+ "no-invalid-this": "error",
81
+ "no-iterator": "error",
82
+ "no-labels": ["error", {
83
+ allowLoop: !1,
84
+ allowSwitch: !1
85
+ }],
86
+ "no-lone-blocks": "error",
87
+ "no-multi-str": "error",
88
+ "no-new": "error",
89
+ "no-new-func": "error",
90
+ "no-new-wrappers": "error",
91
+ "no-obj-calls": "error",
92
+ "no-octal-escape": "error",
93
+ "no-promise-executor-return": ["error", { allowVoid: !0 }],
94
+ "no-proto": "error",
95
+ "no-restricted-globals": [
96
+ "error",
43
97
  {
44
- files: ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts", "**/*.js", "**/*.jsx", "**/*.mjs", "**/*.cjs"],
45
- ignores: ["**/router.gen.ts"],
46
- extends: [
47
- i.configs.recommended,
48
- o.configs.strict,
49
- o.configs.stylistic,
50
- s.configs["recommended-typescript"],
51
- d.configs.flat.recommended,
52
- y.configs.vite,
53
- m.configs.recommended,
54
- b.configs.recommended,
55
- n.recommended,
56
- g.configs["flat/recommended"],
57
- a.configs.customize({
58
- indent: 2,
59
- jsx: !0,
60
- quotes: "double",
61
- semi: !0,
62
- braceStyle: "1tbs",
63
- blockSpacing: !0,
64
- quoteProps: "as-needed",
65
- commaDangle: "never",
66
- severity: "error"
67
- }),
68
- l.configs["flat/recommended"],
69
- c.configs["flat/recommended"]
70
- ],
71
- plugins: {
72
- antfu: u,
73
- "unused-imports": w,
74
- perfectionist: f
75
- },
76
- rules: {
77
- // ============================================================================
78
- // JavaScript Lint Rules
79
- // Core JavaScript rules for code quality and best practices
80
- // ============================================================================
81
- "prefer-object-spread": "error",
82
- "func-style": [
83
- "error",
84
- "declaration",
85
- {
86
- allowArrowFunctions: !0
87
- }
88
- ],
89
- curly: ["error", "all"],
90
- "no-useless-concat": "error",
91
- "no-unused-vars": "off",
92
- "no-eq-null": "error",
93
- "no-extra-label": "error",
94
- "no-invalid-this": "error",
95
- "no-throw-literal": "error",
96
- "arrow-body-style": [
97
- "error",
98
- "as-needed",
99
- {
100
- requireReturnForObjectLiteral: !0
101
- }
102
- ],
103
- "prefer-object-has-own": "error",
104
- "prefer-numeric-literals": "error",
105
- "prefer-named-capture-group": "error",
106
- "prefer-destructuring": "error",
107
- "object-shorthand": [
108
- "error",
109
- "always",
110
- {
111
- avoidQuotes: !0,
112
- ignoreConstructors: !1
113
- }
114
- ],
115
- "require-atomic-updates": "error",
116
- "require-await": "error",
117
- camelcase: [
118
- "error",
119
- {
120
- properties: "always",
121
- ignoreGlobals: !0
122
- }
123
- ],
124
- "no-promise-executor-return": [
125
- "error",
126
- {
127
- allowVoid: !0
128
- }
129
- ],
130
- "array-callback-return": [
131
- "error",
132
- {
133
- allowImplicit: !0
134
- }
135
- ],
136
- "accessor-pairs": [
137
- "error",
138
- {
139
- enforceForClassMembers: !0,
140
- setWithoutGet: !0
141
- }
142
- ],
143
- "block-scoped-var": "error",
144
- "default-case-last": "error",
145
- "dot-notation": [
146
- "error",
147
- {
148
- allowKeywords: !0
149
- }
150
- ],
151
- eqeqeq: ["error", "smart"],
152
- "new-cap": [
153
- "error",
154
- {
155
- capIsNew: !1,
156
- newIsCap: !0,
157
- properties: !0
158
- }
159
- ],
160
- "no-alert": "error",
161
- "no-caller": "error",
162
- "no-cond-assign": ["error", "always"],
163
- "no-empty": [
164
- "error",
165
- {
166
- allowEmptyCatch: !0
167
- }
168
- ],
169
- "no-eval": "error",
170
- "no-extend-native": "error",
171
- "no-extra-bind": "error",
172
- "no-implied-eval": "error",
173
- "no-iterator": "error",
174
- "no-labels": [
175
- "error",
176
- {
177
- allowLoop: !1,
178
- allowSwitch: !1
179
- }
180
- ],
181
- "no-lone-blocks": "error",
182
- "no-multi-str": "error",
183
- "no-new": "error",
184
- "no-new-func": "error",
185
- "no-new-wrappers": "error",
186
- "no-obj-calls": "error",
187
- "no-octal-escape": "error",
188
- "no-proto": "error",
189
- "no-restricted-globals": [
190
- "error",
191
- {
192
- message: "Use `globalThis` instead.",
193
- name: "global"
194
- },
195
- {
196
- message: "Use `globalThis` instead.",
197
- name: "self"
198
- }
199
- ],
200
- "no-restricted-properties": [
201
- "error",
202
- {
203
- message: "Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.",
204
- property: "__proto__"
205
- },
206
- {
207
- message: "Use `Object.defineProperty` instead.",
208
- property: "__defineGetter__"
209
- },
210
- {
211
- message: "Use `Object.defineProperty` instead.",
212
- property: "__defineSetter__"
213
- },
214
- {
215
- message: "Use `Object.getOwnPropertyDescriptor` instead.",
216
- property: "__lookupGetter__"
217
- },
218
- {
219
- message: "Use `Object.getOwnPropertyDescriptor` instead.",
220
- property: "__lookupSetter__"
221
- }
222
- ],
223
- "no-restricted-syntax": [
224
- "error",
225
- "TSEnumDeclaration[const=true]",
226
- "TSExportAssignment"
227
- ],
228
- "no-self-compare": "error",
229
- "no-sequences": "error",
230
- "no-template-curly-in-string": "error",
231
- "no-undef-init": "error",
232
- "no-unmodified-loop-condition": "error",
233
- "no-unneeded-ternary": [
234
- "error",
235
- {
236
- defaultAssignment: !1
237
- }
238
- ],
239
- "no-unreachable": "error",
240
- "no-unreachable-loop": "error",
241
- "no-useless-call": "error",
242
- "no-useless-computed-key": "error",
243
- "no-useless-rename": "error",
244
- "no-useless-return": "error",
245
- "one-var": [
246
- "error",
247
- {
248
- initialized: "never"
249
- }
250
- ],
251
- "prefer-arrow-callback": [
252
- "error",
253
- {
254
- allowNamedFunctions: !1,
255
- allowUnboundThis: !0
256
- }
257
- ],
258
- "prefer-const": [
259
- "error",
260
- {
261
- destructuring: "all",
262
- ignoreReadBeforeAssign: !0
263
- }
264
- ],
265
- "prefer-exponentiation-operator": "error",
266
- "prefer-promise-reject-errors": "error",
267
- "prefer-regex-literals": [
268
- "error",
269
- {
270
- disallowRedundantWrapping: !0
271
- }
272
- ],
273
- "prefer-template": "error",
274
- "symbol-description": "error",
275
- "unicode-bom": ["error", "never"],
276
- "use-isnan": [
277
- "error",
278
- {
279
- enforceForIndexOf: !0,
280
- enforceForSwitchCase: !0
281
- }
282
- ],
283
- "valid-typeof": [
284
- "error",
285
- { requireStringLiterals: !0 }
286
- ],
287
- yoda: ["error", "never"],
288
- // ============================================================================
289
- // TypeScript Lint Rules
290
- // TypeScript-specific rules for type safety and best practices
291
- // ============================================================================
292
- "@typescript-eslint/no-unused-expressions": [
293
- "error",
294
- {
295
- enforceForJSX: !0
296
- }
297
- ],
298
- // "@typescript-eslint/no-unused-vars": [
299
- // "error",
300
- // {
301
- // args: "all",
302
- // argsIgnorePattern: "^_",
303
- // caughtErrors: "all",
304
- // caughtErrorsIgnorePattern: "^_",
305
- // destructuredArrayIgnorePattern: "^_",
306
- // varsIgnorePattern: "^_",
307
- // ignoreRestSiblings: true
308
- // }
309
- // ],
310
- "@typescript-eslint/no-unused-vars": "off",
311
- "@typescript-eslint/array-type": [
312
- "error",
313
- {
314
- default: "array-simple",
315
- readonly: "array-simple"
316
- }
317
- ],
318
- "@typescript-eslint/consistent-type-assertions": [
319
- "error",
320
- {
321
- assertionStyle: "as",
322
- objectLiteralTypeAssertions: "allow"
323
- }
324
- ],
325
- "@typescript-eslint/consistent-type-definitions": [
326
- "error",
327
- "interface"
328
- ],
329
- "@typescript-eslint/max-params": [
330
- "error",
331
- {
332
- max: 5
333
- }
334
- ],
335
- "@typescript-eslint/no-unsafe-function-type": "off",
336
- "@typescript-eslint/method-signature-style": ["error", "property"],
337
- "@typescript-eslint/no-dynamic-delete": "off",
338
- "@typescript-eslint/no-empty-object-type": [
339
- "error",
340
- {
341
- allowInterfaces: "always"
342
- }
343
- ],
344
- "@typescript-eslint/no-explicit-any": "off",
345
- "@typescript-eslint/no-import-type-side-effects": "error",
346
- "@typescript-eslint/no-non-null-assertion": "off",
347
- "@typescript-eslint/no-this-alias": "off",
348
- "@typescript-eslint/no-unsafe-assignment": "off",
349
- "@typescript-eslint/no-unsafe-call": "off",
350
- "@typescript-eslint/no-unsafe-member-access": "off",
351
- "@typescript-eslint/no-unsafe-return": "off",
352
- // "@typescript-eslint/explicit-function-return-type": [
353
- // "error",
354
- // {
355
- // allowExpressions: true,
356
- // allowDirectConstAssertionInArrowFunctions: true,
357
- // allowTypedFunctionExpressions: true,
358
- // allowHigherOrderFunctions: true,
359
- // allowFunctionsWithoutTypeParameters: true,
360
- // allowIIFEs: true
361
- // }
362
- // ],
363
- "@typescript-eslint/no-invalid-void-type": "off",
364
- // ============================================================================
365
- // Import Lite Rules
366
- // Rules for managing imports and module organization
367
- // ============================================================================
368
- "import-lite/consistent-type-specifier-style": ["error", "top-level"],
369
- "import-lite/first": "error",
370
- "import-lite/no-duplicates": "error",
371
- "import-lite/no-mutable-exports": "error",
372
- "import-lite/no-named-default": "error",
373
- "import-lite/newline-after-import": [
374
- "error",
375
- {
376
- count: 1
377
- }
378
- ],
379
- // ============================================================================
380
- // Unicorn Rules
381
- // Modern JavaScript best practices and code quality improvements
382
- // ============================================================================
383
- "unicorn/consistent-empty-array-spread": "error",
384
- "unicorn/error-message": "error",
385
- "unicorn/escape-case": "error",
386
- "unicorn/import-style": [
387
- "error",
388
- {
389
- extendDefaultStyles: !1,
390
- checkDynamicImport: !1
391
- }
392
- ],
393
- "unicorn/new-for-builtins": "error",
394
- "unicorn/no-array-reduce": "off",
395
- "unicorn/no-instanceof-builtins": "error",
396
- "unicorn/no-new-array": "error",
397
- "unicorn/no-new-buffer": "error",
398
- "unicorn/no-null": "off",
399
- "unicorn/number-literal-case": "error",
400
- "unicorn/prefer-dom-node-text-content": "error",
401
- "unicorn/prefer-includes": "error",
402
- "unicorn/prefer-node-protocol": "error",
403
- "unicorn/prefer-number-properties": "error",
404
- "unicorn/prefer-string-starts-ends-with": "error",
405
- "unicorn/prefer-type-error": "error",
406
- "unicorn/throw-new-error": "error",
407
- "unicorn/filename-case": [
408
- "error",
409
- {
410
- case: "kebabCase",
411
- ignore: ["README.md", "AGENTS.md", "CLAUDE.md"]
412
- }
413
- ],
414
- "unicorn/prefer-date-now": "error",
415
- "unicorn/prefer-event-target": "off",
416
- "unicorn/prefer-string-trim-start-end": "error",
417
- "unicorn/prefer-string-raw": "error",
418
- "unicorn/prefer-object-from-entries": "error",
419
- "unicorn/prefer-default-parameters": "error",
420
- "unicorn/prefer-array-find": "error",
421
- "unicorn/prefer-array-flat": "error",
422
- "unicorn/prefer-array-flat-map": "error",
423
- "unicorn/prefer-array-index-of": "error",
424
- "unicorn/prefer-array-some": "error",
425
- "unicorn/prefer-logical-operator-over-ternary": "error",
426
- "unicorn/prefer-single-call": "error",
427
- "unicorn/require-module-specifiers": "off",
428
- "unicorn/no-empty-file": "error",
429
- "unicorn/no-array-for-each": "error",
430
- "unicorn/no-for-loop": "error",
431
- "unicorn/no-unnecessary-await": "error",
432
- "unicorn/no-unnecessary-polyfills": "error",
433
- "unicorn/no-useless-undefined": "error",
434
- "unicorn/no-useless-switch-case": "error",
435
- "unicorn/no-useless-spread": "error",
436
- "unicorn/no-console-spaces": "error",
437
- "unicorn/no-unused-properties": "error",
438
- "unicorn/no-useless-promise-resolve-reject": "error",
439
- "unicorn/no-nested-ternary": "off",
440
- "unicorn/prevent-abbreviations": "off",
441
- "unicorn/text-encoding-identifier-case": [
442
- "error",
443
- {
444
- withDash: !0
445
- }
446
- ],
447
- // ============================================================================
448
- // React Rules
449
- // React-specific rules for component best practices
450
- // ============================================================================
451
- "@eslint-react/jsx-key-before-spread": "error",
452
- "@eslint-react/jsx-no-duplicate-props": "error",
453
- "@eslint-react/jsx-uses-vars": "error",
454
- "@eslint-react/jsx-no-comment-textnodes": "error",
455
- "@eslint-react/jsx-shorthand-boolean": "error",
456
- "@eslint-react/jsx-no-iife": "error",
457
- "@eslint-react/no-access-state-in-setstate": "error",
458
- "@eslint-react/no-array-index-key": "error",
459
- "@eslint-react/no-component-will-mount": "error",
460
- "@eslint-react/no-component-will-receive-props": "error",
461
- "@eslint-react/no-component-will-update": "error",
462
- "@eslint-react/no-context-provider": "error",
463
- "@eslint-react/no-create-ref": "error",
464
- "@eslint-react/no-default-props": "error",
465
- "@eslint-react/no-direct-mutation-state": "error",
466
- "@eslint-react/no-duplicate-key": "error",
467
- "@eslint-react/no-forward-ref": "error",
468
- "@eslint-react/no-useless-forward-ref": "error",
469
- "@eslint-react/no-implicit-key": "error",
470
- "@eslint-react/no-missing-key": "error",
471
- "@eslint-react/no-nested-component-definitions": "error",
472
- "@eslint-react/no-prop-types": "error",
473
- "@eslint-react/no-redundant-should-component-update": "error",
474
- "@eslint-react/no-set-state-in-component-did-mount": "error",
475
- "@eslint-react/no-set-state-in-component-did-update": "error",
476
- "@eslint-react/no-set-state-in-component-will-update": "error",
477
- "@eslint-react/no-string-refs": "error",
478
- "@eslint-react/no-unsafe-component-will-mount": "error",
479
- "@eslint-react/no-unsafe-component-will-receive-props": "error",
480
- "@eslint-react/no-unsafe-component-will-update": "error",
481
- "@eslint-react/no-unstable-context-value": "error",
482
- "@eslint-react/no-unstable-default-props": "error",
483
- "@eslint-react/no-unused-class-component-members": "error",
484
- "@eslint-react/no-unused-state": "error",
485
- "@eslint-react/no-use-context": "error",
486
- "@eslint-react/no-clone-element": "off",
487
- "@eslint-react/no-children-map": "off",
488
- "@eslint-react/no-children-to-array": "off",
489
- "@eslint-react/no-children-for-each": "off",
490
- "@eslint-react/no-class-component": "error",
491
- "@eslint-react/no-unnecessary-use-prefix": "error",
492
- "@eslint-react/prefer-use-state-lazy-initialization": "error",
493
- "@eslint-react/no-unnecessary-use-memo": "error",
494
- "@eslint-react/no-unnecessary-use-callback": "error",
495
- "@eslint-react/no-unnecessary-key": "error",
496
- "@eslint-react/dom/no-dangerously-set-innerhtml": "error",
497
- "@eslint-react/dom/no-dangerously-set-innerhtml-with-children": "error",
498
- "@eslint-react/dom/no-find-dom-node": "error",
499
- "@eslint-react/dom/no-flush-sync": "error",
500
- "@eslint-react/dom/no-hydrate": "error",
501
- "@eslint-react/dom/no-namespace": "error",
502
- "@eslint-react/dom/no-missing-button-type": "error",
503
- "@eslint-react/dom/no-missing-iframe-sandbox": "error",
504
- "@eslint-react/dom/no-render": "error",
505
- "@eslint-react/dom/no-render-return-value": "error",
506
- "@eslint-react/dom/no-script-url": "error",
507
- "@eslint-react/dom/no-unsafe-iframe-sandbox": "error",
508
- "@eslint-react/dom/no-unsafe-target-blank": "error",
509
- "@eslint-react/dom/no-use-form-state": "error",
510
- "@eslint-react/dom/no-void-elements-with-children": "error",
511
- "@eslint-react/dom/no-string-style-prop": "error",
512
- "@eslint-react/dom/no-unknown-property": [
513
- "error",
514
- {
515
- ignore: ["css"]
516
- }
517
- ],
518
- "@eslint-react/web-api/no-leaked-event-listener": "error",
519
- "@eslint-react/web-api/no-leaked-interval": "error",
520
- "@eslint-react/web-api/no-leaked-resize-observer": "error",
521
- "@eslint-react/web-api/no-leaked-timeout": "error",
522
- "@eslint-react/naming-convention/component-name": ["error", "PascalCase"],
523
- "@eslint-react/naming-convention/filename-extension": [
524
- "error",
525
- {
526
- allow: "as-needed",
527
- extensions: [".tsx"]
528
- }
529
- ],
530
- "@eslint-react/naming-convention/context-name": "error",
531
- "@eslint-react/naming-convention/use-state": "off",
532
- "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": "off",
533
- // ============================================================================
534
- // React Hooks Rules
535
- // Rules for proper React Hooks usage and dependencies
536
- // ============================================================================
537
- "react-hooks/exhaustive-deps": [
538
- "error",
539
- {
540
- additionalHooks: "^use(Deep|Shallow|Isomorphic)|^useDidUpdate"
541
- }
542
- ],
543
- // ============================================================================
544
- // Antfu Rules
545
- // Additional code style and quality rules
546
- // ============================================================================
547
- "antfu/consistent-chaining": "error",
548
- "antfu/consistent-list-newline": "error",
549
- "antfu/curly": "error",
550
- "antfu/if-newline": "error",
551
- "antfu/top-level-function": "error",
552
- "antfu/indent-unindent": "error",
553
- // ============================================================================
554
- // Unused Imports Rules
555
- // Rules for cleaning up unused imports and variables
556
- // ============================================================================
557
- "unused-imports/no-unused-imports": "error",
558
- "unused-imports/no-unused-vars": [
559
- "error",
560
- {
561
- vars: "all",
562
- varsIgnorePattern: "^_",
563
- args: "after-used",
564
- argsIgnorePattern: "^_"
565
- }
566
- ],
567
- // ============================================================================
568
- // Perfectionist Rules
569
- // Rules for sorting and organizing code elements
570
- // ============================================================================
571
- "perfectionist/sort-exports": [
572
- "error",
573
- {
574
- order: "asc",
575
- type: "natural"
576
- }
577
- ],
578
- "perfectionist/sort-imports": [
579
- "error",
580
- {
581
- groups: [
582
- "type",
583
- ["parent-type", "sibling-type", "index-type", "internal-type"],
584
- "builtin",
585
- "external",
586
- "internal",
587
- ["parent", "sibling", "index"],
588
- "side-effect",
589
- "object",
590
- "unknown"
591
- ],
592
- newlinesBetween: 1,
593
- order: "asc",
594
- type: "natural"
595
- }
596
- ],
597
- "perfectionist/sort-named-exports": [
598
- "error",
599
- {
600
- order: "asc",
601
- type: "natural",
602
- groups: [
603
- "value-export",
604
- "type-export"
605
- ],
606
- newlinesBetween: "ignore"
607
- }
608
- ],
609
- "perfectionist/sort-named-imports": [
610
- "error",
611
- {
612
- order: "asc",
613
- type: "natural",
614
- groups: [
615
- "value-import",
616
- "type-import"
617
- ],
618
- newlinesBetween: "ignore"
619
- }
620
- ],
621
- // ============================================================================
622
- // Stylistic Rules
623
- // Code formatting and style consistency rules
624
- // ============================================================================
625
- "@stylistic/arrow-parens": ["error", "as-needed"],
626
- "@stylistic/line-comment-position": [
627
- "error",
628
- {
629
- position: "above"
630
- }
631
- ],
632
- "@stylistic/jsx-self-closing-comp": [
633
- "error",
634
- {
635
- component: !0,
636
- html: !0
637
- }
638
- ],
639
- "@stylistic/jsx-newline": [
640
- "error",
641
- {
642
- prevent: !0,
643
- allowMultilines: !0
644
- }
645
- ],
646
- "@stylistic/curly-newline": [
647
- "error",
648
- {
649
- consistent: !0
650
- }
651
- ],
652
- "@stylistic/jsx-sort-props": [
653
- "error",
654
- {
655
- callbacksLast: !0,
656
- shorthandFirst: !0,
657
- shorthandLast: !1,
658
- multiline: "last",
659
- ignoreCase: !0,
660
- noSortAlphabetically: !1,
661
- reservedFirst: ["key", "ref"]
662
- }
663
- ],
664
- "@stylistic/jsx-max-props-per-line": [
665
- "error",
666
- {
667
- maximum: {
668
- single: 5,
669
- multi: 1
670
- }
671
- }
672
- ],
673
- "@stylistic/newline-per-chained-call": [
674
- "error",
675
- {
676
- ignoreChainWithDepth: 6
677
- }
678
- ],
679
- "@stylistic/object-curly-newline": [
680
- "error",
681
- {
682
- ObjectExpression: {
683
- multiline: !0,
684
- consistent: !0,
685
- minProperties: 3
686
- },
687
- ObjectPattern: {
688
- multiline: !0,
689
- consistent: !0,
690
- minProperties: 3
691
- },
692
- ImportDeclaration: {
693
- consistent: !0,
694
- multiline: !0
695
- },
696
- ExportDeclaration: {
697
- consistent: !0,
698
- multiline: !0
699
- }
700
- }
701
- ],
702
- "@stylistic/object-property-newline": [
703
- "error",
704
- {
705
- allowAllPropertiesOnSameLine: !0
706
- }
707
- ],
708
- "@stylistic/multiline-comment-style": [
709
- "error",
710
- "separate-lines",
711
- {
712
- checkJSDoc: !1
713
- }
714
- ],
715
- "@stylistic/implicit-arrow-linebreak": [
716
- "error",
717
- "beside"
718
- ],
719
- "@stylistic/no-extra-semi": "error",
720
- "@stylistic/array-element-newline": [
721
- "error",
722
- "consistent"
723
- ],
724
- "@stylistic/array-bracket-newline": [
725
- "error",
726
- {
727
- multiline: !0
728
- }
729
- ],
730
- "@stylistic/function-paren-newline": ["error", "multiline-arguments"],
731
- "@stylistic/padding-line-between-statements": [
732
- "error",
733
- {
734
- blankLine: "always",
735
- prev: "*",
736
- next: [
737
- "block",
738
- "multiline-block-like",
739
- "type",
740
- "interface",
741
- "enum",
742
- "function",
743
- "function-overload"
744
- ]
745
- },
746
- {
747
- blankLine: "always",
748
- prev: [
749
- "block",
750
- "multiline-block-like",
751
- "type",
752
- "interface",
753
- "enum",
754
- "function",
755
- "function-overload"
756
- ],
757
- next: "*"
758
- }
759
- ],
760
- "@stylistic/jsx-pascal-case": [
761
- "error",
762
- {
763
- allowAllCaps: !1,
764
- allowLeadingUnderscore: !1,
765
- allowNamespace: !1,
766
- ignore: []
767
- }
768
- ],
769
- "@stylistic/switch-colon-spacing": [
770
- "error",
771
- {
772
- before: !1,
773
- after: !0
774
- }
775
- ],
776
- "@stylistic/no-extra-parens": [
777
- "error",
778
- "all",
779
- {
780
- nestedBinaryExpressions: !1,
781
- ternaryOperandBinaryExpressions: !1,
782
- ignoreJSX: "multi-line"
783
- }
784
- ],
785
- "@stylistic/no-multiple-empty-lines": [
786
- "error",
787
- {
788
- max: 1,
789
- maxBOF: 0,
790
- maxEOF: 0
791
- }
792
- ],
793
- "@stylistic/generator-star-spacing": [
794
- "error",
795
- {
796
- after: !0,
797
- before: !1
798
- }
799
- ],
800
- "@stylistic/yield-star-spacing": [
801
- "error",
802
- {
803
- after: !0,
804
- before: !1
805
- }
806
- ],
807
- "@stylistic/max-statements-per-line": [
808
- "error",
809
- {
810
- max: 1
811
- }
812
- ],
813
- // ============================================================================
814
- // ESLint Comments Rules
815
- // Rules for managing eslint-disable comments
816
- // ============================================================================
817
- "@eslint-community/eslint-comments/no-unlimited-disable": "off",
818
- "@eslint-community/eslint-comments/disable-enable-pair": "off"
819
- }
98
+ message: "Use `globalThis` instead.",
99
+ name: "global"
820
100
  },
821
101
  {
822
- files: ["**/*.css"],
823
- languageOptions: {
824
- parser: e.parserPlain
825
- },
826
- plugins: {
827
- format: e
828
- },
829
- rules: {
830
- "format/prettier": [
831
- "error",
832
- {
833
- ...r,
834
- parser: "css"
835
- }
836
- ]
837
- }
102
+ message: "Use `globalThis` instead.",
103
+ name: "self"
104
+ }
105
+ ],
106
+ "no-restricted-properties": [
107
+ "error",
108
+ {
109
+ message: "Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.",
110
+ property: "__proto__"
838
111
  },
839
112
  {
840
- files: ["**/*.scss"],
841
- languageOptions: {
842
- parser: e.parserPlain
843
- },
844
- plugins: {
845
- format: e
846
- },
847
- rules: {
848
- "format/prettier": [
849
- "error",
850
- {
851
- ...r,
852
- parser: "scss"
853
- }
854
- ]
855
- }
113
+ message: "Use `Object.defineProperty` instead.",
114
+ property: "__defineGetter__"
856
115
  },
857
116
  {
858
- files: ["**/*.html"],
859
- languageOptions: {
860
- parser: e.parserPlain
861
- },
862
- plugins: {
863
- format: e
864
- },
865
- rules: {
866
- "format/prettier": [
867
- "error",
868
- {
869
- ...r,
870
- parser: "html"
871
- }
872
- ]
873
- }
117
+ message: "Use `Object.defineProperty` instead.",
118
+ property: "__defineSetter__"
874
119
  },
875
120
  {
876
- files: ["**/*.json"],
877
- languageOptions: {
878
- parser: e.parserPlain
879
- },
880
- plugins: {
881
- format: e
882
- },
883
- rules: {
884
- "format/prettier": [
885
- "error",
886
- {
887
- ...r,
888
- parser: "json"
889
- }
890
- ]
891
- }
121
+ message: "Use `Object.getOwnPropertyDescriptor` instead.",
122
+ property: "__lookupGetter__"
892
123
  },
893
124
  {
894
- files: ["**/*.jsonc"],
895
- languageOptions: {
896
- parser: e.parserPlain
897
- },
898
- plugins: {
899
- format: e
900
- },
901
- rules: {
902
- "format/prettier": [
903
- "error",
904
- {
905
- ...r,
906
- parser: "jsonc"
907
- }
908
- ]
909
- }
125
+ message: "Use `Object.getOwnPropertyDescriptor` instead.",
126
+ property: "__lookupSetter__"
127
+ }
128
+ ],
129
+ "no-restricted-syntax": [
130
+ "error",
131
+ "TSEnumDeclaration[const=true]",
132
+ "TSExportAssignment",
133
+ {
134
+ selector: "JSXAttribute[name.name='ref'][value.type='Literal']",
135
+ message: "Use callback refs or useRef instead of string refs."
910
136
  },
911
137
  {
912
- files: ["**/*.md"],
913
- languageOptions: {
914
- parser: e.parserPlain
915
- },
916
- plugins: {
917
- format: e
918
- },
919
- rules: {
920
- "format/prettier": [
921
- "error",
922
- {
923
- ...r,
924
- parser: "markdown",
925
- embeddedLanguageFormatting: "off",
926
- printWidth: 320
927
- }
928
- ]
929
- }
138
+ selector: "JSXAttribute[name.name='ref'] > JSXExpressionContainer > Literal",
139
+ message: "Use callback refs or useRef instead of string refs."
930
140
  },
931
141
  {
932
- files: ["**/*.mdx"],
933
- languageOptions: {
934
- parser: e.parserPlain
142
+ selector: "JSXAttribute[name.name='ref'] > JSXExpressionContainer > TemplateLiteral",
143
+ message: "Use callback refs or useRef instead of string refs."
144
+ }
145
+ ],
146
+ "no-self-compare": "error",
147
+ "no-sequences": "error",
148
+ "no-template-curly-in-string": "error",
149
+ "no-throw-literal": "error",
150
+ "no-undef-init": "error",
151
+ "no-unmodified-loop-condition": "error",
152
+ "no-unneeded-ternary": ["error", { defaultAssignment: !1 }],
153
+ "no-unreachable": "error",
154
+ "no-unreachable-loop": "error",
155
+ "no-unused-vars": "off",
156
+ "no-useless-call": "error",
157
+ "no-useless-computed-key": "error",
158
+ "no-useless-concat": "error",
159
+ "no-useless-rename": "error",
160
+ "no-useless-return": "error",
161
+ "object-shorthand": [
162
+ "error",
163
+ "always",
164
+ {
165
+ avoidQuotes: !0,
166
+ ignoreConstructors: !1
167
+ }
168
+ ],
169
+ "one-var": ["error", { initialized: "never" }],
170
+ "prefer-arrow-callback": ["error", {
171
+ allowNamedFunctions: !1,
172
+ allowUnboundThis: !0
173
+ }],
174
+ "prefer-const": ["error", {
175
+ destructuring: "all",
176
+ ignoreReadBeforeAssign: !0
177
+ }],
178
+ "prefer-destructuring": "error",
179
+ "prefer-exponentiation-operator": "error",
180
+ "prefer-named-capture-group": "error",
181
+ "prefer-numeric-literals": "error",
182
+ "prefer-object-has-own": "error",
183
+ "prefer-object-spread": "error",
184
+ "prefer-promise-reject-errors": "error",
185
+ "prefer-regex-literals": ["error", { disallowRedundantWrapping: !0 }],
186
+ "prefer-template": "error",
187
+ "require-atomic-updates": "error",
188
+ "require-await": "error",
189
+ "symbol-description": "error",
190
+ "unicode-bom": ["error", "never"],
191
+ "use-isnan": ["error", {
192
+ enforceForIndexOf: !0,
193
+ enforceForSwitchCase: !0
194
+ }],
195
+ "valid-typeof": ["error", { requireStringLiterals: !0 }],
196
+ yoda: ["error", "never"]
197
+ }, A = {
198
+ "@typescript-eslint/array-type": ["error", {
199
+ default: "array-simple",
200
+ readonly: "array-simple"
201
+ }],
202
+ "@typescript-eslint/consistent-type-assertions": ["error", {
203
+ assertionStyle: "as",
204
+ objectLiteralTypeAssertions: "allow"
205
+ }],
206
+ "@typescript-eslint/consistent-type-definitions": ["error", "interface"],
207
+ "@typescript-eslint/max-params": ["error", { max: 5 }],
208
+ "@typescript-eslint/method-signature-style": ["error", "property"],
209
+ "@typescript-eslint/no-dynamic-delete": "off",
210
+ "@typescript-eslint/no-empty-object-type": ["error", { allowInterfaces: "always" }],
211
+ "@typescript-eslint/no-explicit-any": "off",
212
+ "@typescript-eslint/no-import-type-side-effects": "error",
213
+ "@typescript-eslint/no-invalid-void-type": "off",
214
+ "@typescript-eslint/no-non-null-assertion": "off",
215
+ "@typescript-eslint/no-this-alias": "off",
216
+ "@typescript-eslint/no-unsafe-assignment": "off",
217
+ "@typescript-eslint/no-unsafe-call": "off",
218
+ "@typescript-eslint/no-unsafe-function-type": "off",
219
+ "@typescript-eslint/no-unsafe-member-access": "off",
220
+ "@typescript-eslint/no-unsafe-return": "off",
221
+ "@typescript-eslint/no-unused-expressions": ["error", { enforceForJSX: !0 }],
222
+ "@typescript-eslint/no-unused-vars": "off"
223
+ }, C = {
224
+ "import-lite/consistent-type-specifier-style": ["error", "top-level"],
225
+ "import-lite/first": "error",
226
+ "import-lite/newline-after-import": ["error", { count: 1 }],
227
+ "import-lite/no-duplicates": "error",
228
+ "import-lite/no-mutable-exports": "error",
229
+ "import-lite/no-named-default": "error"
230
+ }, D = {
231
+ "unicorn/consistent-empty-array-spread": "error",
232
+ "unicorn/error-message": "error",
233
+ "unicorn/escape-case": "error",
234
+ "unicorn/filename-case": ["error", {
235
+ case: "kebabCase",
236
+ ignore: [
237
+ "README.md",
238
+ "AGENTS.md",
239
+ "CLAUDE.md"
240
+ ]
241
+ }],
242
+ "unicorn/import-style": ["error", {
243
+ checkDynamicImport: !1,
244
+ extendDefaultStyles: !1
245
+ }],
246
+ "unicorn/new-for-builtins": "error",
247
+ "unicorn/no-array-for-each": "error",
248
+ "unicorn/no-array-reduce": "off",
249
+ "unicorn/no-console-spaces": "error",
250
+ "unicorn/no-empty-file": "error",
251
+ "unicorn/no-for-loop": "error",
252
+ "unicorn/no-instanceof-builtins": "error",
253
+ "unicorn/no-nested-ternary": "off",
254
+ "unicorn/no-new-array": "error",
255
+ "unicorn/no-new-buffer": "error",
256
+ "unicorn/no-null": "off",
257
+ "unicorn/no-unnecessary-await": "error",
258
+ "unicorn/no-unnecessary-polyfills": "error",
259
+ "unicorn/no-unused-properties": "error",
260
+ "unicorn/no-useless-promise-resolve-reject": "error",
261
+ "unicorn/no-useless-spread": "error",
262
+ "unicorn/no-useless-switch-case": "error",
263
+ "unicorn/no-useless-undefined": "error",
264
+ "unicorn/number-literal-case": "error",
265
+ "unicorn/prefer-array-find": "error",
266
+ "unicorn/prefer-array-flat": "error",
267
+ "unicorn/prefer-array-flat-map": "error",
268
+ "unicorn/prefer-array-index-of": "error",
269
+ "unicorn/prefer-array-some": "error",
270
+ "unicorn/prefer-date-now": "error",
271
+ "unicorn/prefer-default-parameters": "error",
272
+ "unicorn/prefer-dom-node-text-content": "error",
273
+ "unicorn/prefer-event-target": "off",
274
+ "unicorn/prefer-includes": "error",
275
+ "unicorn/prefer-logical-operator-over-ternary": "error",
276
+ "unicorn/prefer-node-protocol": "error",
277
+ "unicorn/prefer-number-properties": "error",
278
+ "unicorn/prefer-object-from-entries": "error",
279
+ "unicorn/prefer-single-call": "error",
280
+ "unicorn/prefer-string-raw": "error",
281
+ "unicorn/prefer-string-starts-ends-with": "error",
282
+ "unicorn/prefer-string-trim-start-end": "error",
283
+ "unicorn/prefer-type-error": "error",
284
+ "unicorn/prevent-abbreviations": "off",
285
+ "unicorn/require-module-specifiers": "off",
286
+ "unicorn/text-encoding-identifier-case": ["error", { withDash: !0 }],
287
+ "unicorn/throw-new-error": "error"
288
+ }, I = {
289
+ "react-dom/no-dangerously-set-innerhtml": "error",
290
+ "react-dom/no-dangerously-set-innerhtml-with-children": "error",
291
+ "react-dom/no-find-dom-node": "error",
292
+ "react-dom/no-flush-sync": "error",
293
+ "react-dom/no-hydrate": "error",
294
+ "react-dom/no-missing-button-type": "error",
295
+ "react-dom/no-missing-iframe-sandbox": "error",
296
+ "react-dom/no-namespace": "error",
297
+ "react-dom/no-render": "error",
298
+ "react-dom/no-render-return-value": "error",
299
+ "react-dom/no-script-url": "error",
300
+ "react-dom/no-string-style-prop": "error",
301
+ "react-dom/no-unknown-property": ["error", { ignore: ["css"] }],
302
+ "react-dom/no-unsafe-iframe-sandbox": "error",
303
+ "react-dom/no-unsafe-target-blank": "error",
304
+ "react-dom/no-use-form-state": "error",
305
+ "react-dom/no-void-elements-with-children": "error",
306
+ "@eslint-react/set-state-in-effect": "off",
307
+ "@eslint-react/jsx-key-before-spread": "error",
308
+ "@eslint-react/jsx-no-comment-textnodes": "error",
309
+ "@eslint-react/jsx-shorthand-boolean": "error",
310
+ "react-naming-convention/context-name": "error",
311
+ "@eslint-react/no-access-state-in-setstate": "error",
312
+ "@eslint-react/no-array-index-key": "error",
313
+ "@eslint-react/no-children-for-each": "off",
314
+ "@eslint-react/no-children-map": "off",
315
+ "@eslint-react/no-children-to-array": "off",
316
+ "@eslint-react/no-class-component": "error",
317
+ "@eslint-react/no-clone-element": "off",
318
+ "@eslint-react/no-component-will-mount": "error",
319
+ "@eslint-react/no-component-will-receive-props": "error",
320
+ "@eslint-react/no-component-will-update": "error",
321
+ "@eslint-react/no-context-provider": "error",
322
+ "@eslint-react/no-create-ref": "error",
323
+ "@eslint-react/no-direct-mutation-state": "error",
324
+ "@eslint-react/no-duplicate-key": "error",
325
+ "@eslint-react/no-forward-ref": "error",
326
+ "@eslint-react/no-missing-component-display-name": "error",
327
+ "@eslint-react/no-missing-key": "error",
328
+ "@eslint-react/no-nested-component-definitions": "error",
329
+ "@eslint-react/no-redundant-should-component-update": "error",
330
+ "@eslint-react/no-set-state-in-component-did-mount": "error",
331
+ "@eslint-react/no-set-state-in-component-did-update": "error",
332
+ "@eslint-react/no-set-state-in-component-will-update": "error",
333
+ "@eslint-react/no-unnecessary-use-callback": "error",
334
+ "@eslint-react/no-unnecessary-use-memo": "error",
335
+ "@eslint-react/no-unnecessary-use-prefix": "error",
336
+ "@eslint-react/no-unsafe-component-will-mount": "error",
337
+ "@eslint-react/no-unsafe-component-will-receive-props": "error",
338
+ "@eslint-react/no-unsafe-component-will-update": "error",
339
+ "@eslint-react/no-unstable-context-value": "error",
340
+ "@eslint-react/no-unstable-default-props": "error",
341
+ "@eslint-react/no-unused-class-component-members": "error",
342
+ "@eslint-react/no-unused-state": "error",
343
+ "@eslint-react/no-use-context": "error",
344
+ "@eslint-react/unsupported-syntax": "error",
345
+ "@eslint-react/use-state": ["error", {
346
+ enforceAssignment: !1,
347
+ enforceLazyInitialization: !0,
348
+ enforceSetterName: !1
349
+ }],
350
+ "react-web-api/no-leaked-event-listener": "error",
351
+ "react-web-api/no-leaked-interval": "error",
352
+ "react-web-api/no-leaked-resize-observer": "error",
353
+ "react-web-api/no-leaked-timeout": "error"
354
+ }, T = { "react-hooks/exhaustive-deps": ["error", { additionalHooks: "^use(Deep|Shallow|Isomorphic)|^useDidUpdate" }] }, U = {
355
+ "jsdoc/check-line-alignment": [
356
+ "error",
357
+ "always",
358
+ { tags: [] }
359
+ ],
360
+ "jsdoc/multiline-blocks": ["error", { noSingleLineBlocks: !0 }],
361
+ "jsdoc/no-blank-blocks": "error",
362
+ "jsdoc/tag-lines": [
363
+ "error",
364
+ "never",
365
+ { startLines: 1 }
366
+ ]
367
+ }, F = {
368
+ "antfu/consistent-chaining": "error",
369
+ "antfu/consistent-list-newline": "error",
370
+ "antfu/curly": "error",
371
+ "antfu/if-newline": "error",
372
+ "antfu/indent-unindent": "error",
373
+ "antfu/top-level-function": "error"
374
+ }, J = {
375
+ "unused-imports/no-unused-imports": "error",
376
+ "unused-imports/no-unused-vars": ["error", {
377
+ args: "after-used",
378
+ argsIgnorePattern: "^_",
379
+ vars: "all",
380
+ varsIgnorePattern: "^_"
381
+ }]
382
+ }, X = {
383
+ "perfectionist/sort-exports": ["error", {
384
+ order: "asc",
385
+ type: "natural"
386
+ }],
387
+ "perfectionist/sort-imports": ["error", {
388
+ groups: [
389
+ "type-import",
390
+ [
391
+ "type-internal",
392
+ "type-parent",
393
+ "type-sibling",
394
+ "type-index"
395
+ ],
396
+ "value-builtin",
397
+ "value-external",
398
+ "value-internal",
399
+ [
400
+ "value-parent",
401
+ "value-sibling",
402
+ "value-index"
403
+ ],
404
+ ["value-side-effect", "value-side-effect-style"],
405
+ "unknown"
406
+ ],
407
+ newlinesBetween: 1,
408
+ order: "asc",
409
+ type: "natural"
410
+ }],
411
+ "perfectionist/sort-named-exports": ["error", {
412
+ groups: ["value-export", "type-export"],
413
+ newlinesBetween: "ignore",
414
+ order: "asc",
415
+ type: "natural"
416
+ }],
417
+ "perfectionist/sort-named-imports": ["error", {
418
+ groups: ["value-import", "type-import"],
419
+ newlinesBetween: "ignore",
420
+ order: "asc",
421
+ type: "natural"
422
+ }],
423
+ "perfectionist/sort-jsx-props": ["error", {
424
+ type: "natural",
425
+ order: "asc",
426
+ ignoreCase: !0,
427
+ groups: [
428
+ "reserved",
429
+ "shorthand-prop",
430
+ "unknown",
431
+ "multiline-prop",
432
+ "callback"
433
+ ],
434
+ customGroups: [{
435
+ groupName: "reserved",
436
+ elementNamePattern: "^(key|ref)$"
437
+ }, {
438
+ groupName: "callback",
439
+ elementNamePattern: "^on.+"
440
+ }]
441
+ }]
442
+ }, q = {
443
+ "@stylistic/array-bracket-newline": ["error", { multiline: !0 }],
444
+ "@stylistic/array-element-newline": ["error", "consistent"],
445
+ "@stylistic/arrow-parens": ["error", "as-needed"],
446
+ "@stylistic/curly-newline": ["error", { consistent: !0 }],
447
+ "@stylistic/function-paren-newline": ["error", "multiline-arguments"],
448
+ "@stylistic/generator-star-spacing": ["error", {
449
+ after: !0,
450
+ before: !1
451
+ }],
452
+ "@stylistic/implicit-arrow-linebreak": ["error", "beside"],
453
+ "@stylistic/jsx-max-props-per-line": ["error", { maximum: {
454
+ multi: 1,
455
+ single: 5
456
+ } }],
457
+ "@stylistic/jsx-newline": ["error", {
458
+ allowMultilines: !0,
459
+ prevent: !0
460
+ }],
461
+ "@stylistic/jsx-self-closing-comp": ["error", {
462
+ component: !0,
463
+ html: !0
464
+ }],
465
+ "@stylistic/line-comment-position": ["error", { position: "above" }],
466
+ "@stylistic/max-statements-per-line": ["error", { max: 1 }],
467
+ "@stylistic/multiline-comment-style": [
468
+ "error",
469
+ "separate-lines",
470
+ { checkJSDoc: !1 }
471
+ ],
472
+ "@stylistic/newline-per-chained-call": ["error", { ignoreChainWithDepth: 6 }],
473
+ "@stylistic/no-extra-parens": [
474
+ "error",
475
+ "all",
476
+ {
477
+ ignoreJSX: "multi-line",
478
+ nestedBinaryExpressions: !1,
479
+ ternaryOperandBinaryExpressions: !1
480
+ }
481
+ ],
482
+ "@stylistic/no-extra-semi": "error",
483
+ "@stylistic/no-multiple-empty-lines": ["error", {
484
+ max: 1,
485
+ maxBOF: 0,
486
+ maxEOF: 0
487
+ }],
488
+ "@stylistic/object-curly-newline": ["error", {
489
+ ExportDeclaration: {
490
+ consistent: !0,
491
+ multiline: !0
492
+ },
493
+ ImportDeclaration: {
494
+ consistent: !0,
495
+ multiline: !0
496
+ },
497
+ ObjectExpression: {
498
+ consistent: !0,
499
+ minProperties: 3,
500
+ multiline: !0
501
+ },
502
+ ObjectPattern: {
503
+ consistent: !0,
504
+ minProperties: 3,
505
+ multiline: !0
506
+ }
507
+ }],
508
+ "@stylistic/object-property-newline": ["error", { allowAllPropertiesOnSameLine: !0 }],
509
+ "@stylistic/padding-line-between-statements": [
510
+ "error",
511
+ {
512
+ blankLine: "always",
513
+ next: [
514
+ "block",
515
+ "multiline-block-like",
516
+ "type",
517
+ "interface",
518
+ "enum",
519
+ "function",
520
+ "function-overload"
521
+ ],
522
+ prev: "*"
523
+ },
524
+ {
525
+ blankLine: "always",
526
+ next: "*",
527
+ prev: [
528
+ "block",
529
+ "multiline-block-like",
530
+ "type",
531
+ "interface",
532
+ "enum",
533
+ "function",
534
+ "function-overload"
535
+ ]
536
+ }
537
+ ],
538
+ "@stylistic/switch-colon-spacing": ["error", {
539
+ after: !0,
540
+ before: !1
541
+ }],
542
+ "@stylistic/yield-star-spacing": ["error", {
543
+ after: !0,
544
+ before: !1
545
+ }]
546
+ }, N = {
547
+ "@eslint-community/eslint-comments/disable-enable-pair": "off",
548
+ "@eslint-community/eslint-comments/no-unlimited-disable": "off"
549
+ };
550
+ function e(r, s) {
551
+ const { parser: i, additionalOptions: a = {} } = s;
552
+ return {
553
+ files: [r],
554
+ languageOptions: { parser: o.parserPlain },
555
+ plugins: { format: o },
556
+ rules: { "format/prettier": ["error", {
557
+ ...L,
558
+ parser: i,
559
+ ...a
560
+ }] }
561
+ };
562
+ }
563
+ var W = [
564
+ "**/*.ts",
565
+ "**/*.tsx",
566
+ "**/*.mts",
567
+ "**/*.cts",
568
+ "**/*.js",
569
+ "**/*.jsx",
570
+ "**/*.mjs",
571
+ "**/*.cjs"
572
+ ], B = [
573
+ "**/*.ts",
574
+ "**/*.mts",
575
+ "**/*.cts",
576
+ "**/*.js",
577
+ "**/*.jsx",
578
+ "**/*.mjs",
579
+ "**/*.cjs"
580
+ ], n = ["**/router.gen.ts"];
581
+ function me(...r) {
582
+ return O(g({
583
+ root: !0,
584
+ strict: !0
585
+ }), {
586
+ files: W,
587
+ ignores: n,
588
+ extends: [
589
+ m.configs.recommended,
590
+ t.configs.strict,
591
+ t.configs.stylistic,
592
+ u.configs["recommended-typescript"],
593
+ k.configs.flat.recommended,
594
+ w.configs.recommended,
595
+ _.configs.recommended,
596
+ p.recommended,
597
+ R.configs["flat/recommended"],
598
+ f.configs.customize({
599
+ blockSpacing: !0,
600
+ braceStyle: "1tbs",
601
+ commaDangle: "never",
602
+ indent: 2,
603
+ jsx: !0,
604
+ quoteProps: "as-needed",
605
+ quotes: "double",
606
+ semi: !0,
607
+ severity: "error"
608
+ }),
609
+ d.configs["flat/recommended"],
610
+ y.configs["flat/recommended"]
611
+ ],
612
+ plugins: {
613
+ "react-dom": h,
614
+ "react-naming-convention": j,
615
+ "react-web-api": S,
616
+ antfu: b,
617
+ jsdoc: v,
618
+ "local-react": l,
619
+ perfectionist: x,
620
+ "unused-imports": E
621
+ },
622
+ rules: {
623
+ ...P,
624
+ ...A,
625
+ ...C,
626
+ ...D,
627
+ ...I,
628
+ ...c,
629
+ ...T,
630
+ ...F,
631
+ ...J,
632
+ ...X,
633
+ ...q,
634
+ ...U,
635
+ ...N
636
+ }
637
+ }, {
638
+ files: B,
639
+ ignores: n,
640
+ rules: { "no-restricted-syntax": [
641
+ "error",
642
+ "TSEnumDeclaration[const=true]",
643
+ "TSExportAssignment",
644
+ {
645
+ selector: "JSXAttribute[name.name='ref'][value.type='Literal']",
646
+ message: "Use callback refs or useRef instead of string refs."
935
647
  },
936
- plugins: {
937
- format: e
648
+ {
649
+ selector: "JSXAttribute[name.name='ref'] > JSXExpressionContainer > Literal",
650
+ message: "Use callback refs or useRef instead of string refs."
938
651
  },
939
- rules: {
940
- "format/prettier": [
941
- "error",
942
- {
943
- ...r,
944
- parser: "mdx",
945
- embeddedLanguageFormatting: "off",
946
- printWidth: 320
947
- }
948
- ]
949
- }
950
- },
951
- ...t
952
- );
652
+ {
653
+ selector: "JSXAttribute[name.name='ref'] > JSXExpressionContainer > TemplateLiteral",
654
+ message: "Use callback refs or useRef instead of string refs."
655
+ },
656
+ "JSXElement",
657
+ "JSXFragment"
658
+ ] }
659
+ }, e("**/*.css", { parser: "css" }), e("**/*.scss", { parser: "scss" }), e("**/*.html", { parser: "html" }), e("**/*.json", { parser: "json" }), e("**/*.jsonc", { parser: "jsonc" }), e("**/*.md", {
660
+ parser: "markdown",
661
+ additionalOptions: {
662
+ embeddedLanguageFormatting: "off",
663
+ printWidth: 320
664
+ }
665
+ }), e("**/*.mdx", {
666
+ parser: "mdx",
667
+ additionalOptions: {
668
+ embeddedLanguageFormatting: "off",
669
+ printWidth: 320
670
+ }
671
+ }), ...r);
953
672
  }
954
673
  export {
955
- T as defineEslintConfig
674
+ me as defineEslintConfig
956
675
  };