@luxass/eslint-config 4.0.0-beta.3 → 4.0.0-beta.5

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 (95) hide show
  1. package/README.md +2 -2
  2. package/dist/{chunk-ZTOORI5P.mjs → chunk-24LIS25A.mjs} +5 -2
  3. package/dist/{chunk-G6V66ILI.mjs → chunk-2XXYFOA7.mjs} +1 -1
  4. package/dist/{chunk-NRBPL3VW.mjs → chunk-AOKXEX6L.mjs} +7 -3
  5. package/dist/{chunk-6SYSH62F.mjs → chunk-C22IQSUX.mjs} +1 -1
  6. package/dist/{chunk-LTZVAV5Y.mjs → chunk-DCAOYLG4.mjs} +4 -5
  7. package/dist/{chunk-BTZJDCAN.mjs → chunk-ETF3RTA4.mjs} +1 -1
  8. package/dist/{chunk-R3GRT6P5.mjs → chunk-F2BEG6UB.mjs} +4 -4
  9. package/dist/{chunk-AM4JLG65.mjs → chunk-N6ELMARC.mjs} +3 -3
  10. package/dist/chunk-PMOB43IB.mjs +77 -0
  11. package/dist/{chunk-DCGVBPLE.mjs → chunk-R5QPJQWU.mjs} +1 -1
  12. package/dist/chunk-TJ6SQTNG.mjs +277 -0
  13. package/dist/{chunk-WVJWB3E2.mjs → chunk-VJYICA7B.mjs} +1 -1
  14. package/dist/{chunk-5CXAPQV3.mjs → chunk-YPPGNIVG.mjs} +4 -18
  15. package/dist/{chunk-WICAFKQ5.mjs → chunk-ZCBXPKVL.mjs} +3 -4
  16. package/dist/configs/astro.cjs +144 -0
  17. package/dist/configs/astro.d.cts +14 -0
  18. package/dist/configs/astro.d.ts +14 -0
  19. package/dist/configs/astro.mjs +8 -0
  20. package/dist/configs/comments.d.cts +1 -1
  21. package/dist/configs/comments.d.ts +1 -1
  22. package/dist/configs/ignores.cjs +1 -0
  23. package/dist/configs/ignores.d.cts +1 -1
  24. package/dist/configs/ignores.d.ts +1 -1
  25. package/dist/configs/ignores.mjs +2 -2
  26. package/dist/configs/imports.d.cts +1 -1
  27. package/dist/configs/imports.d.ts +1 -1
  28. package/dist/configs/index.cjs +247 -360
  29. package/dist/configs/index.d.cts +2 -1
  30. package/dist/configs/index.d.ts +2 -1
  31. package/dist/configs/index.mjs +21 -17
  32. package/dist/configs/javascript.cjs +1 -0
  33. package/dist/configs/javascript.d.cts +1 -1
  34. package/dist/configs/javascript.d.ts +1 -1
  35. package/dist/configs/javascript.mjs +2 -2
  36. package/dist/configs/jsdoc.d.cts +1 -1
  37. package/dist/configs/jsdoc.d.ts +1 -1
  38. package/dist/configs/jsonc.cjs +1 -0
  39. package/dist/configs/jsonc.d.cts +1 -1
  40. package/dist/configs/jsonc.d.ts +1 -1
  41. package/dist/configs/jsonc.mjs +2 -2
  42. package/dist/configs/markdown.cjs +1 -0
  43. package/dist/configs/markdown.d.cts +1 -1
  44. package/dist/configs/markdown.d.ts +1 -1
  45. package/dist/configs/markdown.mjs +2 -2
  46. package/dist/configs/nextjs.cjs +4 -4
  47. package/dist/configs/nextjs.d.cts +1 -1
  48. package/dist/configs/nextjs.d.ts +1 -1
  49. package/dist/configs/nextjs.mjs +2 -2
  50. package/dist/configs/node.d.cts +1 -1
  51. package/dist/configs/node.d.ts +1 -1
  52. package/dist/configs/perfectionist.d.cts +1 -1
  53. package/dist/configs/perfectionist.d.ts +1 -1
  54. package/dist/configs/react.cjs +161 -349
  55. package/dist/configs/react.d.cts +2 -2
  56. package/dist/configs/react.d.ts +2 -2
  57. package/dist/configs/react.mjs +2 -2
  58. package/dist/configs/sort.d.cts +1 -1
  59. package/dist/configs/sort.d.ts +1 -1
  60. package/dist/configs/stylistic.cjs +3 -4
  61. package/dist/configs/stylistic.d.cts +1 -1
  62. package/dist/configs/stylistic.d.ts +1 -1
  63. package/dist/configs/stylistic.mjs +1 -1
  64. package/dist/configs/tailwindcss.cjs +1 -0
  65. package/dist/configs/tailwindcss.d.cts +1 -1
  66. package/dist/configs/tailwindcss.d.ts +1 -1
  67. package/dist/configs/tailwindcss.mjs +2 -2
  68. package/dist/configs/test.cjs +1 -0
  69. package/dist/configs/test.d.cts +1 -1
  70. package/dist/configs/test.d.ts +1 -1
  71. package/dist/configs/test.mjs +2 -2
  72. package/dist/configs/typescript.cjs +1 -0
  73. package/dist/configs/typescript.d.cts +1 -1
  74. package/dist/configs/typescript.d.ts +1 -1
  75. package/dist/configs/typescript.mjs +2 -2
  76. package/dist/configs/unicorn.d.cts +1 -1
  77. package/dist/configs/unicorn.d.ts +1 -1
  78. package/dist/configs/unocss.d.cts +1 -1
  79. package/dist/configs/unocss.d.ts +1 -1
  80. package/dist/configs/vue.cjs +5 -1
  81. package/dist/configs/vue.d.cts +1 -1
  82. package/dist/configs/vue.d.ts +1 -1
  83. package/dist/configs/vue.mjs +2 -2
  84. package/dist/configs/yaml.cjs +7 -2
  85. package/dist/configs/yaml.d.cts +1 -1
  86. package/dist/configs/yaml.d.ts +1 -1
  87. package/dist/configs/yaml.mjs +2 -2
  88. package/dist/index.cjs +266 -382
  89. package/dist/index.d.cts +5 -6
  90. package/dist/index.d.ts +5 -6
  91. package/dist/index.mjs +44 -30
  92. package/dist/{types-3xH9kIfB.d.ts → types-d6wL74Fv.d.ts} +15 -2
  93. package/package.json +26 -6
  94. package/dist/chunk-OGH5EICB.mjs +0 -465
  95. /package/dist/{chunk-QMWKLGGE.mjs → chunk-FKAOMYGL.mjs} +0 -0
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # @luxass/eslint-config
2
2
 
3
3
  > [!IMPORTANT]
4
- > The configuration is not currently finished, and the old config should be used. You can find it [here](https://github.com/luxass/eslint-config-legacy)
5
-
4
+ > The configuration is not currently finished.
5
+ > I could change at any moment.
6
6
 
7
7
  ## ✨ Features
8
8
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GLOB_VUE
3
- } from "./chunk-5CXAPQV3.mjs";
3
+ } from "./chunk-YPPGNIVG.mjs";
4
4
  import {
5
5
  interop
6
6
  } from "./chunk-4VUK6ART.mjs";
@@ -15,6 +15,9 @@ async function vue(options = {}) {
15
15
  interop(import("eslint-plugin-vue")),
16
16
  interop(import("vue-eslint-parser"))
17
17
  ]);
18
+ const {
19
+ indent = 2
20
+ } = typeof stylistic === "boolean" ? {} : stylistic;
18
21
  return [
19
22
  {
20
23
  name: "luxass:vue:setup",
@@ -66,7 +69,7 @@ async function vue(options = {}) {
66
69
  "vue/dot-location": ["error", "property"],
67
70
  "vue/dot-notation": ["error", { allowKeywords: true }],
68
71
  "vue/eqeqeq": ["error", "smart"],
69
- "vue/html-indent": ["error", 2],
72
+ "vue/html-indent": ["error", indent],
70
73
  "vue/html-quotes": ["error", "double"],
71
74
  "vue/max-attributes-per-line": "off",
72
75
  "vue/multi-word-component-names": "off",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  GLOB_HTML,
3
3
  GLOB_SRC
4
- } from "./chunk-5CXAPQV3.mjs";
4
+ } from "./chunk-YPPGNIVG.mjs";
5
5
  import {
6
6
  interop
7
7
  } from "./chunk-4VUK6ART.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GLOB_YAML
3
- } from "./chunk-5CXAPQV3.mjs";
3
+ } from "./chunk-YPPGNIVG.mjs";
4
4
  import {
5
5
  interop
6
6
  } from "./chunk-4VUK6ART.mjs";
@@ -15,6 +15,10 @@ async function yaml(options = {}) {
15
15
  interop(import("eslint-plugin-yml")),
16
16
  interop(import("yaml-eslint-parser"))
17
17
  ]);
18
+ const {
19
+ indent = 2,
20
+ quotes = "double"
21
+ } = typeof stylistic === "boolean" ? {} : stylistic;
18
22
  return [
19
23
  {
20
24
  name: "luxass:yaml:setup",
@@ -44,12 +48,12 @@ async function yaml(options = {}) {
44
48
  "yaml/flow-mapping-curly-spacing": "error",
45
49
  "yaml/flow-sequence-bracket-newline": "error",
46
50
  "yaml/flow-sequence-bracket-spacing": "error",
47
- "yaml/indent": ["error", 2],
51
+ "yaml/indent": ["error", indent === "tab" ? 2 : indent],
48
52
  "yaml/key-spacing": "error",
49
53
  "yaml/no-tab-indent": "error",
50
54
  "yaml/quotes": [
51
55
  "error",
52
- { avoidEscape: false, prefer: "double" }
56
+ { avoidEscape: false, prefer: quotes }
53
57
  ],
54
58
  "yaml/spaced-comment": "error"
55
59
  } : {},
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GLOB_TESTS
3
- } from "./chunk-5CXAPQV3.mjs";
3
+ } from "./chunk-YPPGNIVG.mjs";
4
4
  import {
5
5
  interop
6
6
  } from "./chunk-4VUK6ART.mjs";
@@ -2,7 +2,7 @@ import {
2
2
  GLOB_NEXTJS_OG,
3
3
  GLOB_NEXTJS_ROUTES,
4
4
  GLOB_SRC
5
- } from "./chunk-5CXAPQV3.mjs";
5
+ } from "./chunk-YPPGNIVG.mjs";
6
6
  import {
7
7
  interop
8
8
  } from "./chunk-4VUK6ART.mjs";
@@ -24,12 +24,11 @@ async function nextjs(options = {}) {
24
24
  rules: {
25
25
  ...pluginNextjs.configs.recommended.rules,
26
26
  ...pluginNextjs.configs["core-web-vitals"].rules,
27
- "@next/next/google-font-display": ["warn"],
28
- "@next/next/google-font-preconnect": ["warn"],
27
+ "@next/next/google-font-display": ["error"],
28
+ "@next/next/google-font-preconnect": ["error"],
29
29
  "@next/next/inline-script-id": ["error"],
30
30
  "@next/next/next-script-for-ga": ["warn"],
31
31
  "@next/next/no-assign-module-variable": ["error"],
32
- "@next/next/no-before-interactive-script-outside-document": ["warn"],
33
32
  "@next/next/no-css-tags": ["warn"],
34
33
  "@next/next/no-document-import-in-page": ["error"],
35
34
  "@next/next/no-duplicate-head": ["error"],
@@ -44,7 +43,7 @@ async function nextjs(options = {}) {
44
43
  "@next/next/no-title-in-document-head": ["warn"],
45
44
  "@next/next/no-typos": ["warn"],
46
45
  "@next/next/no-unwanted-polyfillio": ["warn"],
47
- "jsx-a11y/anchor-is-valid": ["off"],
46
+ // "jsx-a11y/anchor-is-valid": ["off"],
48
47
  // This rule creates errors with webpack parsing on edge runtime
49
48
  "unicorn/prefer-node-protocol": ["off"],
50
49
  ...overrides
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GLOB_EXCLUDE
3
- } from "./chunk-5CXAPQV3.mjs";
3
+ } from "./chunk-YPPGNIVG.mjs";
4
4
 
5
5
  // src/configs/ignores.ts
6
6
  function ignores() {
@@ -1,11 +1,11 @@
1
+ import {
2
+ GLOB_SRC,
3
+ GLOB_SRC_EXT
4
+ } from "./chunk-YPPGNIVG.mjs";
1
5
  import {
2
6
  default as default2,
3
7
  default5 as default3
4
8
  } from "./chunk-C5VMTRKT.mjs";
5
- import {
6
- GLOB_SRC,
7
- GLOB_SRC_EXT
8
- } from "./chunk-5CXAPQV3.mjs";
9
9
 
10
10
  // src/configs/javascript.ts
11
11
  import globals from "globals";
@@ -1,9 +1,9 @@
1
+ import {
2
+ GLOB_SRC
3
+ } from "./chunk-YPPGNIVG.mjs";
1
4
  import {
2
5
  default as default2
3
6
  } from "./chunk-C5VMTRKT.mjs";
4
- import {
5
- GLOB_SRC
6
- } from "./chunk-5CXAPQV3.mjs";
7
7
  import {
8
8
  interop,
9
9
  renameRules,
@@ -0,0 +1,77 @@
1
+ import {
2
+ GLOB_ASTRO
3
+ } from "./chunk-YPPGNIVG.mjs";
4
+ import {
5
+ interop
6
+ } from "./chunk-4VUK6ART.mjs";
7
+
8
+ // src/configs/astro.ts
9
+ async function astro(options) {
10
+ const [
11
+ pluginAstro,
12
+ parserAstro,
13
+ pluginA11y
14
+ ] = await Promise.all([
15
+ interop(import("eslint-plugin-astro")),
16
+ interop(import("astro-eslint-parser")),
17
+ ...options.a11y ? [interop(import("eslint-plugin-jsx-a11y"))] : []
18
+ ]);
19
+ const {
20
+ a11y = false,
21
+ overrides = {}
22
+ // typescript = true,
23
+ } = options;
24
+ return [
25
+ {
26
+ name: "luxass:astro:setup",
27
+ plugins: {
28
+ astro: pluginAstro,
29
+ ...a11y ? { "jsx-a11y": pluginA11y } : {}
30
+ }
31
+ },
32
+ {
33
+ files: [GLOB_ASTRO],
34
+ languageOptions: {
35
+ // @ts-expect-error hmmm
36
+ globals: {
37
+ ...pluginAstro.configs.base.overrides[0].env
38
+ },
39
+ parser: parserAstro,
40
+ parserOptions: {
41
+ extraFileExtensions: [".astro"],
42
+ parser: options.typescript ? await interop(import("@typescript-eslint/parser")) : null,
43
+ sourceType: "module"
44
+ }
45
+ },
46
+ name: "luxass:astro:rules",
47
+ // @ts-expect-error hmmm
48
+ rules: {
49
+ "style/jsx-closing-tag-location": "off",
50
+ "style/jsx-indent": "off",
51
+ "style/jsx-one-expression-per-line": "off",
52
+ ...pluginAstro.configs.all.rules,
53
+ ...overrides
54
+ }
55
+ },
56
+ {
57
+ files: [
58
+ "**/*.astro/*.js",
59
+ "*.astro/*.js"
60
+ ],
61
+ languageOptions: {
62
+ // @ts-expect-error hmmm
63
+ globals: {
64
+ ...pluginAstro.configs.base.overrides[1].env
65
+ },
66
+ parserOptions: {
67
+ sourceType: "module"
68
+ }
69
+ },
70
+ name: "luxass:astro:rules:scripts"
71
+ }
72
+ ];
73
+ }
74
+
75
+ export {
76
+ astro
77
+ };
@@ -2,7 +2,7 @@ import {
2
2
  GLOB_JSON,
3
3
  GLOB_JSON5,
4
4
  GLOB_JSONC
5
- } from "./chunk-5CXAPQV3.mjs";
5
+ } from "./chunk-YPPGNIVG.mjs";
6
6
  import {
7
7
  interop
8
8
  } from "./chunk-4VUK6ART.mjs";
@@ -0,0 +1,277 @@
1
+ import {
2
+ GLOB_JSX
3
+ } from "./chunk-YPPGNIVG.mjs";
4
+ import {
5
+ interop
6
+ } from "./chunk-4VUK6ART.mjs";
7
+
8
+ // src/configs/react.ts
9
+ async function react(options) {
10
+ const [
11
+ pluginReact,
12
+ pluginReactHooks,
13
+ pluginReactRefresh,
14
+ pluginA11y
15
+ ] = await Promise.all([
16
+ interop(import("eslint-plugin-react")),
17
+ interop(import("eslint-plugin-react-hooks")),
18
+ interop(import("eslint-plugin-react-refresh")),
19
+ ...options.a11y ? [interop(import("eslint-plugin-jsx-a11y"))] : []
20
+ ]);
21
+ const {
22
+ a11y = false,
23
+ overrides = {},
24
+ typescript = true
25
+ } = options;
26
+ return [
27
+ {
28
+ name: "luxass:react:setup",
29
+ plugins: {
30
+ "react": pluginReact,
31
+ "react-hooks": pluginReactHooks,
32
+ "react-refresh": pluginReactRefresh,
33
+ ...a11y ? { "jsx-a11y": pluginA11y } : {}
34
+ }
35
+ },
36
+ {
37
+ files: [GLOB_JSX],
38
+ languageOptions: {
39
+ parserOptions: {
40
+ ecmaFeatures: {
41
+ jsx: true
42
+ }
43
+ }
44
+ },
45
+ name: "luxass:react:rules",
46
+ rules: {
47
+ // recommended rules for jsx-a11y
48
+ "jsx-a11y/alt-text": "error",
49
+ "jsx-a11y/anchor-ambiguous-text": "off",
50
+ "jsx-a11y/anchor-has-content": "error",
51
+ "jsx-a11y/anchor-is-valid": "error",
52
+ "jsx-a11y/aria-activedescendant-has-tabindex": "error",
53
+ "jsx-a11y/aria-props": "error",
54
+ "jsx-a11y/aria-proptypes": "error",
55
+ "jsx-a11y/aria-role": "error",
56
+ "jsx-a11y/aria-unsupported-elements": "error",
57
+ "jsx-a11y/autocomplete-valid": "error",
58
+ "jsx-a11y/click-events-have-key-events": "error",
59
+ "jsx-a11y/control-has-associated-label": [
60
+ "off",
61
+ {
62
+ ignoreElements: [
63
+ "audio",
64
+ "canvas",
65
+ "embed",
66
+ "input",
67
+ "textarea",
68
+ "tr",
69
+ "video"
70
+ ],
71
+ ignoreRoles: [
72
+ "grid",
73
+ "listbox",
74
+ "menu",
75
+ "menubar",
76
+ "radiogroup",
77
+ "row",
78
+ "tablist",
79
+ "toolbar",
80
+ "tree",
81
+ "treegrid"
82
+ ],
83
+ includeRoles: [
84
+ "alert",
85
+ "dialog"
86
+ ]
87
+ }
88
+ ],
89
+ "jsx-a11y/heading-has-content": "error",
90
+ "jsx-a11y/html-has-lang": "error",
91
+ "jsx-a11y/iframe-has-title": "error",
92
+ "jsx-a11y/img-redundant-alt": "error",
93
+ "jsx-a11y/interactive-supports-focus": [
94
+ "error",
95
+ {
96
+ tabbable: [
97
+ "button",
98
+ "checkbox",
99
+ "link",
100
+ "searchbox",
101
+ "spinbutton",
102
+ "switch",
103
+ "textbox"
104
+ ]
105
+ }
106
+ ],
107
+ "jsx-a11y/label-has-associated-control": "error",
108
+ "jsx-a11y/label-has-for": "off",
109
+ "jsx-a11y/media-has-caption": "error",
110
+ "jsx-a11y/mouse-events-have-key-events": "error",
111
+ "jsx-a11y/no-access-key": "error",
112
+ "jsx-a11y/no-autofocus": "error",
113
+ "jsx-a11y/no-distracting-elements": "error",
114
+ "jsx-a11y/no-interactive-element-to-noninteractive-role": [
115
+ "error",
116
+ {
117
+ canvas: [
118
+ "img"
119
+ ],
120
+ tr: [
121
+ "none",
122
+ "presentation"
123
+ ]
124
+ }
125
+ ],
126
+ "jsx-a11y/no-noninteractive-element-interactions": [
127
+ "error",
128
+ {
129
+ alert: [
130
+ "onKeyUp",
131
+ "onKeyDown",
132
+ "onKeyPress"
133
+ ],
134
+ body: [
135
+ "onError",
136
+ "onLoad"
137
+ ],
138
+ dialog: [
139
+ "onKeyUp",
140
+ "onKeyDown",
141
+ "onKeyPress"
142
+ ],
143
+ handlers: [
144
+ "onClick",
145
+ "onError",
146
+ "onLoad",
147
+ "onMouseDown",
148
+ "onMouseUp",
149
+ "onKeyPress",
150
+ "onKeyDown",
151
+ "onKeyUp"
152
+ ],
153
+ iframe: [
154
+ "onError",
155
+ "onLoad"
156
+ ],
157
+ img: [
158
+ "onError",
159
+ "onLoad"
160
+ ]
161
+ }
162
+ ],
163
+ "jsx-a11y/no-noninteractive-element-to-interactive-role": [
164
+ "error",
165
+ {
166
+ fieldset: [
167
+ "radiogroup",
168
+ "presentation"
169
+ ],
170
+ li: [
171
+ "menuitem",
172
+ "option",
173
+ "row",
174
+ "tab",
175
+ "treeitem"
176
+ ],
177
+ ol: [
178
+ "listbox",
179
+ "menu",
180
+ "menubar",
181
+ "radiogroup",
182
+ "tablist",
183
+ "tree",
184
+ "treegrid"
185
+ ],
186
+ table: [
187
+ "grid"
188
+ ],
189
+ td: [
190
+ "gridcell"
191
+ ],
192
+ ul: [
193
+ "listbox",
194
+ "menu",
195
+ "menubar",
196
+ "radiogroup",
197
+ "tablist",
198
+ "tree",
199
+ "treegrid"
200
+ ]
201
+ }
202
+ ],
203
+ "jsx-a11y/no-noninteractive-tabindex": [
204
+ "error",
205
+ {
206
+ allowExpressionValues: true,
207
+ roles: [
208
+ "tabpanel"
209
+ ],
210
+ tags: []
211
+ }
212
+ ],
213
+ "jsx-a11y/no-redundant-roles": "error",
214
+ "jsx-a11y/no-static-element-interactions": [
215
+ "error",
216
+ {
217
+ allowExpressionValues: true,
218
+ handlers: [
219
+ "onClick",
220
+ "onMouseDown",
221
+ "onMouseUp",
222
+ "onKeyPress",
223
+ "onKeyDown",
224
+ "onKeyUp"
225
+ ]
226
+ }
227
+ ],
228
+ "jsx-a11y/role-has-required-aria-props": "error",
229
+ "jsx-a11y/role-supports-aria-props": "error",
230
+ "jsx-a11y/scope": "error",
231
+ "jsx-a11y/tabindex-no-positive": "error",
232
+ // recommended rules react-hooks
233
+ "react-hooks/exhaustive-deps": "warn",
234
+ "react-hooks/rules-of-hooks": "error",
235
+ // react refresh
236
+ "react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
237
+ // recommended rules react
238
+ "react/display-name": "error",
239
+ "react/jsx-key": "error",
240
+ "react/jsx-no-comment-textnodes": "error",
241
+ "react/jsx-no-duplicate-props": "error",
242
+ "react/jsx-no-target-blank": "error",
243
+ "react/jsx-no-undef": "error",
244
+ "react/jsx-uses-react": "error",
245
+ "react/jsx-uses-vars": "error",
246
+ "react/no-children-prop": "error",
247
+ "react/no-danger-with-children": "error",
248
+ "react/no-deprecated": "error",
249
+ "react/no-direct-mutation-state": "error",
250
+ "react/no-find-dom-node": "error",
251
+ "react/no-is-mounted": "error",
252
+ "react/no-render-return-value": "error",
253
+ "react/no-string-refs": "error",
254
+ "react/no-unescaped-entities": "error",
255
+ "react/no-unknown-property": "error",
256
+ "react/no-unsafe": "off",
257
+ "react/prop-types": "error",
258
+ "react/react-in-jsx-scope": "off",
259
+ "react/require-render-return": "error",
260
+ ...typescript ? {
261
+ "react/prop-type": "off"
262
+ } : {},
263
+ // overrides
264
+ ...overrides
265
+ },
266
+ settings: {
267
+ react: {
268
+ version: "detect"
269
+ }
270
+ }
271
+ }
272
+ ];
273
+ }
274
+
275
+ export {
276
+ react
277
+ };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  GLOB_MARKDOWN,
3
3
  GLOB_MARKDOWN_CODE
4
- } from "./chunk-5CXAPQV3.mjs";
4
+ } from "./chunk-YPPGNIVG.mjs";
5
5
  import {
6
6
  interop
7
7
  } from "./chunk-4VUK6ART.mjs";
@@ -2,10 +2,9 @@
2
2
  var GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
3
3
  var GLOB_SRC = "**/*.?([cm])[jt]s?(x)";
4
4
  var GLOB_JS = "**/*.?([cm])js";
5
- var GLOB_JSX = "**/*.?([cm])jsx";
6
5
  var GLOB_TS = "**/*.?([cm])ts";
7
- var GLOB_TSX = "**/*.?([cm])tsx";
8
6
  var GLOB_JSX_EXT = "[jt]sx";
7
+ var GLOB_JSX = `**/*.${GLOB_JSX_EXT}`;
9
8
  var GLOB_STYLE = "**/*.{c,le,sc}ss";
10
9
  var GLOB_CSS = "**/*.css";
11
10
  var GLOB_LESS = "**/*.less";
@@ -15,9 +14,9 @@ var GLOB_JSON5 = "**/*.json5";
15
14
  var GLOB_JSONC = "**/*.jsonc";
16
15
  var GLOB_MARKDOWN = "**/*.md";
17
16
  var GLOB_VUE = "**/*.vue";
18
- var GLOB_REACT = GLOB_SRC;
19
17
  var GLOB_YAML = "**/*.y?(a)ml";
20
18
  var GLOB_HTML = "**/*.htm?(l)";
19
+ var GLOB_ASTRO = "**/*.astro";
21
20
  var GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;
22
21
  var GLOB_TESTS = [
23
22
  `**/__tests__/**/*.${GLOB_SRC_EXT}`,
@@ -42,17 +41,6 @@ var GLOB_NEXTJS_ROUTES = [
42
41
  `**/app/**/sitemap.${GLOB_SRC_EXT}`,
43
42
  `**/pages/**/*.${GLOB_SRC_EXT}`
44
43
  ];
45
- var GLOB_ALL_SRC = [
46
- GLOB_SRC,
47
- GLOB_STYLE,
48
- GLOB_JSON,
49
- GLOB_JSON5,
50
- GLOB_MARKDOWN,
51
- GLOB_VUE,
52
- GLOB_YAML,
53
- GLOB_HTML,
54
- GLOB_REACT
55
- ];
56
44
  var GLOB_EXCLUDE = [
57
45
  "**/node_modules",
58
46
  "**/dist",
@@ -90,10 +78,9 @@ export {
90
78
  GLOB_SRC_EXT,
91
79
  GLOB_SRC,
92
80
  GLOB_JS,
93
- GLOB_JSX,
94
81
  GLOB_TS,
95
- GLOB_TSX,
96
82
  GLOB_JSX_EXT,
83
+ GLOB_JSX,
97
84
  GLOB_STYLE,
98
85
  GLOB_CSS,
99
86
  GLOB_LESS,
@@ -103,13 +90,12 @@ export {
103
90
  GLOB_JSONC,
104
91
  GLOB_MARKDOWN,
105
92
  GLOB_VUE,
106
- GLOB_REACT,
107
93
  GLOB_YAML,
108
94
  GLOB_HTML,
95
+ GLOB_ASTRO,
109
96
  GLOB_MARKDOWN_CODE,
110
97
  GLOB_TESTS,
111
98
  GLOB_NEXTJS_OG,
112
99
  GLOB_NEXTJS_ROUTES,
113
- GLOB_ALL_SRC,
114
100
  GLOB_EXCLUDE
115
101
  };
@@ -7,16 +7,15 @@ import {
7
7
 
8
8
  // src/configs/stylistic.ts
9
9
  async function stylistic(options = {}) {
10
- const { jsx = true } = options;
10
+ const { indent = 2, jsx = true, quotes = "double", semi = true } = options;
11
11
  const pluginStylistic = await interop(import("@stylistic/eslint-plugin"));
12
- const indent = 2;
13
12
  const config = pluginStylistic.configs.customize({
14
13
  flat: true,
15
14
  indent,
16
15
  jsx,
17
16
  pluginName: "style",
18
- quotes: "double",
19
- semi: true
17
+ quotes,
18
+ semi
20
19
  });
21
20
  return [
22
21
  {