@zayne-labs/eslint-config 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -7
- package/dist/index.d.ts +210 -210
- package/dist/index.js +23 -23
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
- Optional [React](#react), [Svelte](#svelte), [TailwindCSS](#tailwindcss), [Astro](#astro), [Solid](#solid) support
|
|
8
8
|
- Respects `.gitignore` by default
|
|
9
9
|
- Requires ESLint v9.5.0+
|
|
10
|
+
- Inspired by the legendary open sourcerer, [antfu](https://github.com/antfu)
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
## Usage
|
|
@@ -213,8 +214,9 @@ export default zayne({
|
|
|
213
214
|
// Enable stylistic formatting rules
|
|
214
215
|
stylistic: true,
|
|
215
216
|
|
|
216
|
-
// TypeScript
|
|
217
|
+
// TypeScript and React are autodetected, you can also explicitly enable it:
|
|
217
218
|
typescript: true,
|
|
219
|
+
react: true
|
|
218
220
|
|
|
219
221
|
// Disable jsonc and yaml support
|
|
220
222
|
jsonc: false,
|
|
@@ -351,14 +353,13 @@ import zayne from '@zayne-labs/eslint-config'
|
|
|
351
353
|
|
|
352
354
|
export default zayne(
|
|
353
355
|
{
|
|
354
|
-
|
|
356
|
+
react: true,
|
|
355
357
|
typescript: true
|
|
356
358
|
},
|
|
357
359
|
{
|
|
358
|
-
|
|
359
|
-
files: ['**/*.vue'],
|
|
360
|
+
files: ['**/*.jsx','**/*.tsx' ],
|
|
360
361
|
rules: {
|
|
361
|
-
'
|
|
362
|
+
'react/no-unstable-context-value': "off",
|
|
362
363
|
},
|
|
363
364
|
},
|
|
364
365
|
{
|
|
@@ -377,9 +378,9 @@ We also provided the `overrides` options in each integration to make it easier:
|
|
|
377
378
|
import zayne from '@zayne-labs/eslint-config'
|
|
378
379
|
|
|
379
380
|
export default zayne({
|
|
380
|
-
|
|
381
|
+
react: {
|
|
381
382
|
overrides: {
|
|
382
|
-
|
|
383
|
+
'react/no-unstable-context-value': "off",
|
|
383
384
|
},
|
|
384
385
|
},
|
|
385
386
|
typescript: {
|
package/dist/index.d.ts
CHANGED
|
@@ -1989,407 +1989,407 @@ interface Rules {
|
|
|
1989
1989
|
* @see https://eslint.org/docs/latest/rules/radix
|
|
1990
1990
|
*/
|
|
1991
1991
|
'radix'?: Linter.RuleEntry<Radix>
|
|
1992
|
-
/**
|
|
1993
|
-
* verifies the list of dependencies for Hooks like useEffect and similar
|
|
1994
|
-
* @see https://github.com/facebook/react/issues/14920
|
|
1995
|
-
*/
|
|
1996
|
-
'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>
|
|
1997
|
-
/**
|
|
1998
|
-
* enforces the Rules of Hooks
|
|
1999
|
-
* @see https://reactjs.org/docs/hooks-rules.html
|
|
2000
|
-
*/
|
|
2001
|
-
'react-hooks/rules-of-hooks'?: Linter.RuleEntry<[]>
|
|
2002
|
-
'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>
|
|
2003
1992
|
/**
|
|
2004
1993
|
* disallow using shorthand boolean attributes
|
|
2005
1994
|
* @see https://eslint-react.xyz/docs/rules/avoid-shorthand-boolean
|
|
2006
1995
|
*/
|
|
2007
|
-
'react/avoid-shorthand-boolean'?: Linter.RuleEntry<[]>
|
|
1996
|
+
'react-base/avoid-shorthand-boolean'?: Linter.RuleEntry<[]>
|
|
2008
1997
|
/**
|
|
2009
1998
|
* disallow using shorthand fragment syntax
|
|
2010
1999
|
* @see https://eslint-react.xyz/docs/rules/avoid-shorthand-fragment
|
|
2011
2000
|
*/
|
|
2012
|
-
'react/avoid-shorthand-fragment'?: Linter.RuleEntry<[]>
|
|
2013
|
-
/**
|
|
2014
|
-
* report all class components, including anonymous ones
|
|
2015
|
-
* @see https://eslint-react.xyz/docs/rules/debug-class-component
|
|
2016
|
-
*/
|
|
2017
|
-
'react/debug/class-component'?: Linter.RuleEntry<[]>
|
|
2018
|
-
/**
|
|
2019
|
-
* report all function components, including anonymous ones
|
|
2020
|
-
* @see https://eslint-react.xyz/docs/rules/debug-function-component
|
|
2021
|
-
*/
|
|
2022
|
-
'react/debug/function-component'?: Linter.RuleEntry<[]>
|
|
2023
|
-
/**
|
|
2024
|
-
* report all React Hooks
|
|
2025
|
-
* @see https://eslint-react.xyz/docs/rules/debug-hook
|
|
2026
|
-
*/
|
|
2027
|
-
'react/debug/hook'?: Linter.RuleEntry<[]>
|
|
2028
|
-
/**
|
|
2029
|
-
* report all identifiers that are initialized from React.
|
|
2030
|
-
* @see https://eslint-react.xyz/docs/rules/debug-is-from-react
|
|
2031
|
-
*/
|
|
2032
|
-
'react/debug/is-from-react'?: Linter.RuleEntry<[]>
|
|
2033
|
-
/**
|
|
2034
|
-
* report all React Hooks
|
|
2035
|
-
* @see https://eslint-react.xyz/docs/rules/debug-hook
|
|
2036
|
-
*/
|
|
2037
|
-
'react/debug/react-hooks'?: Linter.RuleEntry<[]>
|
|
2038
|
-
/**
|
|
2039
|
-
* disallow passing 'children' to void DOM elements
|
|
2040
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-children-in-void-dom-elements
|
|
2041
|
-
*/
|
|
2042
|
-
'react/dom/no-children-in-void-dom-elements'?: Linter.RuleEntry<[]>
|
|
2043
|
-
/**
|
|
2044
|
-
* disallow when a DOM component is using 'dangerouslySetInnerHTML'
|
|
2045
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
|
|
2046
|
-
*/
|
|
2047
|
-
'react/dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>
|
|
2048
|
-
/**
|
|
2049
|
-
* disallow when a DOM component is using both 'children' and 'dangerouslySetInnerHTML'
|
|
2050
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
|
|
2051
|
-
*/
|
|
2052
|
-
'react/dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>
|
|
2053
|
-
/**
|
|
2054
|
-
* disallow 'findDOMNode'
|
|
2055
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
|
|
2056
|
-
*/
|
|
2057
|
-
'react/dom/no-find-dom-node'?: Linter.RuleEntry<[]>
|
|
2058
|
-
/**
|
|
2059
|
-
* enforce that button component have an explicit 'type' attribute
|
|
2060
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
|
|
2061
|
-
*/
|
|
2062
|
-
'react/dom/no-missing-button-type'?: Linter.RuleEntry<[]>
|
|
2063
|
-
/**
|
|
2064
|
-
* enforce that 'iframe' component have an explicit 'sandbox' attribute
|
|
2065
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
|
|
2066
|
-
*/
|
|
2067
|
-
'react/dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>
|
|
2068
|
-
/**
|
|
2069
|
-
* enforce that namespaces are not used in React elements
|
|
2070
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-namespace
|
|
2071
|
-
*/
|
|
2072
|
-
'react/dom/no-namespace'?: Linter.RuleEntry<[]>
|
|
2073
|
-
/**
|
|
2074
|
-
* disallow usage of the return value of 'ReactDOM.render'
|
|
2075
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
|
|
2076
|
-
*/
|
|
2077
|
-
'react/dom/no-render-return-value'?: Linter.RuleEntry<[]>
|
|
2078
|
-
/**
|
|
2079
|
-
* disallow 'javascript:' URLs as JSX event handler prop's value
|
|
2080
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-script-url
|
|
2081
|
-
*/
|
|
2082
|
-
'react/dom/no-script-url'?: Linter.RuleEntry<[]>
|
|
2083
|
-
/**
|
|
2084
|
-
* disallow unsafe iframe 'sandbox' attribute combinations
|
|
2085
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
|
|
2086
|
-
*/
|
|
2087
|
-
'react/dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>
|
|
2088
|
-
/**
|
|
2089
|
-
* disallow 'target="_blank"' on an external link without 'rel="noreferrer noopener"'
|
|
2090
|
-
* @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
|
|
2091
|
-
*/
|
|
2092
|
-
'react/dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>
|
|
2001
|
+
'react-base/avoid-shorthand-fragment'?: Linter.RuleEntry<[]>
|
|
2093
2002
|
/**
|
|
2094
2003
|
* require a 'ref' parameter to be set when using 'forwardRef'
|
|
2095
2004
|
* @see https://eslint-react.xyz/docs/rules/ensure-forward-ref-using-ref
|
|
2096
2005
|
*/
|
|
2097
|
-
'react/ensure-forward-ref-using-ref'?: Linter.RuleEntry<[]>
|
|
2098
|
-
/**
|
|
2099
|
-
* enforce custom hooks to use at least one other hook inside
|
|
2100
|
-
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
|
|
2101
|
-
*/
|
|
2102
|
-
'react/hooks-extra/ensure-custom-hooks-using-other-hooks'?: Linter.RuleEntry<[]>
|
|
2103
|
-
/**
|
|
2104
|
-
* disallow unnecessary usage of 'useMemo'
|
|
2105
|
-
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
|
|
2106
|
-
*/
|
|
2107
|
-
'react/hooks-extra/ensure-use-memo-has-non-empty-deps'?: Linter.RuleEntry<[]>
|
|
2108
|
-
/**
|
|
2109
|
-
* disallow direct calls to the 'set' function of 'useState' in 'useEffect'
|
|
2110
|
-
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
|
|
2111
|
-
*/
|
|
2112
|
-
'react/hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>
|
|
2113
|
-
/**
|
|
2114
|
-
* disallow direct calls to the 'set' function of 'useState' in 'useEffect'
|
|
2115
|
-
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
|
|
2116
|
-
*/
|
|
2117
|
-
'react/hooks-extra/no-direct-set-state-in-use-layout-effect'?: Linter.RuleEntry<[]>
|
|
2118
|
-
/**
|
|
2119
|
-
* enforce custom hooks to use at least one other hook inside
|
|
2120
|
-
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
|
|
2121
|
-
*/
|
|
2122
|
-
'react/hooks-extra/no-redundant-custom-hook'?: Linter.RuleEntry<[]>
|
|
2123
|
-
/**
|
|
2124
|
-
* disallow unnecessary usage of 'useCallback'
|
|
2125
|
-
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
|
|
2126
|
-
*/
|
|
2127
|
-
'react/hooks-extra/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>
|
|
2128
|
-
/**
|
|
2129
|
-
* disallow unnecessary usage of 'useMemo'
|
|
2130
|
-
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
|
|
2131
|
-
*/
|
|
2132
|
-
'react/hooks-extra/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>
|
|
2133
|
-
/**
|
|
2134
|
-
* disallow function calls in 'useState' that aren't wrapped in an initializer function
|
|
2135
|
-
* @see https://eslint-react.xyz/docs/rules/hooks-extra-prefer-use-state-lazy-initialization
|
|
2136
|
-
*/
|
|
2137
|
-
'react/hooks-extra/prefer-use-state-lazy-initialization'?: Linter.RuleEntry<[]>
|
|
2138
|
-
/**
|
|
2139
|
-
* enforce component naming convention to 'PascalCase' or 'CONSTANT_CASE'
|
|
2140
|
-
* @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
|
|
2141
|
-
*/
|
|
2142
|
-
'react/naming-convention/component-name'?: Linter.RuleEntry<ReactNamingConventionComponentName>
|
|
2143
|
-
/**
|
|
2144
|
-
* enforce naming convention for JSX filenames
|
|
2145
|
-
* @see https://eslint-react.xyz/docs/rules/naming-convention-filename
|
|
2146
|
-
*/
|
|
2147
|
-
'react/naming-convention/filename'?: Linter.RuleEntry<ReactNamingConventionFilename>
|
|
2148
|
-
/**
|
|
2149
|
-
* enforce naming convention for JSX file extensions
|
|
2150
|
-
* @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
|
|
2151
|
-
*/
|
|
2152
|
-
'react/naming-convention/filename-extension'?: Linter.RuleEntry<ReactNamingConventionFilenameExtension>
|
|
2153
|
-
/**
|
|
2154
|
-
* enforce destructuring and symmetric naming of 'useState' hook value and setter variables
|
|
2155
|
-
* @see https://eslint-react.xyz/docs/rules/naming-convention-use-state
|
|
2156
|
-
*/
|
|
2157
|
-
'react/naming-convention/use-state'?: Linter.RuleEntry<[]>
|
|
2006
|
+
'react-base/ensure-forward-ref-using-ref'?: Linter.RuleEntry<[]>
|
|
2158
2007
|
/**
|
|
2159
2008
|
* disallow accessing 'this.state' within 'setState'
|
|
2160
2009
|
* @see https://eslint-react.xyz/docs/rules/no-access-state-in-setstate
|
|
2161
2010
|
*/
|
|
2162
|
-
'react/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
|
|
2011
|
+
'react-base/no-access-state-in-setstate'?: Linter.RuleEntry<[]>
|
|
2163
2012
|
/**
|
|
2164
2013
|
* disallow using Array index as 'key'
|
|
2165
2014
|
* @see https://eslint-react.xyz/docs/rules/no-array-index-key
|
|
2166
2015
|
*/
|
|
2167
|
-
'react/no-array-index-key'?: Linter.RuleEntry<[]>
|
|
2016
|
+
'react-base/no-array-index-key'?: Linter.RuleEntry<[]>
|
|
2168
2017
|
/**
|
|
2169
2018
|
* disallow using 'Children.count'
|
|
2170
2019
|
* @see https://eslint-react.xyz/docs/rules/no-children-count
|
|
2171
2020
|
*/
|
|
2172
|
-
'react/no-children-count'?: Linter.RuleEntry<[]>
|
|
2021
|
+
'react-base/no-children-count'?: Linter.RuleEntry<[]>
|
|
2173
2022
|
/**
|
|
2174
2023
|
* disallow using 'Children.forEach'
|
|
2175
2024
|
* @see https://eslint-react.xyz/docs/rules/no-children-for-each
|
|
2176
2025
|
*/
|
|
2177
|
-
'react/no-children-for-each'?: Linter.RuleEntry<[]>
|
|
2026
|
+
'react-base/no-children-for-each'?: Linter.RuleEntry<[]>
|
|
2178
2027
|
/**
|
|
2179
2028
|
* disallow using 'Children.map'
|
|
2180
2029
|
* @see https://eslint-react.xyz/docs/rules/no-children-map
|
|
2181
2030
|
*/
|
|
2182
|
-
'react/no-children-map'?: Linter.RuleEntry<[]>
|
|
2031
|
+
'react-base/no-children-map'?: Linter.RuleEntry<[]>
|
|
2183
2032
|
/**
|
|
2184
2033
|
* disallow using 'Children.only'
|
|
2185
2034
|
* @see https://eslint-react.xyz/docs/rules/no-children-only
|
|
2186
2035
|
*/
|
|
2187
|
-
'react/no-children-only'?: Linter.RuleEntry<[]>
|
|
2036
|
+
'react-base/no-children-only'?: Linter.RuleEntry<[]>
|
|
2188
2037
|
/**
|
|
2189
2038
|
* disallow passing 'children' as props
|
|
2190
2039
|
* @see https://eslint-react.xyz/docs/rules/no-children-prop
|
|
2191
2040
|
*/
|
|
2192
|
-
'react/no-children-prop'?: Linter.RuleEntry<[]>
|
|
2041
|
+
'react-base/no-children-prop'?: Linter.RuleEntry<[]>
|
|
2193
2042
|
/**
|
|
2194
2043
|
* disallow using 'Children.toArray'
|
|
2195
2044
|
* @see https://eslint-react.xyz/docs/rules/no-children-to-array
|
|
2196
2045
|
*/
|
|
2197
|
-
'react/no-children-to-array'?: Linter.RuleEntry<[]>
|
|
2046
|
+
'react-base/no-children-to-array'?: Linter.RuleEntry<[]>
|
|
2198
2047
|
/**
|
|
2199
2048
|
* disallow using class components
|
|
2200
2049
|
* @see https://eslint-react.xyz/docs/rules/no-class-component
|
|
2201
2050
|
*/
|
|
2202
|
-
'react/no-class-component'?: Linter.RuleEntry<[]>
|
|
2051
|
+
'react-base/no-class-component'?: Linter.RuleEntry<[]>
|
|
2203
2052
|
/**
|
|
2204
2053
|
* disallow using 'cloneElement'
|
|
2205
2054
|
* @see https://eslint-react.xyz/docs/rules/no-clone-element
|
|
2206
2055
|
*/
|
|
2207
|
-
'react/no-clone-element'?: Linter.RuleEntry<[]>
|
|
2056
|
+
'react-base/no-clone-element'?: Linter.RuleEntry<[]>
|
|
2208
2057
|
/**
|
|
2209
2058
|
* disallow comments from being inserted as text nodes
|
|
2210
2059
|
* @see https://eslint-react.xyz/docs/rules/no-comment-textnodes
|
|
2211
2060
|
*/
|
|
2212
|
-
'react/no-comment-textnodes'?: Linter.RuleEntry<[]>
|
|
2061
|
+
'react-base/no-comment-textnodes'?: Linter.RuleEntry<[]>
|
|
2213
2062
|
/**
|
|
2214
2063
|
* disallow complex conditional rendering
|
|
2215
2064
|
* @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
|
|
2216
2065
|
*/
|
|
2217
|
-
'react/no-complex-conditional-rendering'?: Linter.RuleEntry<[]>
|
|
2066
|
+
'react-base/no-complex-conditional-rendering'?: Linter.RuleEntry<[]>
|
|
2218
2067
|
/**
|
|
2219
2068
|
* disallow complex conditional rendering
|
|
2220
2069
|
* @see https://eslint-react.xyz/docs/rules/no-complex-conditional-rendering
|
|
2221
2070
|
*/
|
|
2222
|
-
'react/no-complicated-conditional-rendering'?: Linter.RuleEntry<[]>
|
|
2071
|
+
'react-base/no-complicated-conditional-rendering'?: Linter.RuleEntry<[]>
|
|
2223
2072
|
/**
|
|
2224
2073
|
* disallow using 'componentWillMount'
|
|
2225
2074
|
* @see https://eslint-react.xyz/docs/rules/no-component-will-mount
|
|
2226
2075
|
*/
|
|
2227
|
-
'react/no-component-will-mount'?: Linter.RuleEntry<[]>
|
|
2076
|
+
'react-base/no-component-will-mount'?: Linter.RuleEntry<[]>
|
|
2228
2077
|
/**
|
|
2229
2078
|
* disallow using 'componentWillReceiveProps'
|
|
2230
2079
|
* @see https://eslint-react.xyz/docs/rules/no-component-will-receive-props
|
|
2231
2080
|
*/
|
|
2232
|
-
'react/no-component-will-receive-props'?: Linter.RuleEntry<[]>
|
|
2081
|
+
'react-base/no-component-will-receive-props'?: Linter.RuleEntry<[]>
|
|
2233
2082
|
/**
|
|
2234
2083
|
* disallow using 'componentWillReceiveProps'
|
|
2235
2084
|
* @see https://eslint-react.xyz/docs/rules/no-component-will-update
|
|
2236
2085
|
*/
|
|
2237
|
-
'react/no-component-will-update'?: Linter.RuleEntry<[]>
|
|
2086
|
+
'react-base/no-component-will-update'?: Linter.RuleEntry<[]>
|
|
2238
2087
|
/**
|
|
2239
2088
|
* disallow using 'createRef' in function components
|
|
2240
2089
|
* @see https://eslint-react.xyz/docs/rules/no-create-ref
|
|
2241
2090
|
*/
|
|
2242
|
-
'react/no-create-ref'?: Linter.RuleEntry<[]>
|
|
2091
|
+
'react-base/no-create-ref'?: Linter.RuleEntry<[]>
|
|
2243
2092
|
/**
|
|
2244
2093
|
* disallow using 'defaultProps' property in components
|
|
2245
2094
|
* @see https://eslint-react.xyz/docs/rules/no-default-props
|
|
2246
2095
|
*/
|
|
2247
|
-
'react/no-default-props'?: Linter.RuleEntry<[]>
|
|
2096
|
+
'react-base/no-default-props'?: Linter.RuleEntry<[]>
|
|
2248
2097
|
/**
|
|
2249
2098
|
* disallow direct mutation of state
|
|
2250
2099
|
* @see https://eslint-react.xyz/docs/rules/no-direct-mutation-state
|
|
2251
2100
|
*/
|
|
2252
|
-
'react/no-direct-mutation-state'?: Linter.RuleEntry<[]>
|
|
2101
|
+
'react-base/no-direct-mutation-state'?: Linter.RuleEntry<[]>
|
|
2253
2102
|
/**
|
|
2254
2103
|
* disallow duplicate keys when rendering list
|
|
2255
2104
|
* @see https://eslint-react.xyz/docs/rules/no-duplicate-key
|
|
2256
2105
|
*/
|
|
2257
|
-
'react/no-duplicate-key'?: Linter.RuleEntry<[]>
|
|
2106
|
+
'react-base/no-duplicate-key'?: Linter.RuleEntry<[]>
|
|
2258
2107
|
/**
|
|
2259
2108
|
* disallow implicit 'key' props
|
|
2260
2109
|
* @see https://eslint-react.xyz/docs/rules/no-implicit-key
|
|
2261
2110
|
*/
|
|
2262
|
-
'react/no-implicit-key'?: Linter.RuleEntry<[]>
|
|
2111
|
+
'react-base/no-implicit-key'?: Linter.RuleEntry<[]>
|
|
2263
2112
|
/**
|
|
2264
2113
|
* disallow problematic leaked values from being rendered
|
|
2265
2114
|
* @see https://eslint-react.xyz/docs/rules/no-leaked-conditional-rendering
|
|
2266
2115
|
*/
|
|
2267
|
-
'react/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>
|
|
2116
|
+
'react-base/no-leaked-conditional-rendering'?: Linter.RuleEntry<[]>
|
|
2268
2117
|
/**
|
|
2269
2118
|
* require 'displayName' for 'memo' and 'forwardRef' components
|
|
2270
2119
|
* @see https://eslint-react.xyz/docs/rules/no-missing-component-display-name
|
|
2271
2120
|
*/
|
|
2272
|
-
'react/no-missing-component-display-name'?: Linter.RuleEntry<[]>
|
|
2121
|
+
'react-base/no-missing-component-display-name'?: Linter.RuleEntry<[]>
|
|
2273
2122
|
/**
|
|
2274
2123
|
* require 'key' when rendering list
|
|
2275
2124
|
* @see https://eslint-react.xyz/docs/rules/no-missing-key
|
|
2276
2125
|
*/
|
|
2277
|
-
'react/no-missing-key'?: Linter.RuleEntry<[]>
|
|
2126
|
+
'react-base/no-missing-key'?: Linter.RuleEntry<[]>
|
|
2278
2127
|
/**
|
|
2279
2128
|
* disallow using unstable nested components
|
|
2280
2129
|
* @see https://eslint-react.xyz/docs/rules/no-nested-components
|
|
2281
2130
|
*/
|
|
2282
|
-
'react/no-nested-components'?: Linter.RuleEntry<[]>
|
|
2131
|
+
'react-base/no-nested-components'?: Linter.RuleEntry<[]>
|
|
2283
2132
|
/**
|
|
2284
2133
|
* disallow using 'propTypes' property in components
|
|
2285
2134
|
* @see https://eslint-react.xyz/docs/rules/no-prop-types
|
|
2286
2135
|
*/
|
|
2287
|
-
'react/no-prop-types'?: Linter.RuleEntry<[]>
|
|
2136
|
+
'react-base/no-prop-types'?: Linter.RuleEntry<[]>
|
|
2288
2137
|
/**
|
|
2289
2138
|
* disallow using 'shouldComponentUpdate' in class component extends 'React.PureComponent'
|
|
2290
2139
|
* @see https://eslint-react.xyz/docs/rules/no-redundant-should-component-update
|
|
2291
2140
|
*/
|
|
2292
|
-
'react/no-redundant-should-component-update'?: Linter.RuleEntry<[]>
|
|
2141
|
+
'react-base/no-redundant-should-component-update'?: Linter.RuleEntry<[]>
|
|
2293
2142
|
/**
|
|
2294
2143
|
* disallow using 'setState' in 'componentDidMount'
|
|
2295
2144
|
* @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-mount
|
|
2296
2145
|
*/
|
|
2297
|
-
'react/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>
|
|
2146
|
+
'react-base/no-set-state-in-component-did-mount'?: Linter.RuleEntry<[]>
|
|
2298
2147
|
/**
|
|
2299
2148
|
* disallow using 'setState' in 'componentDidUpdate'
|
|
2300
2149
|
* @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-did-update
|
|
2301
2150
|
*/
|
|
2302
|
-
'react/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>
|
|
2151
|
+
'react-base/no-set-state-in-component-did-update'?: Linter.RuleEntry<[]>
|
|
2303
2152
|
/**
|
|
2304
2153
|
* disallow using 'setState' in 'componentWillUpdate'
|
|
2305
2154
|
* @see https://eslint-react.xyz/docs/rules/no-set-state-in-component-will-update
|
|
2306
2155
|
*/
|
|
2307
|
-
'react/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>
|
|
2156
|
+
'react-base/no-set-state-in-component-will-update'?: Linter.RuleEntry<[]>
|
|
2308
2157
|
/**
|
|
2309
2158
|
* disallow using deprecated string refs
|
|
2310
2159
|
* @see https://eslint-react.xyz/docs/rules/no-string-refs
|
|
2311
2160
|
*/
|
|
2312
|
-
'react/no-string-refs'?: Linter.RuleEntry<[]>
|
|
2161
|
+
'react-base/no-string-refs'?: Linter.RuleEntry<[]>
|
|
2313
2162
|
/**
|
|
2314
2163
|
* disallow using 'UNSAFE_componentWillMount'
|
|
2315
2164
|
* @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-mount
|
|
2316
2165
|
*/
|
|
2317
|
-
'react/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>
|
|
2166
|
+
'react-base/no-unsafe-component-will-mount'?: Linter.RuleEntry<[]>
|
|
2318
2167
|
/**
|
|
2319
2168
|
* disallow using 'UNSAFE_componentWillReceiveProps'
|
|
2320
2169
|
* @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-receive-props
|
|
2321
2170
|
*/
|
|
2322
|
-
'react/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>
|
|
2171
|
+
'react-base/no-unsafe-component-will-receive-props'?: Linter.RuleEntry<[]>
|
|
2323
2172
|
/**
|
|
2324
2173
|
* disallow using 'UNSAFE_componentWillUpdate'
|
|
2325
2174
|
* @see https://eslint-react.xyz/docs/rules/no-unsafe-component-will-update
|
|
2326
2175
|
*/
|
|
2327
|
-
'react/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>
|
|
2176
|
+
'react-base/no-unsafe-component-will-update'?: Linter.RuleEntry<[]>
|
|
2328
2177
|
/**
|
|
2329
2178
|
* disallow passing constructed values to context providers
|
|
2330
2179
|
* @see https://eslint-react.xyz/docs/rules/no-unstable-context-value
|
|
2331
2180
|
*/
|
|
2332
|
-
'react/no-unstable-context-value'?: Linter.RuleEntry<[]>
|
|
2181
|
+
'react-base/no-unstable-context-value'?: Linter.RuleEntry<[]>
|
|
2333
2182
|
/**
|
|
2334
2183
|
* disallow using unstable value as default param in function component
|
|
2335
2184
|
* @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
|
|
2336
2185
|
*/
|
|
2337
|
-
'react/no-unstable-default-props'?: Linter.RuleEntry<[]>
|
|
2186
|
+
'react-base/no-unstable-default-props'?: Linter.RuleEntry<[]>
|
|
2338
2187
|
/**
|
|
2339
2188
|
* disallow unused class component members
|
|
2340
2189
|
* @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
|
|
2341
2190
|
*/
|
|
2342
|
-
'react/no-unused-class-component-members'?: Linter.RuleEntry<[]>
|
|
2191
|
+
'react-base/no-unused-class-component-members'?: Linter.RuleEntry<[]>
|
|
2343
2192
|
/**
|
|
2344
2193
|
* disallow unused state of class component
|
|
2345
2194
|
* @see https://eslint-react.xyz/docs/rules/no-unused-state
|
|
2346
2195
|
*/
|
|
2347
|
-
'react/no-unused-state'?: Linter.RuleEntry<[]>
|
|
2196
|
+
'react-base/no-unused-state'?: Linter.RuleEntry<[]>
|
|
2348
2197
|
/**
|
|
2349
2198
|
* disallow unnecessary fragments
|
|
2350
2199
|
* @see https://eslint-react.xyz/docs/rules/no-useless-fragment
|
|
2351
2200
|
*/
|
|
2352
|
-
'react/no-useless-fragment'?: Linter.RuleEntry<[]>
|
|
2201
|
+
'react-base/no-useless-fragment'?: Linter.RuleEntry<[]>
|
|
2353
2202
|
/**
|
|
2354
2203
|
* enforce using destructuring assignment in component props and context
|
|
2355
2204
|
* @see https://eslint-react.xyz/docs/rules/prefer-destructuring-assignment
|
|
2356
2205
|
*/
|
|
2357
|
-
'react/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>
|
|
2206
|
+
'react-base/prefer-destructuring-assignment'?: Linter.RuleEntry<[]>
|
|
2358
2207
|
/**
|
|
2359
2208
|
* enforce read-only props in components
|
|
2360
2209
|
* @see https://eslint-react.xyz/docs/rules/prefer-read-only-props
|
|
2361
2210
|
*/
|
|
2362
|
-
'react/prefer-read-only-props'?: Linter.RuleEntry<[]>
|
|
2211
|
+
'react-base/prefer-read-only-props'?: Linter.RuleEntry<[]>
|
|
2363
2212
|
/**
|
|
2364
2213
|
* enforce using shorthand boolean attributes
|
|
2365
2214
|
* @see https://eslint-react.xyz/docs/rules/prefer-shorthand-boolean
|
|
2366
2215
|
*/
|
|
2367
|
-
'react/prefer-shorthand-boolean'?: Linter.RuleEntry<[]>
|
|
2216
|
+
'react-base/prefer-shorthand-boolean'?: Linter.RuleEntry<[]>
|
|
2368
2217
|
/**
|
|
2369
2218
|
* enforce using fragment syntax instead of 'Fragment' component
|
|
2370
2219
|
* @see https://eslint-react.xyz/docs/rules/prefer-shorthand-fragment
|
|
2371
2220
|
*/
|
|
2372
|
-
'react/prefer-shorthand-fragment'?: Linter.RuleEntry<[]>
|
|
2221
|
+
'react-base/prefer-shorthand-fragment'?: Linter.RuleEntry<[]>
|
|
2222
|
+
/**
|
|
2223
|
+
* report all class components, including anonymous ones
|
|
2224
|
+
* @see https://eslint-react.xyz/docs/rules/debug-class-component
|
|
2225
|
+
*/
|
|
2226
|
+
'react-debug/class-component'?: Linter.RuleEntry<[]>
|
|
2227
|
+
/**
|
|
2228
|
+
* report all function components, including anonymous ones
|
|
2229
|
+
* @see https://eslint-react.xyz/docs/rules/debug-function-component
|
|
2230
|
+
*/
|
|
2231
|
+
'react-debug/function-component'?: Linter.RuleEntry<[]>
|
|
2232
|
+
/**
|
|
2233
|
+
* report all React Hooks
|
|
2234
|
+
* @see https://eslint-react.xyz/docs/rules/debug-hook
|
|
2235
|
+
*/
|
|
2236
|
+
'react-debug/hook'?: Linter.RuleEntry<[]>
|
|
2237
|
+
/**
|
|
2238
|
+
* report all identifiers that are initialized from React.
|
|
2239
|
+
* @see https://eslint-react.xyz/docs/rules/debug-is-from-react
|
|
2240
|
+
*/
|
|
2241
|
+
'react-debug/is-from-react'?: Linter.RuleEntry<[]>
|
|
2242
|
+
/**
|
|
2243
|
+
* report all React Hooks
|
|
2244
|
+
* @see https://eslint-react.xyz/docs/rules/debug-hook
|
|
2245
|
+
*/
|
|
2246
|
+
'react-debug/react-hooks'?: Linter.RuleEntry<[]>
|
|
2247
|
+
/**
|
|
2248
|
+
* disallow passing 'children' to void DOM elements
|
|
2249
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-children-in-void-dom-elements
|
|
2250
|
+
*/
|
|
2251
|
+
'react-dom/no-children-in-void-dom-elements'?: Linter.RuleEntry<[]>
|
|
2252
|
+
/**
|
|
2253
|
+
* disallow when a DOM component is using 'dangerouslySetInnerHTML'
|
|
2254
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml
|
|
2255
|
+
*/
|
|
2256
|
+
'react-dom/no-dangerously-set-innerhtml'?: Linter.RuleEntry<[]>
|
|
2257
|
+
/**
|
|
2258
|
+
* disallow when a DOM component is using both 'children' and 'dangerouslySetInnerHTML'
|
|
2259
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-dangerously-set-innerhtml-with-children
|
|
2260
|
+
*/
|
|
2261
|
+
'react-dom/no-dangerously-set-innerhtml-with-children'?: Linter.RuleEntry<[]>
|
|
2262
|
+
/**
|
|
2263
|
+
* disallow 'findDOMNode'
|
|
2264
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-find-dom-node
|
|
2265
|
+
*/
|
|
2266
|
+
'react-dom/no-find-dom-node'?: Linter.RuleEntry<[]>
|
|
2267
|
+
/**
|
|
2268
|
+
* enforce that button component have an explicit 'type' attribute
|
|
2269
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-missing-button-type
|
|
2270
|
+
*/
|
|
2271
|
+
'react-dom/no-missing-button-type'?: Linter.RuleEntry<[]>
|
|
2272
|
+
/**
|
|
2273
|
+
* enforce that 'iframe' component have an explicit 'sandbox' attribute
|
|
2274
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-missing-iframe-sandbox
|
|
2275
|
+
*/
|
|
2276
|
+
'react-dom/no-missing-iframe-sandbox'?: Linter.RuleEntry<[]>
|
|
2277
|
+
/**
|
|
2278
|
+
* enforce that namespaces are not used in React elements
|
|
2279
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-namespace
|
|
2280
|
+
*/
|
|
2281
|
+
'react-dom/no-namespace'?: Linter.RuleEntry<[]>
|
|
2282
|
+
/**
|
|
2283
|
+
* disallow usage of the return value of 'ReactDOM.render'
|
|
2284
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-render-return-value
|
|
2285
|
+
*/
|
|
2286
|
+
'react-dom/no-render-return-value'?: Linter.RuleEntry<[]>
|
|
2287
|
+
/**
|
|
2288
|
+
* disallow 'javascript:' URLs as JSX event handler prop's value
|
|
2289
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-script-url
|
|
2290
|
+
*/
|
|
2291
|
+
'react-dom/no-script-url'?: Linter.RuleEntry<[]>
|
|
2292
|
+
/**
|
|
2293
|
+
* disallow unsafe iframe 'sandbox' attribute combinations
|
|
2294
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-iframe-sandbox
|
|
2295
|
+
*/
|
|
2296
|
+
'react-dom/no-unsafe-iframe-sandbox'?: Linter.RuleEntry<[]>
|
|
2297
|
+
/**
|
|
2298
|
+
* disallow 'target="_blank"' on an external link without 'rel="noreferrer noopener"'
|
|
2299
|
+
* @see https://eslint-react.xyz/docs/rules/dom-no-unsafe-target-blank
|
|
2300
|
+
*/
|
|
2301
|
+
'react-dom/no-unsafe-target-blank'?: Linter.RuleEntry<[]>
|
|
2302
|
+
/**
|
|
2303
|
+
* enforce custom hooks to use at least one other hook inside
|
|
2304
|
+
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
|
|
2305
|
+
*/
|
|
2306
|
+
'react-hooks-extra/ensure-custom-hooks-using-other-hooks'?: Linter.RuleEntry<[]>
|
|
2307
|
+
/**
|
|
2308
|
+
* disallow unnecessary usage of 'useMemo'
|
|
2309
|
+
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
|
|
2310
|
+
*/
|
|
2311
|
+
'react-hooks-extra/ensure-use-memo-has-non-empty-deps'?: Linter.RuleEntry<[]>
|
|
2312
|
+
/**
|
|
2313
|
+
* disallow direct calls to the 'set' function of 'useState' in 'useEffect'
|
|
2314
|
+
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
|
|
2315
|
+
*/
|
|
2316
|
+
'react-hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>
|
|
2317
|
+
/**
|
|
2318
|
+
* disallow direct calls to the 'set' function of 'useState' in 'useEffect'
|
|
2319
|
+
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
|
|
2320
|
+
*/
|
|
2321
|
+
'react-hooks-extra/no-direct-set-state-in-use-layout-effect'?: Linter.RuleEntry<[]>
|
|
2322
|
+
/**
|
|
2323
|
+
* enforce custom hooks to use at least one other hook inside
|
|
2324
|
+
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-redundant-custom-hook
|
|
2325
|
+
*/
|
|
2326
|
+
'react-hooks-extra/no-redundant-custom-hook'?: Linter.RuleEntry<[]>
|
|
2327
|
+
/**
|
|
2328
|
+
* disallow unnecessary usage of 'useCallback'
|
|
2329
|
+
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-callback
|
|
2330
|
+
*/
|
|
2331
|
+
'react-hooks-extra/no-unnecessary-use-callback'?: Linter.RuleEntry<[]>
|
|
2332
|
+
/**
|
|
2333
|
+
* disallow unnecessary usage of 'useMemo'
|
|
2334
|
+
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-unnecessary-use-memo
|
|
2335
|
+
*/
|
|
2336
|
+
'react-hooks-extra/no-unnecessary-use-memo'?: Linter.RuleEntry<[]>
|
|
2337
|
+
/**
|
|
2338
|
+
* disallow function calls in 'useState' that aren't wrapped in an initializer function
|
|
2339
|
+
* @see https://eslint-react.xyz/docs/rules/hooks-extra-prefer-use-state-lazy-initialization
|
|
2340
|
+
*/
|
|
2341
|
+
'react-hooks-extra/prefer-use-state-lazy-initialization'?: Linter.RuleEntry<[]>
|
|
2342
|
+
/**
|
|
2343
|
+
* verifies the list of dependencies for Hooks like useEffect and similar
|
|
2344
|
+
* @see https://github.com/facebook/react/issues/14920
|
|
2345
|
+
*/
|
|
2346
|
+
'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>
|
|
2347
|
+
/**
|
|
2348
|
+
* enforces the Rules of Hooks
|
|
2349
|
+
* @see https://reactjs.org/docs/hooks-rules.html
|
|
2350
|
+
*/
|
|
2351
|
+
'react-hooks/rules-of-hooks'?: Linter.RuleEntry<[]>
|
|
2352
|
+
/**
|
|
2353
|
+
* enforce component naming convention to 'PascalCase' or 'CONSTANT_CASE'
|
|
2354
|
+
* @see https://eslint-react.xyz/docs/rules/naming-convention-component-name
|
|
2355
|
+
*/
|
|
2356
|
+
'react-naming-convention/component-name'?: Linter.RuleEntry<ReactNamingConventionComponentName>
|
|
2357
|
+
/**
|
|
2358
|
+
* enforce naming convention for JSX filenames
|
|
2359
|
+
* @see https://eslint-react.xyz/docs/rules/naming-convention-filename
|
|
2360
|
+
*/
|
|
2361
|
+
'react-naming-convention/filename'?: Linter.RuleEntry<ReactNamingConventionFilename>
|
|
2362
|
+
/**
|
|
2363
|
+
* enforce naming convention for JSX file extensions
|
|
2364
|
+
* @see https://eslint-react.xyz/docs/rules/naming-convention-filename-extension
|
|
2365
|
+
*/
|
|
2366
|
+
'react-naming-convention/filename-extension'?: Linter.RuleEntry<ReactNamingConventionFilenameExtension>
|
|
2367
|
+
/**
|
|
2368
|
+
* enforce destructuring and symmetric naming of 'useState' hook value and setter variables
|
|
2369
|
+
* @see https://eslint-react.xyz/docs/rules/naming-convention-use-state
|
|
2370
|
+
*/
|
|
2371
|
+
'react-naming-convention/use-state'?: Linter.RuleEntry<[]>
|
|
2372
|
+
'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>
|
|
2373
2373
|
/**
|
|
2374
2374
|
* enforce that every 'addEventListener' in a component or custom hook has a corresponding 'removeEventListener'.
|
|
2375
2375
|
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-event-listener
|
|
2376
2376
|
*/
|
|
2377
|
-
'react
|
|
2377
|
+
'react-web-api/no-leaked-event-listener'?: Linter.RuleEntry<[]>
|
|
2378
2378
|
/**
|
|
2379
2379
|
* enforce that every 'setInterval' in a component or custom hook has a corresponding 'clearInterval'.
|
|
2380
2380
|
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-interval
|
|
2381
2381
|
*/
|
|
2382
|
-
'react
|
|
2382
|
+
'react-web-api/no-leaked-interval'?: Linter.RuleEntry<[]>
|
|
2383
2383
|
/**
|
|
2384
2384
|
* enforce cleanup of 'ResizeObserver' instances in components and custom hooks.
|
|
2385
2385
|
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-resize-observer
|
|
2386
2386
|
*/
|
|
2387
|
-
'react
|
|
2387
|
+
'react-web-api/no-leaked-resize-observer'?: Linter.RuleEntry<[]>
|
|
2388
2388
|
/**
|
|
2389
2389
|
* enforce that every 'setTimeout' in a component or custom hook has a corresponding 'clearTimeout'.
|
|
2390
2390
|
* @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
|
|
2391
2391
|
*/
|
|
2392
|
-
'react
|
|
2392
|
+
'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>
|
|
2393
2393
|
/**
|
|
2394
2394
|
* Disallow assignments that can lead to race conditions due to usage of `await` or `yield`
|
|
2395
2395
|
* @see https://eslint.org/docs/latest/rules/require-atomic-updates
|
|
@@ -6829,13 +6829,7 @@ type ReactHooksExhaustiveDeps = []|[{
|
|
|
6829
6829
|
additionalHooks?: string
|
|
6830
6830
|
enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean
|
|
6831
6831
|
}]
|
|
6832
|
-
// ----- react-
|
|
6833
|
-
type ReactRefreshOnlyExportComponents = []|[{
|
|
6834
|
-
allowConstantExport?: boolean
|
|
6835
|
-
checkJS?: boolean
|
|
6836
|
-
allowExportNames?: string[]
|
|
6837
|
-
}]
|
|
6838
|
-
// ----- react/naming-convention/component-name -----
|
|
6832
|
+
// ----- react-naming-convention/component-name -----
|
|
6839
6833
|
type ReactNamingConventionComponentName = []|[(("PascalCase" | "CONSTANT_CASE") | {
|
|
6840
6834
|
allowAllCaps?: boolean
|
|
6841
6835
|
allowLeadingUnderscore?: boolean
|
|
@@ -6843,17 +6837,23 @@ type ReactNamingConventionComponentName = []|[(("PascalCase" | "CONSTANT_CASE")
|
|
|
6843
6837
|
excepts?: string[]
|
|
6844
6838
|
rule?: ("PascalCase" | "CONSTANT_CASE")
|
|
6845
6839
|
})]
|
|
6846
|
-
// ----- react
|
|
6840
|
+
// ----- react-naming-convention/filename -----
|
|
6847
6841
|
type ReactNamingConventionFilename = []|[(("PascalCase" | "camelCase" | "kebab-case" | "snake_case") | {
|
|
6848
6842
|
excepts?: string[]
|
|
6849
6843
|
extensions?: string[]
|
|
6850
6844
|
rule?: ("PascalCase" | "camelCase" | "kebab-case" | "snake_case")
|
|
6851
6845
|
})]
|
|
6852
|
-
// ----- react
|
|
6846
|
+
// ----- react-naming-convention/filename-extension -----
|
|
6853
6847
|
type ReactNamingConventionFilenameExtension = []|[(("always" | "as-needed") | {
|
|
6854
6848
|
allow?: ("always" | "as-needed")
|
|
6855
6849
|
extensions?: string[]
|
|
6856
6850
|
})]
|
|
6851
|
+
// ----- react-refresh/only-export-components -----
|
|
6852
|
+
type ReactRefreshOnlyExportComponents = []|[{
|
|
6853
|
+
allowConstantExport?: boolean
|
|
6854
|
+
checkJS?: boolean
|
|
6855
|
+
allowExportNames?: string[]
|
|
6856
|
+
}]
|
|
6857
6857
|
// ----- require-atomic-updates -----
|
|
6858
6858
|
type RequireAtomicUpdates = []|[{
|
|
6859
6859
|
allowProperties?: boolean
|
package/dist/index.js
CHANGED
|
@@ -963,12 +963,12 @@ var ReactRefreshAllowConstantExportPackages = ["vite"];
|
|
|
963
963
|
var RemixPackages = ["@remix-run/node", "@remix-run/react", "@remix-run/serve", "@remix-run/dev"];
|
|
964
964
|
var NextJsPackages = ["next"];
|
|
965
965
|
var eslintReactRenameMap = {
|
|
966
|
-
"@eslint-react": "react",
|
|
967
|
-
"@eslint-react/debug": "react
|
|
968
|
-
"@eslint-react/dom": "react
|
|
969
|
-
"@eslint-react/hooks-extra": "react
|
|
970
|
-
"@eslint-react/naming-convention": "react
|
|
971
|
-
"@eslint-react/web-api": "react
|
|
966
|
+
"@eslint-react": "react-base",
|
|
967
|
+
"@eslint-react/debug": "react-debug",
|
|
968
|
+
"@eslint-react/dom": "react-dom",
|
|
969
|
+
"@eslint-react/hooks-extra": "react-hooks-extra",
|
|
970
|
+
"@eslint-react/naming-convention": "react-naming-convention",
|
|
971
|
+
"@eslint-react/web-api": "react-web-api"
|
|
972
972
|
};
|
|
973
973
|
var react = async (options = {}) => {
|
|
974
974
|
const { files, overrides, typescript: typescript2 = true } = options;
|
|
@@ -1002,22 +1002,22 @@ var react = async (options = {}) => {
|
|
|
1002
1002
|
name: "zayne/react/rules",
|
|
1003
1003
|
rules: {
|
|
1004
1004
|
...renameRules(recommendedReactConfig.rules, eslintReactRenameMap),
|
|
1005
|
-
"react/avoid-shorthand-boolean": "error",
|
|
1006
|
-
"react/function-component-definition": "off",
|
|
1007
|
-
"react
|
|
1008
|
-
"react
|
|
1009
|
-
"react
|
|
1010
|
-
"react
|
|
1011
|
-
"react/no-
|
|
1012
|
-
"react/no-
|
|
1013
|
-
"react/no-
|
|
1014
|
-
"react/
|
|
1015
|
-
"react/
|
|
1016
|
-
"react/
|
|
1017
|
-
"react/
|
|
1018
|
-
"react/prefer-
|
|
1019
|
-
"react
|
|
1020
|
-
"react/
|
|
1005
|
+
"react-base/avoid-shorthand-boolean": "error",
|
|
1006
|
+
"react-base/function-component-definition": "off",
|
|
1007
|
+
"react-base/no-array-index-key": "error",
|
|
1008
|
+
"react-base/no-children-count": "off",
|
|
1009
|
+
"react-base/no-children-only": "off",
|
|
1010
|
+
"react-base/no-children-prop": "error",
|
|
1011
|
+
"react-base/no-children-to-array": "off",
|
|
1012
|
+
"react-base/no-clone-element": "off",
|
|
1013
|
+
"react-base/no-missing-component-display-name": "error",
|
|
1014
|
+
"react-base/prefer-destructuring-assignment": "error",
|
|
1015
|
+
"react-base/prefer-read-only-props": "off",
|
|
1016
|
+
"react-base/prefer-shorthand-fragment": "error",
|
|
1017
|
+
"react-hooks-extra/ensure-custom-hooks-using-other-hooks": "error",
|
|
1018
|
+
"react-hooks-extra/prefer-use-state-lazy-initialization": "error",
|
|
1019
|
+
"react-naming-convention/component-name": "warn",
|
|
1020
|
+
"react-naming-convention/use-state": "warn",
|
|
1021
1021
|
// Hook rules
|
|
1022
1022
|
// eslint-disable-next-line perfectionist/sort-objects
|
|
1023
1023
|
"react-hooks/exhaustive-deps": "warn",
|
|
@@ -1286,7 +1286,6 @@ var jsx = () => {
|
|
|
1286
1286
|
};
|
|
1287
1287
|
|
|
1288
1288
|
// src/factory.ts
|
|
1289
|
-
var ReactPackages = ["react", "react-dom", "next", "remix"];
|
|
1290
1289
|
var defaultPluginRenaming = {
|
|
1291
1290
|
...eslintReactRenameMap,
|
|
1292
1291
|
"@stylistic": "stylistic",
|
|
@@ -1294,6 +1293,7 @@ var defaultPluginRenaming = {
|
|
|
1294
1293
|
"import-x": "import",
|
|
1295
1294
|
n: "node"
|
|
1296
1295
|
};
|
|
1296
|
+
var ReactPackages = ["react", "react-dom"];
|
|
1297
1297
|
var resolveOptions = (option) => isObject(option) ? option : {};
|
|
1298
1298
|
var zayne = (options = {}, userConfigs = []) => {
|
|
1299
1299
|
const {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.ts","../src/globs.ts","../src/configs/ignores.ts","../src/configs/javascript.ts","../src/configs/tailwindcss.ts","../src/configs/typescript.ts","../src/configs/unicorn.ts","../src/configs/imports.ts","../src/configs/perfectionist.ts","../src/configs/stylistic.ts","../src/configs/jsonc.ts","../src/configs/jsdoc.ts","../src/configs/react.ts","../src/configs/sort.ts","../src/configs/jsx.ts","../src/factory.ts"],"names":["default","stylistic","ignores","typescript","jsx","isPackageExists","isObject"],"mappings":"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","file":"index.js","sourcesContent":["import { fileURLToPath } from \"node:url\";\nimport { isObject } from \"@zayne-labs/toolkit/type-helpers\";\nimport type { ESLint } from \"eslint\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { Awaitable, TypedFlatConfigItem } from \"./types\";\n\n/**\n * Combine array and non-array configs into a single array.\n */\nexport const combine = async (\n\t...configs: Array<Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[]>>\n) => {\n\tconst resolved = await Promise.all(configs);\n\n\treturn resolved.flat();\n};\n\nexport const interopDefault = async <TModule>(\n\tmodule: Awaitable<TModule>\n): Promise<TModule extends { default: infer TDefaultExport } ? TDefaultExport : TModule> => {\n\tconst resolved = await module;\n\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition\n\treturn (resolved as { default: never }).default ?? resolved;\n};\n\n/**\n * Rename plugin prefixes in a rule object.\n * Accepts a map of prefixes to rename.\n *\n * @example\n * ```ts\n * import { renameRules } from '@zayne-labs/eslint-config'\n *\n * export default [{\n * rules: renameRules(\n * {\n * '@typescript-eslint/indent': 'error'\n * },\n * { '@typescript-eslint': 'ts' }\n * )\n * }]\n * ```\n */\nexport const renameRules = (rules: Record<string, unknown>, renameMap: Record<string, string>) => {\n\tconst renamedRulesEntries = Object.entries(rules).map(([ruleKey, ruleValue]) => {\n\t\tfor (const [oldRuleName, newRuleName] of Object.entries(renameMap)) {\n\t\t\tif (ruleKey.startsWith(`${oldRuleName}/`)) {\n\t\t\t\treturn [`${newRuleName}${ruleKey.slice(oldRuleName.length)}`, ruleValue];\n\t\t\t}\n\t\t}\n\n\t\treturn [ruleKey, ruleValue];\n\t});\n\n\tconst renamedRules = Object.fromEntries(renamedRulesEntries) as TypedFlatConfigItem[\"rules\"];\n\n\treturn renamedRules;\n};\n\nexport const renamePlugins = (plugins: Record<string, unknown>, renameMap: Record<string, string>) => {\n\tconst renamedPluginEntries = Object.entries(plugins).map(([pluginKey, pluginValue]) => {\n\t\tif (pluginKey in renameMap) {\n\t\t\treturn [renameMap[pluginKey], pluginValue];\n\t\t}\n\n\t\treturn [pluginKey, pluginValue];\n\t});\n\n\tconst renamedPlugins = Object.fromEntries(renamedPluginEntries) as Record<string, ESLint.Plugin>;\n\n\treturn renamedPlugins;\n};\n\n/**\n * Rename plugin names a flat configs array\n *\n * @example\n * ```ts\n * import { renamePluginInConfigs } from '@zayne-labs/eslint-config'\n * import someConfigs from './some-configs'\n *\n * export default renamePluginInConfigs(someConfigs, {\n * '@typescript-eslint': 'ts',\n * 'import-x': 'import',\n * })\n * ```\n */\nexport const renamePluginInConfigs = (\n\tconfigs: TypedFlatConfigItem[],\n\trenameMap: Record<string, string>,\n\textraOverrides?: TypedFlatConfigItem\n): TypedFlatConfigItem[] => {\n\tconst renamedConfigs = configs.map((config) => ({\n\t\t...config,\n\t\t...extraOverrides,\n\t\t...(isObject(config.rules) && { rules: renameRules(config.rules, renameMap) }),\n\t\t...(isObject(config.plugins) && { plugins: renamePlugins(config.plugins, renameMap) }),\n\t}));\n\n\treturn renamedConfigs;\n};\n\nconst scopeUrl = fileURLToPath(new URL(\".\", import.meta.url));\nconst isCwdInScope = isPackageExists(\"@zayne-labs/eslint-config\");\n\nexport const isPackageInScope = (name: string): boolean => isPackageExists(name, { paths: [scopeUrl] });\n\nexport const ensurePackages = async (packages: Array<string | undefined>): Promise<void> => {\n\tif (process.env.CI || !process.stdout.isTTY || !isCwdInScope) return;\n\n\tconst nonExistingPackages = packages.filter((pkg) => pkg && !isPackageInScope(pkg)) as string[];\n\n\tif (nonExistingPackages.length === 0) return;\n\n\tconst clackPrompt = await import(\"@clack/prompts\");\n\n\tconst result = await clackPrompt.confirm({\n\t\tmessage: `${nonExistingPackages.length === 1 ? \"Package is\" : \"Packages are\"} required for this config: ${nonExistingPackages.join(\", \")}. Do you want to install them?`,\n\t});\n\n\tif (result) {\n\t\tconst antfuPkg = await import(\"@antfu/install-pkg\");\n\n\t\tawait antfuPkg.installPackage(nonExistingPackages, { dev: true });\n\t}\n};\n\n// export const toArray = <TValue>(value: TValue | TValue[]): TValue[] => {\n// \treturn Array.isArray(value) ? value : [value];\n// };\n","export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\n\nexport const GLOB_STYLES = \"**/*.{c,le,sc}ss\";\nexport const GLOB_CSS = \"**/*.css\";\nexport const GLOB_POSTCSS = \"**/*.{p,post}css\";\nexport const GLOB_LESS = \"**/*.less\";\nexport const GLOB_SCSS = \"**/*.scss\";\n\nexport const GLOB_JSON = \"**/*.json\";\nexport const GLOB_JSON5 = \"**/*.json5\";\nexport const GLOB_JSONC = \"**/*.jsonc\";\n\nexport const GLOB_MARKDOWN = \"**/*.md\";\nexport const GLOB_MARKDOWN_IN_MARKDOWN = \"**/*.md/*.md\";\nexport const GLOB_SVELTE = \"**/*.svelte\";\nexport const GLOB_VUE = \"**/*.vue\";\nexport const GLOB_YAML = \"**/*.y?(a)ml\";\nexport const GLOB_TOML = \"**/*.toml\";\nexport const GLOB_XML = \"**/*.xml\";\nexport const GLOB_SVG = \"**/*.svg\";\nexport const GLOB_HTML = \"**/*.htm?(l)\";\nexport const GLOB_ASTRO = \"**/*.astro\";\nexport const GLOB_ASTRO_TS = \"**/*.astro/*.ts\";\nexport const GLOB_GRAPHQL = \"**/*.{g,graph}ql\";\n\nexport const GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;\n\nexport const GLOB_TESTS = [\n\t`**/__tests__/**/*.${GLOB_SRC_EXT}`,\n\t`**/*.spec.${GLOB_SRC_EXT}`,\n\t`**/*.test.${GLOB_SRC_EXT}`,\n\t`**/*.bench.${GLOB_SRC_EXT}`,\n\t`**/*.benchmark.${GLOB_SRC_EXT}`,\n];\n\nexport const GLOB_ALL_SRC = [\n\tGLOB_SRC,\n\tGLOB_STYLES,\n\tGLOB_JSON,\n\tGLOB_JSON5,\n\tGLOB_MARKDOWN,\n\tGLOB_SVELTE,\n\tGLOB_VUE,\n\tGLOB_YAML,\n\tGLOB_XML,\n\tGLOB_HTML,\n];\n\nexport const GLOB_EXCLUDE = [\n\t\"**/node_modules\",\n\t\"**/dist\",\n\t\"**/package-lock.json\",\n\t\"**/yarn.lock\",\n\t\"**/pnpm-lock.yaml\",\n\t\"**/bun.lockb\",\n\n\t\"**/output\",\n\t\"**/coverage\",\n\t\"**/temp\",\n\t\"**/.temp\",\n\t\"**/tmp\",\n\t\"**/.tmp\",\n\t\"**/.history\",\n\t\"**/.vitepress/cache\",\n\t\"**/.nuxt\",\n\t\"**/.next\",\n\t\"**/.svelte-kit\",\n\t\"**/.vercel\",\n\t\"**/.changeset\",\n\t\"**/.idea\",\n\t\"**/.cache\",\n\t\"**/.output\",\n\t\"**/.vite-inspect\",\n\t\"**/.yarn\",\n\t\"**/vite.config.*.timestamp-*\",\n\n\t\"**/CHANGELOG*.md\",\n\t\"**/*.min.*\",\n\t\"**/LICENSE*\",\n\t\"**/__snapshots__\",\n\t\"**/auto-import?(s).d.ts\",\n\t\"**/components.d.ts\",\n];\n","import { interopDefault } from \"@/utils\";\nimport type { FlatGitignoreOptions } from \"eslint-config-flat-gitignore\";\nimport { GLOB_EXCLUDE } from \"../globs\";\nimport type { TypedFlatConfigItem } from \"../types\";\n\nexport const ignores = (userIgnores: string[] = []): TypedFlatConfigItem[] => [\n\t{\n\t\tignores: [...GLOB_EXCLUDE, ...userIgnores],\n\t\tname: \"zayne/defaults/ignores\",\n\t},\n];\n\nexport const gitIgnores = async (options?: FlatGitignoreOptions): Promise<TypedFlatConfigItem[]> => {\n\tconst antfuGitIgnore = await interopDefault(import(\"eslint-config-flat-gitignore\"));\n\n\tconst config = antfuGitIgnore({\n\t\tname: \"zayne/gitignore\",\n\t\tstrict: false,\n\t\t...options,\n\t});\n\n\treturn [config];\n};\n","import { eslintJs } from \"@/plugins\";\nimport type { OptionsOverrides, TypedFlatConfigItem } from \"@/types\";\nimport globals from \"globals\";\n\nconst javascript = (options: OptionsOverrides = {}): TypedFlatConfigItem[] => {\n\tconst { overrides } = options;\n\n\treturn [\n\t\t{\n\t\t\tlanguageOptions: {\n\t\t\t\tecmaVersion: \"latest\",\n\n\t\t\t\tglobals: {\n\t\t\t\t\t...globals.browser,\n\t\t\t\t\t...globals.node,\n\t\t\t\t\tdocument: \"readonly\",\n\t\t\t\t\tnavigator: \"readonly\",\n\t\t\t\t\twindow: \"readonly\",\n\t\t\t\t},\n\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t},\n\t\t\t\t\tecmaVersion: \"latest\",\n\t\t\t\t\tsourceType: \"module\",\n\t\t\t\t},\n\n\t\t\t\tsourceType: \"module\",\n\t\t\t},\n\n\t\t\tlinterOptions: {\n\t\t\t\treportUnusedDisableDirectives: true,\n\t\t\t},\n\n\t\t\tname: \"zayne/js-eslint/setup\",\n\t\t},\n\t\t{\n\t\t\tname: \"zayne/js-eslint/recommended\",\n\t\t\t...eslintJs.configs.recommended,\n\t\t},\n\t\t{\n\t\t\tname: \"zayne/js-eslint/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"accessor-pairs\": [\"error\", { enforceForClassMembers: true, setWithoutGet: true }],\n\t\t\t\t\"array-callback-return\": [\"error\", { allowImplicit: true }],\n\t\t\t\t\"block-scoped-var\": \"error\",\n\t\t\t\t\"class-methods-use-this\": \"error\",\n\t\t\t\tcomplexity: [\"warn\", 30],\n\t\t\t\t\"constructor-super\": \"error\",\n\t\t\t\tcurly: [\"error\", \"multi-line\"],\n\t\t\t\t\"default-case\": [\"error\", { commentPattern: \"^no default$\" }],\n\t\t\t\t\"default-case-last\": \"error\",\n\t\t\t\t\"default-param-last\": \"error\",\n\t\t\t\t\"dot-notation\": [\"error\", { allowKeywords: true }],\n\t\t\t\teqeqeq: [\"error\", \"always\", { null: \"ignore\" }],\n\t\t\t\t\"grouped-accessor-pairs\": \"error\",\n\t\t\t\t\"logical-assignment-operators\": \"warn\",\n\t\t\t\t\"max-depth\": [\"error\", 2],\n\t\t\t\t\"new-cap\": [\"error\", { capIsNew: false, newIsCap: true, properties: true }],\n\t\t\t\t\"no-alert\": \"warn\",\n\t\t\t\t\"no-array-constructor\": \"error\",\n\t\t\t\t\"no-async-promise-executor\": \"error\",\n\t\t\t\t\"no-await-in-loop\": \"error\",\n\t\t\t\t\"no-caller\": \"error\",\n\t\t\t\t\"no-case-declarations\": \"error\",\n\t\t\t\t\"no-class-assign\": \"error\",\n\t\t\t\t\"no-compare-neg-zero\": \"error\",\n\t\t\t\t\"no-cond-assign\": [\"error\", \"always\"],\n\t\t\t\t\"no-console\": [\"error\", { allow: [\"warn\", \"error\", \"info\", \"trace\"] }],\n\t\t\t\t\"no-const-assign\": \"error\",\n\t\t\t\t\"no-constant-condition\": \"warn\",\n\t\t\t\t\"no-constructor-return\": \"error\",\n\t\t\t\t\"no-control-regex\": \"error\",\n\t\t\t\t\"no-debugger\": \"error\",\n\t\t\t\t\"no-delete-var\": \"error\",\n\t\t\t\t\"no-dupe-args\": \"error\",\n\t\t\t\t\"no-dupe-class-members\": \"error\",\n\t\t\t\t\"no-dupe-keys\": \"error\",\n\t\t\t\t\"no-duplicate-case\": \"error\",\n\t\t\t\t\"no-else-return\": [\"error\", { allowElseIf: false }],\n\t\t\t\t\"no-empty\": [\"error\", { allowEmptyCatch: true }],\n\t\t\t\t\"no-empty-character-class\": \"error\",\n\t\t\t\t\"no-empty-pattern\": \"error\",\n\t\t\t\t\"no-eval\": \"error\",\n\t\t\t\t\"no-ex-assign\": \"error\",\n\t\t\t\t\"no-extend-native\": \"error\",\n\t\t\t\t\"no-extra-bind\": \"error\",\n\t\t\t\t\"no-extra-boolean-cast\": \"error\",\n\t\t\t\t\"no-fallthrough\": \"error\",\n\t\t\t\t\"no-func-assign\": \"error\",\n\t\t\t\t\"no-global-assign\": \"error\",\n\t\t\t\t\"no-implicit-coercion\": \"warn\",\n\t\t\t\t\"no-implied-eval\": \"error\",\n\t\t\t\t\"no-import-assign\": \"error\",\n\t\t\t\t\"no-invalid-regexp\": \"error\",\n\t\t\t\t\"no-irregular-whitespace\": \"error\",\n\t\t\t\t\"no-iterator\": \"error\",\n\t\t\t\t\"no-labels\": [\"error\", { allowLoop: false, allowSwitch: false }],\n\t\t\t\t\"no-lone-blocks\": \"error\",\n\t\t\t\t\"no-loop-func\": \"error\",\n\t\t\t\t\"no-loss-of-precision\": \"error\",\n\t\t\t\t\"no-misleading-character-class\": \"error\",\n\t\t\t\t\"no-multi-str\": \"error\",\n\t\t\t\t\"no-new\": \"error\",\n\t\t\t\t\"no-new-func\": \"error\",\n\t\t\t\t\"no-new-native-nonconstructor\": \"error\",\n\t\t\t\t\"no-new-wrappers\": \"error\",\n\t\t\t\t\"no-obj-calls\": \"error\",\n\t\t\t\t\"no-octal\": \"error\",\n\t\t\t\t\"no-octal-escape\": \"error\",\n\t\t\t\t\"no-param-reassign\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tignorePropertyModificationsFor: [\n\t\t\t\t\t\t\t\"acc\", // for reduce accumulators\n\t\t\t\t\t\t\t\"accumulator\", // for reduce accumulators\n\t\t\t\t\t\t\t\"e\", // for e.returnvalue\n\t\t\t\t\t\t\t\"ctx\", // for Koa routing\n\t\t\t\t\t\t\t\"context\", // for Koa routing\n\t\t\t\t\t\t\t\"req\", // for Express requests\n\t\t\t\t\t\t\t\"request\", // for Express requests\n\t\t\t\t\t\t\t\"res\", // for Express responses\n\t\t\t\t\t\t\t\"response\", // for Express responses\n\t\t\t\t\t\t\t\"$scope\", // for Angular 1 scopes\n\t\t\t\t\t\t\t\"staticContext\", // for ReactRouter context\n\t\t\t\t\t\t],\n\t\t\t\t\t\tprops: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-proto\": \"error\",\n\t\t\t\t\"no-prototype-builtins\": \"error\",\n\t\t\t\t\"no-redeclare\": [\"error\", { builtinGlobals: false }],\n\t\t\t\t\"no-regex-spaces\": \"error\",\n\t\t\t\t\"no-restricted-exports\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\trestrictedNamedExports: [\n\t\t\t\t\t\t\t\"default\", // use `export default` to provide a default export\n\t\t\t\t\t\t\t\"then\", // this will cause tons of confusion when your module is dynamically `import()`ed, and will break in most node ESM versions\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-restricted-globals\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Use Number.isFinite instead https://github.com/airbnb/javascript#standard-library--isfinite\",\n\t\t\t\t\t\tname: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Use Number.isNaN instead https://github.com/airbnb/javascript#standard-library--isnan\",\n\t\t\t\t\t\tname: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{ message: \"Use `globalThis` instead.\", name: \"global\" },\n\t\t\t\t\t{ message: \"Use `globalThis` instead.\", name: \"self\" },\n\t\t\t\t],\n\t\t\t\t\"no-restricted-imports\": [\"off\", { paths: [], patterns: [] }],\n\t\t\t\t\"no-restricted-properties\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"arguments.callee is deprecated\",\n\t\t\t\t\t\tobject: \"arguments\",\n\t\t\t\t\t\tproperty: \"callee\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"global\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"self\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"window\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"global\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"self\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"window\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Use the exponentiation operator (**) instead.\",\n\t\t\t\t\t\tobject: \"Math\",\n\t\t\t\t\t\tproperty: \"pow\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.\",\n\t\t\t\t\t\tproperty: \"__proto__\",\n\t\t\t\t\t},\n\t\t\t\t\t{ message: \"Use `Object.defineProperty` instead.\", property: \"__defineGetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.defineProperty` instead.\", property: \"__defineSetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.getOwnPropertyDescriptor` instead.\", property: \"__lookupGetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.getOwnPropertyDescriptor` instead.\", property: \"__lookupSetter__\" },\n\t\t\t\t],\n\t\t\t\t\"no-restricted-syntax\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"ForInStatement\",\n\t\t\t\t\t\"LabeledStatement\",\n\t\t\t\t\t\"WithStatement\",\n\t\t\t\t\t\"TSEnumDeclaration[const=true]\",\n\t\t\t\t\t\"TSExportAssignment\",\n\t\t\t\t],\n\t\t\t\t\"no-return-assign\": [\"error\", \"except-parens\"],\n\t\t\t\t\"no-script-url\": \"error\",\n\t\t\t\t\"no-self-assign\": [\"error\", { props: true }],\n\t\t\t\t\"no-self-compare\": \"error\",\n\t\t\t\t\"no-sequences\": \"error\",\n\t\t\t\t\"no-shadow-restricted-names\": \"error\",\n\t\t\t\t\"no-sparse-arrays\": \"error\",\n\t\t\t\t\"no-template-curly-in-string\": \"error\",\n\t\t\t\t\"no-this-before-super\": \"error\",\n\t\t\t\t\"no-throw-literal\": \"error\",\n\t\t\t\t\"no-undef\": \"error\",\n\t\t\t\t\"no-undef-init\": \"error\",\n\t\t\t\t\"no-unexpected-multiline\": \"error\",\n\t\t\t\t\"no-unmodified-loop-condition\": \"error\",\n\t\t\t\t\"no-unneeded-ternary\": [\"warn\", { defaultAssignment: false }],\n\t\t\t\t\"no-unreachable\": \"error\",\n\t\t\t\t\"no-unreachable-loop\": \"error\",\n\t\t\t\t\"no-unsafe-finally\": \"error\",\n\t\t\t\t\"no-unsafe-negation\": \"error\",\n\t\t\t\t\"no-unused-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowShortCircuit: true,\n\t\t\t\t\t\tallowTaggedTemplates: true,\n\t\t\t\t\t\tallowTernary: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\targs: \"none\",\n\t\t\t\t\t\tcaughtErrors: \"none\",\n\t\t\t\t\t\tignoreRestSiblings: true,\n\t\t\t\t\t\tvars: \"all\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t// \"no-use-before-define\": [\"error\", { classes: false, functions: false, variables: true }],\n\t\t\t\t\"no-useless-backreference\": \"error\",\n\t\t\t\t\"no-useless-call\": \"error\",\n\t\t\t\t\"no-useless-catch\": \"error\",\n\t\t\t\t\"no-useless-computed-key\": \"error\",\n\t\t\t\t\"no-useless-concat\": \"error\",\n\t\t\t\t\"no-useless-constructor\": \"error\",\n\t\t\t\t\"no-useless-rename\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ ignoreDestructuring: false, ignoreExport: false, ignoreImport: false },\n\t\t\t\t],\n\t\t\t\t\"no-useless-return\": \"error\",\n\t\t\t\t\"no-var\": \"error\",\n\t\t\t\t\"no-with\": \"error\",\n\t\t\t\t\"object-shorthand\": [\"error\", \"always\", { avoidQuotes: true, ignoreConstructors: false }],\n\t\t\t\t\"one-var\": [\"error\", { initialized: \"never\" }],\n\t\t\t\t\"operator-assignment\": \"warn\",\n\t\t\t\t\"prefer-arrow-callback\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowNamedFunctions: false,\n\t\t\t\t\t\tallowUnboundThis: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"prefer-const\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tdestructuring: \"all\",\n\t\t\t\t\t\tignoreReadBeforeAssign: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"prefer-exponentiation-operator\": \"error\",\n\t\t\t\t\"prefer-object-has-own\": \"error\",\n\t\t\t\t\"prefer-object-spread\": \"warn\",\n\t\t\t\t\"prefer-promise-reject-errors\": \"error\",\n\t\t\t\t\"prefer-regex-literals\": [\"error\", { disallowRedundantWrapping: true }],\n\t\t\t\t\"prefer-rest-params\": \"error\",\n\t\t\t\t\"prefer-spread\": \"error\",\n\t\t\t\t\"prefer-template\": \"error\",\n\t\t\t\tradix: \"error\",\n\t\t\t\t\"symbol-description\": \"error\",\n\t\t\t\t\"unicode-bom\": [\"error\", \"never\"],\n\t\t\t\t\"use-isnan\": [\"error\", { enforceForIndexOf: true, enforceForSwitchCase: true }],\n\t\t\t\t\"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n\t\t\t\t\"vars-on-top\": \"error\",\n\t\t\t\tyoda: [\"error\", \"never\"],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { javascript };\n","import type { OptionsOverrides, OptionsTailwindCSS, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault } from \"@/utils\";\n\nconst tailwindcss = async (\n\toptions: OptionsOverrides & OptionsTailwindCSS = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst eslintPluginTailwindCss = await interopDefault(await import(\"eslint-plugin-tailwindcss\"));\n\n\tconst { overrides, settings: tailwindCssSettings } = options;\n\n\tawait ensurePackages([\"eslint-plugin-tailwindcss\"]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/tailwindcss/setup\",\n\t\t\tplugins: {\n\t\t\t\ttailwindcss: eslintPluginTailwindCss,\n\t\t\t},\n\t\t\tsettings: {\n\t\t\t\ttailwindcss: {\n\t\t\t\t\tcallees: [\"tv\", \"cnMerge\", \"cn\", \"cnJoin\", \"twMerge\", \"twJoin\"],\n\t\t\t\t\tcssFiles: [],\n\t\t\t\t\tremoveDuplicates: false, // Turned off cuz prettier already handles this via plugin\n\t\t\t\t\t...tailwindCssSettings,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/tailwindcss/rules\",\n\n\t\t\trules: {\n\t\t\t\t...eslintPluginTailwindCss.configs[\"flat/recommended\"][1]?.rules,\n\n\t\t\t\t\"tailwindcss/no-contradicting-classname\": \"off\", // Turned off cuz tw intellisense already handles this\n\t\t\t\t\"tailwindcss/no-custom-classname\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{ ignoredKeys: [\"compoundVariants\", \"defaultVariants\", \"responsiveVariants\"] },\n\t\t\t\t],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { tailwindcss };\n","import { interopDefault, renamePluginInConfigs } from \"@/utils\";\nimport { GLOB_ASTRO_TS, GLOB_MARKDOWN, GLOB_TS, GLOB_TSX } from \"../globs\";\nimport type {\n\tOptionsComponentExts,\n\tOptionsFiles,\n\tOptionsOverrides,\n\tOptionsStylistic,\n\tOptionsTypeScriptParserOptions,\n\tOptionsTypeScriptWithTypes,\n\tTypedFlatConfigItem,\n} from \"../types\";\n\nexport const typescript = async (\n\toptions: OptionsComponentExts &\n\t\tOptionsFiles &\n\t\tOptionsOverrides &\n\t\tOptionsStylistic &\n\t\tOptionsTypeScriptParserOptions &\n\t\tOptionsTypeScriptWithTypes = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst {\n\t\tallowDefaultProjects,\n\t\tcomponentExts = [],\n\t\tfiles = [GLOB_TS, GLOB_TSX, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\tfilesTypeAware = [GLOB_TS, GLOB_TSX],\n\t\tignoresTypeAware = [`${GLOB_MARKDOWN}/**`, GLOB_ASTRO_TS],\n\t\toverrides,\n\t\tparserOptions,\n\t\tstylistic = true,\n\t\ttsconfigPath,\n\t} = options;\n\n\tconst isTypeAware = Boolean(tsconfigPath);\n\n\tconst tsEslint = await interopDefault(import(\"typescript-eslint\"));\n\n\tconst makeParser = (parsedFiles: string[], ignores?: string[]): TypedFlatConfigItem => ({\n\t\tfiles: parsedFiles,\n\n\t\t...(ignores && { ignores }),\n\n\t\tlanguageOptions: {\n\t\t\tparser: tsEslint.parser,\n\n\t\t\tparserOptions: {\n\t\t\t\tecmaFeatures: { globalReturn: true },\n\n\t\t\t\textraFileExtensions: componentExts.map((ext) => `.${ext}`),\n\n\t\t\t\t...(isTypeAware && {\n\t\t\t\t\t...(allowDefaultProjects\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\t\t\tallowDefaultProject: allowDefaultProjects,\n\t\t\t\t\t\t\t\t\tdefaultProject: tsconfigPath,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: { project: tsconfigPath }),\n\n\t\t\t\t\ttsconfigRootDir: process.cwd(),\n\t\t\t\t}),\n\n\t\t\t\tsourceType: \"module\",\n\n\t\t\t\t...parserOptions,\n\t\t\t},\n\t\t},\n\t});\n\n\tconst typeAwareRules: TypedFlatConfigItem[\"rules\"] = {\n\t\t\"ts-eslint/no-unnecessary-type-parameters\": \"off\",\n\t\t// \"ts-eslint/non-nullable-type-assertion-style\": \"off\",\n\t\t\"ts-eslint/prefer-nullish-coalescing\": [\"error\", { ignoreConditionalTests: true }],\n\t\t\"ts-eslint/restrict-template-expressions\": [\n\t\t\t\"error\",\n\t\t\t{ allowBoolean: true, allowNullish: true, allowNumber: true },\n\t\t],\n\t\t\"ts-eslint/return-await\": [\"error\", \"in-try-catch\"],\n\t};\n\n\treturn [\n\t\t{\n\t\t\tname: `zayne/ts-eslint/${isTypeAware ? \"type-aware-setup\" : \"setup\"}`,\n\n\t\t\t...makeParser(files),\n\t\t\t...(isTypeAware && makeParser(filesTypeAware, ignoresTypeAware)),\n\t\t},\n\n\t\t...renamePluginInConfigs(\n\t\t\ttsEslint.configs[isTypeAware ? \"strictTypeChecked\" : \"strict\"],\n\t\t\t{ \"@typescript-eslint\": \"ts-eslint\" },\n\t\t\t{ files, name: `zayne/ts-eslint/${isTypeAware ? \"strictTypeChecked\" : \"strict\"}` }\n\t\t),\n\n\t\t...(stylistic\n\t\t\t? renamePluginInConfigs(\n\t\t\t\t\ttsEslint.configs[isTypeAware ? \"stylisticTypeChecked\" : \"stylistic\"],\n\t\t\t\t\t{ \"@typescript-eslint\": \"ts-eslint\" },\n\t\t\t\t\t{ files, name: `zayne/ts-eslint/${isTypeAware ? \"stylisticTypeChecked\" : \"stylistic\"}` }\n\t\t\t\t)\n\t\t\t: []),\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/ts-eslint/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"ts-eslint/array-type\": [\"error\", { default: \"array-simple\" }],\n\t\t\t\t\"ts-eslint/consistent-type-definitions\": [\"error\", \"type\"],\n\t\t\t\t\"ts-eslint/default-param-last\": \"error\",\n\t\t\t\t\"ts-eslint/member-ordering\": \"error\",\n\t\t\t\t\"ts-eslint/method-signature-style\": [\"error\", \"property\"],\n\t\t\t\t\"ts-eslint/no-confusing-void-expression\": \"off\",\n\t\t\t\t\"ts-eslint/no-empty-function\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ allow: [\"arrowFunctions\", \"functions\", \"methods\"] },\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-import-type-side-effects\": \"error\",\n\t\t\t\t\"ts-eslint/no-shadow\": \"error\",\n\t\t\t\t\"ts-eslint/no-unused-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowShortCircuit: true,\n\t\t\t\t\t\tallowTernary: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-unused-vars\": [\"warn\", { ignoreRestSiblings: true }],\n\t\t\t\t\"ts-eslint/no-use-before-define\": \"off\",\n\t\t\t\t\"ts-eslint/no-useless-constructor\": \"error\",\n\n\t\t\t\t...(isTypeAware && typeAwareRules),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { interopDefault } from \"@/utils\";\nimport type { OptionsOverrides, TypedFlatConfigItem } from \"../types\";\n\nexport const unicorn = async (options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tconst eslintPluginUnicorn = await interopDefault(import(\"eslint-plugin-unicorn\"));\n\n\treturn [\n\t\t{ ...eslintPluginUnicorn.configs[\"flat/recommended\"], name: \"zayne/unicorn/recommended\" },\n\t\t{\n\t\t\tname: \"zayne/unicorn/rules\",\n\t\t\trules: {\n\t\t\t\t\"unicorn/filename-case\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tcases: {\n\t\t\t\t\t\t\tcamelCase: true,\n\t\t\t\t\t\t\tkebabCase: true,\n\t\t\t\t\t\t\tpascalCase: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"unicorn/new-for-builtins\": \"off\",\n\t\t\t\t\"unicorn/no-array-for-each\": \"off\",\n\t\t\t\t\"unicorn/no-array-reduce\": \"off\",\n\t\t\t\t\"unicorn/no-negated-condition\": \"off\",\n\t\t\t\t\"unicorn/no-null\": \"off\",\n\t\t\t\t\"unicorn/no-useless-undefined\": [\"error\", { checkArguments: true }],\n\t\t\t\t\"unicorn/numeric-separators-style\": \"off\",\n\t\t\t\t\"unicorn/prevent-abbreviations\": \"off\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { eslintPluginImportX } from \"@/plugins\";\nimport type {\n\tOptionsHasTypeScript,\n\tOptionsOverrides,\n\tOptionsStylistic,\n\tTypedFlatConfigItem,\n} from \"@/types\";\n\nconst imports = (\n\toptions: OptionsHasTypeScript & OptionsOverrides & OptionsStylistic\n): TypedFlatConfigItem[] => {\n\tconst { overrides, stylistic = true, typescript = true } = options;\n\n\treturn [\n\t\t{\n\t\t\tplugins: {\n\t\t\t\timport: eslintPluginImportX,\n\t\t\t},\n\t\t\t...(typescript && { settings: eslintPluginImportX.flatConfigs.typescript.settings }),\n\t\t\tname: \"zayne/import/setup\",\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/import/rules\",\n\n\t\t\trules: {\n\t\t\t\t...eslintPluginImportX.flatConfigs.recommended.rules,\n\t\t\t\t...(typescript && eslintPluginImportX.flatConfigs.typescript.rules),\n\n\t\t\t\t\"import/export\": \"error\",\n\t\t\t\t\"import/extensions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"never\",\n\t\t\t\t\t{ ignorePackages: true, pattern: { png: \"always\", svg: \"always\" } },\n\t\t\t\t],\n\t\t\t\t\"import/first\": \"error\",\n\t\t\t\t\"import/namespace\": \"off\",\n\t\t\t\t\"import/no-absolute-path\": \"error\",\n\t\t\t\t\"import/no-cycle\": [\"error\", { ignoreExternal: true, maxDepth: 3 }],\n\t\t\t\t\"import/no-duplicates\": \"error\",\n\t\t\t\t\"import/no-extraneous-dependencies\": [\"error\", { devDependencies: true }],\n\t\t\t\t\"import/no-mutable-exports\": \"error\",\n\t\t\t\t\"import/no-named-as-default\": \"error\",\n\t\t\t\t\"import/no-named-as-default-member\": \"error\",\n\t\t\t\t\"import/no-named-default\": \"error\",\n\t\t\t\t\"import/no-relative-packages\": \"error\",\n\t\t\t\t\"import/no-self-import\": \"error\",\n\t\t\t\t\"import/no-unresolved\": \"off\",\n\t\t\t\t\"import/no-useless-path-segments\": [\"error\", { commonjs: true }],\n\t\t\t\t\"import/prefer-default-export\": \"off\",\n\n\t\t\t\t...(stylistic && { \"import/newline-after-import\": \"error\" }),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { imports };\n","import type { OptionsOverrides, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst perfectionist = async (options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tconst eslintPluginPerfectionist = await interopDefault(import(\"eslint-plugin-perfectionist\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/perfectionist/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tperfectionist: eslintPluginPerfectionist,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"perfectionist/sort-array-includes\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-classes\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-interfaces\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-intersection-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t\"conditional\",\n\t\t\t\t\t\t\t\"literal\",\n\t\t\t\t\t\t\t\"import\",\n\t\t\t\t\t\t\t\"intersection\",\n\t\t\t\t\t\t\t\"keyword\",\n\t\t\t\t\t\t\t\"tuple\",\n\t\t\t\t\t\t\t\"named\",\n\t\t\t\t\t\t\t\"object\",\n\t\t\t\t\t\t\t\"function\",\n\t\t\t\t\t\t\t\"operator\",\n\t\t\t\t\t\t\t\"union\",\n\t\t\t\t\t\t\t\"nullish\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-maps\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-object-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-objects\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-switch-case\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-union-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t\"conditional\",\n\t\t\t\t\t\t\t\"literal\",\n\t\t\t\t\t\t\t\"import\",\n\t\t\t\t\t\t\t\"intersection\",\n\t\t\t\t\t\t\t\"keyword\",\n\t\t\t\t\t\t\t\"tuple\",\n\t\t\t\t\t\t\t\"named\",\n\t\t\t\t\t\t\t\"object\",\n\t\t\t\t\t\t\t\"function\",\n\t\t\t\t\t\t\t\"operator\",\n\t\t\t\t\t\t\t\"union\",\n\t\t\t\t\t\t\t\"nullish\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"perfectionist/sort-variable-declarations\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t// \"perfectionist/sort-svelte-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-astro-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-vue-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-jsx-props\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\t// ignorePattern: [\"src\"],\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { perfectionist };\n","import type { OptionsHasJsx, OptionsOverrides, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst stylistic = async (\n\toptions: OptionsHasJsx & OptionsOverrides = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { jsx = true, overrides } = options;\n\tconst eslintPluginStylistic = await interopDefault(import(\"@stylistic/eslint-plugin\"));\n\n\treturn [\n\t\t// == Stylistic Rules (Optional)\n\t\t{\n\t\t\tname: \"zayne/stylistic/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tstylistic: eslintPluginStylistic,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"stylistic/no-floating-decimal\": \"error\",\n\t\t\t\t\"stylistic/spaced-comment\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t\"always\",\n\t\t\t\t\t{\n\t\t\t\t\t\tblock: {\n\t\t\t\t\t\t\tbalanced: true,\n\t\t\t\t\t\t\texceptions: [\"*\"],\n\t\t\t\t\t\t\tmarkers: [\"!\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tline: {\n\t\t\t\t\t\t\texceptions: [\"/\", \"#\"],\n\t\t\t\t\t\t\tmarkers: [\"/\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t...(jsx && {\n\t\t\t\t\t\"stylistic/jsx-self-closing-comp\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { stylistic };\n","import { GLOB_JSON, GLOB_JSON5, GLOB_JSONC } from \"@/globs\";\nimport type { OptionsFiles, OptionsOverrides, OptionsStylistic, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst jsonc = async (\n\toptions: OptionsFiles & OptionsOverrides & OptionsStylistic = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files, overrides, stylistic = true } = options;\n\n\tconst [eslintPluginJsonc, jsoncParser] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-jsonc\")),\n\t\tinteropDefault(import(\"jsonc-eslint-parser\")),\n\t] as const);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/jsonc/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tjsonc: eslintPluginJsonc,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles: files ?? [GLOB_JSON, GLOB_JSON5, GLOB_JSONC],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: jsoncParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/jsonc/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"jsonc/no-bigint-literals\": \"error\",\n\t\t\t\t\"jsonc/no-binary-expression\": \"error\",\n\t\t\t\t\"jsonc/no-binary-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-dupe-keys\": \"error\",\n\t\t\t\t\"jsonc/no-escape-sequence-in-identifier\": \"error\",\n\t\t\t\t\"jsonc/no-floating-decimal\": \"error\",\n\t\t\t\t\"jsonc/no-hexadecimal-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-infinity\": \"error\",\n\t\t\t\t\"jsonc/no-multi-str\": \"error\",\n\t\t\t\t\"jsonc/no-nan\": \"error\",\n\t\t\t\t\"jsonc/no-number-props\": \"error\",\n\t\t\t\t\"jsonc/no-numeric-separators\": \"error\",\n\t\t\t\t\"jsonc/no-octal\": \"error\",\n\t\t\t\t\"jsonc/no-octal-escape\": \"error\",\n\t\t\t\t\"jsonc/no-octal-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-parenthesized\": \"error\",\n\t\t\t\t\"jsonc/no-plus-sign\": \"error\",\n\t\t\t\t\"jsonc/no-regexp-literals\": \"error\",\n\t\t\t\t\"jsonc/no-sparse-arrays\": \"error\",\n\t\t\t\t\"jsonc/no-template-literals\": \"error\",\n\t\t\t\t\"jsonc/no-undefined-value\": \"error\",\n\t\t\t\t\"jsonc/no-unicode-codepoint-escapes\": \"error\",\n\t\t\t\t\"jsonc/no-useless-escape\": \"error\",\n\t\t\t\t\"jsonc/space-unary-ops\": \"error\",\n\t\t\t\t\"jsonc/valid-json-number\": \"error\",\n\t\t\t\t\"jsonc/vue-custom-block/no-parsing-error\": \"error\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"jsonc/array-bracket-spacing\": [\"error\", \"never\"],\n\t\t\t\t\t\"jsonc/comma-dangle\": [\"error\", \"never\"],\n\t\t\t\t\t\"jsonc/comma-style\": [\"error\", \"last\"],\n\t\t\t\t\t\"jsonc/key-spacing\": [\"error\", { afterColon: true, beforeColon: false }],\n\t\t\t\t\t\"jsonc/object-curly-newline\": [\"error\", { consistent: true, multiline: true }],\n\t\t\t\t\t\"jsonc/object-curly-spacing\": [\"error\", \"always\"],\n\t\t\t\t\t\"jsonc/object-property-newline\": [\"error\", { allowMultiplePropertiesPerLine: true }],\n\t\t\t\t\t\"jsonc/quote-props\": \"error\",\n\t\t\t\t\t\"jsonc/quotes\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { jsonc };\n","import type { OptionsOverrides, OptionsStylistic, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst jsdoc = async (\n\toptions: OptionsOverrides & OptionsStylistic = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, stylistic = true } = options;\n\n\tconst eslintPluginJsdoc = await interopDefault(import(\"eslint-plugin-jsdoc\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/jsdoc/rules\",\n\t\t\tplugins: {\n\t\t\t\tjsdoc: eslintPluginJsdoc,\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t\"jsdoc/check-access\": \"warn\",\n\t\t\t\t\"jsdoc/check-param-names\": \"warn\",\n\t\t\t\t\"jsdoc/check-property-names\": \"warn\",\n\t\t\t\t\"jsdoc/check-types\": \"warn\",\n\t\t\t\t\"jsdoc/empty-tags\": \"warn\",\n\t\t\t\t\"jsdoc/implements-on-classes\": \"warn\",\n\t\t\t\t\"jsdoc/no-defaults\": \"warn\",\n\t\t\t\t\"jsdoc/no-multi-asterisks\": \"warn\",\n\t\t\t\t\"jsdoc/require-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-param-name\": \"warn\",\n\t\t\t\t\"jsdoc/require-property\": \"warn\",\n\t\t\t\t\"jsdoc/require-property-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-property-name\": \"warn\",\n\t\t\t\t\"jsdoc/require-returns-check\": \"warn\",\n\t\t\t\t\"jsdoc/require-returns-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-yields-check\": \"warn\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"jsdoc/check-alignment\": \"warn\",\n\t\t\t\t\t\"jsdoc/multiline-blocks\": \"warn\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { jsdoc };\n","import type { OptionsFiles, OptionsHasTypeScript, OptionsOverrides, TypedFlatConfigItem } from \"@/types\";\n\nimport { GLOB_SRC } from \"@/globs\";\nimport { ensurePackages, interopDefault, renamePlugins, renameRules } from \"@/utils\";\nimport { fixupPluginRules } from \"@eslint/compat\";\nimport type { ESLint } from \"eslint\";\nimport { isPackageExists } from \"local-pkg\";\n\n// react refresh\nconst ReactRefreshAllowConstantExportPackages = [\"vite\"];\nconst RemixPackages = [\"@remix-run/node\", \"@remix-run/react\", \"@remix-run/serve\", \"@remix-run/dev\"];\nconst NextJsPackages = [\"next\"];\n\nexport const eslintReactRenameMap = {\n\t\"@eslint-react\": \"react\",\n\t\"@eslint-react/debug\": \"react/debug\",\n\t\"@eslint-react/dom\": \"react/dom\",\n\t\"@eslint-react/hooks-extra\": \"react/hooks-extra\",\n\t\"@eslint-react/naming-convention\": \"react/naming-convention\",\n\t\"@eslint-react/web-api\": \"react/web-api\",\n};\n\nconst react = async (\n\toptions: OptionsFiles & OptionsHasTypeScript & OptionsOverrides = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files, overrides, typescript = true } = options;\n\n\tawait ensurePackages([\n\t\t\"@eslint-react/eslint-plugin\",\n\t\t\"eslint-plugin-react-hooks\",\n\t\t\"eslint-plugin-react-refresh\",\n\t\t\"typescript-eslint\",\n\t]);\n\n\tconst [eslintPluginReact, eslintReactHooks, eslintPluginReactRefresh] = await Promise.all([\n\t\tinteropDefault(import(\"@eslint-react/eslint-plugin\")),\n\t\tinteropDefault(import(\"eslint-plugin-react-hooks\") as ESLint.Plugin),\n\t\tinteropDefault(import(\"eslint-plugin-react-refresh\") as ESLint.Plugin),\n\t] as const);\n\n\tconst isAllowConstantExport = ReactRefreshAllowConstantExportPackages.some((i) => isPackageExists(i));\n\tconst isUsingRemix = RemixPackages.some((i) => isPackageExists(i));\n\tconst isUsingNext = NextJsPackages.some((i) => isPackageExists(i));\n\n\t// prettier-ignore\n\tconst recommendedReactConfig = eslintPluginReact.configs[typescript ? \"recommended-type-checked\" : \"recommended\"];\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/react/setup\",\n\n\t\t\tplugins: {\n\t\t\t\t...renamePlugins(recommendedReactConfig.plugins, eslintReactRenameMap),\n\t\t\t\t\"react-hooks\": fixupPluginRules(eslintReactHooks),\n\t\t\t\t\"react-refresh\": eslintPluginReactRefresh,\n\t\t\t},\n\n\t\t\tsettings: recommendedReactConfig.settings,\n\t\t},\n\n\t\t{\n\t\t\tfiles: files ?? [GLOB_SRC],\n\n\t\t\tname: \"zayne/react/rules\",\n\n\t\t\trules: {\n\t\t\t\t...renameRules(recommendedReactConfig.rules, eslintReactRenameMap),\n\t\t\t\t\"react/avoid-shorthand-boolean\": \"error\",\n\t\t\t\t\"react/function-component-definition\": \"off\",\n\t\t\t\t\"react/hooks-extra/ensure-custom-hooks-using-other-hooks\": \"error\",\n\t\t\t\t\"react/hooks-extra/prefer-use-state-lazy-initialization\": \"error\",\n\t\t\t\t\"react/naming-convention/component-name\": \"warn\",\n\t\t\t\t\"react/naming-convention/use-state\": \"warn\",\n\t\t\t\t\"react/no-array-index-key\": \"error\",\n\t\t\t\t\"react/no-children-count\": \"off\",\n\t\t\t\t\"react/no-children-only\": \"off\",\n\t\t\t\t\"react/no-children-prop\": \"error\",\n\t\t\t\t\"react/no-children-to-array\": \"off\",\n\t\t\t\t\"react/no-clone-element\": \"off\",\n\t\t\t\t\"react/no-missing-component-display-name\": \"error\",\n\t\t\t\t\"react/prefer-destructuring-assignment\": \"error\",\n\t\t\t\t\"react/prefer-read-only-props\": \"off\",\n\t\t\t\t\"react/prefer-shorthand-fragment\": \"error\",\n\n\t\t\t\t// Hook rules\n\t\t\t\t// eslint-disable-next-line perfectionist/sort-objects\n\t\t\t\t\"react-hooks/exhaustive-deps\": \"warn\",\n\t\t\t\t\"react-hooks/rules-of-hooks\": \"error\",\n\n\t\t\t\t// react refresh\n\t\t\t\t\"react-refresh/only-export-components\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowConstantExport: isAllowConstantExport,\n\t\t\t\t\t\tallowExportNames: [\n\t\t\t\t\t\t\t...(isUsingNext\n\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\"dynamic\",\n\t\t\t\t\t\t\t\t\t\t\"dynamicParams\",\n\t\t\t\t\t\t\t\t\t\t\"revalidate\",\n\t\t\t\t\t\t\t\t\t\t\"fetchCache\",\n\t\t\t\t\t\t\t\t\t\t\"runtime\",\n\t\t\t\t\t\t\t\t\t\t\"preferredRegion\",\n\t\t\t\t\t\t\t\t\t\t\"maxDuration\",\n\t\t\t\t\t\t\t\t\t\t\"config\",\n\t\t\t\t\t\t\t\t\t\t\"generateStaticParams\",\n\t\t\t\t\t\t\t\t\t\t\"metadata\",\n\t\t\t\t\t\t\t\t\t\t\"generateMetadata\",\n\t\t\t\t\t\t\t\t\t\t\"viewport\",\n\t\t\t\t\t\t\t\t\t\t\"generateViewport\",\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t: []),\n\t\t\t\t\t\t\t...(isUsingRemix ? [\"meta\", \"links\", \"headers\", \"loader\", \"action\"] : []),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t// overrides\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { react };\n","import type { TypedFlatConfigItem } from \"@/types\";\n\n/**\n * Sort package.json\n *\n * Requires `jsonc` config\n */\nexport const sortPackageJson = (): TypedFlatConfigItem[] => [\n\t{\n\t\tfiles: [\"**/package.json\"],\n\t\tname: \"zayne/sort/package-json\",\n\t\trules: {\n\t\t\t\"jsonc/sort-array-values\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^files$\",\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"jsonc/sort-keys\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t\"publisher\",\n\t\t\t\t\t\t\"name\",\n\t\t\t\t\t\t\"displayName\",\n\t\t\t\t\t\t\"type\",\n\t\t\t\t\t\t\"version\",\n\t\t\t\t\t\t\"private\",\n\t\t\t\t\t\t\"packageManager\",\n\t\t\t\t\t\t\"description\",\n\t\t\t\t\t\t\"author\",\n\t\t\t\t\t\t\"contributors\",\n\t\t\t\t\t\t\"license\",\n\t\t\t\t\t\t\"funding\",\n\t\t\t\t\t\t\"homepage\",\n\t\t\t\t\t\t\"repository\",\n\t\t\t\t\t\t\"bugs\",\n\t\t\t\t\t\t\"keywords\",\n\t\t\t\t\t\t\"categories\",\n\t\t\t\t\t\t\"sideEffects\",\n\t\t\t\t\t\t\"exports\",\n\t\t\t\t\t\t\"main\",\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t\t\"unpkg\",\n\t\t\t\t\t\t\"jsdelivr\",\n\t\t\t\t\t\t\"types\",\n\t\t\t\t\t\t\"typesVersions\",\n\t\t\t\t\t\t\"bin\",\n\t\t\t\t\t\t\"icon\",\n\t\t\t\t\t\t\"files\",\n\t\t\t\t\t\t\"engines\",\n\t\t\t\t\t\t\"activationEvents\",\n\t\t\t\t\t\t\"contributes\",\n\t\t\t\t\t\t\"scripts\",\n\t\t\t\t\t\t\"peerDependencies\",\n\t\t\t\t\t\t\"peerDependenciesMeta\",\n\t\t\t\t\t\t\"dependencies\",\n\t\t\t\t\t\t\"optionalDependencies\",\n\t\t\t\t\t\t\"devDependencies\",\n\t\t\t\t\t\t\"pnpm\",\n\t\t\t\t\t\t\"overrides\",\n\t\t\t\t\t\t\"resolutions\",\n\t\t\t\t\t\t\"husky\",\n\t\t\t\t\t\t\"simple-git-hooks\",\n\t\t\t\t\t\t\"lint-staged\",\n\t\t\t\t\t\t\"eslintConfig\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^(?:resolutions|overrides|pnpm.overrides)$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\"types\", \"import\", \"require\", \"default\"],\n\t\t\t\t\tpathPattern: \"^exports.*$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t// client hooks only\n\t\t\t\t\t\t\"pre-commit\",\n\t\t\t\t\t\t\"prepare-commit-msg\",\n\t\t\t\t\t\t\"commit-msg\",\n\t\t\t\t\t\t\"post-commit\",\n\t\t\t\t\t\t\"pre-rebase\",\n\t\t\t\t\t\t\"post-rewrite\",\n\t\t\t\t\t\t\"post-checkout\",\n\t\t\t\t\t\t\"post-merge\",\n\t\t\t\t\t\t\"pre-push\",\n\t\t\t\t\t\t\"pre-auto-gc\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^(?:gitHooks|husky|simple-git-hooks)$\",\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n];\n\n/**\n * Sort tsconfig.json\n *\n * Requires `jsonc` config\n */\n\nexport const sortTsconfig = (): TypedFlatConfigItem[] => [\n\t{\n\t\tfiles: [\"**/tsconfig.json\", \"**/tsconfig.*.json\"],\n\t\tname: \"zayne/sort/tsconfig-json\",\n\t\trules: {\n\t\t\t\"jsonc/sort-keys\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: [\"extends\", \"compilerOptions\", \"references\", \"files\", \"include\", \"exclude\"],\n\t\t\t\t\tpathPattern: \"^$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t/* Projects */\n\t\t\t\t\t\t\"incremental\",\n\t\t\t\t\t\t\"composite\",\n\t\t\t\t\t\t\"tsBuildInfoFile\",\n\t\t\t\t\t\t\"disableSourceOfProjectReferenceRedirect\",\n\t\t\t\t\t\t\"disableSolutionSearching\",\n\t\t\t\t\t\t\"disableReferencedProjectLoad\",\n\t\t\t\t\t\t/* Language and Environment */\n\t\t\t\t\t\t\"target\",\n\t\t\t\t\t\t\"jsx\",\n\t\t\t\t\t\t\"jsxFactory\",\n\t\t\t\t\t\t\"jsxFragmentFactory\",\n\t\t\t\t\t\t\"jsxImportSource\",\n\t\t\t\t\t\t\"lib\",\n\t\t\t\t\t\t\"moduleDetection\",\n\t\t\t\t\t\t\"noLib\",\n\t\t\t\t\t\t\"reactNamespace\",\n\t\t\t\t\t\t\"useDefineForClassFields\",\n\t\t\t\t\t\t\"emitDecoratorMetadata\",\n\t\t\t\t\t\t\"experimentalDecorators\",\n\t\t\t\t\t\t/* Modules */\n\t\t\t\t\t\t\"baseUrl\",\n\t\t\t\t\t\t\"rootDir\",\n\t\t\t\t\t\t\"rootDirs\",\n\t\t\t\t\t\t\"customConditions\",\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t\t\"moduleResolution\",\n\t\t\t\t\t\t\"moduleSuffixes\",\n\t\t\t\t\t\t\"noResolve\",\n\t\t\t\t\t\t\"paths\",\n\t\t\t\t\t\t\"resolveJsonModule\",\n\t\t\t\t\t\t\"resolvePackageJsonExports\",\n\t\t\t\t\t\t\"resolvePackageJsonImports\",\n\t\t\t\t\t\t\"typeRoots\",\n\t\t\t\t\t\t\"types\",\n\t\t\t\t\t\t\"allowArbitraryExtensions\",\n\t\t\t\t\t\t\"allowImportingTsExtensions\",\n\t\t\t\t\t\t\"allowUmdGlobalAccess\",\n\t\t\t\t\t\t/* JavaScript Support */\n\t\t\t\t\t\t\"allowJs\",\n\t\t\t\t\t\t\"checkJs\",\n\t\t\t\t\t\t\"maxNodeModuleJsDepth\",\n\t\t\t\t\t\t/* Type Checking */\n\t\t\t\t\t\t\"strict\",\n\t\t\t\t\t\t\"strictBindCallApply\",\n\t\t\t\t\t\t\"strictFunctionTypes\",\n\t\t\t\t\t\t\"strictNullChecks\",\n\t\t\t\t\t\t\"strictPropertyInitialization\",\n\t\t\t\t\t\t\"allowUnreachableCode\",\n\t\t\t\t\t\t\"allowUnusedLabels\",\n\t\t\t\t\t\t\"alwaysStrict\",\n\t\t\t\t\t\t\"exactOptionalPropertyTypes\",\n\t\t\t\t\t\t\"noFallthroughCasesInSwitch\",\n\t\t\t\t\t\t\"noImplicitAny\",\n\t\t\t\t\t\t\"noImplicitOverride\",\n\t\t\t\t\t\t\"noImplicitReturns\",\n\t\t\t\t\t\t\"noImplicitThis\",\n\t\t\t\t\t\t\"noPropertyAccessFromIndexSignature\",\n\t\t\t\t\t\t\"noUncheckedIndexedAccess\",\n\t\t\t\t\t\t\"noUnusedLocals\",\n\t\t\t\t\t\t\"noUnusedParameters\",\n\t\t\t\t\t\t\"useUnknownInCatchVariables\",\n\t\t\t\t\t\t/* Emit */\n\t\t\t\t\t\t\"declaration\",\n\t\t\t\t\t\t\"declarationDir\",\n\t\t\t\t\t\t\"declarationMap\",\n\t\t\t\t\t\t\"downlevelIteration\",\n\t\t\t\t\t\t\"emitBOM\",\n\t\t\t\t\t\t\"emitDeclarationOnly\",\n\t\t\t\t\t\t\"importHelpers\",\n\t\t\t\t\t\t\"importsNotUsedAsValues\",\n\t\t\t\t\t\t\"inlineSourceMap\",\n\t\t\t\t\t\t\"inlineSources\",\n\t\t\t\t\t\t\"mapRoot\",\n\t\t\t\t\t\t\"newLine\",\n\t\t\t\t\t\t\"noEmit\",\n\t\t\t\t\t\t\"noEmitHelpers\",\n\t\t\t\t\t\t\"noEmitOnError\",\n\t\t\t\t\t\t\"outDir\",\n\t\t\t\t\t\t\"outFile\",\n\t\t\t\t\t\t\"preserveConstEnums\",\n\t\t\t\t\t\t\"preserveValueImports\",\n\t\t\t\t\t\t\"removeComments\",\n\t\t\t\t\t\t\"sourceMap\",\n\t\t\t\t\t\t\"sourceRoot\",\n\t\t\t\t\t\t\"stripInternal\",\n\t\t\t\t\t\t/* Interop Constraints */\n\t\t\t\t\t\t\"allowSyntheticDefaultImports\",\n\t\t\t\t\t\t\"esModuleInterop\",\n\t\t\t\t\t\t\"forceConsistentCasingInFileNames\",\n\t\t\t\t\t\t\"isolatedDeclarations\",\n\t\t\t\t\t\t\"isolatedModules\",\n\t\t\t\t\t\t\"preserveSymlinks\",\n\t\t\t\t\t\t\"verbatimModuleSyntax\",\n\t\t\t\t\t\t/* Completeness */\n\t\t\t\t\t\t\"skipDefaultLibCheck\",\n\t\t\t\t\t\t\"skipLibCheck\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^compilerOptions$\",\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n];\n","import { GLOB_JSX, GLOB_TSX } from \"@/globs\";\nimport type { TypedFlatConfigItem } from \"@/types\";\n\nconst jsx = (): TypedFlatConfigItem[] => {\n\treturn [\n\t\t{\n\t\t\tfiles: [GLOB_JSX, GLOB_TSX],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tname: \"zayne/jsx/setup\",\n\t\t},\n\t];\n};\n\nexport { jsx };\n","import { isObject } from \"@zayne-labs/toolkit/type-helpers\";\nimport type { Linter } from \"eslint\";\nimport { FlatConfigComposer } from \"eslint-flat-config-utils\";\nimport { isPackageExists } from \"local-pkg\";\nimport {\n\teslintReactRenameMap,\n\tgitIgnores,\n\tignores,\n\timports,\n\tjavascript,\n\tjsdoc,\n\tjsonc,\n\tperfectionist,\n\treact,\n\tsortPackageJson,\n\tsortTsconfig,\n\tstylistic,\n\ttailwindcss,\n\ttypescript,\n\tunicorn,\n} from \"./configs\";\nimport { jsx } from \"./configs/jsx\";\nimport type { Awaitable, ConfigNames, OptionsConfig, TypedFlatConfigItem } from \"./types\";\n\nconst ReactPackages = [\"react\", \"react-dom\", \"next\", \"remix\"];\n\nexport const defaultPluginRenaming = {\n\t...eslintReactRenameMap,\n\t\"@stylistic\": \"stylistic\",\n\t\"@typescript-eslint\": \"ts-eslint\",\n\t\"import-x\": \"import\",\n\tn: \"node\",\n};\n\nconst resolveOptions = (option: unknown) => (isObject(option) ? option : {});\n\n/**\n * Construct an array of ESLint flat config items.\n * @param options\n * The options for generating the ESLint configurations.\n * @param userConfigs\n * The user configurations to be merged with the generated configurations.\n * @returns\n * The merged ESLint configurations.\n */\n\nexport const zayne = (\n\toptions: OptionsConfig & Pick<TypedFlatConfigItem, \"ignores\"> = {},\n\tuserConfigs: Array<\n\t\tAwaitable<FlatConfigComposer | Linter.Config[] | TypedFlatConfigItem | TypedFlatConfigItem[]>\n\t> = []\n): FlatConfigComposer<TypedFlatConfigItem, ConfigNames> => {\n\tconst {\n\t\tautoRenamePlugins = true,\n\t\tcomponentExts = [],\n\t\tgitignore: enableGitignore = true,\n\t\tjsonc: enableJsonc = true,\n\t\tjsx: enableJsx = true,\n\t\tperfectionist: enablePerfectionist = true,\n\t\treact: enableReact = ReactPackages.some((pkg) => isPackageExists(pkg)),\n\t\tstylistic: enableStylistic = true,\n\t\ttypescript: enableTypeScript = isPackageExists(\"typescript\"),\n\t\tunicorn: enableUnicorn = true,\n\t\t...restOfOptions\n\t} = options;\n\n\tconst isStylistic = Boolean(enableStylistic);\n\n\tconst tsconfigPath =\n\t\tisObject(enableTypeScript) && \"tsconfigPath\" in enableTypeScript\n\t\t\t? enableTypeScript.tsconfigPath\n\t\t\t: null;\n\n\tconst configs: Array<Awaitable<TypedFlatConfigItem[]>> = [];\n\n\tif (enableGitignore) {\n\t\tconfigs.push(gitIgnores(resolveOptions(enableGitignore)));\n\t}\n\n\t// Base configs\n\tconfigs.push(\n\t\tignores(restOfOptions.ignores),\n\t\tjavascript(restOfOptions.javascript),\n\t\timports({ stylistic: isStylistic }),\n\t\tjsdoc({ stylistic: isStylistic })\n\t);\n\n\tif (enablePerfectionist) {\n\t\tconfigs.push(perfectionist(resolveOptions(enablePerfectionist)));\n\t}\n\n\tif (enableUnicorn) {\n\t\tconfigs.push(unicorn(resolveOptions(enableUnicorn)));\n\t}\n\n\tif (enableJsonc) {\n\t\tconfigs.push(\n\t\t\tjsonc({\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\t...resolveOptions(enableJsonc),\n\t\t\t}),\n\t\t\tsortPackageJson(),\n\t\t\tsortTsconfig()\n\t\t);\n\t}\n\n\tif (enableTypeScript) {\n\t\tconfigs.push(\n\t\t\ttypescript({\n\t\t\t\tcomponentExts,\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\t...resolveOptions(enableTypeScript),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (enableJsx) {\n\t\tconfigs.push(jsx());\n\t}\n\n\tif (enableStylistic) {\n\t\tconst stylisticOptions = resolveOptions(enableStylistic);\n\n\t\t!Object.hasOwn(stylisticOptions, \"jsx\") && (stylisticOptions.jsx = enableJsx);\n\n\t\tconfigs.push(stylistic(stylisticOptions));\n\t}\n\n\tif (restOfOptions.tailwindcss) {\n\t\tconfigs.push(tailwindcss(resolveOptions(restOfOptions.tailwindcss)));\n\t}\n\n\tif (enableReact) {\n\t\tconfigs.push(\n\t\t\treact({\n\t\t\t\t...resolveOptions(enableReact),\n\t\t\t\ttypescript: Boolean(tsconfigPath),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (\"files\" in restOfOptions) {\n\t\tthrow new Error(\n\t\t\t'[@zayne-labs/eslint-config] The first argument should not contain the \"files\" property as the options are supposed to be global. Place it in the second config array instead.'\n\t\t);\n\t}\n\n\tlet composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>();\n\n\tcomposer = composer.append(...configs, ...(userConfigs as never[]));\n\n\tif (autoRenamePlugins) {\n\t\tcomposer = composer.renamePlugins(defaultPluginRenaming);\n\t}\n\n\treturn composer;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts","../src/globs.ts","../src/configs/ignores.ts","../src/configs/javascript.ts","../src/configs/tailwindcss.ts","../src/configs/typescript.ts","../src/configs/unicorn.ts","../src/configs/imports.ts","../src/configs/perfectionist.ts","../src/configs/stylistic.ts","../src/configs/jsonc.ts","../src/configs/jsdoc.ts","../src/configs/react.ts","../src/configs/sort.ts","../src/configs/jsx.ts","../src/factory.ts"],"names":["default","stylistic","ignores","typescript","jsx","isPackageExists","isObject"],"mappings":"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","file":"index.js","sourcesContent":["import { fileURLToPath } from \"node:url\";\nimport { isObject } from \"@zayne-labs/toolkit/type-helpers\";\nimport type { ESLint } from \"eslint\";\nimport { isPackageExists } from \"local-pkg\";\nimport type { Awaitable, TypedFlatConfigItem } from \"./types\";\n\n/**\n * Combine array and non-array configs into a single array.\n */\nexport const combine = async (\n\t...configs: Array<Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[]>>\n) => {\n\tconst resolved = await Promise.all(configs);\n\n\treturn resolved.flat();\n};\n\nexport const interopDefault = async <TModule>(\n\tmodule: Awaitable<TModule>\n): Promise<TModule extends { default: infer TDefaultExport } ? TDefaultExport : TModule> => {\n\tconst resolved = await module;\n\n\t// eslint-disable-next-line ts-eslint/no-unnecessary-condition\n\treturn (resolved as { default: never }).default ?? resolved;\n};\n\n/**\n * Rename plugin prefixes in a rule object.\n * Accepts a map of prefixes to rename.\n *\n * @example\n * ```ts\n * import { renameRules } from '@zayne-labs/eslint-config'\n *\n * export default [{\n * rules: renameRules(\n * {\n * '@typescript-eslint/indent': 'error'\n * },\n * { '@typescript-eslint': 'ts' }\n * )\n * }]\n * ```\n */\nexport const renameRules = (rules: Record<string, unknown>, renameMap: Record<string, string>) => {\n\tconst renamedRulesEntries = Object.entries(rules).map(([ruleKey, ruleValue]) => {\n\t\tfor (const [oldRuleName, newRuleName] of Object.entries(renameMap)) {\n\t\t\tif (ruleKey.startsWith(`${oldRuleName}/`)) {\n\t\t\t\treturn [`${newRuleName}${ruleKey.slice(oldRuleName.length)}`, ruleValue];\n\t\t\t}\n\t\t}\n\n\t\treturn [ruleKey, ruleValue];\n\t});\n\n\tconst renamedRules = Object.fromEntries(renamedRulesEntries) as TypedFlatConfigItem[\"rules\"];\n\n\treturn renamedRules;\n};\n\nexport const renamePlugins = (plugins: Record<string, unknown>, renameMap: Record<string, string>) => {\n\tconst renamedPluginEntries = Object.entries(plugins).map(([pluginKey, pluginValue]) => {\n\t\tif (pluginKey in renameMap) {\n\t\t\treturn [renameMap[pluginKey], pluginValue];\n\t\t}\n\n\t\treturn [pluginKey, pluginValue];\n\t});\n\n\tconst renamedPlugins = Object.fromEntries(renamedPluginEntries) as Record<string, ESLint.Plugin>;\n\n\treturn renamedPlugins;\n};\n\n/**\n * Rename plugin names a flat configs array\n *\n * @example\n * ```ts\n * import { renamePluginInConfigs } from '@zayne-labs/eslint-config'\n * import someConfigs from './some-configs'\n *\n * export default renamePluginInConfigs(someConfigs, {\n * '@typescript-eslint': 'ts',\n * 'import-x': 'import',\n * })\n * ```\n */\nexport const renamePluginInConfigs = (\n\tconfigs: TypedFlatConfigItem[],\n\trenameMap: Record<string, string>,\n\textraOverrides?: TypedFlatConfigItem\n): TypedFlatConfigItem[] => {\n\tconst renamedConfigs = configs.map((config) => ({\n\t\t...config,\n\t\t...extraOverrides,\n\t\t...(isObject(config.rules) && { rules: renameRules(config.rules, renameMap) }),\n\t\t...(isObject(config.plugins) && { plugins: renamePlugins(config.plugins, renameMap) }),\n\t}));\n\n\treturn renamedConfigs;\n};\n\nconst scopeUrl = fileURLToPath(new URL(\".\", import.meta.url));\nconst isCwdInScope = isPackageExists(\"@zayne-labs/eslint-config\");\n\nexport const isPackageInScope = (name: string): boolean => isPackageExists(name, { paths: [scopeUrl] });\n\nexport const ensurePackages = async (packages: Array<string | undefined>): Promise<void> => {\n\tif (process.env.CI || !process.stdout.isTTY || !isCwdInScope) return;\n\n\tconst nonExistingPackages = packages.filter((pkg) => pkg && !isPackageInScope(pkg)) as string[];\n\n\tif (nonExistingPackages.length === 0) return;\n\n\tconst clackPrompt = await import(\"@clack/prompts\");\n\n\tconst result = await clackPrompt.confirm({\n\t\tmessage: `${nonExistingPackages.length === 1 ? \"Package is\" : \"Packages are\"} required for this config: ${nonExistingPackages.join(\", \")}. Do you want to install them?`,\n\t});\n\n\tif (result) {\n\t\tconst antfuPkg = await import(\"@antfu/install-pkg\");\n\n\t\tawait antfuPkg.installPackage(nonExistingPackages, { dev: true });\n\t}\n};\n\n// export const toArray = <TValue>(value: TValue | TValue[]): TValue[] => {\n// \treturn Array.isArray(value) ? value : [value];\n// };\n","export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = \"**/*.?([cm])[jt]s?(x)\";\n\nexport const GLOB_JS = \"**/*.?([cm])js\";\nexport const GLOB_JSX = \"**/*.?([cm])jsx\";\n\nexport const GLOB_TS = \"**/*.?([cm])ts\";\nexport const GLOB_TSX = \"**/*.?([cm])tsx\";\n\nexport const GLOB_STYLES = \"**/*.{c,le,sc}ss\";\nexport const GLOB_CSS = \"**/*.css\";\nexport const GLOB_POSTCSS = \"**/*.{p,post}css\";\nexport const GLOB_LESS = \"**/*.less\";\nexport const GLOB_SCSS = \"**/*.scss\";\n\nexport const GLOB_JSON = \"**/*.json\";\nexport const GLOB_JSON5 = \"**/*.json5\";\nexport const GLOB_JSONC = \"**/*.jsonc\";\n\nexport const GLOB_MARKDOWN = \"**/*.md\";\nexport const GLOB_MARKDOWN_IN_MARKDOWN = \"**/*.md/*.md\";\nexport const GLOB_SVELTE = \"**/*.svelte\";\nexport const GLOB_VUE = \"**/*.vue\";\nexport const GLOB_YAML = \"**/*.y?(a)ml\";\nexport const GLOB_TOML = \"**/*.toml\";\nexport const GLOB_XML = \"**/*.xml\";\nexport const GLOB_SVG = \"**/*.svg\";\nexport const GLOB_HTML = \"**/*.htm?(l)\";\nexport const GLOB_ASTRO = \"**/*.astro\";\nexport const GLOB_ASTRO_TS = \"**/*.astro/*.ts\";\nexport const GLOB_GRAPHQL = \"**/*.{g,graph}ql\";\n\nexport const GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;\n\nexport const GLOB_TESTS = [\n\t`**/__tests__/**/*.${GLOB_SRC_EXT}`,\n\t`**/*.spec.${GLOB_SRC_EXT}`,\n\t`**/*.test.${GLOB_SRC_EXT}`,\n\t`**/*.bench.${GLOB_SRC_EXT}`,\n\t`**/*.benchmark.${GLOB_SRC_EXT}`,\n];\n\nexport const GLOB_ALL_SRC = [\n\tGLOB_SRC,\n\tGLOB_STYLES,\n\tGLOB_JSON,\n\tGLOB_JSON5,\n\tGLOB_MARKDOWN,\n\tGLOB_SVELTE,\n\tGLOB_VUE,\n\tGLOB_YAML,\n\tGLOB_XML,\n\tGLOB_HTML,\n];\n\nexport const GLOB_EXCLUDE = [\n\t\"**/node_modules\",\n\t\"**/dist\",\n\t\"**/package-lock.json\",\n\t\"**/yarn.lock\",\n\t\"**/pnpm-lock.yaml\",\n\t\"**/bun.lockb\",\n\n\t\"**/output\",\n\t\"**/coverage\",\n\t\"**/temp\",\n\t\"**/.temp\",\n\t\"**/tmp\",\n\t\"**/.tmp\",\n\t\"**/.history\",\n\t\"**/.vitepress/cache\",\n\t\"**/.nuxt\",\n\t\"**/.next\",\n\t\"**/.svelte-kit\",\n\t\"**/.vercel\",\n\t\"**/.changeset\",\n\t\"**/.idea\",\n\t\"**/.cache\",\n\t\"**/.output\",\n\t\"**/.vite-inspect\",\n\t\"**/.yarn\",\n\t\"**/vite.config.*.timestamp-*\",\n\n\t\"**/CHANGELOG*.md\",\n\t\"**/*.min.*\",\n\t\"**/LICENSE*\",\n\t\"**/__snapshots__\",\n\t\"**/auto-import?(s).d.ts\",\n\t\"**/components.d.ts\",\n];\n","import { interopDefault } from \"@/utils\";\nimport type { FlatGitignoreOptions } from \"eslint-config-flat-gitignore\";\nimport { GLOB_EXCLUDE } from \"../globs\";\nimport type { TypedFlatConfigItem } from \"../types\";\n\nexport const ignores = (userIgnores: string[] = []): TypedFlatConfigItem[] => [\n\t{\n\t\tignores: [...GLOB_EXCLUDE, ...userIgnores],\n\t\tname: \"zayne/defaults/ignores\",\n\t},\n];\n\nexport const gitIgnores = async (options?: FlatGitignoreOptions): Promise<TypedFlatConfigItem[]> => {\n\tconst antfuGitIgnore = await interopDefault(import(\"eslint-config-flat-gitignore\"));\n\n\tconst config = antfuGitIgnore({\n\t\tname: \"zayne/gitignore\",\n\t\tstrict: false,\n\t\t...options,\n\t});\n\n\treturn [config];\n};\n","import { eslintJs } from \"@/plugins\";\nimport type { OptionsOverrides, TypedFlatConfigItem } from \"@/types\";\nimport globals from \"globals\";\n\nconst javascript = (options: OptionsOverrides = {}): TypedFlatConfigItem[] => {\n\tconst { overrides } = options;\n\n\treturn [\n\t\t{\n\t\t\tlanguageOptions: {\n\t\t\t\tecmaVersion: \"latest\",\n\n\t\t\t\tglobals: {\n\t\t\t\t\t...globals.browser,\n\t\t\t\t\t...globals.node,\n\t\t\t\t\tdocument: \"readonly\",\n\t\t\t\t\tnavigator: \"readonly\",\n\t\t\t\t\twindow: \"readonly\",\n\t\t\t\t},\n\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t},\n\t\t\t\t\tecmaVersion: \"latest\",\n\t\t\t\t\tsourceType: \"module\",\n\t\t\t\t},\n\n\t\t\t\tsourceType: \"module\",\n\t\t\t},\n\n\t\t\tlinterOptions: {\n\t\t\t\treportUnusedDisableDirectives: true,\n\t\t\t},\n\n\t\t\tname: \"zayne/js-eslint/setup\",\n\t\t},\n\t\t{\n\t\t\tname: \"zayne/js-eslint/recommended\",\n\t\t\t...eslintJs.configs.recommended,\n\t\t},\n\t\t{\n\t\t\tname: \"zayne/js-eslint/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"accessor-pairs\": [\"error\", { enforceForClassMembers: true, setWithoutGet: true }],\n\t\t\t\t\"array-callback-return\": [\"error\", { allowImplicit: true }],\n\t\t\t\t\"block-scoped-var\": \"error\",\n\t\t\t\t\"class-methods-use-this\": \"error\",\n\t\t\t\tcomplexity: [\"warn\", 30],\n\t\t\t\t\"constructor-super\": \"error\",\n\t\t\t\tcurly: [\"error\", \"multi-line\"],\n\t\t\t\t\"default-case\": [\"error\", { commentPattern: \"^no default$\" }],\n\t\t\t\t\"default-case-last\": \"error\",\n\t\t\t\t\"default-param-last\": \"error\",\n\t\t\t\t\"dot-notation\": [\"error\", { allowKeywords: true }],\n\t\t\t\teqeqeq: [\"error\", \"always\", { null: \"ignore\" }],\n\t\t\t\t\"grouped-accessor-pairs\": \"error\",\n\t\t\t\t\"logical-assignment-operators\": \"warn\",\n\t\t\t\t\"max-depth\": [\"error\", 2],\n\t\t\t\t\"new-cap\": [\"error\", { capIsNew: false, newIsCap: true, properties: true }],\n\t\t\t\t\"no-alert\": \"warn\",\n\t\t\t\t\"no-array-constructor\": \"error\",\n\t\t\t\t\"no-async-promise-executor\": \"error\",\n\t\t\t\t\"no-await-in-loop\": \"error\",\n\t\t\t\t\"no-caller\": \"error\",\n\t\t\t\t\"no-case-declarations\": \"error\",\n\t\t\t\t\"no-class-assign\": \"error\",\n\t\t\t\t\"no-compare-neg-zero\": \"error\",\n\t\t\t\t\"no-cond-assign\": [\"error\", \"always\"],\n\t\t\t\t\"no-console\": [\"error\", { allow: [\"warn\", \"error\", \"info\", \"trace\"] }],\n\t\t\t\t\"no-const-assign\": \"error\",\n\t\t\t\t\"no-constant-condition\": \"warn\",\n\t\t\t\t\"no-constructor-return\": \"error\",\n\t\t\t\t\"no-control-regex\": \"error\",\n\t\t\t\t\"no-debugger\": \"error\",\n\t\t\t\t\"no-delete-var\": \"error\",\n\t\t\t\t\"no-dupe-args\": \"error\",\n\t\t\t\t\"no-dupe-class-members\": \"error\",\n\t\t\t\t\"no-dupe-keys\": \"error\",\n\t\t\t\t\"no-duplicate-case\": \"error\",\n\t\t\t\t\"no-else-return\": [\"error\", { allowElseIf: false }],\n\t\t\t\t\"no-empty\": [\"error\", { allowEmptyCatch: true }],\n\t\t\t\t\"no-empty-character-class\": \"error\",\n\t\t\t\t\"no-empty-pattern\": \"error\",\n\t\t\t\t\"no-eval\": \"error\",\n\t\t\t\t\"no-ex-assign\": \"error\",\n\t\t\t\t\"no-extend-native\": \"error\",\n\t\t\t\t\"no-extra-bind\": \"error\",\n\t\t\t\t\"no-extra-boolean-cast\": \"error\",\n\t\t\t\t\"no-fallthrough\": \"error\",\n\t\t\t\t\"no-func-assign\": \"error\",\n\t\t\t\t\"no-global-assign\": \"error\",\n\t\t\t\t\"no-implicit-coercion\": \"warn\",\n\t\t\t\t\"no-implied-eval\": \"error\",\n\t\t\t\t\"no-import-assign\": \"error\",\n\t\t\t\t\"no-invalid-regexp\": \"error\",\n\t\t\t\t\"no-irregular-whitespace\": \"error\",\n\t\t\t\t\"no-iterator\": \"error\",\n\t\t\t\t\"no-labels\": [\"error\", { allowLoop: false, allowSwitch: false }],\n\t\t\t\t\"no-lone-blocks\": \"error\",\n\t\t\t\t\"no-loop-func\": \"error\",\n\t\t\t\t\"no-loss-of-precision\": \"error\",\n\t\t\t\t\"no-misleading-character-class\": \"error\",\n\t\t\t\t\"no-multi-str\": \"error\",\n\t\t\t\t\"no-new\": \"error\",\n\t\t\t\t\"no-new-func\": \"error\",\n\t\t\t\t\"no-new-native-nonconstructor\": \"error\",\n\t\t\t\t\"no-new-wrappers\": \"error\",\n\t\t\t\t\"no-obj-calls\": \"error\",\n\t\t\t\t\"no-octal\": \"error\",\n\t\t\t\t\"no-octal-escape\": \"error\",\n\t\t\t\t\"no-param-reassign\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tignorePropertyModificationsFor: [\n\t\t\t\t\t\t\t\"acc\", // for reduce accumulators\n\t\t\t\t\t\t\t\"accumulator\", // for reduce accumulators\n\t\t\t\t\t\t\t\"e\", // for e.returnvalue\n\t\t\t\t\t\t\t\"ctx\", // for Koa routing\n\t\t\t\t\t\t\t\"context\", // for Koa routing\n\t\t\t\t\t\t\t\"req\", // for Express requests\n\t\t\t\t\t\t\t\"request\", // for Express requests\n\t\t\t\t\t\t\t\"res\", // for Express responses\n\t\t\t\t\t\t\t\"response\", // for Express responses\n\t\t\t\t\t\t\t\"$scope\", // for Angular 1 scopes\n\t\t\t\t\t\t\t\"staticContext\", // for ReactRouter context\n\t\t\t\t\t\t],\n\t\t\t\t\t\tprops: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-proto\": \"error\",\n\t\t\t\t\"no-prototype-builtins\": \"error\",\n\t\t\t\t\"no-redeclare\": [\"error\", { builtinGlobals: false }],\n\t\t\t\t\"no-regex-spaces\": \"error\",\n\t\t\t\t\"no-restricted-exports\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\trestrictedNamedExports: [\n\t\t\t\t\t\t\t\"default\", // use `export default` to provide a default export\n\t\t\t\t\t\t\t\"then\", // this will cause tons of confusion when your module is dynamically `import()`ed, and will break in most node ESM versions\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-restricted-globals\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Use Number.isFinite instead https://github.com/airbnb/javascript#standard-library--isfinite\",\n\t\t\t\t\t\tname: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Use Number.isNaN instead https://github.com/airbnb/javascript#standard-library--isnan\",\n\t\t\t\t\t\tname: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{ message: \"Use `globalThis` instead.\", name: \"global\" },\n\t\t\t\t\t{ message: \"Use `globalThis` instead.\", name: \"self\" },\n\t\t\t\t],\n\t\t\t\t\"no-restricted-imports\": [\"off\", { paths: [], patterns: [] }],\n\t\t\t\t\"no-restricted-properties\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"arguments.callee is deprecated\",\n\t\t\t\t\t\tobject: \"arguments\",\n\t\t\t\t\t\tproperty: \"callee\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"global\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"self\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isFinite instead\",\n\t\t\t\t\t\tobject: \"window\",\n\t\t\t\t\t\tproperty: \"isFinite\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"global\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"self\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Please use Number.isNaN instead\",\n\t\t\t\t\t\tobject: \"window\",\n\t\t\t\t\t\tproperty: \"isNaN\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Use the exponentiation operator (**) instead.\",\n\t\t\t\t\t\tobject: \"Math\",\n\t\t\t\t\t\tproperty: \"pow\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmessage: \"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.\",\n\t\t\t\t\t\tproperty: \"__proto__\",\n\t\t\t\t\t},\n\t\t\t\t\t{ message: \"Use `Object.defineProperty` instead.\", property: \"__defineGetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.defineProperty` instead.\", property: \"__defineSetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.getOwnPropertyDescriptor` instead.\", property: \"__lookupGetter__\" },\n\t\t\t\t\t{ message: \"Use `Object.getOwnPropertyDescriptor` instead.\", property: \"__lookupSetter__\" },\n\t\t\t\t],\n\t\t\t\t\"no-restricted-syntax\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"ForInStatement\",\n\t\t\t\t\t\"LabeledStatement\",\n\t\t\t\t\t\"WithStatement\",\n\t\t\t\t\t\"TSEnumDeclaration[const=true]\",\n\t\t\t\t\t\"TSExportAssignment\",\n\t\t\t\t],\n\t\t\t\t\"no-return-assign\": [\"error\", \"except-parens\"],\n\t\t\t\t\"no-script-url\": \"error\",\n\t\t\t\t\"no-self-assign\": [\"error\", { props: true }],\n\t\t\t\t\"no-self-compare\": \"error\",\n\t\t\t\t\"no-sequences\": \"error\",\n\t\t\t\t\"no-shadow-restricted-names\": \"error\",\n\t\t\t\t\"no-sparse-arrays\": \"error\",\n\t\t\t\t\"no-template-curly-in-string\": \"error\",\n\t\t\t\t\"no-this-before-super\": \"error\",\n\t\t\t\t\"no-throw-literal\": \"error\",\n\t\t\t\t\"no-undef\": \"error\",\n\t\t\t\t\"no-undef-init\": \"error\",\n\t\t\t\t\"no-unexpected-multiline\": \"error\",\n\t\t\t\t\"no-unmodified-loop-condition\": \"error\",\n\t\t\t\t\"no-unneeded-ternary\": [\"warn\", { defaultAssignment: false }],\n\t\t\t\t\"no-unreachable\": \"error\",\n\t\t\t\t\"no-unreachable-loop\": \"error\",\n\t\t\t\t\"no-unsafe-finally\": \"error\",\n\t\t\t\t\"no-unsafe-negation\": \"error\",\n\t\t\t\t\"no-unused-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowShortCircuit: true,\n\t\t\t\t\t\tallowTaggedTemplates: true,\n\t\t\t\t\t\tallowTernary: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\targs: \"none\",\n\t\t\t\t\t\tcaughtErrors: \"none\",\n\t\t\t\t\t\tignoreRestSiblings: true,\n\t\t\t\t\t\tvars: \"all\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t// \"no-use-before-define\": [\"error\", { classes: false, functions: false, variables: true }],\n\t\t\t\t\"no-useless-backreference\": \"error\",\n\t\t\t\t\"no-useless-call\": \"error\",\n\t\t\t\t\"no-useless-catch\": \"error\",\n\t\t\t\t\"no-useless-computed-key\": \"error\",\n\t\t\t\t\"no-useless-concat\": \"error\",\n\t\t\t\t\"no-useless-constructor\": \"error\",\n\t\t\t\t\"no-useless-rename\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ ignoreDestructuring: false, ignoreExport: false, ignoreImport: false },\n\t\t\t\t],\n\t\t\t\t\"no-useless-return\": \"error\",\n\t\t\t\t\"no-var\": \"error\",\n\t\t\t\t\"no-with\": \"error\",\n\t\t\t\t\"object-shorthand\": [\"error\", \"always\", { avoidQuotes: true, ignoreConstructors: false }],\n\t\t\t\t\"one-var\": [\"error\", { initialized: \"never\" }],\n\t\t\t\t\"operator-assignment\": \"warn\",\n\t\t\t\t\"prefer-arrow-callback\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowNamedFunctions: false,\n\t\t\t\t\t\tallowUnboundThis: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"prefer-const\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tdestructuring: \"all\",\n\t\t\t\t\t\tignoreReadBeforeAssign: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"prefer-exponentiation-operator\": \"error\",\n\t\t\t\t\"prefer-object-has-own\": \"error\",\n\t\t\t\t\"prefer-object-spread\": \"warn\",\n\t\t\t\t\"prefer-promise-reject-errors\": \"error\",\n\t\t\t\t\"prefer-regex-literals\": [\"error\", { disallowRedundantWrapping: true }],\n\t\t\t\t\"prefer-rest-params\": \"error\",\n\t\t\t\t\"prefer-spread\": \"error\",\n\t\t\t\t\"prefer-template\": \"error\",\n\t\t\t\tradix: \"error\",\n\t\t\t\t\"symbol-description\": \"error\",\n\t\t\t\t\"unicode-bom\": [\"error\", \"never\"],\n\t\t\t\t\"use-isnan\": [\"error\", { enforceForIndexOf: true, enforceForSwitchCase: true }],\n\t\t\t\t\"valid-typeof\": [\"error\", { requireStringLiterals: true }],\n\t\t\t\t\"vars-on-top\": \"error\",\n\t\t\t\tyoda: [\"error\", \"never\"],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { javascript };\n","import type { OptionsOverrides, OptionsTailwindCSS, TypedFlatConfigItem } from \"@/types\";\nimport { ensurePackages, interopDefault } from \"@/utils\";\n\nconst tailwindcss = async (\n\toptions: OptionsOverrides & OptionsTailwindCSS = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst eslintPluginTailwindCss = await interopDefault(await import(\"eslint-plugin-tailwindcss\"));\n\n\tconst { overrides, settings: tailwindCssSettings } = options;\n\n\tawait ensurePackages([\"eslint-plugin-tailwindcss\"]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/tailwindcss/setup\",\n\t\t\tplugins: {\n\t\t\t\ttailwindcss: eslintPluginTailwindCss,\n\t\t\t},\n\t\t\tsettings: {\n\t\t\t\ttailwindcss: {\n\t\t\t\t\tcallees: [\"tv\", \"cnMerge\", \"cn\", \"cnJoin\", \"twMerge\", \"twJoin\"],\n\t\t\t\t\tcssFiles: [],\n\t\t\t\t\tremoveDuplicates: false, // Turned off cuz prettier already handles this via plugin\n\t\t\t\t\t...tailwindCssSettings,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/tailwindcss/rules\",\n\n\t\t\trules: {\n\t\t\t\t...eslintPluginTailwindCss.configs[\"flat/recommended\"][1]?.rules,\n\n\t\t\t\t\"tailwindcss/no-contradicting-classname\": \"off\", // Turned off cuz tw intellisense already handles this\n\t\t\t\t\"tailwindcss/no-custom-classname\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{ ignoredKeys: [\"compoundVariants\", \"defaultVariants\", \"responsiveVariants\"] },\n\t\t\t\t],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { tailwindcss };\n","import { interopDefault, renamePluginInConfigs } from \"@/utils\";\nimport { GLOB_ASTRO_TS, GLOB_MARKDOWN, GLOB_TS, GLOB_TSX } from \"../globs\";\nimport type {\n\tOptionsComponentExts,\n\tOptionsFiles,\n\tOptionsOverrides,\n\tOptionsStylistic,\n\tOptionsTypeScriptParserOptions,\n\tOptionsTypeScriptWithTypes,\n\tTypedFlatConfigItem,\n} from \"../types\";\n\nexport const typescript = async (\n\toptions: OptionsComponentExts &\n\t\tOptionsFiles &\n\t\tOptionsOverrides &\n\t\tOptionsStylistic &\n\t\tOptionsTypeScriptParserOptions &\n\t\tOptionsTypeScriptWithTypes = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst {\n\t\tallowDefaultProjects,\n\t\tcomponentExts = [],\n\t\tfiles = [GLOB_TS, GLOB_TSX, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\tfilesTypeAware = [GLOB_TS, GLOB_TSX],\n\t\tignoresTypeAware = [`${GLOB_MARKDOWN}/**`, GLOB_ASTRO_TS],\n\t\toverrides,\n\t\tparserOptions,\n\t\tstylistic = true,\n\t\ttsconfigPath,\n\t} = options;\n\n\tconst isTypeAware = Boolean(tsconfigPath);\n\n\tconst tsEslint = await interopDefault(import(\"typescript-eslint\"));\n\n\tconst makeParser = (parsedFiles: string[], ignores?: string[]): TypedFlatConfigItem => ({\n\t\tfiles: parsedFiles,\n\n\t\t...(ignores && { ignores }),\n\n\t\tlanguageOptions: {\n\t\t\tparser: tsEslint.parser,\n\n\t\t\tparserOptions: {\n\t\t\t\tecmaFeatures: { globalReturn: true },\n\n\t\t\t\textraFileExtensions: componentExts.map((ext) => `.${ext}`),\n\n\t\t\t\t...(isTypeAware && {\n\t\t\t\t\t...(allowDefaultProjects\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\t\t\tallowDefaultProject: allowDefaultProjects,\n\t\t\t\t\t\t\t\t\tdefaultProject: tsconfigPath,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: { project: tsconfigPath }),\n\n\t\t\t\t\ttsconfigRootDir: process.cwd(),\n\t\t\t\t}),\n\n\t\t\t\tsourceType: \"module\",\n\n\t\t\t\t...parserOptions,\n\t\t\t},\n\t\t},\n\t});\n\n\tconst typeAwareRules: TypedFlatConfigItem[\"rules\"] = {\n\t\t\"ts-eslint/no-unnecessary-type-parameters\": \"off\",\n\t\t// \"ts-eslint/non-nullable-type-assertion-style\": \"off\",\n\t\t\"ts-eslint/prefer-nullish-coalescing\": [\"error\", { ignoreConditionalTests: true }],\n\t\t\"ts-eslint/restrict-template-expressions\": [\n\t\t\t\"error\",\n\t\t\t{ allowBoolean: true, allowNullish: true, allowNumber: true },\n\t\t],\n\t\t\"ts-eslint/return-await\": [\"error\", \"in-try-catch\"],\n\t};\n\n\treturn [\n\t\t{\n\t\t\tname: `zayne/ts-eslint/${isTypeAware ? \"type-aware-setup\" : \"setup\"}`,\n\n\t\t\t...makeParser(files),\n\t\t\t...(isTypeAware && makeParser(filesTypeAware, ignoresTypeAware)),\n\t\t},\n\n\t\t...renamePluginInConfigs(\n\t\t\ttsEslint.configs[isTypeAware ? \"strictTypeChecked\" : \"strict\"],\n\t\t\t{ \"@typescript-eslint\": \"ts-eslint\" },\n\t\t\t{ files, name: `zayne/ts-eslint/${isTypeAware ? \"strictTypeChecked\" : \"strict\"}` }\n\t\t),\n\n\t\t...(stylistic\n\t\t\t? renamePluginInConfigs(\n\t\t\t\t\ttsEslint.configs[isTypeAware ? \"stylisticTypeChecked\" : \"stylistic\"],\n\t\t\t\t\t{ \"@typescript-eslint\": \"ts-eslint\" },\n\t\t\t\t\t{ files, name: `zayne/ts-eslint/${isTypeAware ? \"stylisticTypeChecked\" : \"stylistic\"}` }\n\t\t\t\t)\n\t\t\t: []),\n\n\t\t{\n\t\t\tfiles,\n\n\t\t\tname: \"zayne/ts-eslint/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"ts-eslint/array-type\": [\"error\", { default: \"array-simple\" }],\n\t\t\t\t\"ts-eslint/consistent-type-definitions\": [\"error\", \"type\"],\n\t\t\t\t\"ts-eslint/default-param-last\": \"error\",\n\t\t\t\t\"ts-eslint/member-ordering\": \"error\",\n\t\t\t\t\"ts-eslint/method-signature-style\": [\"error\", \"property\"],\n\t\t\t\t\"ts-eslint/no-confusing-void-expression\": \"off\",\n\t\t\t\t\"ts-eslint/no-empty-function\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ allow: [\"arrowFunctions\", \"functions\", \"methods\"] },\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-import-type-side-effects\": \"error\",\n\t\t\t\t\"ts-eslint/no-shadow\": \"error\",\n\t\t\t\t\"ts-eslint/no-unused-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowShortCircuit: true,\n\t\t\t\t\t\tallowTernary: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"ts-eslint/no-unused-vars\": [\"warn\", { ignoreRestSiblings: true }],\n\t\t\t\t\"ts-eslint/no-use-before-define\": \"off\",\n\t\t\t\t\"ts-eslint/no-useless-constructor\": \"error\",\n\n\t\t\t\t...(isTypeAware && typeAwareRules),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { interopDefault } from \"@/utils\";\nimport type { OptionsOverrides, TypedFlatConfigItem } from \"../types\";\n\nexport const unicorn = async (options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tconst eslintPluginUnicorn = await interopDefault(import(\"eslint-plugin-unicorn\"));\n\n\treturn [\n\t\t{ ...eslintPluginUnicorn.configs[\"flat/recommended\"], name: \"zayne/unicorn/recommended\" },\n\t\t{\n\t\t\tname: \"zayne/unicorn/rules\",\n\t\t\trules: {\n\t\t\t\t\"unicorn/filename-case\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tcases: {\n\t\t\t\t\t\t\tcamelCase: true,\n\t\t\t\t\t\t\tkebabCase: true,\n\t\t\t\t\t\t\tpascalCase: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"unicorn/new-for-builtins\": \"off\",\n\t\t\t\t\"unicorn/no-array-for-each\": \"off\",\n\t\t\t\t\"unicorn/no-array-reduce\": \"off\",\n\t\t\t\t\"unicorn/no-negated-condition\": \"off\",\n\t\t\t\t\"unicorn/no-null\": \"off\",\n\t\t\t\t\"unicorn/no-useless-undefined\": [\"error\", { checkArguments: true }],\n\t\t\t\t\"unicorn/numeric-separators-style\": \"off\",\n\t\t\t\t\"unicorn/prevent-abbreviations\": \"off\",\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n","import { eslintPluginImportX } from \"@/plugins\";\nimport type {\n\tOptionsHasTypeScript,\n\tOptionsOverrides,\n\tOptionsStylistic,\n\tTypedFlatConfigItem,\n} from \"@/types\";\n\nconst imports = (\n\toptions: OptionsHasTypeScript & OptionsOverrides & OptionsStylistic\n): TypedFlatConfigItem[] => {\n\tconst { overrides, stylistic = true, typescript = true } = options;\n\n\treturn [\n\t\t{\n\t\t\tplugins: {\n\t\t\t\timport: eslintPluginImportX,\n\t\t\t},\n\t\t\t...(typescript && { settings: eslintPluginImportX.flatConfigs.typescript.settings }),\n\t\t\tname: \"zayne/import/setup\",\n\t\t},\n\n\t\t{\n\t\t\tname: \"zayne/import/rules\",\n\n\t\t\trules: {\n\t\t\t\t...eslintPluginImportX.flatConfigs.recommended.rules,\n\t\t\t\t...(typescript && eslintPluginImportX.flatConfigs.typescript.rules),\n\n\t\t\t\t\"import/export\": \"error\",\n\t\t\t\t\"import/extensions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"never\",\n\t\t\t\t\t{ ignorePackages: true, pattern: { png: \"always\", svg: \"always\" } },\n\t\t\t\t],\n\t\t\t\t\"import/first\": \"error\",\n\t\t\t\t\"import/namespace\": \"off\",\n\t\t\t\t\"import/no-absolute-path\": \"error\",\n\t\t\t\t\"import/no-cycle\": [\"error\", { ignoreExternal: true, maxDepth: 3 }],\n\t\t\t\t\"import/no-duplicates\": \"error\",\n\t\t\t\t\"import/no-extraneous-dependencies\": [\"error\", { devDependencies: true }],\n\t\t\t\t\"import/no-mutable-exports\": \"error\",\n\t\t\t\t\"import/no-named-as-default\": \"error\",\n\t\t\t\t\"import/no-named-as-default-member\": \"error\",\n\t\t\t\t\"import/no-named-default\": \"error\",\n\t\t\t\t\"import/no-relative-packages\": \"error\",\n\t\t\t\t\"import/no-self-import\": \"error\",\n\t\t\t\t\"import/no-unresolved\": \"off\",\n\t\t\t\t\"import/no-useless-path-segments\": [\"error\", { commonjs: true }],\n\t\t\t\t\"import/prefer-default-export\": \"off\",\n\n\t\t\t\t...(stylistic && { \"import/newline-after-import\": \"error\" }),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { imports };\n","import type { OptionsOverrides, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst perfectionist = async (options: OptionsOverrides = {}): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides } = options;\n\n\tconst eslintPluginPerfectionist = await interopDefault(import(\"eslint-plugin-perfectionist\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/perfectionist/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tperfectionist: eslintPluginPerfectionist,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"perfectionist/sort-array-includes\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-classes\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-interfaces\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-intersection-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t\"conditional\",\n\t\t\t\t\t\t\t\"literal\",\n\t\t\t\t\t\t\t\"import\",\n\t\t\t\t\t\t\t\"intersection\",\n\t\t\t\t\t\t\t\"keyword\",\n\t\t\t\t\t\t\t\"tuple\",\n\t\t\t\t\t\t\t\"named\",\n\t\t\t\t\t\t\t\"object\",\n\t\t\t\t\t\t\t\"function\",\n\t\t\t\t\t\t\t\"operator\",\n\t\t\t\t\t\t\t\"union\",\n\t\t\t\t\t\t\t\"nullish\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-maps\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-object-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-objects\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-switch-case\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t\"perfectionist/sort-union-types\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t\"conditional\",\n\t\t\t\t\t\t\t\"literal\",\n\t\t\t\t\t\t\t\"import\",\n\t\t\t\t\t\t\t\"intersection\",\n\t\t\t\t\t\t\t\"keyword\",\n\t\t\t\t\t\t\t\"tuple\",\n\t\t\t\t\t\t\t\"named\",\n\t\t\t\t\t\t\t\"object\",\n\t\t\t\t\t\t\t\"function\",\n\t\t\t\t\t\t\t\"operator\",\n\t\t\t\t\t\t\t\"union\",\n\t\t\t\t\t\t\t\"nullish\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"perfectionist/sort-variable-declarations\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: \"asc\",\n\t\t\t\t\t\ttype: \"alphabetical\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t// \"perfectionist/sort-svelte-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-astro-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-vue-attributes\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\t\t\t\t// \"perfectionist/sort-jsx-props\": [\n\t\t\t\t// \t\"warn\",\n\t\t\t\t// \t{\n\t\t\t\t// \t\t// ignorePattern: [\"src\"],\n\t\t\t\t// \t\torder: \"asc\",\n\t\t\t\t// \t\ttype: \"alphabetical\",\n\t\t\t\t// \t},\n\t\t\t\t// ],\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { perfectionist };\n","import type { OptionsHasJsx, OptionsOverrides, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst stylistic = async (\n\toptions: OptionsHasJsx & OptionsOverrides = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { jsx = true, overrides } = options;\n\tconst eslintPluginStylistic = await interopDefault(import(\"@stylistic/eslint-plugin\"));\n\n\treturn [\n\t\t// == Stylistic Rules (Optional)\n\t\t{\n\t\t\tname: \"zayne/stylistic/rules\",\n\n\t\t\tplugins: {\n\t\t\t\tstylistic: eslintPluginStylistic,\n\t\t\t},\n\n\t\t\trules: {\n\t\t\t\t\"stylistic/no-floating-decimal\": \"error\",\n\t\t\t\t\"stylistic/spaced-comment\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t\"always\",\n\t\t\t\t\t{\n\t\t\t\t\t\tblock: {\n\t\t\t\t\t\t\tbalanced: true,\n\t\t\t\t\t\t\texceptions: [\"*\"],\n\t\t\t\t\t\t\tmarkers: [\"!\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tline: {\n\t\t\t\t\t\t\texceptions: [\"/\", \"#\"],\n\t\t\t\t\t\t\tmarkers: [\"/\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t...(jsx && {\n\t\t\t\t\t\"stylistic/jsx-self-closing-comp\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { stylistic };\n","import { GLOB_JSON, GLOB_JSON5, GLOB_JSONC } from \"@/globs\";\nimport type { OptionsFiles, OptionsOverrides, OptionsStylistic, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst jsonc = async (\n\toptions: OptionsFiles & OptionsOverrides & OptionsStylistic = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files, overrides, stylistic = true } = options;\n\n\tconst [eslintPluginJsonc, jsoncParser] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-jsonc\")),\n\t\tinteropDefault(import(\"jsonc-eslint-parser\")),\n\t] as const);\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/jsonc/setup\",\n\n\t\t\tplugins: {\n\t\t\t\tjsonc: eslintPluginJsonc,\n\t\t\t},\n\t\t},\n\n\t\t{\n\t\t\tfiles: files ?? [GLOB_JSON, GLOB_JSON5, GLOB_JSONC],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: jsoncParser,\n\t\t\t},\n\n\t\t\tname: \"zayne/jsonc/rules\",\n\n\t\t\trules: {\n\t\t\t\t\"jsonc/no-bigint-literals\": \"error\",\n\t\t\t\t\"jsonc/no-binary-expression\": \"error\",\n\t\t\t\t\"jsonc/no-binary-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-dupe-keys\": \"error\",\n\t\t\t\t\"jsonc/no-escape-sequence-in-identifier\": \"error\",\n\t\t\t\t\"jsonc/no-floating-decimal\": \"error\",\n\t\t\t\t\"jsonc/no-hexadecimal-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-infinity\": \"error\",\n\t\t\t\t\"jsonc/no-multi-str\": \"error\",\n\t\t\t\t\"jsonc/no-nan\": \"error\",\n\t\t\t\t\"jsonc/no-number-props\": \"error\",\n\t\t\t\t\"jsonc/no-numeric-separators\": \"error\",\n\t\t\t\t\"jsonc/no-octal\": \"error\",\n\t\t\t\t\"jsonc/no-octal-escape\": \"error\",\n\t\t\t\t\"jsonc/no-octal-numeric-literals\": \"error\",\n\t\t\t\t\"jsonc/no-parenthesized\": \"error\",\n\t\t\t\t\"jsonc/no-plus-sign\": \"error\",\n\t\t\t\t\"jsonc/no-regexp-literals\": \"error\",\n\t\t\t\t\"jsonc/no-sparse-arrays\": \"error\",\n\t\t\t\t\"jsonc/no-template-literals\": \"error\",\n\t\t\t\t\"jsonc/no-undefined-value\": \"error\",\n\t\t\t\t\"jsonc/no-unicode-codepoint-escapes\": \"error\",\n\t\t\t\t\"jsonc/no-useless-escape\": \"error\",\n\t\t\t\t\"jsonc/space-unary-ops\": \"error\",\n\t\t\t\t\"jsonc/valid-json-number\": \"error\",\n\t\t\t\t\"jsonc/vue-custom-block/no-parsing-error\": \"error\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"jsonc/array-bracket-spacing\": [\"error\", \"never\"],\n\t\t\t\t\t\"jsonc/comma-dangle\": [\"error\", \"never\"],\n\t\t\t\t\t\"jsonc/comma-style\": [\"error\", \"last\"],\n\t\t\t\t\t\"jsonc/key-spacing\": [\"error\", { afterColon: true, beforeColon: false }],\n\t\t\t\t\t\"jsonc/object-curly-newline\": [\"error\", { consistent: true, multiline: true }],\n\t\t\t\t\t\"jsonc/object-curly-spacing\": [\"error\", \"always\"],\n\t\t\t\t\t\"jsonc/object-property-newline\": [\"error\", { allowMultiplePropertiesPerLine: true }],\n\t\t\t\t\t\"jsonc/quote-props\": \"error\",\n\t\t\t\t\t\"jsonc/quotes\": \"error\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { jsonc };\n","import type { OptionsOverrides, OptionsStylistic, TypedFlatConfigItem } from \"@/types\";\nimport { interopDefault } from \"@/utils\";\n\nconst jsdoc = async (\n\toptions: OptionsOverrides & OptionsStylistic = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { overrides, stylistic = true } = options;\n\n\tconst eslintPluginJsdoc = await interopDefault(import(\"eslint-plugin-jsdoc\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/jsdoc/rules\",\n\t\t\tplugins: {\n\t\t\t\tjsdoc: eslintPluginJsdoc,\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t\"jsdoc/check-access\": \"warn\",\n\t\t\t\t\"jsdoc/check-param-names\": \"warn\",\n\t\t\t\t\"jsdoc/check-property-names\": \"warn\",\n\t\t\t\t\"jsdoc/check-types\": \"warn\",\n\t\t\t\t\"jsdoc/empty-tags\": \"warn\",\n\t\t\t\t\"jsdoc/implements-on-classes\": \"warn\",\n\t\t\t\t\"jsdoc/no-defaults\": \"warn\",\n\t\t\t\t\"jsdoc/no-multi-asterisks\": \"warn\",\n\t\t\t\t\"jsdoc/require-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-param-name\": \"warn\",\n\t\t\t\t\"jsdoc/require-property\": \"warn\",\n\t\t\t\t\"jsdoc/require-property-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-property-name\": \"warn\",\n\t\t\t\t\"jsdoc/require-returns-check\": \"warn\",\n\t\t\t\t\"jsdoc/require-returns-description\": \"warn\",\n\t\t\t\t\"jsdoc/require-yields-check\": \"warn\",\n\n\t\t\t\t...(stylistic && {\n\t\t\t\t\t\"jsdoc/check-alignment\": \"warn\",\n\t\t\t\t\t\"jsdoc/multiline-blocks\": \"warn\",\n\t\t\t\t}),\n\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { jsdoc };\n","import type { OptionsFiles, OptionsHasTypeScript, OptionsOverrides, TypedFlatConfigItem } from \"@/types\";\n\nimport { GLOB_SRC } from \"@/globs\";\nimport { ensurePackages, interopDefault, renamePlugins, renameRules } from \"@/utils\";\nimport { fixupPluginRules } from \"@eslint/compat\";\nimport type { ESLint } from \"eslint\";\nimport { isPackageExists } from \"local-pkg\";\n\n// react refresh\nconst ReactRefreshAllowConstantExportPackages = [\"vite\"];\nconst RemixPackages = [\"@remix-run/node\", \"@remix-run/react\", \"@remix-run/serve\", \"@remix-run/dev\"];\nconst NextJsPackages = [\"next\"];\n\nexport const eslintReactRenameMap = {\n\t\"@eslint-react\": \"react-base\",\n\t\"@eslint-react/debug\": \"react-debug\",\n\t\"@eslint-react/dom\": \"react-dom\",\n\t\"@eslint-react/hooks-extra\": \"react-hooks-extra\",\n\t\"@eslint-react/naming-convention\": \"react-naming-convention\",\n\t\"@eslint-react/web-api\": \"react-web-api\",\n};\n\nconst react = async (\n\toptions: OptionsFiles & OptionsHasTypeScript & OptionsOverrides = {}\n): Promise<TypedFlatConfigItem[]> => {\n\tconst { files, overrides, typescript = true } = options;\n\n\tawait ensurePackages([\n\t\t\"@eslint-react/eslint-plugin\",\n\t\t\"eslint-plugin-react-hooks\",\n\t\t\"eslint-plugin-react-refresh\",\n\t\t\"typescript-eslint\",\n\t]);\n\n\tconst [eslintPluginReact, eslintReactHooks, eslintPluginReactRefresh] = await Promise.all([\n\t\tinteropDefault(import(\"@eslint-react/eslint-plugin\")),\n\t\tinteropDefault(import(\"eslint-plugin-react-hooks\") as ESLint.Plugin),\n\t\tinteropDefault(import(\"eslint-plugin-react-refresh\") as ESLint.Plugin),\n\t] as const);\n\n\tconst isAllowConstantExport = ReactRefreshAllowConstantExportPackages.some((i) => isPackageExists(i));\n\tconst isUsingRemix = RemixPackages.some((i) => isPackageExists(i));\n\tconst isUsingNext = NextJsPackages.some((i) => isPackageExists(i));\n\n\t// prettier-ignore\n\tconst recommendedReactConfig = eslintPluginReact.configs[typescript ? \"recommended-type-checked\" : \"recommended\"];\n\n\treturn [\n\t\t{\n\t\t\tname: \"zayne/react/setup\",\n\n\t\t\tplugins: {\n\t\t\t\t...renamePlugins(recommendedReactConfig.plugins, eslintReactRenameMap),\n\t\t\t\t\"react-hooks\": fixupPluginRules(eslintReactHooks),\n\t\t\t\t\"react-refresh\": eslintPluginReactRefresh,\n\t\t\t},\n\n\t\t\tsettings: recommendedReactConfig.settings,\n\t\t},\n\n\t\t{\n\t\t\tfiles: files ?? [GLOB_SRC],\n\n\t\t\tname: \"zayne/react/rules\",\n\n\t\t\trules: {\n\t\t\t\t...renameRules(recommendedReactConfig.rules, eslintReactRenameMap),\n\t\t\t\t\"react-base/avoid-shorthand-boolean\": \"error\",\n\t\t\t\t\"react-base/function-component-definition\": \"off\",\n\t\t\t\t\"react-base/no-array-index-key\": \"error\",\n\t\t\t\t\"react-base/no-children-count\": \"off\",\n\t\t\t\t\"react-base/no-children-only\": \"off\",\n\t\t\t\t\"react-base/no-children-prop\": \"error\",\n\t\t\t\t\"react-base/no-children-to-array\": \"off\",\n\t\t\t\t\"react-base/no-clone-element\": \"off\",\n\t\t\t\t\"react-base/no-missing-component-display-name\": \"error\",\n\t\t\t\t\"react-base/prefer-destructuring-assignment\": \"error\",\n\t\t\t\t\"react-base/prefer-read-only-props\": \"off\",\n\t\t\t\t\"react-base/prefer-shorthand-fragment\": \"error\",\n\t\t\t\t\"react-hooks-extra/ensure-custom-hooks-using-other-hooks\": \"error\",\n\t\t\t\t\"react-hooks-extra/prefer-use-state-lazy-initialization\": \"error\",\n\t\t\t\t\"react-naming-convention/component-name\": \"warn\",\n\t\t\t\t\"react-naming-convention/use-state\": \"warn\",\n\n\t\t\t\t// Hook rules\n\t\t\t\t// eslint-disable-next-line perfectionist/sort-objects\n\t\t\t\t\"react-hooks/exhaustive-deps\": \"warn\",\n\t\t\t\t\"react-hooks/rules-of-hooks\": \"error\",\n\n\t\t\t\t// react refresh\n\t\t\t\t\"react-refresh/only-export-components\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowConstantExport: isAllowConstantExport,\n\t\t\t\t\t\tallowExportNames: [\n\t\t\t\t\t\t\t...(isUsingNext\n\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\"dynamic\",\n\t\t\t\t\t\t\t\t\t\t\"dynamicParams\",\n\t\t\t\t\t\t\t\t\t\t\"revalidate\",\n\t\t\t\t\t\t\t\t\t\t\"fetchCache\",\n\t\t\t\t\t\t\t\t\t\t\"runtime\",\n\t\t\t\t\t\t\t\t\t\t\"preferredRegion\",\n\t\t\t\t\t\t\t\t\t\t\"maxDuration\",\n\t\t\t\t\t\t\t\t\t\t\"config\",\n\t\t\t\t\t\t\t\t\t\t\"generateStaticParams\",\n\t\t\t\t\t\t\t\t\t\t\"metadata\",\n\t\t\t\t\t\t\t\t\t\t\"generateMetadata\",\n\t\t\t\t\t\t\t\t\t\t\"viewport\",\n\t\t\t\t\t\t\t\t\t\t\"generateViewport\",\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t: []),\n\t\t\t\t\t\t\t...(isUsingRemix ? [\"meta\", \"links\", \"headers\", \"loader\", \"action\"] : []),\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t// overrides\n\t\t\t\t...overrides,\n\t\t\t},\n\t\t},\n\t];\n};\n\nexport { react };\n","import type { TypedFlatConfigItem } from \"@/types\";\n\n/**\n * Sort package.json\n *\n * Requires `jsonc` config\n */\nexport const sortPackageJson = (): TypedFlatConfigItem[] => [\n\t{\n\t\tfiles: [\"**/package.json\"],\n\t\tname: \"zayne/sort/package-json\",\n\t\trules: {\n\t\t\t\"jsonc/sort-array-values\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^files$\",\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"jsonc/sort-keys\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t\"publisher\",\n\t\t\t\t\t\t\"name\",\n\t\t\t\t\t\t\"displayName\",\n\t\t\t\t\t\t\"type\",\n\t\t\t\t\t\t\"version\",\n\t\t\t\t\t\t\"private\",\n\t\t\t\t\t\t\"packageManager\",\n\t\t\t\t\t\t\"description\",\n\t\t\t\t\t\t\"author\",\n\t\t\t\t\t\t\"contributors\",\n\t\t\t\t\t\t\"license\",\n\t\t\t\t\t\t\"funding\",\n\t\t\t\t\t\t\"homepage\",\n\t\t\t\t\t\t\"repository\",\n\t\t\t\t\t\t\"bugs\",\n\t\t\t\t\t\t\"keywords\",\n\t\t\t\t\t\t\"categories\",\n\t\t\t\t\t\t\"sideEffects\",\n\t\t\t\t\t\t\"exports\",\n\t\t\t\t\t\t\"main\",\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t\t\"unpkg\",\n\t\t\t\t\t\t\"jsdelivr\",\n\t\t\t\t\t\t\"types\",\n\t\t\t\t\t\t\"typesVersions\",\n\t\t\t\t\t\t\"bin\",\n\t\t\t\t\t\t\"icon\",\n\t\t\t\t\t\t\"files\",\n\t\t\t\t\t\t\"engines\",\n\t\t\t\t\t\t\"activationEvents\",\n\t\t\t\t\t\t\"contributes\",\n\t\t\t\t\t\t\"scripts\",\n\t\t\t\t\t\t\"peerDependencies\",\n\t\t\t\t\t\t\"peerDependenciesMeta\",\n\t\t\t\t\t\t\"dependencies\",\n\t\t\t\t\t\t\"optionalDependencies\",\n\t\t\t\t\t\t\"devDependencies\",\n\t\t\t\t\t\t\"pnpm\",\n\t\t\t\t\t\t\"overrides\",\n\t\t\t\t\t\t\"resolutions\",\n\t\t\t\t\t\t\"husky\",\n\t\t\t\t\t\t\"simple-git-hooks\",\n\t\t\t\t\t\t\"lint-staged\",\n\t\t\t\t\t\t\"eslintConfig\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^(?:resolutions|overrides|pnpm.overrides)$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\"types\", \"import\", \"require\", \"default\"],\n\t\t\t\t\tpathPattern: \"^exports.*$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t// client hooks only\n\t\t\t\t\t\t\"pre-commit\",\n\t\t\t\t\t\t\"prepare-commit-msg\",\n\t\t\t\t\t\t\"commit-msg\",\n\t\t\t\t\t\t\"post-commit\",\n\t\t\t\t\t\t\"pre-rebase\",\n\t\t\t\t\t\t\"post-rewrite\",\n\t\t\t\t\t\t\"post-checkout\",\n\t\t\t\t\t\t\"post-merge\",\n\t\t\t\t\t\t\"pre-push\",\n\t\t\t\t\t\t\"pre-auto-gc\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^(?:gitHooks|husky|simple-git-hooks)$\",\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n];\n\n/**\n * Sort tsconfig.json\n *\n * Requires `jsonc` config\n */\n\nexport const sortTsconfig = (): TypedFlatConfigItem[] => [\n\t{\n\t\tfiles: [\"**/tsconfig.json\", \"**/tsconfig.*.json\"],\n\t\tname: \"zayne/sort/tsconfig-json\",\n\t\trules: {\n\t\t\t\"jsonc/sort-keys\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: [\"extends\", \"compilerOptions\", \"references\", \"files\", \"include\", \"exclude\"],\n\t\t\t\t\tpathPattern: \"^$\",\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\torder: [\n\t\t\t\t\t\t/* Projects */\n\t\t\t\t\t\t\"incremental\",\n\t\t\t\t\t\t\"composite\",\n\t\t\t\t\t\t\"tsBuildInfoFile\",\n\t\t\t\t\t\t\"disableSourceOfProjectReferenceRedirect\",\n\t\t\t\t\t\t\"disableSolutionSearching\",\n\t\t\t\t\t\t\"disableReferencedProjectLoad\",\n\t\t\t\t\t\t/* Language and Environment */\n\t\t\t\t\t\t\"target\",\n\t\t\t\t\t\t\"jsx\",\n\t\t\t\t\t\t\"jsxFactory\",\n\t\t\t\t\t\t\"jsxFragmentFactory\",\n\t\t\t\t\t\t\"jsxImportSource\",\n\t\t\t\t\t\t\"lib\",\n\t\t\t\t\t\t\"moduleDetection\",\n\t\t\t\t\t\t\"noLib\",\n\t\t\t\t\t\t\"reactNamespace\",\n\t\t\t\t\t\t\"useDefineForClassFields\",\n\t\t\t\t\t\t\"emitDecoratorMetadata\",\n\t\t\t\t\t\t\"experimentalDecorators\",\n\t\t\t\t\t\t/* Modules */\n\t\t\t\t\t\t\"baseUrl\",\n\t\t\t\t\t\t\"rootDir\",\n\t\t\t\t\t\t\"rootDirs\",\n\t\t\t\t\t\t\"customConditions\",\n\t\t\t\t\t\t\"module\",\n\t\t\t\t\t\t\"moduleResolution\",\n\t\t\t\t\t\t\"moduleSuffixes\",\n\t\t\t\t\t\t\"noResolve\",\n\t\t\t\t\t\t\"paths\",\n\t\t\t\t\t\t\"resolveJsonModule\",\n\t\t\t\t\t\t\"resolvePackageJsonExports\",\n\t\t\t\t\t\t\"resolvePackageJsonImports\",\n\t\t\t\t\t\t\"typeRoots\",\n\t\t\t\t\t\t\"types\",\n\t\t\t\t\t\t\"allowArbitraryExtensions\",\n\t\t\t\t\t\t\"allowImportingTsExtensions\",\n\t\t\t\t\t\t\"allowUmdGlobalAccess\",\n\t\t\t\t\t\t/* JavaScript Support */\n\t\t\t\t\t\t\"allowJs\",\n\t\t\t\t\t\t\"checkJs\",\n\t\t\t\t\t\t\"maxNodeModuleJsDepth\",\n\t\t\t\t\t\t/* Type Checking */\n\t\t\t\t\t\t\"strict\",\n\t\t\t\t\t\t\"strictBindCallApply\",\n\t\t\t\t\t\t\"strictFunctionTypes\",\n\t\t\t\t\t\t\"strictNullChecks\",\n\t\t\t\t\t\t\"strictPropertyInitialization\",\n\t\t\t\t\t\t\"allowUnreachableCode\",\n\t\t\t\t\t\t\"allowUnusedLabels\",\n\t\t\t\t\t\t\"alwaysStrict\",\n\t\t\t\t\t\t\"exactOptionalPropertyTypes\",\n\t\t\t\t\t\t\"noFallthroughCasesInSwitch\",\n\t\t\t\t\t\t\"noImplicitAny\",\n\t\t\t\t\t\t\"noImplicitOverride\",\n\t\t\t\t\t\t\"noImplicitReturns\",\n\t\t\t\t\t\t\"noImplicitThis\",\n\t\t\t\t\t\t\"noPropertyAccessFromIndexSignature\",\n\t\t\t\t\t\t\"noUncheckedIndexedAccess\",\n\t\t\t\t\t\t\"noUnusedLocals\",\n\t\t\t\t\t\t\"noUnusedParameters\",\n\t\t\t\t\t\t\"useUnknownInCatchVariables\",\n\t\t\t\t\t\t/* Emit */\n\t\t\t\t\t\t\"declaration\",\n\t\t\t\t\t\t\"declarationDir\",\n\t\t\t\t\t\t\"declarationMap\",\n\t\t\t\t\t\t\"downlevelIteration\",\n\t\t\t\t\t\t\"emitBOM\",\n\t\t\t\t\t\t\"emitDeclarationOnly\",\n\t\t\t\t\t\t\"importHelpers\",\n\t\t\t\t\t\t\"importsNotUsedAsValues\",\n\t\t\t\t\t\t\"inlineSourceMap\",\n\t\t\t\t\t\t\"inlineSources\",\n\t\t\t\t\t\t\"mapRoot\",\n\t\t\t\t\t\t\"newLine\",\n\t\t\t\t\t\t\"noEmit\",\n\t\t\t\t\t\t\"noEmitHelpers\",\n\t\t\t\t\t\t\"noEmitOnError\",\n\t\t\t\t\t\t\"outDir\",\n\t\t\t\t\t\t\"outFile\",\n\t\t\t\t\t\t\"preserveConstEnums\",\n\t\t\t\t\t\t\"preserveValueImports\",\n\t\t\t\t\t\t\"removeComments\",\n\t\t\t\t\t\t\"sourceMap\",\n\t\t\t\t\t\t\"sourceRoot\",\n\t\t\t\t\t\t\"stripInternal\",\n\t\t\t\t\t\t/* Interop Constraints */\n\t\t\t\t\t\t\"allowSyntheticDefaultImports\",\n\t\t\t\t\t\t\"esModuleInterop\",\n\t\t\t\t\t\t\"forceConsistentCasingInFileNames\",\n\t\t\t\t\t\t\"isolatedDeclarations\",\n\t\t\t\t\t\t\"isolatedModules\",\n\t\t\t\t\t\t\"preserveSymlinks\",\n\t\t\t\t\t\t\"verbatimModuleSyntax\",\n\t\t\t\t\t\t/* Completeness */\n\t\t\t\t\t\t\"skipDefaultLibCheck\",\n\t\t\t\t\t\t\"skipLibCheck\",\n\t\t\t\t\t],\n\t\t\t\t\tpathPattern: \"^compilerOptions$\",\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n];\n","import { GLOB_JSX, GLOB_TSX } from \"@/globs\";\nimport type { TypedFlatConfigItem } from \"@/types\";\n\nconst jsx = (): TypedFlatConfigItem[] => {\n\treturn [\n\t\t{\n\t\t\tfiles: [GLOB_JSX, GLOB_TSX],\n\n\t\t\tlanguageOptions: {\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjsx: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tname: \"zayne/jsx/setup\",\n\t\t},\n\t];\n};\n\nexport { jsx };\n","import { isObject } from \"@zayne-labs/toolkit/type-helpers\";\nimport type { Linter } from \"eslint\";\nimport { FlatConfigComposer } from \"eslint-flat-config-utils\";\nimport { isPackageExists } from \"local-pkg\";\nimport {\n\teslintReactRenameMap,\n\tgitIgnores,\n\tignores,\n\timports,\n\tjavascript,\n\tjsdoc,\n\tjsonc,\n\tperfectionist,\n\treact,\n\tsortPackageJson,\n\tsortTsconfig,\n\tstylistic,\n\ttailwindcss,\n\ttypescript,\n\tunicorn,\n} from \"./configs\";\nimport { jsx } from \"./configs/jsx\";\nimport type { Awaitable, ConfigNames, OptionsConfig, TypedFlatConfigItem } from \"./types\";\n\nexport const defaultPluginRenaming = {\n\t...eslintReactRenameMap,\n\t\"@stylistic\": \"stylistic\",\n\t\"@typescript-eslint\": \"ts-eslint\",\n\t\"import-x\": \"import\",\n\tn: \"node\",\n};\n\nconst ReactPackages = [\"react\", \"react-dom\"];\n\nconst resolveOptions = (option: unknown) => (isObject(option) ? option : {});\n\n/**\n * Construct an array of ESLint flat config items.\n * @param options\n * The options for generating the ESLint configurations.\n * @param userConfigs\n * The user configurations to be merged with the generated configurations.\n * @returns\n * The merged ESLint configurations.\n */\n\nexport const zayne = (\n\toptions: OptionsConfig & Pick<TypedFlatConfigItem, \"ignores\"> = {},\n\tuserConfigs: Array<\n\t\tAwaitable<FlatConfigComposer | Linter.Config[] | TypedFlatConfigItem | TypedFlatConfigItem[]>\n\t> = []\n): FlatConfigComposer<TypedFlatConfigItem, ConfigNames> => {\n\tconst {\n\t\tautoRenamePlugins = true,\n\t\tcomponentExts = [],\n\t\tgitignore: enableGitignore = true,\n\t\tjsonc: enableJsonc = true,\n\t\tjsx: enableJsx = true,\n\t\tperfectionist: enablePerfectionist = true,\n\t\treact: enableReact = ReactPackages.some((pkg) => isPackageExists(pkg)),\n\t\tstylistic: enableStylistic = true,\n\t\ttypescript: enableTypeScript = isPackageExists(\"typescript\"),\n\t\tunicorn: enableUnicorn = true,\n\t\t...restOfOptions\n\t} = options;\n\n\tconst isStylistic = Boolean(enableStylistic);\n\n\tconst tsconfigPath =\n\t\tisObject(enableTypeScript) && \"tsconfigPath\" in enableTypeScript\n\t\t\t? enableTypeScript.tsconfigPath\n\t\t\t: null;\n\n\tconst configs: Array<Awaitable<TypedFlatConfigItem[]>> = [];\n\n\tif (enableGitignore) {\n\t\tconfigs.push(gitIgnores(resolveOptions(enableGitignore)));\n\t}\n\n\t// Base configs\n\tconfigs.push(\n\t\tignores(restOfOptions.ignores),\n\t\tjavascript(restOfOptions.javascript),\n\t\timports({ stylistic: isStylistic }),\n\t\tjsdoc({ stylistic: isStylistic })\n\t);\n\n\tif (enablePerfectionist) {\n\t\tconfigs.push(perfectionist(resolveOptions(enablePerfectionist)));\n\t}\n\n\tif (enableUnicorn) {\n\t\tconfigs.push(unicorn(resolveOptions(enableUnicorn)));\n\t}\n\n\tif (enableJsonc) {\n\t\tconfigs.push(\n\t\t\tjsonc({\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\t...resolveOptions(enableJsonc),\n\t\t\t}),\n\t\t\tsortPackageJson(),\n\t\t\tsortTsconfig()\n\t\t);\n\t}\n\n\tif (enableTypeScript) {\n\t\tconfigs.push(\n\t\t\ttypescript({\n\t\t\t\tcomponentExts,\n\t\t\t\tstylistic: isStylistic,\n\t\t\t\t...resolveOptions(enableTypeScript),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (enableJsx) {\n\t\tconfigs.push(jsx());\n\t}\n\n\tif (enableStylistic) {\n\t\tconst stylisticOptions = resolveOptions(enableStylistic);\n\n\t\t!Object.hasOwn(stylisticOptions, \"jsx\") && (stylisticOptions.jsx = enableJsx);\n\n\t\tconfigs.push(stylistic(stylisticOptions));\n\t}\n\n\tif (restOfOptions.tailwindcss) {\n\t\tconfigs.push(tailwindcss(resolveOptions(restOfOptions.tailwindcss)));\n\t}\n\n\tif (enableReact) {\n\t\tconfigs.push(\n\t\t\treact({\n\t\t\t\t...resolveOptions(enableReact),\n\t\t\t\ttypescript: Boolean(tsconfigPath),\n\t\t\t})\n\t\t);\n\t}\n\n\tif (\"files\" in restOfOptions) {\n\t\tthrow new Error(\n\t\t\t'[@zayne-labs/eslint-config] The first argument should not contain the \"files\" property as the options are supposed to be global. Place it in the second config array instead.'\n\t\t);\n\t}\n\n\tlet composer = new FlatConfigComposer<TypedFlatConfigItem, ConfigNames>();\n\n\tcomposer = composer.append(...configs, ...(userConfigs as never[]));\n\n\tif (autoRenamePlugins) {\n\t\tcomposer = composer.renamePlugins(defaultPluginRenaming);\n\t}\n\n\treturn composer;\n};\n"]}
|