@standard-config/eslint 1.6.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -25
- package/dist/{index-C8CpEqE5.d.mts → eslint-B2bS8oCs.d.mts} +12 -10
- package/dist/eslint-B2bS8oCs.d.mts.map +1 -0
- package/dist/index.d.mts +4 -4
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +28 -47
- package/dist/index.mjs.map +1 -1
- package/dist/{rules-react-P9sQTBnm.mjs → rules-react-CX3lvpmg.mjs} +29 -78
- package/dist/rules-react-CX3lvpmg.mjs.map +1 -0
- package/dist/utilities.d.mts +35 -40
- package/dist/utilities.d.mts.map +1 -1
- package/dist/utilities.mjs +97 -66
- package/dist/utilities.mjs.map +1 -1
- package/package.json +30 -27
- package/dist/index-C8CpEqE5.d.mts.map +0 -1
- package/dist/rules-react-P9sQTBnm.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
[](https://www.npmjs.com/package/@standard-config/eslint)
|
|
2
|
-
[](https://github.com/standard-config/eslint/actions/workflows/test.yaml)
|
|
3
|
-
[](https://codecov.io/github/standard-config/eslint)
|
|
1
|
+
[](https://www.npmjs.com/package/@standard-config/eslint) [](https://github.com/standard-config/eslint/actions/workflows/test.yaml) [](https://codecov.io/github/standard-config/eslint)
|
|
4
2
|
|
|
5
3
|
# @standard-config/eslint
|
|
6
4
|
|
|
@@ -45,32 +43,13 @@ Standard Config comes with a set of utilities that can translate this config to
|
|
|
45
43
|
In your `oxlint.config.ts`:
|
|
46
44
|
|
|
47
45
|
```ts
|
|
48
|
-
import {
|
|
49
|
-
import { defineConfig } from '@standard-config/oxlint';
|
|
46
|
+
import { defineOxlintConfig } from '@standard-config/eslint/utilities';
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
// Optional, as above
|
|
53
|
-
react: true,
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
// Merge `configBase` at the root of your config, as it defines
|
|
57
|
-
// all supported third-party rules from this config, including
|
|
58
|
-
// the resolved `jsPlugins`
|
|
59
|
-
export default defineConfig(configBase, {
|
|
48
|
+
export default defineOxlintConfig({
|
|
60
49
|
react: true,
|
|
61
50
|
rules: {
|
|
62
|
-
|
|
63
|
-
'react-js/function-component-definition': 'off',
|
|
51
|
+
/* Optional overrides */
|
|
64
52
|
},
|
|
65
|
-
overrides: [
|
|
66
|
-
{
|
|
67
|
-
// `configConfigFiles` is an optional override entry
|
|
68
|
-
// intended for config files other than `**/*.config.ts`
|
|
69
|
-
// (those are already covered by `configBase`)
|
|
70
|
-
files: ['config/**/*.ts'],
|
|
71
|
-
...configConfigFiles,
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
53
|
});
|
|
75
54
|
```
|
|
76
55
|
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { defineConfig } from "eslint/config";
|
|
2
2
|
import { Linter } from "eslint";
|
|
3
3
|
|
|
4
|
-
//#region src/types/
|
|
5
|
-
type
|
|
6
|
-
type LinterConfigRuleEntry = Linter.RuleSeverity | [Linter.RuleSeverity, ...unknown[]];
|
|
7
|
-
type LinterConfigRules = Record<string, LinterConfigRuleEntry>;
|
|
8
|
-
type InfiniteLinterConfig = Parameters<typeof defineConfig>[number];
|
|
9
|
-
type StandardConfig = Exclude<InfiniteLinterConfig, unknown[]> & {
|
|
4
|
+
//#region src/types/common.d.ts
|
|
5
|
+
type StandardConfigOptions = {
|
|
10
6
|
/**
|
|
11
7
|
* Enable React-specific rules.
|
|
12
8
|
* @default false
|
|
13
9
|
*/
|
|
14
10
|
react?: boolean;
|
|
15
11
|
};
|
|
16
|
-
type InfiniteLinterConfigs = [StandardConfig, ...InfiniteLinterConfig[]];
|
|
17
|
-
type StandardConfigArray = InfiniteLinterConfig[] | InfiniteLinterConfigs | [InfiniteLinterConfigs, ...InfiniteLinterConfig[]];
|
|
18
12
|
//#endregion
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
//#region src/types/eslint.d.ts
|
|
14
|
+
type LinterConfigEntry = Omit<Linter.Config, 'files'>;
|
|
15
|
+
type LinterConfigRuleEntry = Linter.RuleSeverity | [Linter.RuleSeverity, ...unknown[]];
|
|
16
|
+
type LinterConfigRules = Record<string, LinterConfigRuleEntry>;
|
|
17
|
+
type InfiniteLinterConfig = Parameters<typeof defineConfig>[number];
|
|
18
|
+
type StandardConfig = Exclude<InfiniteLinterConfig, unknown[]> & StandardConfigOptions;
|
|
19
|
+
type StandardConfigArray = Array<StandardConfig | StandardConfig[]>;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { LinterConfigRules as n, StandardConfigArray as r, LinterConfigEntry as t };
|
|
22
|
+
//# sourceMappingURL=eslint-B2bS8oCs.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eslint-B2bS8oCs.d.mts","names":["StandardConfigOptions","react","Linter","defineConfig","eslintDefineConfig","StandardConfigOptions","LinterConfigEntry","Config","Omit","LinterConfigRuleEntry","RuleSeverity","LinterConfigRules","Record","InfiniteLinterConfig","Parameters","StandardConfig","Exclude","StandardConfigArray","Array"],"sources":["../src/types/common.d.ts","../src/types/eslint.d.ts"],"mappings":";;;;KAAYA,qBAAAA;;;;AAAZ;EAKCC,KAAAA;AAAAA;;;KCDWK,iBAAAA,GAAoBE,IAAAA,CAAKN,MAAAA,CAAOK,MAAAA;AAAAA,KAEvCE,qBAAAA,GACFP,MAAAA,CAAOQ,YAAAA,IACNR,MAAAA,CAAOQ,YAAAA;AAAAA,KAECC,iBAAAA,GAAoBC,MAAAA,SAAeH,qBAAAA;AAAAA,KAE1CI,oBAAAA,GAAuBC,UAAAA,QAAkBV,YAAAA;AAAAA,KAElCW,cAAAA,GAAiBC,OAAAA,CAAQH,oBAAAA,eACpCR,qBAAAA;AAAAA,KAEWY,mBAAAA,GAAsBC,KAAAA,CAAMH,cAAAA,GAAiBA,cAAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { r as StandardConfigArray, t as LinterConfigEntry } from "./eslint-B2bS8oCs.mjs";
|
|
2
2
|
import { Config } from "eslint/config";
|
|
3
3
|
|
|
4
|
-
//#region src/config-base/
|
|
4
|
+
//#region src/config-base/eslint.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Primary config entry.
|
|
7
7
|
*
|
|
@@ -10,7 +10,7 @@ import { Config } from "eslint/config";
|
|
|
10
10
|
*/
|
|
11
11
|
declare const config: LinterConfigEntry;
|
|
12
12
|
//#endregion
|
|
13
|
-
//#region src/config-config-files/
|
|
13
|
+
//#region src/config-config-files/eslint.d.ts
|
|
14
14
|
/**
|
|
15
15
|
* Optional config entry containing rules that target config files. Intended for
|
|
16
16
|
* explicit overrides.
|
|
@@ -20,7 +20,7 @@ declare const config: LinterConfigEntry;
|
|
|
20
20
|
*/
|
|
21
21
|
declare const config$1: LinterConfigEntry;
|
|
22
22
|
//#endregion
|
|
23
|
-
//#region src/config-react/
|
|
23
|
+
//#region src/config-react/eslint.d.ts
|
|
24
24
|
/**
|
|
25
25
|
* Optional config entry containing rules that target `*.tsx` files. Intended
|
|
26
26
|
* for explicit overrides.
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/config-base/
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/config-base/eslint.ts","../src/config-config-files/eslint.ts","../src/config-react/eslint.ts","../src/define-config/index.ts"],"mappings":";;;;;;;AAA8D;;;cAaxD,MAAA,EAAQ,iBAAA;;;;;;AAbgD;;;;cCWxD,QAAA,EAAQ,iBAAA;;;;;;ADXgD;;;;cEaxD,QAAA,EAAQ,iBAAA;;;;;AFbgD;iBGUtC,YAAA,CAAA,GACpB,OAAA,EAAS,mBAAA,GACV,MAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as rules$1, i as rules$2, n as rules$4, o as rules, r as rules$3, t as rules$5 } from "./rules-react-CX3lvpmg.mjs";
|
|
2
2
|
import pluginStylistic from "@stylistic/eslint-plugin";
|
|
3
3
|
import pluginPerfectionist from "eslint-plugin-perfectionist";
|
|
4
|
-
import
|
|
5
|
-
import pluginReact from "eslint-plugin-react";
|
|
6
|
-
import pluginReactHooks from "eslint-plugin-react-hooks";
|
|
7
|
-
import pluginReactNamingConvention from "eslint-plugin-react-naming-convention";
|
|
8
|
-
import pluginReactX from "eslint-plugin-react-x";
|
|
4
|
+
import pluginReact from "eslint-plugin-react-x";
|
|
9
5
|
import { defineConfig as defineConfig$1 } from "eslint/config";
|
|
10
|
-
|
|
11
|
-
import fs from "node:fs";
|
|
12
|
-
import path from "node:path";
|
|
13
|
-
|
|
14
|
-
//#region src/config-base/index.ts
|
|
6
|
+
//#region src/config-base/eslint.ts
|
|
15
7
|
/**
|
|
16
8
|
* Primary config entry.
|
|
17
9
|
*
|
|
@@ -24,13 +16,6 @@ const config = {
|
|
|
24
16
|
"@stylistic": pluginStylistic,
|
|
25
17
|
"perfectionist": pluginPerfectionist
|
|
26
18
|
},
|
|
27
|
-
languageOptions: {
|
|
28
|
-
parser: tseslint.parser,
|
|
29
|
-
parserOptions: {
|
|
30
|
-
projectService: true,
|
|
31
|
-
warnOnUnsupportedTypeScriptVersion: false
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
19
|
linterOptions: {
|
|
35
20
|
reportUnusedDisableDirectives: "error",
|
|
36
21
|
reportUnusedInlineConfigs: "error"
|
|
@@ -41,9 +26,19 @@ const config = {
|
|
|
41
26
|
...rules$2
|
|
42
27
|
}
|
|
43
28
|
};
|
|
44
|
-
|
|
29
|
+
let tseslint;
|
|
30
|
+
try {
|
|
31
|
+
tseslint = await import("typescript-eslint");
|
|
32
|
+
} catch {}
|
|
33
|
+
if (tseslint && Object.hasOwn(tseslint, "parser")) config.languageOptions = {
|
|
34
|
+
parser: tseslint.parser,
|
|
35
|
+
parserOptions: {
|
|
36
|
+
projectService: true,
|
|
37
|
+
warnOnUnsupportedTypeScriptVersion: false
|
|
38
|
+
}
|
|
39
|
+
};
|
|
45
40
|
//#endregion
|
|
46
|
-
//#region src/config-config-files/
|
|
41
|
+
//#region src/config-config-files/eslint.ts
|
|
47
42
|
/**
|
|
48
43
|
* Optional config entry containing rules that target config files. Intended for
|
|
49
44
|
* explicit overrides.
|
|
@@ -56,9 +51,8 @@ const config$1 = {
|
|
|
56
51
|
plugins: { perfectionist: pluginPerfectionist },
|
|
57
52
|
rules: { ...rules$3 }
|
|
58
53
|
};
|
|
59
|
-
|
|
60
54
|
//#endregion
|
|
61
|
-
//#region src/config-react/
|
|
55
|
+
//#region src/config-react/eslint.ts
|
|
62
56
|
/**
|
|
63
57
|
* Optional config entry containing rules that target `*.tsx` files. Intended
|
|
64
58
|
* for explicit overrides.
|
|
@@ -70,26 +64,15 @@ const config$2 = {
|
|
|
70
64
|
name: "React",
|
|
71
65
|
plugins: {
|
|
72
66
|
"perfectionist": pluginPerfectionist,
|
|
73
|
-
"react": pluginReact
|
|
74
|
-
"react-hooks": pluginReactHooks,
|
|
75
|
-
"react-naming-convention": pluginReactNamingConvention,
|
|
76
|
-
"react-x": pluginReactX
|
|
67
|
+
"react-x": pluginReact
|
|
77
68
|
},
|
|
78
69
|
settings: { react: { version: "detect" } },
|
|
79
70
|
rules: {
|
|
80
71
|
...rules$4,
|
|
81
72
|
...rules$5,
|
|
82
|
-
...rules$
|
|
83
|
-
...rules$7,
|
|
84
|
-
...rules$8
|
|
73
|
+
...rules$5
|
|
85
74
|
}
|
|
86
75
|
};
|
|
87
|
-
|
|
88
|
-
//#endregion
|
|
89
|
-
//#region src/config-ignores/index.ts
|
|
90
|
-
const configPath = path.resolve(".gitignore");
|
|
91
|
-
const config$3 = fs.existsSync(configPath) ? includeIgnoreFile(configPath, ".gitignore") : {};
|
|
92
|
-
|
|
93
76
|
//#endregion
|
|
94
77
|
//#region src/define-config/index.ts
|
|
95
78
|
/**
|
|
@@ -100,7 +83,6 @@ function defineConfig(...configs) {
|
|
|
100
83
|
name: "Standard Config",
|
|
101
84
|
files: ["**/*.{ts,tsx,cts,mts}"],
|
|
102
85
|
extends: [
|
|
103
|
-
config$3,
|
|
104
86
|
config,
|
|
105
87
|
{
|
|
106
88
|
files: ["**/*.config.{ts,cts,mts}"],
|
|
@@ -111,21 +93,20 @@ function defineConfig(...configs) {
|
|
|
111
93
|
});
|
|
112
94
|
}
|
|
113
95
|
function normalizeExtensionConfigs(configs) {
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
96
|
+
const extensionConfigs = [];
|
|
97
|
+
let includeReactConfig = false;
|
|
98
|
+
for (const config of configs.flat()) {
|
|
99
|
+
const { react, ...otherConfig } = config;
|
|
100
|
+
if (Object.keys(otherConfig).length > 0) extensionConfigs.push(defineConfig$1(otherConfig));
|
|
101
|
+
if (react !== void 0) includeReactConfig = react;
|
|
102
|
+
}
|
|
103
|
+
if (includeReactConfig) extensionConfigs.unshift({
|
|
118
104
|
files: ["**/*.tsx"],
|
|
119
105
|
...config$2
|
|
120
106
|
});
|
|
121
|
-
|
|
122
|
-
if (Array.isArray(configEntry)) return configEntry;
|
|
123
|
-
const { react, ...config } = configEntry;
|
|
124
|
-
return config;
|
|
125
|
-
})));
|
|
126
|
-
return extensions;
|
|
107
|
+
return extensionConfigs;
|
|
127
108
|
}
|
|
128
|
-
|
|
129
109
|
//#endregion
|
|
130
110
|
export { config as configBase, config$1 as configConfigFiles, config$2 as configReact, defineConfig };
|
|
111
|
+
|
|
131
112
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["rulesCore","rulesPerfectionist","rulesStylistic","config","rulesPerfectionist","config","rulesPerfectionist","rulesReact","
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["rulesCore","rulesPerfectionist","rulesStylistic","config","rulesPerfectionist","config","rulesPerfectionist","rulesReact","eslintDefineConfig","configBase","configConfigFiles","configReact"],"sources":["../src/config-base/eslint.ts","../src/config-config-files/eslint.ts","../src/config-react/eslint.ts","../src/define-config/index.ts"],"sourcesContent":["import type { LinterConfigEntry } from '../types/eslint.d.ts';\nimport pluginStylistic from '@stylistic/eslint-plugin';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\nimport rulesCore from './rules-core.ts';\nimport rulesPerfectionist from './rules-perfectionist.ts';\nimport rulesStylistic from './rules-stylistic.ts';\n\n/**\n * Primary config entry.\n *\n * This config is intentionally limited to rules not supported by Oxlint\n * and stylistic rules outside of Prettier’s scope.\n */\nconst config: LinterConfigEntry = {\n\tname: 'Base Config',\n\tplugins: {\n\t\t'@stylistic': pluginStylistic,\n\t\t'perfectionist': pluginPerfectionist,\n\t},\n\tlinterOptions: {\n\t\treportUnusedDisableDirectives: 'error',\n\t\treportUnusedInlineConfigs: 'error',\n\t},\n\trules: {\n\t\t...rulesCore,\n\t\t...rulesPerfectionist,\n\t\t...rulesStylistic,\n\t},\n};\n\n/* oxlint-disable-next-line typescript/consistent-type-imports */\nlet tseslint: typeof import('typescript-eslint') | undefined;\n\ntry {\n\ttseslint = await import('typescript-eslint');\n} catch {}\n\nif (tseslint && Object.hasOwn(tseslint, 'parser')) {\n\tconfig.languageOptions = {\n\t\tparser: tseslint.parser,\n\t\tparserOptions: {\n\t\t\tprojectService: true,\n\t\t\twarnOnUnsupportedTypeScriptVersion: false,\n\t\t},\n\t};\n}\n\nexport default config;\n","import type { LinterConfigEntry } from '../types/eslint.d.ts';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\nimport rulesPerfectionist from './rules-perfectionist.ts';\n\n/**\n * Optional config entry containing rules that target config files. Intended for\n * explicit overrides.\n *\n * This config is intentionally limited to rules not supported by Oxlint\n * and stylistic rules outside of Prettier’s scope.\n */\nconst config: LinterConfigEntry = {\n\tname: 'Config Files',\n\tplugins: {\n\t\tperfectionist: pluginPerfectionist,\n\t},\n\trules: {\n\t\t...rulesPerfectionist,\n\t},\n};\n\nexport default config;\n","import type { LinterConfigEntry } from '../types/eslint.d.ts';\nimport pluginPerfectionist from 'eslint-plugin-perfectionist';\nimport pluginReact from 'eslint-plugin-react-x';\nimport rulesPerfectionist from './rules-perfectionist.ts';\nimport rulesReact from './rules-react.ts';\n\n/**\n * Optional config entry containing rules that target `*.tsx` files. Intended\n * for explicit overrides.\n *\n * This config is intentionally limited to rules not supported by Oxlint\n * and stylistic rules outside of Prettier’s scope.\n */\nconst config: LinterConfigEntry = {\n\tname: 'React',\n\tplugins: {\n\t\t'perfectionist': pluginPerfectionist,\n\t\t'react-x': pluginReact,\n\t},\n\tsettings: {\n\t\treact: {\n\t\t\tversion: 'detect',\n\t\t},\n\t},\n\trules: {\n\t\t...rulesPerfectionist,\n\t\t...rulesReact,\n\t\t...rulesReact,\n\t},\n};\n\nexport default config;\n","import type { Config } from 'eslint/config';\nimport type { StandardConfigArray } from '../types/eslint.d.ts';\nimport { defineConfig as eslintDefineConfig } from 'eslint/config';\nimport configBase from '../config-base/eslint.ts';\nimport configConfigFiles from '../config-config-files/eslint.ts';\nimport configReact from '../config-react/eslint.ts';\n\n/**\n * Combine Standard Config with optional additional config.\n */\nexport default function defineConfig(\n\t...configs: StandardConfigArray\n): Config[] {\n\treturn eslintDefineConfig({\n\t\tname: 'Standard Config',\n\t\tfiles: ['**/*.{ts,tsx,cts,mts}'],\n\t\textends: [\n\t\t\tconfigBase,\n\t\t\t{\n\t\t\t\tfiles: ['**/*.config.{ts,cts,mts}'],\n\t\t\t\t...configConfigFiles,\n\t\t\t},\n\t\t\t...normalizeExtensionConfigs(configs),\n\t\t],\n\t});\n}\n\nfunction normalizeExtensionConfigs(configs: StandardConfigArray) {\n\tconst extensionConfigs: Array<Config | Config[]> = [];\n\tlet includeReactConfig = false;\n\n\tfor (const config of configs.flat()) {\n\t\tconst { react, ...otherConfig } = config;\n\n\t\tif (Object.keys(otherConfig).length > 0) {\n\t\t\textensionConfigs.push(eslintDefineConfig(otherConfig));\n\t\t}\n\n\t\tif (react !== undefined) {\n\t\t\tincludeReactConfig = react;\n\t\t}\n\t}\n\n\tif (includeReactConfig) {\n\t\textensionConfigs.unshift({\n\t\t\tfiles: ['**/*.tsx'],\n\t\t\t...configReact,\n\t\t});\n\t}\n\n\treturn extensionConfigs;\n}\n"],"mappings":";;;;;;;;;;;;AAaA,MAAM,SAA4B;CACjC,MAAM;CACN,SAAS;EACR,cAAc;EACd,iBAAiB;EACjB;CACD,eAAe;EACd,+BAA+B;EAC/B,2BAA2B;EAC3B;CACD,OAAO;EACN,GAAGA;EACH,GAAGC;EACH,GAAGC;EACH;CACD;AAGD,IAAI;AAEJ,IAAI;AACH,YAAW,MAAM,OAAO;QACjB;AAER,IAAI,YAAY,OAAO,OAAO,UAAU,SAAS,CAChD,QAAO,kBAAkB;CACxB,QAAQ,SAAS;CACjB,eAAe;EACd,gBAAgB;EAChB,oCAAoC;EACpC;CACD;;;;;;;;;;ACjCF,MAAMC,WAA4B;CACjC,MAAM;CACN,SAAS,EACR,eAAe,qBACf;CACD,OAAO,EACN,GAAGC,SACH;CACD;;;;;;;;;;ACND,MAAMC,WAA4B;CACjC,MAAM;CACN,SAAS;EACR,iBAAiB;EACjB,WAAW;EACX;CACD,UAAU,EACT,OAAO,EACN,SAAS,UACT,EACD;CACD,OAAO;EACN,GAAGC;EACH,GAAGC;EACH,GAAGA;EACH;CACD;;;;;;ACnBD,SAAwB,aACvB,GAAG,SACQ;AACX,QAAOC,eAAmB;EACzB,MAAM;EACN,OAAO,CAAC,wBAAwB;EAChC,SAAS;GACRC;GACA;IACC,OAAO,CAAC,2BAA2B;IACnC,GAAGC;IACH;GACD,GAAG,0BAA0B,QAAQ;GACrC;EACD,CAAC;;AAGH,SAAS,0BAA0B,SAA8B;CAChE,MAAM,mBAA6C,EAAE;CACrD,IAAI,qBAAqB;AAEzB,MAAK,MAAM,UAAU,QAAQ,MAAM,EAAE;EACpC,MAAM,EAAE,OAAO,GAAG,gBAAgB;AAElC,MAAI,OAAO,KAAK,YAAY,CAAC,SAAS,EACrC,kBAAiB,KAAKF,eAAmB,YAAY,CAAC;AAGvD,MAAI,UAAU,KAAA,EACb,sBAAqB;;AAIvB,KAAI,mBACH,kBAAiB,QAAQ;EACxB,OAAO,CAAC,WAAW;EACnB,GAAGG;EACH,CAAC;AAGH,QAAO"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import pluginReactHooks from "eslint-plugin-react-hooks";
|
|
2
|
-
|
|
3
1
|
//#region src/config-base/rules-core.ts
|
|
4
|
-
const rules$
|
|
2
|
+
const rules$5 = {
|
|
5
3
|
"camelcase": ["error", { properties: "always" }],
|
|
6
4
|
"func-name-matching": [
|
|
7
5
|
"error",
|
|
@@ -9,10 +7,9 @@ const rules$8 = {
|
|
|
9
7
|
{ considerPropertyDescriptor: true }
|
|
10
8
|
]
|
|
11
9
|
};
|
|
12
|
-
|
|
13
10
|
//#endregion
|
|
14
11
|
//#region src/config-base/rules-perfectionist.ts
|
|
15
|
-
const rules$
|
|
12
|
+
const rules$4 = {
|
|
16
13
|
"perfectionist/sort-array-includes": ["error", { type: "natural" }],
|
|
17
14
|
"perfectionist/sort-classes": ["error", {
|
|
18
15
|
groups: ["property", "constructor"],
|
|
@@ -112,10 +109,9 @@ const rules$7 = {
|
|
|
112
109
|
type: "natural"
|
|
113
110
|
}]
|
|
114
111
|
};
|
|
115
|
-
|
|
116
112
|
//#endregion
|
|
117
113
|
//#region src/config-base/rules-stylistic.ts
|
|
118
|
-
const rules$
|
|
114
|
+
const rules$3 = {
|
|
119
115
|
"@stylistic/lines-between-class-members": [
|
|
120
116
|
"error",
|
|
121
117
|
"always",
|
|
@@ -149,6 +145,16 @@ const rules$6 = {
|
|
|
149
145
|
],
|
|
150
146
|
prev: "*"
|
|
151
147
|
},
|
|
148
|
+
{
|
|
149
|
+
blankLine: "any",
|
|
150
|
+
next: [
|
|
151
|
+
"break",
|
|
152
|
+
"continue",
|
|
153
|
+
"return",
|
|
154
|
+
"throw"
|
|
155
|
+
],
|
|
156
|
+
prev: "block-like"
|
|
157
|
+
},
|
|
152
158
|
{
|
|
153
159
|
blankLine: "always",
|
|
154
160
|
next: "*",
|
|
@@ -194,10 +200,9 @@ const rules$6 = {
|
|
|
194
200
|
}
|
|
195
201
|
]
|
|
196
202
|
};
|
|
197
|
-
|
|
198
203
|
//#endregion
|
|
199
204
|
//#region src/config-config-files/rules-perfectionist.ts
|
|
200
|
-
const rules$
|
|
205
|
+
const rules$2 = { "perfectionist/sort-objects": ["error", {
|
|
201
206
|
customGroups: [
|
|
202
207
|
{
|
|
203
208
|
groupName: "extends",
|
|
@@ -251,10 +256,9 @@ const rules$5 = { "perfectionist/sort-objects": ["error", {
|
|
|
251
256
|
newlinesBetween: 0,
|
|
252
257
|
type: "natural"
|
|
253
258
|
}] };
|
|
254
|
-
|
|
255
259
|
//#endregion
|
|
256
260
|
//#region src/config-react/rules-perfectionist.ts
|
|
257
|
-
const rules$
|
|
261
|
+
const rules$1 = { "perfectionist/sort-jsx-props": ["error", {
|
|
258
262
|
customGroups: [
|
|
259
263
|
{
|
|
260
264
|
groupName: "as",
|
|
@@ -293,65 +297,17 @@ const rules$4 = { "perfectionist/sort-jsx-props": ["error", {
|
|
|
293
297
|
],
|
|
294
298
|
type: "unsorted"
|
|
295
299
|
}] };
|
|
296
|
-
|
|
297
|
-
//#endregion
|
|
298
|
-
//#region src/transform-rules/index.ts
|
|
299
|
-
/**
|
|
300
|
-
* Modify a set of ESLint rules.
|
|
301
|
-
*
|
|
302
|
-
* @deprecated Not covered by semver.
|
|
303
|
-
*/
|
|
304
|
-
function transformRules(rules, options) {
|
|
305
|
-
if (!rules) return {};
|
|
306
|
-
const { omit, prefix, severity } = options;
|
|
307
|
-
const omittedRules = new Set(omit);
|
|
308
|
-
const transformedRules = {};
|
|
309
|
-
for (const [ruleName, ruleConfig] of Object.entries(rules)) {
|
|
310
|
-
if (omittedRules.has(ruleName)) continue;
|
|
311
|
-
if (!Array.isArray(ruleConfig)) {
|
|
312
|
-
transformedRules[ruleName] = severity ?? ruleConfig ?? "off";
|
|
313
|
-
continue;
|
|
314
|
-
}
|
|
315
|
-
const [ruleSeverity, ...ruleOptions] = ruleConfig;
|
|
316
|
-
transformedRules[ruleName] = [severity ?? ruleSeverity, ...ruleOptions];
|
|
317
|
-
}
|
|
318
|
-
return typeof prefix === "string" ? prefixRules(transformedRules, prefix) : transformedRules;
|
|
319
|
-
}
|
|
320
|
-
function prefixRules(rules, prefix) {
|
|
321
|
-
const prefixedRules = {};
|
|
322
|
-
for (const [ruleName, ruleConfig] of Object.entries(rules)) {
|
|
323
|
-
const name = ruleName.replace(/^.*?\//, "");
|
|
324
|
-
prefixedRules[`${prefix}/${name}`] = ruleConfig;
|
|
325
|
-
}
|
|
326
|
-
return prefixedRules;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
300
|
//#endregion
|
|
330
|
-
//#region src/config-react/rules-react
|
|
331
|
-
const rules
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
//#endregion
|
|
337
|
-
//#region src/config-react/rules-react-naming-convention.ts
|
|
338
|
-
const rules$2 = {
|
|
339
|
-
"react-naming-convention/component-name": "error",
|
|
340
|
-
"react-naming-convention/context-name": "error",
|
|
341
|
-
"react-naming-convention/ref-name": "error",
|
|
342
|
-
"react-naming-convention/use-state": "error"
|
|
343
|
-
};
|
|
344
|
-
|
|
345
|
-
//#endregion
|
|
346
|
-
//#region src/config-react/rules-react-x.ts
|
|
347
|
-
const rules$1 = {
|
|
301
|
+
//#region src/config-react/rules-react.ts
|
|
302
|
+
const rules = {
|
|
303
|
+
"react-x/component-hook-factories": "error",
|
|
304
|
+
"react-x/error-boundaries": "error",
|
|
305
|
+
"react-x/immutability": "error",
|
|
348
306
|
"react-x/jsx-dollar": "error",
|
|
349
307
|
"react-x/jsx-key-before-spread": "error",
|
|
350
|
-
"react-x/jsx-no-iife": "error",
|
|
351
308
|
"react-x/no-access-state-in-setstate": "error",
|
|
352
309
|
"react-x/no-class-component": "error",
|
|
353
310
|
"react-x/no-context-provider": "error",
|
|
354
|
-
"react-x/no-default-props": "error",
|
|
355
311
|
"react-x/no-duplicate-key": "error",
|
|
356
312
|
"react-x/no-forward-ref": "error",
|
|
357
313
|
"react-x/no-implicit-key": "error",
|
|
@@ -359,26 +315,21 @@ const rules$1 = {
|
|
|
359
315
|
"react-x/no-misused-capture-owner-stack": "error",
|
|
360
316
|
"react-x/no-nested-component-definitions": "error",
|
|
361
317
|
"react-x/no-nested-lazy-component-declarations": "error",
|
|
362
|
-
"react-x/no-prop-types": "error",
|
|
363
318
|
"react-x/no-unnecessary-use-callback": "error",
|
|
364
319
|
"react-x/no-unnecessary-use-memo": "error",
|
|
365
320
|
"react-x/no-unstable-context-value": "error",
|
|
366
321
|
"react-x/no-unstable-default-props": "error",
|
|
367
322
|
"react-x/no-use-context": "error",
|
|
368
323
|
"react-x/prefer-destructuring-assignment": "error",
|
|
369
|
-
"react-x/
|
|
324
|
+
"react-x/purity": "error",
|
|
325
|
+
"react-x/refs": "error",
|
|
326
|
+
"react-x/set-state-in-effect": "error",
|
|
327
|
+
"react-x/set-state-in-render": "error",
|
|
328
|
+
"react-x/unsupported-syntax": "error",
|
|
329
|
+
"react-x/use-memo": "error",
|
|
330
|
+
"react-x/use-state": "error"
|
|
370
331
|
};
|
|
371
|
-
|
|
372
332
|
//#endregion
|
|
373
|
-
|
|
374
|
-
const rules = {
|
|
375
|
-
"react/function-component-definition": ["error", {
|
|
376
|
-
namedComponents: ["arrow-function", "function-declaration"],
|
|
377
|
-
unnamedComponents: "arrow-function"
|
|
378
|
-
}],
|
|
379
|
-
"react/no-adjacent-inline-elements": "error"
|
|
380
|
-
};
|
|
333
|
+
export { rules$4 as a, rules$3 as i, rules$1 as n, rules$5 as o, rules$2 as r, rules as t };
|
|
381
334
|
|
|
382
|
-
//#
|
|
383
|
-
export { transformRules as a, rules$6 as c, rules$3 as i, rules$7 as l, rules$1 as n, rules$4 as o, rules$2 as r, rules$5 as s, rules as t, rules$8 as u };
|
|
384
|
-
//# sourceMappingURL=rules-react-P9sQTBnm.mjs.map
|
|
335
|
+
//# sourceMappingURL=rules-react-CX3lvpmg.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules-react-CX3lvpmg.mjs","names":["rules","rules","rules","rules","rules"],"sources":["../src/config-base/rules-core.ts","../src/config-base/rules-perfectionist.ts","../src/config-base/rules-stylistic.ts","../src/config-config-files/rules-perfectionist.ts","../src/config-react/rules-perfectionist.ts","../src/config-react/rules-react.ts"],"sourcesContent":["import type { LinterConfigRules } from '../types/eslint.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'camelcase': ['error', { properties: 'always' }],\n\t'func-name-matching': [\n\t\t'error',\n\t\t'never',\n\t\t{ considerPropertyDescriptor: true },\n\t],\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/eslint.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'perfectionist/sort-array-includes': ['error', { type: 'natural' }],\n\t'perfectionist/sort-classes': [\n\t\t'error',\n\t\t{\n\t\t\tgroups: ['property', 'constructor'],\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n\t'perfectionist/sort-exports': ['error', { type: 'natural' }],\n\t'perfectionist/sort-imports': [\n\t\t'error',\n\t\t{\n\t\t\tcustomGroups: [\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'mock-side-effect',\n\t\t\t\t\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\tselector: 'side-effect',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'mock',\n\t\t\t\t\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\tselector: 'import',\n\t\t\t\t},\n\t\t\t],\n\t\t\tgroups: [\n\t\t\t\t'mock-side-effect',\n\t\t\t\t'mock',\n\t\t\t\t['type-builtin', 'type-external'],\n\t\t\t\t'type-internal',\n\t\t\t\t['type-parent', 'type-sibling', 'type-index'],\n\t\t\t\t['value-builtin', 'value-external'],\n\t\t\t\t'value-internal',\n\t\t\t\t['value-parent', 'value-sibling', 'value-index'],\n\t\t\t\t'unknown',\n\t\t\t\t'style',\n\t\t\t\t'side-effect',\n\t\t\t\t'side-effect-style',\n\t\t\t],\n\t\t\tinternalPattern: ['^(#|@/).*'],\n\t\t\tnewlinesBetween: 0,\n\t\t\tsortSideEffects: true,\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n\t'perfectionist/sort-interfaces': [\n\t\t'error',\n\t\t{\n\t\t\tgroups: ['index-signature', 'unknown', 'method'],\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n\t'perfectionist/sort-intersection-types': ['error', { type: 'natural' }],\n\t'perfectionist/sort-named-exports': ['error', { type: 'natural' }],\n\t'perfectionist/sort-named-imports': ['error', { type: 'natural' }],\n\t'perfectionist/sort-object-types': [\n\t\t'error',\n\t\t{\n\t\t\tgroups: ['index-signature', 'unknown', 'method'],\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n\t'perfectionist/sort-objects': [\n\t\t'error',\n\t\t{\n\t\t\ttype: 'natural',\n\t\t\tuseConfigurationIf: {\n\t\t\t\tobjectType: 'destructured',\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'unsorted',\n\t\t\tuseConfigurationIf: {\n\t\t\t\tobjectType: 'non-destructured',\n\t\t\t},\n\t\t},\n\t],\n\t'perfectionist/sort-union-types': [\n\t\t'error',\n\t\t{\n\t\t\tcustomGroups: [\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'false',\n\t\t\t\t\telementNamePattern: '^false$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'never',\n\t\t\t\t\telementNamePattern: '^never$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'react',\n\t\t\t\t\telementNamePattern: '^react.+',\n\t\t\t\t},\n\t\t\t],\n\t\t\tgroups: ['react', 'unknown', 'tuple', 'false', 'nullish', 'never'],\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/eslint.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'@stylistic/lines-between-class-members': [\n\t\t'error',\n\t\t'always',\n\t\t{ exceptAfterSingleLine: true },\n\t],\n\t'@stylistic/padding-line-between-statements': [\n\t\t'error',\n\t\t{\n\t\t\tblankLine: 'always',\n\t\t\tnext: '*',\n\t\t\tprev: [\n\t\t\t\t'block-like',\n\t\t\t\t'directive',\n\t\t\t\t'export',\n\t\t\t\t'function',\n\t\t\t\t'import',\n\t\t\t\t'interface',\n\t\t\t\t'type',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tblankLine: 'always',\n\t\t\tnext: [\n\t\t\t\t'block-like',\n\t\t\t\t'directive',\n\t\t\t\t'export',\n\t\t\t\t'function',\n\t\t\t\t'import',\n\t\t\t\t'interface',\n\t\t\t\t'type',\n\t\t\t],\n\t\t\tprev: '*',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'any',\n\t\t\tnext: ['break', 'continue', 'return', 'throw'],\n\t\t\tprev: 'block-like',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'always',\n\t\t\tnext: '*',\n\t\t\tprev: ['case', 'default'],\n\t\t},\n\t\t{\n\t\t\tblankLine: 'never',\n\t\t\tnext: 'directive',\n\t\t\tprev: 'directive',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'any',\n\t\t\tnext: 'export',\n\t\t\tprev: 'export',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'never',\n\t\t\tnext: ['function', 'function-overload'],\n\t\t\tprev: 'function-overload',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'never',\n\t\t\tnext: 'import',\n\t\t\tprev: 'import',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'any',\n\t\t\tnext: 'interface',\n\t\t\tprev: 'interface',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'any',\n\t\t\tnext: 'type',\n\t\t\tprev: 'type',\n\t\t},\n\t],\n\t'@stylistic/spaced-comment': [\n\t\t'error',\n\t\t'always',\n\t\t{\n\t\t\tblock: {\n\t\t\t\tbalanced: true,\n\t\t\t},\n\t\t\tline: {\n\t\t\t\tmarkers: ['/'],\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/eslint.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'perfectionist/sort-objects': [\n\t\t'error',\n\t\t{\n\t\t\tcustomGroups: [\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'extends',\n\t\t\t\t\telementNamePattern: '^extends$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'files',\n\t\t\t\t\telementNamePattern: '^files$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'ignores',\n\t\t\t\t\telementNamePattern: '^(ignores|ignorePatterns)$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'name',\n\t\t\t\t\telementNamePattern: '^(name|groupName)$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'overrides',\n\t\t\t\t\telementNamePattern: '^overrides$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'parser',\n\t\t\t\t\telementNamePattern: '^parser$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'plugins',\n\t\t\t\t\telementNamePattern: '^plugins$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'rules',\n\t\t\t\t\telementNamePattern: '^rules$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'test',\n\t\t\t\t\telementNamePattern: '^(test|tests)$',\n\t\t\t\t},\n\t\t\t],\n\t\t\tgroups: [\n\t\t\t\t'name',\n\t\t\t\t'files',\n\t\t\t\t'extends',\n\t\t\t\t'ignores',\n\t\t\t\t'plugins',\n\t\t\t\t'parser',\n\t\t\t\t'test',\n\t\t\t\t'unknown',\n\t\t\t\t'rules',\n\t\t\t\t'overrides',\n\t\t\t],\n\t\t\tnewlinesBetween: 0,\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/eslint.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'perfectionist/sort-jsx-props': [\n\t\t'error',\n\t\t{\n\t\t\tcustomGroups: [\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'as',\n\t\t\t\t\telementNamePattern: '^as$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'callback',\n\t\t\t\t\telementNamePattern: '^on.+',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'children',\n\t\t\t\t\telementNamePattern: '^children$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'key',\n\t\t\t\t\telementNamePattern: '^key$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'ref',\n\t\t\t\t\telementNamePattern: '^ref$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'unsafe',\n\t\t\t\t\telementNamePattern: '^dangerously.+',\n\t\t\t\t},\n\t\t\t],\n\t\t\tgroups: [\n\t\t\t\t'key',\n\t\t\t\t'ref',\n\t\t\t\t'as',\n\t\t\t\t'unknown',\n\t\t\t\t'shorthand-prop',\n\t\t\t\t'callback',\n\t\t\t\t'children',\n\t\t\t\t'unsafe',\n\t\t\t],\n\t\t\ttype: 'unsorted',\n\t\t},\n\t],\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/eslint.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'react-x/component-hook-factories': 'error',\n\t'react-x/error-boundaries': 'error',\n\t'react-x/immutability': 'error',\n\t'react-x/jsx-dollar': 'error',\n\t'react-x/jsx-key-before-spread': 'error',\n\t'react-x/no-access-state-in-setstate': 'error',\n\t'react-x/no-class-component': 'error',\n\t'react-x/no-context-provider': 'error',\n\t'react-x/no-duplicate-key': 'error',\n\t'react-x/no-forward-ref': 'error',\n\t'react-x/no-implicit-key': 'error',\n\t'react-x/no-leaked-conditional-rendering': 'error',\n\t'react-x/no-misused-capture-owner-stack': 'error',\n\t'react-x/no-nested-component-definitions': 'error',\n\t'react-x/no-nested-lazy-component-declarations': 'error',\n\t'react-x/no-unnecessary-use-callback': 'error',\n\t'react-x/no-unnecessary-use-memo': 'error',\n\t'react-x/no-unstable-context-value': 'error',\n\t'react-x/no-unstable-default-props': 'error',\n\t'react-x/no-use-context': 'error',\n\t'react-x/prefer-destructuring-assignment': 'error',\n\t'react-x/purity': 'error',\n\t'react-x/refs': 'error',\n\t'react-x/set-state-in-effect': 'error',\n\t'react-x/set-state-in-render': 'error',\n\t'react-x/unsupported-syntax': 'error',\n\t'react-x/use-memo': 'error',\n\t'react-x/use-state': 'error',\n};\n\nexport default rules;\n"],"mappings":";AAEA,MAAMA,UAA2B;CAChC,aAAa,CAAC,SAAS,EAAE,YAAY,UAAU,CAAC;CAChD,sBAAsB;EACrB;EACA;EACA,EAAE,4BAA4B,MAAM;EACpC;CACD;;;ACPD,MAAMC,UAA2B;CAChC,qCAAqC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CACnE,8BAA8B,CAC7B,SACA;EACC,QAAQ,CAAC,YAAY,cAAc;EACnC,MAAM;EACN,CACD;CACD,8BAA8B,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CAC5D,8BAA8B,CAC7B,SACA;EACC,cAAc,CACb;GACC,WAAW;GACX,oBAAoB;GACpB,UAAU;GACV,EACD;GACC,WAAW;GACX,oBAAoB;GACpB,UAAU;GACV,CACD;EACD,QAAQ;GACP;GACA;GACA,CAAC,gBAAgB,gBAAgB;GACjC;GACA;IAAC;IAAe;IAAgB;IAAa;GAC7C,CAAC,iBAAiB,iBAAiB;GACnC;GACA;IAAC;IAAgB;IAAiB;IAAc;GAChD;GACA;GACA;GACA;GACA;EACD,iBAAiB,CAAC,YAAY;EAC9B,iBAAiB;EACjB,iBAAiB;EACjB,MAAM;EACN,CACD;CACD,iCAAiC,CAChC,SACA;EACC,QAAQ;GAAC;GAAmB;GAAW;GAAS;EAChD,MAAM;EACN,CACD;CACD,yCAAyC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CACvE,oCAAoC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CAClE,oCAAoC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CAClE,mCAAmC,CAClC,SACA;EACC,QAAQ;GAAC;GAAmB;GAAW;GAAS;EAChD,MAAM;EACN,CACD;CACD,8BAA8B;EAC7B;EACA;GACC,MAAM;GACN,oBAAoB,EACnB,YAAY,gBACZ;GACD;EACD;GACC,MAAM;GACN,oBAAoB,EACnB,YAAY,oBACZ;GACD;EACD;CACD,kCAAkC,CACjC,SACA;EACC,cAAc;GACb;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;EACD,QAAQ;GAAC;GAAS;GAAW;GAAS;GAAS;GAAW;GAAQ;EAClE,MAAM;EACN,CACD;CACD;;;AClGD,MAAMC,UAA2B;CAChC,0CAA0C;EACzC;EACA;EACA,EAAE,uBAAuB,MAAM;EAC/B;CACD,8CAA8C;EAC7C;EACA;GACC,WAAW;GACX,MAAM;GACN,MAAM;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD;EACD;GACC,WAAW;GACX,MAAM;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;IAAC;IAAS;IAAY;IAAU;IAAQ;GAC9C,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM,CAAC,QAAQ,UAAU;GACzB;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM,CAAC,YAAY,oBAAoB;GACvC,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;CACD,6BAA6B;EAC5B;EACA;EACA;GACC,OAAO,EACN,UAAU,MACV;GACD,MAAM,EACL,SAAS,CAAC,IAAI,EACd;GACD;EACD;CACD;;;ACvFD,MAAMC,UAA2B,EAChC,8BAA8B,CAC7B,SACA;CACC,cAAc;EACb;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;CACD,QAAQ;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,iBAAiB;CACjB,MAAM;CACN,CACD,EACD;;;AC1DD,MAAMC,UAA2B,EAChC,gCAAgC,CAC/B,SACA;CACC,cAAc;EACb;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;CACD,QAAQ;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM;CACN,CACD,EACD;;;AC3CD,MAAM,QAA2B;CAChC,oCAAoC;CACpC,4BAA4B;CAC5B,wBAAwB;CACxB,sBAAsB;CACtB,iCAAiC;CACjC,uCAAuC;CACvC,8BAA8B;CAC9B,+BAA+B;CAC/B,4BAA4B;CAC5B,0BAA0B;CAC1B,2BAA2B;CAC3B,2CAA2C;CAC3C,0CAA0C;CAC1C,2CAA2C;CAC3C,iDAAiD;CACjD,uCAAuC;CACvC,mCAAmC;CACnC,qCAAqC;CACrC,qCAAqC;CACrC,0BAA0B;CAC1B,2CAA2C;CAC3C,kBAAkB;CAClB,gBAAgB;CAChB,+BAA+B;CAC/B,+BAA+B;CAC/B,8BAA8B;CAC9B,oBAAoB;CACpB,qBAAqB;CACrB"}
|
package/dist/utilities.d.mts
CHANGED
|
@@ -1,50 +1,45 @@
|
|
|
1
|
-
import { n as LinterConfigRules
|
|
1
|
+
import { n as LinterConfigRules } from "./eslint-B2bS8oCs.mjs";
|
|
2
|
+
import { defineConfig } from "@standard-config/oxlint";
|
|
2
3
|
import { Linter } from "eslint";
|
|
3
4
|
import { ExternalPluginEntry, OxlintConfig, OxlintOverride } from "oxlint";
|
|
4
5
|
|
|
5
|
-
//#region src/
|
|
6
|
+
//#region src/config-base/oxlint.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* Standard Config’s ESLint config translated for Oxlint.
|
|
9
|
+
*
|
|
10
|
+
* Primary config entry. Does not include React-related rules.
|
|
11
|
+
*/
|
|
12
|
+
declare const config: OxlintConfig;
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/types/oxlint.d.ts
|
|
6
15
|
type OxlintOverrideEntry = Pick<OxlintOverride, 'rules'>;
|
|
7
|
-
type
|
|
8
|
-
/**
|
|
9
|
-
* Enable stylistic rules.
|
|
10
|
-
* @default true
|
|
11
|
-
*/
|
|
12
|
-
stylistic?: boolean;
|
|
13
|
-
};
|
|
14
|
-
type OxlintConfigEntries = {
|
|
15
|
-
/**
|
|
16
|
-
* Primary config defining base rules and JS plugins shared across all
|
|
17
|
-
* configs. Meant to be merged with the root config.
|
|
18
|
-
*/
|
|
19
|
-
configBase: OxlintConfig;
|
|
20
|
-
/**
|
|
21
|
-
* Optional override entry containing stylistic rules that target config
|
|
22
|
-
* files. Intended for explicit overrides, as `configBase` already includes
|
|
23
|
-
* these rules when `stylistic` is enabled.
|
|
24
|
-
*/
|
|
25
|
-
configConfigFiles: OxlintOverrideEntry;
|
|
26
|
-
/**
|
|
27
|
-
* Optional override entry containing rules that target `*.tsx` files.
|
|
28
|
-
* Intended for explicit overrides, as `configBase` already includes these
|
|
29
|
-
* rules when `react` is enabled.
|
|
30
|
-
*/
|
|
31
|
-
configReact: OxlintOverrideEntry;
|
|
32
|
-
};
|
|
16
|
+
type OxlintPluginEntry = Exclude<ExternalPluginEntry, string>;
|
|
33
17
|
//#endregion
|
|
34
|
-
//#region src/
|
|
18
|
+
//#region src/config-config-files/oxlint.d.ts
|
|
35
19
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
20
|
+
* Standard Config’s ESLint config translated for Oxlint.
|
|
21
|
+
*
|
|
22
|
+
* Optional config entry containing rules that target config files. Intended for
|
|
23
|
+
* explicit overrides.
|
|
38
24
|
*/
|
|
39
|
-
declare
|
|
40
|
-
react,
|
|
41
|
-
stylistic
|
|
42
|
-
}?: OxlintConfigEntriesOptions): OxlintConfigEntries;
|
|
25
|
+
declare const config$2: OxlintOverrideEntry;
|
|
43
26
|
//#endregion
|
|
44
|
-
//#region src/
|
|
45
|
-
|
|
27
|
+
//#region src/config-react/oxlint.d.ts
|
|
28
|
+
/**
|
|
29
|
+
* Standard Config’s ESLint config translated for Oxlint.
|
|
30
|
+
*
|
|
31
|
+
* Primary config entry. Includes React-related rules.
|
|
32
|
+
*/
|
|
33
|
+
declare const config$1: OxlintConfig;
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region src/utilities/define-oxlint-config/index.d.ts
|
|
36
|
+
/**
|
|
37
|
+
* Wrapper around `defineConfig` from `@standard-config/oxlint` that combines
|
|
38
|
+
* Standard Config’s Oxlint and ESLint configs, with optional overrides.
|
|
39
|
+
*/
|
|
40
|
+
declare function defineOxlintConfig(...configs: Parameters<typeof defineConfig>): OxlintConfig;
|
|
46
41
|
//#endregion
|
|
47
|
-
//#region src/transform-plugin/index.d.ts
|
|
42
|
+
//#region src/utilities/transform-plugin/index.d.ts
|
|
48
43
|
/**
|
|
49
44
|
* Resolve an external plugin specifier.
|
|
50
45
|
*
|
|
@@ -52,7 +47,7 @@ type OxlintPluginEntry = Exclude<ExternalPluginEntry, string>;
|
|
|
52
47
|
*/
|
|
53
48
|
declare function transformPlugin(name: string, specifier: string): OxlintPluginEntry;
|
|
54
49
|
//#endregion
|
|
55
|
-
//#region src/transform-rules/index.d.ts
|
|
50
|
+
//#region src/utilities/transform-rules/index.d.ts
|
|
56
51
|
/**
|
|
57
52
|
* Modify a set of ESLint rules.
|
|
58
53
|
*
|
|
@@ -64,5 +59,5 @@ declare function transformRules(rules: Linter.Config['rules'], options: {
|
|
|
64
59
|
severity?: Linter.StringSeverity;
|
|
65
60
|
}): LinterConfigRules;
|
|
66
61
|
//#endregion
|
|
67
|
-
export {
|
|
62
|
+
export { defineOxlintConfig, config as oxlintConfigBase, config$1 as oxlintConfigBaseReact, config$2 as oxlintConfigConfigFiles, transformPlugin, transformRules };
|
|
68
63
|
//# sourceMappingURL=utilities.d.mts.map
|
package/dist/utilities.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.mts","names":["
|
|
1
|
+
{"version":3,"file":"utilities.d.mts","names":["ExternalPluginEntry","OxlintConfig","OxlintOverride","OxlintOverrideEntry","Pick","OxlintPluginEntry","Exclude"],"sources":["../src/config-base/oxlint.ts","../src/types/oxlint.d.ts","../src/config-config-files/oxlint.ts","../src/config-react/oxlint.ts","../src/utilities/define-oxlint-config/index.ts","../src/utilities/transform-plugin/index.ts","../src/utilities/transform-rules/index.ts"],"mappings":";;;;;;;;;;;cAaM,MAAA,EAAQ,YAAA;;;KCXFG,mBAAAA,GAAsBC,IAAAA,CAAKF,cAAAA;AAAAA,KAE3BG,iBAAAA,GAAoBC,OAAAA,CAAQN,mBAAAA;;;;;;;;ADJG;cESrC,QAAA,EAAQ,mBAAA;;;;;;;;cCIR,QAAA,EAAQ,YAAA;;;;;;;iBCJU,kBAAA,CAAA,GACpB,OAAA,EAAS,UAAA,QAAkB,YAAA,IAC5B,YAAA;;;;;;;;iBCHqB,eAAA,CACvB,IAAA,UACA,SAAA,WACE,iBAAA;;;;;;;ALXwC;iBMQnB,cAAA,CACvB,KAAA,EAAO,MAAA,CAAO,MAAA,WACd,OAAA;EACC,IAAA,GAAO,aAAA;EACP,MAAA;EACA,QAAA,GAAW,MAAA,CAAO,cAAA;AAAA,IAEjB,iBAAA"}
|
package/dist/utilities.mjs
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as rules$2, i as rules$3, n as rules$4, o as rules$1, r as rules, t as rules$5 } from "./rules-react-CX3lvpmg.mjs";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
|
|
4
|
-
//#region src/
|
|
3
|
+
import { defineConfig } from "@standard-config/oxlint";
|
|
4
|
+
//#region src/config-config-files/oxlint.ts
|
|
5
|
+
/**
|
|
6
|
+
* Standard Config’s ESLint config translated for Oxlint.
|
|
7
|
+
*
|
|
8
|
+
* Optional config entry containing rules that target config files. Intended for
|
|
9
|
+
* explicit overrides.
|
|
10
|
+
*/
|
|
11
|
+
const config$2 = { rules: { ...rules } };
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/utilities/transform-plugin/index.ts
|
|
5
14
|
/**
|
|
6
15
|
* Resolve an external plugin specifier.
|
|
7
16
|
*
|
|
@@ -16,74 +25,96 @@ function transformPlugin(name, specifier) {
|
|
|
16
25
|
specifier
|
|
17
26
|
};
|
|
18
27
|
}
|
|
19
|
-
|
|
20
28
|
//#endregion
|
|
21
|
-
//#region src/
|
|
22
|
-
const PREFIX_ESLINT = "eslint";
|
|
23
|
-
const PREFIX_PERFECTIONIST = "perfectionist";
|
|
24
|
-
const PREFIX_REACT = "react-js";
|
|
25
|
-
const PREFIX_REACT_HOOKS = "react-hooks-js";
|
|
26
|
-
const PREFIX_REACT_NAMING_CONVENTION = "react-naming-convention";
|
|
27
|
-
const PREFIX_REACT_X = "react-x";
|
|
28
|
-
const PREFIX_STYLISTIC = "stylistic";
|
|
29
|
+
//#region src/utilities/transform-rules/index.ts
|
|
29
30
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
31
|
+
* Modify a set of ESLint rules.
|
|
32
|
+
*
|
|
33
|
+
* @deprecated Not covered by semver.
|
|
32
34
|
*/
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
};
|
|
47
|
-
configConfigFiles.rules = { ...transformRules(rules$3, { prefix: PREFIX_PERFECTIONIST }) };
|
|
48
|
-
configBase.overrides = [{
|
|
49
|
-
files: ["**/*.config.{ts,cts,mts}"],
|
|
50
|
-
...configConfigFiles
|
|
51
|
-
}];
|
|
35
|
+
function transformRules(rules, options) {
|
|
36
|
+
if (!rules) return {};
|
|
37
|
+
const { omit, prefix, severity } = options;
|
|
38
|
+
const omittedRules = new Set(omit);
|
|
39
|
+
const transformedRules = {};
|
|
40
|
+
for (const [ruleName, ruleConfig] of Object.entries(rules)) {
|
|
41
|
+
if (omittedRules.has(ruleName)) continue;
|
|
42
|
+
if (!Array.isArray(ruleConfig)) {
|
|
43
|
+
transformedRules[ruleName] = severity ?? ruleConfig ?? "off";
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const [ruleSeverity, ...ruleOptions] = ruleConfig;
|
|
47
|
+
transformedRules[ruleName] = [severity ?? ruleSeverity, ...ruleOptions];
|
|
52
48
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
transformPlugin(PREFIX_REACT_X, "eslint-plugin-react-x")
|
|
61
|
-
];
|
|
62
|
-
configReact.rules = {
|
|
63
|
-
...transformRules(rules$4, { prefix: PREFIX_REACT }),
|
|
64
|
-
...transformRules(rules$5, { prefix: PREFIX_REACT_HOOKS }),
|
|
65
|
-
...transformRules(rules$6, { prefix: PREFIX_REACT_NAMING_CONVENTION }),
|
|
66
|
-
...transformRules(rules$7, {
|
|
67
|
-
prefix: PREFIX_REACT_X,
|
|
68
|
-
omit: ["react-x/no-implicit-key", "react-x/no-leaked-conditional-rendering"]
|
|
69
|
-
})
|
|
70
|
-
};
|
|
71
|
-
if (stylistic) configReact.rules = {
|
|
72
|
-
...configReact.rules,
|
|
73
|
-
...transformRules(rules$8, { prefix: PREFIX_PERFECTIONIST })
|
|
74
|
-
};
|
|
75
|
-
configBase.overrides = [...configBase.overrides ?? [], {
|
|
76
|
-
files: ["**/*.tsx"],
|
|
77
|
-
...configReact
|
|
78
|
-
}];
|
|
49
|
+
return typeof prefix === "string" ? prefixRules(transformedRules, prefix) : transformedRules;
|
|
50
|
+
}
|
|
51
|
+
function prefixRules(rules, prefix) {
|
|
52
|
+
const prefixedRules = {};
|
|
53
|
+
for (const [ruleName, ruleConfig] of Object.entries(rules)) {
|
|
54
|
+
const name = ruleName.replace(/^.*?\//, "");
|
|
55
|
+
prefixedRules[`${prefix}/${name}`] = ruleConfig;
|
|
79
56
|
}
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
57
|
+
return prefixedRules;
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region src/config-base/oxlint.ts
|
|
61
|
+
/**
|
|
62
|
+
* Standard Config’s ESLint config translated for Oxlint.
|
|
63
|
+
*
|
|
64
|
+
* Primary config entry. Does not include React-related rules.
|
|
65
|
+
*/
|
|
66
|
+
const config = {
|
|
67
|
+
jsPlugins: [transformPlugin("stylistic", "@stylistic/eslint-plugin"), transformPlugin("perfectionist", "eslint-plugin-perfectionist")],
|
|
68
|
+
settings: { react: { version: "19.2.4" } },
|
|
69
|
+
rules: {
|
|
70
|
+
...transformRules(rules$1, { prefix: "eslint" }),
|
|
71
|
+
...transformRules(rules$2, { omit: ["perfectionist/sort-classes"] }),
|
|
72
|
+
...transformRules(rules$3, { prefix: "stylistic" })
|
|
73
|
+
},
|
|
74
|
+
overrides: [{
|
|
75
|
+
files: ["**/*.config.{ts,cts,mts}"],
|
|
76
|
+
...config$2
|
|
77
|
+
}]
|
|
78
|
+
};
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/clone/index.ts
|
|
81
|
+
function clone(value) {
|
|
82
|
+
try {
|
|
83
|
+
value = structuredClone(value);
|
|
84
|
+
} catch {}
|
|
85
|
+
return value;
|
|
85
86
|
}
|
|
86
|
-
|
|
87
87
|
//#endregion
|
|
88
|
-
|
|
88
|
+
//#region src/config-react/oxlint.ts
|
|
89
|
+
/**
|
|
90
|
+
* Standard Config’s ESLint config translated for Oxlint.
|
|
91
|
+
*
|
|
92
|
+
* Primary config entry. Includes React-related rules.
|
|
93
|
+
*/
|
|
94
|
+
const config$1 = {
|
|
95
|
+
...clone(config),
|
|
96
|
+
settings: { react: { version: "19.2.4" } }
|
|
97
|
+
};
|
|
98
|
+
config$1.jsPlugins.push(transformPlugin("react-x", "eslint-plugin-react-x"));
|
|
99
|
+
config$1.overrides.push({
|
|
100
|
+
files: ["**/*.tsx"],
|
|
101
|
+
rules: {
|
|
102
|
+
...rules$4,
|
|
103
|
+
...transformRules(rules$5, { omit: ["react-x/no-implicit-key", "react-x/no-leaked-conditional-rendering"] })
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
//#endregion
|
|
107
|
+
//#region src/utilities/define-oxlint-config/index.ts
|
|
108
|
+
/**
|
|
109
|
+
* Wrapper around `defineConfig` from `@standard-config/oxlint` that combines
|
|
110
|
+
* Standard Config’s Oxlint and ESLint configs, with optional overrides.
|
|
111
|
+
*/
|
|
112
|
+
function defineOxlintConfig(...configs) {
|
|
113
|
+
let includeReactConfig = false;
|
|
114
|
+
for (const { react } of configs) if (react !== void 0) includeReactConfig = react;
|
|
115
|
+
return defineConfig(includeReactConfig ? config$1 : config, ...configs);
|
|
116
|
+
}
|
|
117
|
+
//#endregion
|
|
118
|
+
export { defineOxlintConfig, config as oxlintConfigBase, config$1 as oxlintConfigBaseReact, config$2 as oxlintConfigConfigFiles, transformPlugin, transformRules };
|
|
119
|
+
|
|
89
120
|
//# sourceMappingURL=utilities.mjs.map
|
package/dist/utilities.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.mjs","names":["
|
|
1
|
+
{"version":3,"file":"utilities.mjs","names":["config","rulesPerfectionist","rulesCore","rulesPerfectionist","rulesStylistic","oxlintConfigConfigFiles","config","oxlintConfigBase","rulesPerfectionist","rulesReact","standardDefineConfig","oxlintConfigBaseReact","oxlintConfigBase"],"sources":["../src/config-config-files/oxlint.ts","../src/utilities/transform-plugin/index.ts","../src/utilities/transform-rules/index.ts","../src/config-base/oxlint.ts","../src/clone/index.ts","../src/config-react/oxlint.ts","../src/utilities/define-oxlint-config/index.ts"],"sourcesContent":["import type { OxlintOverrideEntry } from '../types/oxlint.d.ts';\nimport rulesPerfectionist from './rules-perfectionist.ts';\n\n/**\n * Standard Config’s ESLint config translated for Oxlint.\n *\n * Optional config entry containing rules that target config files. Intended for\n * explicit overrides.\n */\nconst config: OxlintOverrideEntry = {\n\trules: {\n\t\t...rulesPerfectionist,\n\t},\n};\n\nexport default config;\n","import type { OxlintPluginEntry } from '../../types/oxlint.d.ts';\nimport { fileURLToPath } from 'node:url';\n\n/**\n * Resolve an external plugin specifier.\n *\n * @deprecated Not covered by semver.\n */\nexport default function transformPlugin(\n\tname: string,\n\tspecifier: string\n): OxlintPluginEntry {\n\ttry {\n\t\t/* oxlint-disable-next-line eslint/no-param-reassign */\n\t\tspecifier = fileURLToPath(import.meta.resolve(specifier));\n\t} catch {}\n\n\treturn { name, specifier };\n}\n","import type { Linter } from 'eslint';\nimport type { LinterConfigRules } from '../../types/eslint.d.ts';\n\n/**\n * Modify a set of ESLint rules.\n *\n * @deprecated Not covered by semver.\n */\nexport default function transformRules(\n\trules: Linter.Config['rules'],\n\toptions: {\n\t\tomit?: ReadonlyArray<string>;\n\t\tprefix?: string;\n\t\tseverity?: Linter.StringSeverity;\n\t}\n): LinterConfigRules {\n\tif (!rules) {\n\t\treturn {};\n\t}\n\n\tconst { omit, prefix, severity } = options;\n\tconst omittedRules = new Set(omit);\n\n\tconst transformedRules: LinterConfigRules = {};\n\n\tfor (const [ruleName, ruleConfig] of Object.entries(rules)) {\n\t\tif (omittedRules.has(ruleName)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!Array.isArray(ruleConfig)) {\n\t\t\ttransformedRules[ruleName] = severity ?? ruleConfig ?? 'off';\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [ruleSeverity, ...ruleOptions] = ruleConfig;\n\n\t\ttransformedRules[ruleName] = [severity ?? ruleSeverity, ...ruleOptions];\n\t}\n\n\treturn typeof prefix === 'string'\n\t\t? prefixRules(transformedRules, prefix)\n\t\t: transformedRules;\n}\n\nfunction prefixRules(rules: LinterConfigRules, prefix: string) {\n\tconst prefixedRules: LinterConfigRules = {};\n\n\tfor (const [ruleName, ruleConfig] of Object.entries(rules)) {\n\t\tconst name = ruleName.replace(/^.*?\\//, '');\n\n\t\tprefixedRules[`${prefix}/${name}`] = ruleConfig;\n\t}\n\n\treturn prefixedRules;\n}\n","import type { OxlintConfig } from 'oxlint';\nimport oxlintConfigConfigFiles from '../config-config-files/oxlint.ts';\nimport transformPlugin from '../utilities/transform-plugin/index.ts';\nimport transformRules from '../utilities/transform-rules/index.ts';\nimport rulesCore from './rules-core.ts';\nimport rulesPerfectionist from './rules-perfectionist.ts';\nimport rulesStylistic from './rules-stylistic.ts';\n\n/**\n * Standard Config’s ESLint config translated for Oxlint.\n *\n * Primary config entry. Does not include React-related rules.\n */\nconst config: OxlintConfig = {\n\tjsPlugins: [\n\t\ttransformPlugin('stylistic', '@stylistic/eslint-plugin'),\n\t\ttransformPlugin('perfectionist', 'eslint-plugin-perfectionist'),\n\t],\n\tsettings: {\n\t\treact: {\n\t\t\t// Oxlint doesn’t support `detect`\n\t\t\tversion: '19.2.4',\n\t\t},\n\t},\n\trules: {\n\t\t...transformRules(rulesCore, {\n\t\t\tprefix: 'eslint',\n\t\t}),\n\t\t...transformRules(rulesPerfectionist, {\n\t\t\tomit: [\n\t\t\t\t// Likely to crash Oxlint\n\t\t\t\t'perfectionist/sort-classes',\n\t\t\t],\n\t\t}),\n\t\t...transformRules(rulesStylistic, {\n\t\t\tprefix: 'stylistic',\n\t\t}),\n\t},\n\toverrides: [\n\t\t{\n\t\t\tfiles: ['**/*.config.{ts,cts,mts}'],\n\t\t\t...oxlintConfigConfigFiles,\n\t\t},\n\t],\n};\n\nexport default config;\n","export default function clone<T>(value: T): T {\n\ttry {\n\t\t/* oxlint-disable-next-line eslint/no-param-reassign */\n\t\tvalue = structuredClone(value);\n\t} catch {}\n\n\treturn value;\n}\n","import type { OxlintConfig } from 'oxlint';\nimport clone from '../clone/index.ts';\nimport oxlintConfigBase from '../config-base/oxlint.ts';\nimport transformPlugin from '../utilities/transform-plugin/index.ts';\nimport transformRules from '../utilities/transform-rules/index.ts';\nimport rulesPerfectionist from './rules-perfectionist.ts';\nimport rulesReact from './rules-react.ts';\n\n/**\n * Standard Config’s ESLint config translated for Oxlint.\n *\n * Primary config entry. Includes React-related rules.\n */\nconst config: OxlintConfig = {\n\t...clone(oxlintConfigBase),\n\n\tsettings: {\n\t\treact: {\n\t\t\t// Oxlint doesn’t support `detect`\n\t\t\tversion: '19.2.4',\n\t\t},\n\t},\n};\n\nconfig.jsPlugins!.push(transformPlugin('react-x', 'eslint-plugin-react-x'));\n\nconfig.overrides!.push({\n\tfiles: ['**/*.tsx'],\n\trules: {\n\t\t...rulesPerfectionist,\n\t\t...transformRules(rulesReact, {\n\t\t\tomit: [\n\t\t\t\t// Oxlint doesn’t support type-aware rules\n\t\t\t\t'react-x/no-implicit-key',\n\t\t\t\t'react-x/no-leaked-conditional-rendering',\n\t\t\t],\n\t\t}),\n\t},\n});\n\nexport default config;\n","import type { OxlintConfig } from 'oxlint';\nimport { defineConfig as standardDefineConfig } from '@standard-config/oxlint';\nimport oxlintConfigBase from '../../config-base/oxlint.ts';\nimport oxlintConfigBaseReact from '../../config-react/oxlint.ts';\n\n/**\n * Wrapper around `defineConfig` from `@standard-config/oxlint` that combines\n * Standard Config’s Oxlint and ESLint configs, with optional overrides.\n */\nexport default function defineOxlintConfig(\n\t...configs: Parameters<typeof standardDefineConfig>\n): OxlintConfig {\n\tlet includeReactConfig = false;\n\n\tfor (const { react } of configs) {\n\t\tif (react !== undefined) {\n\t\t\tincludeReactConfig = react;\n\t\t}\n\t}\n\n\treturn standardDefineConfig(\n\t\tincludeReactConfig ? oxlintConfigBaseReact : oxlintConfigBase,\n\t\t...configs\n\t);\n}\n"],"mappings":";;;;;;;;;;AASA,MAAMA,WAA8B,EACnC,OAAO,EACN,GAAGC,OACH,EACD;;;;;;;;ACLD,SAAwB,gBACvB,MACA,WACoB;AACpB,KAAI;AAEH,cAAY,cAAc,OAAO,KAAK,QAAQ,UAAU,CAAC;SAClD;AAER,QAAO;EAAE;EAAM;EAAW;;;;;;;;;ACT3B,SAAwB,eACvB,OACA,SAKoB;AACpB,KAAI,CAAC,MACJ,QAAO,EAAE;CAGV,MAAM,EAAE,MAAM,QAAQ,aAAa;CACnC,MAAM,eAAe,IAAI,IAAI,KAAK;CAElC,MAAM,mBAAsC,EAAE;AAE9C,MAAK,MAAM,CAAC,UAAU,eAAe,OAAO,QAAQ,MAAM,EAAE;AAC3D,MAAI,aAAa,IAAI,SAAS,CAC7B;AAGD,MAAI,CAAC,MAAM,QAAQ,WAAW,EAAE;AAC/B,oBAAiB,YAAY,YAAY,cAAc;AACvD;;EAGD,MAAM,CAAC,cAAc,GAAG,eAAe;AAEvC,mBAAiB,YAAY,CAAC,YAAY,cAAc,GAAG,YAAY;;AAGxE,QAAO,OAAO,WAAW,WACtB,YAAY,kBAAkB,OAAO,GACrC;;AAGJ,SAAS,YAAY,OAA0B,QAAgB;CAC9D,MAAM,gBAAmC,EAAE;AAE3C,MAAK,MAAM,CAAC,UAAU,eAAe,OAAO,QAAQ,MAAM,EAAE;EAC3D,MAAM,OAAO,SAAS,QAAQ,UAAU,GAAG;AAE3C,gBAAc,GAAG,OAAO,GAAG,UAAU;;AAGtC,QAAO;;;;;;;;;ACzCR,MAAM,SAAuB;CAC5B,WAAW,CACV,gBAAgB,aAAa,2BAA2B,EACxD,gBAAgB,iBAAiB,8BAA8B,CAC/D;CACD,UAAU,EACT,OAAO,EAEN,SAAS,UACT,EACD;CACD,OAAO;EACN,GAAG,eAAeC,SAAW,EAC5B,QAAQ,UACR,CAAC;EACF,GAAG,eAAeC,SAAoB,EACrC,MAAM,CAEL,6BACA,EACD,CAAC;EACF,GAAG,eAAeC,SAAgB,EACjC,QAAQ,aACR,CAAC;EACF;CACD,WAAW,CACV;EACC,OAAO,CAAC,2BAA2B;EACnC,GAAGC;EACH,CACD;CACD;;;AC5CD,SAAwB,MAAS,OAAa;AAC7C,KAAI;AAEH,UAAQ,gBAAgB,MAAM;SACvB;AAER,QAAO;;;;;;;;;ACOR,MAAMC,WAAuB;CAC5B,GAAG,MAAMC,OAAiB;CAE1B,UAAU,EACT,OAAO,EAEN,SAAS,UACT,EACD;CACD;AAEDD,SAAO,UAAW,KAAK,gBAAgB,WAAW,wBAAwB,CAAC;AAE3EA,SAAO,UAAW,KAAK;CACtB,OAAO,CAAC,WAAW;CACnB,OAAO;EACN,GAAGE;EACH,GAAG,eAAeC,SAAY,EAC7B,MAAM,CAEL,2BACA,0CACA,EACD,CAAC;EACF;CACD,CAAC;;;;;;;AC7BF,SAAwB,mBACvB,GAAG,SACY;CACf,IAAI,qBAAqB;AAEzB,MAAK,MAAM,EAAE,WAAW,QACvB,KAAI,UAAU,KAAA,EACb,sBAAqB;AAIvB,QAAOC,aACN,qBAAqBC,WAAwBC,QAC7C,GAAG,QACH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@standard-config/eslint",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "TypeScript-first ESLint config designed to complement Oxlint",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -39,53 +39,56 @@
|
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
42
|
-
"node": ">=
|
|
42
|
+
"node": ">=22"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@eslint
|
|
46
|
-
"
|
|
47
|
-
"eslint-plugin-
|
|
48
|
-
"eslint-plugin-react": "^7.37.5",
|
|
49
|
-
"eslint-plugin-react-hooks": "^7.0.1",
|
|
50
|
-
"eslint-plugin-react-naming-convention": "^2.13.0",
|
|
51
|
-
"eslint-plugin-react-x": "^2.13.0",
|
|
52
|
-
"typescript-eslint": "^8.56.1"
|
|
45
|
+
"@stylistic/eslint-plugin": "^5.10.0",
|
|
46
|
+
"eslint-plugin-perfectionist": "^5.7.0",
|
|
47
|
+
"eslint-plugin-react-x": "^3.0.0"
|
|
53
48
|
},
|
|
54
49
|
"peerDependencies": {
|
|
55
|
-
"@standard-config/oxlint": ">=1.
|
|
56
|
-
"eslint": ">=
|
|
57
|
-
"typescript": ">=
|
|
50
|
+
"@standard-config/oxlint": ">=1.3.0",
|
|
51
|
+
"eslint": ">=10.0.0",
|
|
52
|
+
"typescript-eslint": ">=8.56.0"
|
|
58
53
|
},
|
|
59
54
|
"peerDependenciesMeta": {
|
|
60
55
|
"@standard-config/oxlint": {
|
|
61
56
|
"optional": true
|
|
57
|
+
},
|
|
58
|
+
"eslint": {
|
|
59
|
+
"optional": true
|
|
60
|
+
},
|
|
61
|
+
"typescript-eslint": {
|
|
62
|
+
"optional": true
|
|
62
63
|
}
|
|
63
64
|
},
|
|
64
65
|
"devDependencies": {
|
|
65
|
-
"@
|
|
66
|
-
"@standard-config/
|
|
67
|
-
"@standard-config/
|
|
68
|
-
"@
|
|
69
|
-
"@
|
|
70
|
-
"
|
|
66
|
+
"@eslint/compat": "^2.0.3",
|
|
67
|
+
"@standard-config/oxlint": "^1.6.0",
|
|
68
|
+
"@standard-config/prettier": "^1.11.1",
|
|
69
|
+
"@standard-config/tsconfig": "^3.1.0",
|
|
70
|
+
"@types/node": "^22.19.15",
|
|
71
|
+
"@vitest/coverage-v8": "^4.1.1",
|
|
72
|
+
"eslint": "^10.1.0",
|
|
71
73
|
"husky": "^9.1.7",
|
|
72
74
|
"jiti": "^2.6.1",
|
|
73
|
-
"oxlint": "^1.
|
|
74
|
-
"oxlint-tsgolint": "^0.
|
|
75
|
+
"oxlint": "^1.56.0",
|
|
76
|
+
"oxlint-tsgolint": "^0.17.3",
|
|
75
77
|
"prettier": "^3.8.1",
|
|
76
|
-
"publint": "^0.3.
|
|
78
|
+
"publint": "^0.3.18",
|
|
77
79
|
"react": "^19.2.4",
|
|
78
|
-
"tsdown": "^0.
|
|
79
|
-
"typescript": "^
|
|
80
|
-
"
|
|
80
|
+
"tsdown": "^0.21.4",
|
|
81
|
+
"typescript": "^6.0.2",
|
|
82
|
+
"typescript-eslint": "^8.57.2",
|
|
83
|
+
"vitest": "^4.1.1"
|
|
81
84
|
},
|
|
82
85
|
"scripts": {
|
|
83
86
|
"build": "tsdown",
|
|
84
87
|
"fix": "pnpm format && pnpm lint && pnpm format",
|
|
85
88
|
"format": "prettier --ignore-unknown --log-level=warn --write .",
|
|
86
89
|
"format:check": "prettier --check --ignore-unknown .",
|
|
87
|
-
"lint": "oxlint --fix
|
|
88
|
-
"lint:check": "oxlint --deny-warnings --
|
|
90
|
+
"lint": "oxlint --fix && eslint --fix .",
|
|
91
|
+
"lint:check": "oxlint --deny-warnings --type-check && eslint .",
|
|
89
92
|
"test": "vitest run",
|
|
90
93
|
"typecheck": "tsc --noEmit"
|
|
91
94
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-C8CpEqE5.d.mts","names":["Linter","defineConfig","eslintDefineConfig","LinterConfigEntry","Config","Omit","LinterConfigRuleEntry","RuleSeverity","LinterConfigRules","Record","InfiniteLinterConfig","Parameters","StandardConfig","Exclude","react","InfiniteLinterConfigs","StandardConfigArray"],"sources":["../src/types/index.d.ts"],"mappings":";;;;KAGYG,iBAAAA,GAAoBE,IAAAA,CAAKL,MAAAA,CAAOI,MAAAA;AAAAA,KAEvCE,qBAAAA,GACFN,MAAAA,CAAOO,YAAAA,IACNP,MAAAA,CAAOO,YAAAA;AAAAA,KAECC,iBAAAA,GAAoBC,MAAAA,SAAeH,qBAAAA;AAAAA,KAE1CI,oBAAAA,GAAuBC,UAAAA,QAAkBT,YAAAA;AAAAA,KAElCU,cAAAA,GAAiBC,OAAAA,CAAQH,oBAAAA;EARX;;;;EAazBI,KAAAA;AAAAA;AAAAA,KAGIC,qBAAAA,IAAyBH,cAAAA,KAAmBF,oBAAAA;AAAAA,KAErCM,mBAAAA,GACTN,oBAAAA,KACAK,qBAAAA,IACCA,qBAAAA,KAA0BL,oBAAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rules-react-P9sQTBnm.mjs","names":["rules","rules","rules","rules","rules","rules","rules","rules"],"sources":["../src/config-base/rules-core.ts","../src/config-base/rules-perfectionist.ts","../src/config-base/rules-stylistic.ts","../src/config-config-files/rules-perfectionist.ts","../src/config-react/rules-perfectionist.ts","../src/transform-rules/index.ts","../src/config-react/rules-react-hooks.ts","../src/config-react/rules-react-naming-convention.ts","../src/config-react/rules-react-x.ts","../src/config-react/rules-react.ts"],"sourcesContent":["import type { LinterConfigRules } from '../types/index.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'camelcase': ['error', { properties: 'always' }],\n\t'func-name-matching': [\n\t\t'error',\n\t\t'never',\n\t\t{ considerPropertyDescriptor: true },\n\t],\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/index.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'perfectionist/sort-array-includes': ['error', { type: 'natural' }],\n\t'perfectionist/sort-classes': [\n\t\t'error',\n\t\t{\n\t\t\tgroups: ['property', 'constructor'],\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n\t'perfectionist/sort-exports': ['error', { type: 'natural' }],\n\t'perfectionist/sort-imports': [\n\t\t'error',\n\t\t{\n\t\t\tcustomGroups: [\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'mock-side-effect',\n\t\t\t\t\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\tselector: 'side-effect',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'mock',\n\t\t\t\t\telementNamePattern: '^.*/_*(mocks)_*/.*$',\n\t\t\t\t\tselector: 'import',\n\t\t\t\t},\n\t\t\t],\n\t\t\tgroups: [\n\t\t\t\t'mock-side-effect',\n\t\t\t\t'mock',\n\t\t\t\t['type-builtin', 'type-external'],\n\t\t\t\t'type-internal',\n\t\t\t\t['type-parent', 'type-sibling', 'type-index'],\n\t\t\t\t['value-builtin', 'value-external'],\n\t\t\t\t'value-internal',\n\t\t\t\t['value-parent', 'value-sibling', 'value-index'],\n\t\t\t\t'unknown',\n\t\t\t\t'style',\n\t\t\t\t'side-effect',\n\t\t\t\t'side-effect-style',\n\t\t\t],\n\t\t\tinternalPattern: ['^(#|@/).*'],\n\t\t\tnewlinesBetween: 0,\n\t\t\tsortSideEffects: true,\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n\t'perfectionist/sort-interfaces': [\n\t\t'error',\n\t\t{\n\t\t\tgroups: ['index-signature', 'unknown', 'method'],\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n\t'perfectionist/sort-intersection-types': ['error', { type: 'natural' }],\n\t'perfectionist/sort-named-exports': ['error', { type: 'natural' }],\n\t'perfectionist/sort-named-imports': ['error', { type: 'natural' }],\n\t'perfectionist/sort-object-types': [\n\t\t'error',\n\t\t{\n\t\t\tgroups: ['index-signature', 'unknown', 'method'],\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n\t'perfectionist/sort-objects': [\n\t\t'error',\n\t\t{\n\t\t\ttype: 'natural',\n\t\t\tuseConfigurationIf: {\n\t\t\t\tobjectType: 'destructured',\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'unsorted',\n\t\t\tuseConfigurationIf: {\n\t\t\t\tobjectType: 'non-destructured',\n\t\t\t},\n\t\t},\n\t],\n\t'perfectionist/sort-union-types': [\n\t\t'error',\n\t\t{\n\t\t\tcustomGroups: [\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'false',\n\t\t\t\t\telementNamePattern: '^false$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'never',\n\t\t\t\t\telementNamePattern: '^never$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'react',\n\t\t\t\t\telementNamePattern: '^react.+',\n\t\t\t\t},\n\t\t\t],\n\t\t\tgroups: ['react', 'unknown', 'tuple', 'false', 'nullish', 'never'],\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/index.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'@stylistic/lines-between-class-members': [\n\t\t'error',\n\t\t'always',\n\t\t{ exceptAfterSingleLine: true },\n\t],\n\t'@stylistic/padding-line-between-statements': [\n\t\t'error',\n\t\t{\n\t\t\tblankLine: 'always',\n\t\t\tnext: '*',\n\t\t\tprev: [\n\t\t\t\t'block-like',\n\t\t\t\t'directive',\n\t\t\t\t'export',\n\t\t\t\t'function',\n\t\t\t\t'import',\n\t\t\t\t'interface',\n\t\t\t\t'type',\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\tblankLine: 'always',\n\t\t\tnext: [\n\t\t\t\t'block-like',\n\t\t\t\t'directive',\n\t\t\t\t'export',\n\t\t\t\t'function',\n\t\t\t\t'import',\n\t\t\t\t'interface',\n\t\t\t\t'type',\n\t\t\t],\n\t\t\tprev: '*',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'always',\n\t\t\tnext: '*',\n\t\t\tprev: ['case', 'default'],\n\t\t},\n\t\t{\n\t\t\tblankLine: 'never',\n\t\t\tnext: 'directive',\n\t\t\tprev: 'directive',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'any',\n\t\t\tnext: 'export',\n\t\t\tprev: 'export',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'never',\n\t\t\tnext: ['function', 'function-overload'],\n\t\t\tprev: 'function-overload',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'never',\n\t\t\tnext: 'import',\n\t\t\tprev: 'import',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'any',\n\t\t\tnext: 'interface',\n\t\t\tprev: 'interface',\n\t\t},\n\t\t{\n\t\t\tblankLine: 'any',\n\t\t\tnext: 'type',\n\t\t\tprev: 'type',\n\t\t},\n\t],\n\t'@stylistic/spaced-comment': [\n\t\t'error',\n\t\t'always',\n\t\t{\n\t\t\tblock: {\n\t\t\t\tbalanced: true,\n\t\t\t},\n\t\t\tline: {\n\t\t\t\tmarkers: ['/'],\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/index.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'perfectionist/sort-objects': [\n\t\t'error',\n\t\t{\n\t\t\tcustomGroups: [\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'extends',\n\t\t\t\t\telementNamePattern: '^extends$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'files',\n\t\t\t\t\telementNamePattern: '^files$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'ignores',\n\t\t\t\t\telementNamePattern: '^(ignores|ignorePatterns)$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'name',\n\t\t\t\t\telementNamePattern: '^(name|groupName)$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'overrides',\n\t\t\t\t\telementNamePattern: '^overrides$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'parser',\n\t\t\t\t\telementNamePattern: '^parser$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'plugins',\n\t\t\t\t\telementNamePattern: '^plugins$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'rules',\n\t\t\t\t\telementNamePattern: '^rules$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'test',\n\t\t\t\t\telementNamePattern: '^(test|tests)$',\n\t\t\t\t},\n\t\t\t],\n\t\t\tgroups: [\n\t\t\t\t'name',\n\t\t\t\t'files',\n\t\t\t\t'extends',\n\t\t\t\t'ignores',\n\t\t\t\t'plugins',\n\t\t\t\t'parser',\n\t\t\t\t'test',\n\t\t\t\t'unknown',\n\t\t\t\t'rules',\n\t\t\t\t'overrides',\n\t\t\t],\n\t\t\tnewlinesBetween: 0,\n\t\t\ttype: 'natural',\n\t\t},\n\t],\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/index.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'perfectionist/sort-jsx-props': [\n\t\t'error',\n\t\t{\n\t\t\tcustomGroups: [\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'as',\n\t\t\t\t\telementNamePattern: '^as$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'callback',\n\t\t\t\t\telementNamePattern: '^on.+',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'children',\n\t\t\t\t\telementNamePattern: '^children$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'key',\n\t\t\t\t\telementNamePattern: '^key$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'ref',\n\t\t\t\t\telementNamePattern: '^ref$',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgroupName: 'unsafe',\n\t\t\t\t\telementNamePattern: '^dangerously.+',\n\t\t\t\t},\n\t\t\t],\n\t\t\tgroups: [\n\t\t\t\t'key',\n\t\t\t\t'ref',\n\t\t\t\t'as',\n\t\t\t\t'unknown',\n\t\t\t\t'shorthand-prop',\n\t\t\t\t'callback',\n\t\t\t\t'children',\n\t\t\t\t'unsafe',\n\t\t\t],\n\t\t\ttype: 'unsorted',\n\t\t},\n\t],\n};\n\nexport default rules;\n","import type { Linter } from 'eslint';\nimport type { LinterConfigRules } from '../types/index.d.ts';\n\n/**\n * Modify a set of ESLint rules.\n *\n * @deprecated Not covered by semver.\n */\nexport default function transformRules(\n\trules: Linter.Config['rules'],\n\toptions: {\n\t\tomit?: ReadonlyArray<string>;\n\t\tprefix?: string;\n\t\tseverity?: Linter.StringSeverity;\n\t}\n): LinterConfigRules {\n\tif (!rules) {\n\t\treturn {};\n\t}\n\n\tconst { omit, prefix, severity } = options;\n\tconst omittedRules = new Set(omit);\n\n\tconst transformedRules: LinterConfigRules = {};\n\n\tfor (const [ruleName, ruleConfig] of Object.entries(rules)) {\n\t\tif (omittedRules.has(ruleName)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!Array.isArray(ruleConfig)) {\n\t\t\ttransformedRules[ruleName] = severity ?? ruleConfig ?? 'off';\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [ruleSeverity, ...ruleOptions] = ruleConfig;\n\n\t\ttransformedRules[ruleName] = [severity ?? ruleSeverity, ...ruleOptions];\n\t}\n\n\treturn typeof prefix === 'string'\n\t\t? prefixRules(transformedRules, prefix)\n\t\t: transformedRules;\n}\n\nfunction prefixRules(rules: LinterConfigRules, prefix: string) {\n\tconst prefixedRules: LinterConfigRules = {};\n\n\tfor (const [ruleName, ruleConfig] of Object.entries(rules)) {\n\t\tconst name = ruleName.replace(/^.*?\\//, '');\n\n\t\tprefixedRules[`${prefix}/${name}`] = ruleConfig;\n\t}\n\n\treturn prefixedRules;\n}\n","import type { LinterConfigRules } from '../types/index.d.ts';\nimport pluginReactHooks from 'eslint-plugin-react-hooks';\nimport transformRules from '../transform-rules/index.ts';\n\nconst rules: LinterConfigRules = transformRules(\n\tpluginReactHooks.configs.flat['recommended-latest'].rules,\n\t{\n\t\tomit: [\n\t\t\t/* prettier-ignore */\n\t\t\t'react-hooks/exhaustive-deps',\n\t\t\t'react-hooks/rules-of-hooks',\n\t\t],\n\t\tseverity: 'error',\n\t}\n);\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/index.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'react-naming-convention/component-name': 'error',\n\t'react-naming-convention/context-name': 'error',\n\t'react-naming-convention/ref-name': 'error',\n\t'react-naming-convention/use-state': 'error',\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/index.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'react-x/jsx-dollar': 'error',\n\t'react-x/jsx-key-before-spread': 'error',\n\t'react-x/jsx-no-iife': 'error',\n\t'react-x/no-access-state-in-setstate': 'error',\n\t'react-x/no-class-component': 'error',\n\t'react-x/no-context-provider': 'error',\n\t'react-x/no-default-props': 'error',\n\t'react-x/no-duplicate-key': 'error',\n\t'react-x/no-forward-ref': 'error',\n\t'react-x/no-implicit-key': 'error',\n\t'react-x/no-leaked-conditional-rendering': 'error',\n\t'react-x/no-misused-capture-owner-stack': 'error',\n\t'react-x/no-nested-component-definitions': 'error',\n\t'react-x/no-nested-lazy-component-declarations': 'error',\n\t'react-x/no-prop-types': 'error',\n\t'react-x/no-unnecessary-use-callback': 'error',\n\t'react-x/no-unnecessary-use-memo': 'error',\n\t'react-x/no-unstable-context-value': 'error',\n\t'react-x/no-unstable-default-props': 'error',\n\t'react-x/no-use-context': 'error',\n\t'react-x/prefer-destructuring-assignment': 'error',\n\t'react-x/prefer-use-state-lazy-initialization': 'error',\n};\n\nexport default rules;\n","import type { LinterConfigRules } from '../types/index.d.ts';\n\nconst rules: LinterConfigRules = {\n\t'react/function-component-definition': [\n\t\t'error',\n\t\t{\n\t\t\tnamedComponents: ['arrow-function', 'function-declaration'],\n\t\t\tunnamedComponents: 'arrow-function',\n\t\t},\n\t],\n\t'react/no-adjacent-inline-elements': 'error',\n};\n\nexport default rules;\n"],"mappings":";;;AAEA,MAAMA,UAA2B;CAChC,aAAa,CAAC,SAAS,EAAE,YAAY,UAAU,CAAC;CAChD,sBAAsB;EACrB;EACA;EACA,EAAE,4BAA4B,MAAM;EACpC;CACD;;;;ACPD,MAAMC,UAA2B;CAChC,qCAAqC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CACnE,8BAA8B,CAC7B,SACA;EACC,QAAQ,CAAC,YAAY,cAAc;EACnC,MAAM;EACN,CACD;CACD,8BAA8B,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CAC5D,8BAA8B,CAC7B,SACA;EACC,cAAc,CACb;GACC,WAAW;GACX,oBAAoB;GACpB,UAAU;GACV,EACD;GACC,WAAW;GACX,oBAAoB;GACpB,UAAU;GACV,CACD;EACD,QAAQ;GACP;GACA;GACA,CAAC,gBAAgB,gBAAgB;GACjC;GACA;IAAC;IAAe;IAAgB;IAAa;GAC7C,CAAC,iBAAiB,iBAAiB;GACnC;GACA;IAAC;IAAgB;IAAiB;IAAc;GAChD;GACA;GACA;GACA;GACA;EACD,iBAAiB,CAAC,YAAY;EAC9B,iBAAiB;EACjB,iBAAiB;EACjB,MAAM;EACN,CACD;CACD,iCAAiC,CAChC,SACA;EACC,QAAQ;GAAC;GAAmB;GAAW;GAAS;EAChD,MAAM;EACN,CACD;CACD,yCAAyC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CACvE,oCAAoC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CAClE,oCAAoC,CAAC,SAAS,EAAE,MAAM,WAAW,CAAC;CAClE,mCAAmC,CAClC,SACA;EACC,QAAQ;GAAC;GAAmB;GAAW;GAAS;EAChD,MAAM;EACN,CACD;CACD,8BAA8B;EAC7B;EACA;GACC,MAAM;GACN,oBAAoB,EACnB,YAAY,gBACZ;GACD;EACD;GACC,MAAM;GACN,oBAAoB,EACnB,YAAY,oBACZ;GACD;EACD;CACD,kCAAkC,CACjC,SACA;EACC,cAAc;GACb;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;IACC,WAAW;IACX,oBAAoB;IACpB;GACD;EACD,QAAQ;GAAC;GAAS;GAAW;GAAS;GAAS;GAAW;GAAQ;EAClE,MAAM;EACN,CACD;CACD;;;;AClGD,MAAMC,UAA2B;CAChC,0CAA0C;EACzC;EACA;EACA,EAAE,uBAAuB,MAAM;EAC/B;CACD,8CAA8C;EAC7C;EACA;GACC,WAAW;GACX,MAAM;GACN,MAAM;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD;EACD;GACC,WAAW;GACX,MAAM;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM,CAAC,QAAQ,UAAU;GACzB;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM,CAAC,YAAY,oBAAoB;GACvC,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;GACC,WAAW;GACX,MAAM;GACN,MAAM;GACN;EACD;CACD,6BAA6B;EAC5B;EACA;EACA;GACC,OAAO,EACN,UAAU,MACV;GACD,MAAM,EACL,SAAS,CAAC,IAAI,EACd;GACD;EACD;CACD;;;;AClFD,MAAMC,UAA2B,EAChC,8BAA8B,CAC7B,SACA;CACC,cAAc;EACb;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;CACD,QAAQ;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,iBAAiB;CACjB,MAAM;CACN,CACD,EACD;;;;AC1DD,MAAMC,UAA2B,EAChC,gCAAgC,CAC/B,SACA;CACC,cAAc;EACb;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;GACC,WAAW;GACX,oBAAoB;GACpB;EACD;CACD,QAAQ;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM;CACN,CACD,EACD;;;;;;;;;ACrCD,SAAwB,eACvB,OACA,SAKoB;AACpB,KAAI,CAAC,MACJ,QAAO,EAAE;CAGV,MAAM,EAAE,MAAM,QAAQ,aAAa;CACnC,MAAM,eAAe,IAAI,IAAI,KAAK;CAElC,MAAM,mBAAsC,EAAE;AAE9C,MAAK,MAAM,CAAC,UAAU,eAAe,OAAO,QAAQ,MAAM,EAAE;AAC3D,MAAI,aAAa,IAAI,SAAS,CAC7B;AAGD,MAAI,CAAC,MAAM,QAAQ,WAAW,EAAE;AAC/B,oBAAiB,YAAY,YAAY,cAAc;AACvD;;EAGD,MAAM,CAAC,cAAc,GAAG,eAAe;AAEvC,mBAAiB,YAAY,CAAC,YAAY,cAAc,GAAG,YAAY;;AAGxE,QAAO,OAAO,WAAW,WACtB,YAAY,kBAAkB,OAAO,GACrC;;AAGJ,SAAS,YAAY,OAA0B,QAAgB;CAC9D,MAAM,gBAAmC,EAAE;AAE3C,MAAK,MAAM,CAAC,UAAU,eAAe,OAAO,QAAQ,MAAM,EAAE;EAC3D,MAAM,OAAO,SAAS,QAAQ,UAAU,GAAG;AAE3C,gBAAc,GAAG,OAAO,GAAG,UAAU;;AAGtC,QAAO;;;;;AClDR,MAAMC,UAA2B,eAChC,iBAAiB,QAAQ,KAAK,sBAAsB,OACpD;CACC,MAAM,CAEL,+BACA,6BACA;CACD,UAAU;CACV,CACD;;;;ACZD,MAAMC,UAA2B;CAChC,0CAA0C;CAC1C,wCAAwC;CACxC,oCAAoC;CACpC,qCAAqC;CACrC;;;;ACLD,MAAMC,UAA2B;CAChC,sBAAsB;CACtB,iCAAiC;CACjC,uBAAuB;CACvB,uCAAuC;CACvC,8BAA8B;CAC9B,+BAA+B;CAC/B,4BAA4B;CAC5B,4BAA4B;CAC5B,0BAA0B;CAC1B,2BAA2B;CAC3B,2CAA2C;CAC3C,0CAA0C;CAC1C,2CAA2C;CAC3C,iDAAiD;CACjD,yBAAyB;CACzB,uCAAuC;CACvC,mCAAmC;CACnC,qCAAqC;CACrC,qCAAqC;CACrC,0BAA0B;CAC1B,2CAA2C;CAC3C,gDAAgD;CAChD;;;;ACvBD,MAAM,QAA2B;CAChC,uCAAuC,CACtC,SACA;EACC,iBAAiB,CAAC,kBAAkB,uBAAuB;EAC3D,mBAAmB;EACnB,CACD;CACD,qCAAqC;CACrC"}
|