@commencis/eslint-config 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/configs/base.d.ts +1 -1
- package/dist/configs/base.js +28 -9
- package/dist/configs/next.d.ts +1 -1
- package/dist/configs/next.js +32 -10
- package/dist/configs/prettier.d.ts +1 -1
- package/dist/configs/react-native.d.ts +6 -0
- package/dist/configs/react-native.js +213 -0
- package/dist/configs/react.d.ts +1 -1
- package/dist/configs/react.js +32 -10
- package/dist/configs/typescript.d.ts +1 -1
- package/dist/configs/typescript.js +3 -1
- package/dist/configs/vue.d.ts +1 -1
- package/dist/configs/vue.js +47 -11
- package/dist/{flatConfig-CFiBdxNB.d.ts → flatConfig-Cm6wkwA_.d.ts} +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +61 -13
- package/package.json +33 -29
package/README.md
CHANGED
|
@@ -51,6 +51,20 @@ export default defineConfig(...commencisReactConfig, {
|
|
|
51
51
|
});
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
### Example Usage for React-Native/Typescript Project:
|
|
55
|
+
|
|
56
|
+
```javascript
|
|
57
|
+
// eslint.config.js
|
|
58
|
+
import {
|
|
59
|
+
commencisReactNativeConfig,
|
|
60
|
+
defineConfig,
|
|
61
|
+
} from '@commencis/eslint-config';
|
|
62
|
+
|
|
63
|
+
export default defineConfig(...commencisReactNativeConfig, {
|
|
64
|
+
/* ... */
|
|
65
|
+
});
|
|
66
|
+
```
|
|
67
|
+
|
|
54
68
|
### Example Usage for NextJs/Typescript Project:
|
|
55
69
|
|
|
56
70
|
```javascript
|
package/dist/configs/base.d.ts
CHANGED
package/dist/configs/base.js
CHANGED
|
@@ -57,7 +57,9 @@ var reactRules = {
|
|
|
57
57
|
// No longer necessary
|
|
58
58
|
// https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint
|
|
59
59
|
"react/jsx-uses-react": "off",
|
|
60
|
-
"react/react-in-jsx-scope": "off"
|
|
60
|
+
"react/react-in-jsx-scope": "off",
|
|
61
|
+
// We are not planning to utilize rules below
|
|
62
|
+
"react/jsx-props-no-spreading": "off"
|
|
61
63
|
};
|
|
62
64
|
|
|
63
65
|
// src/plugins/importSortPlugin.ts
|
|
@@ -71,13 +73,27 @@ var importSortPluginConfig = {
|
|
|
71
73
|
}
|
|
72
74
|
};
|
|
73
75
|
|
|
74
|
-
// src/plugins/
|
|
75
|
-
import
|
|
76
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
77
|
+
import jsxA11yPlugin from "eslint-plugin-jsx-a11y";
|
|
76
78
|
|
|
77
79
|
// src/constants/index.ts
|
|
78
80
|
var JSX_TSX_FILE_PATTERNS = ["**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}"];
|
|
79
81
|
|
|
82
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
83
|
+
var jsxA11yPluginConfig = {
|
|
84
|
+
name: "commencis/plugin:jsx-a11y",
|
|
85
|
+
files: JSX_TSX_FILE_PATTERNS,
|
|
86
|
+
plugins: {
|
|
87
|
+
"jsx-a11y": jsxA11yPlugin
|
|
88
|
+
},
|
|
89
|
+
languageOptions: { ...jsxA11yPlugin.flatConfigs.recommended.languageOptions },
|
|
90
|
+
rules: {
|
|
91
|
+
...jsxA11yPlugin.flatConfigs.recommended.rules
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
80
95
|
// src/plugins/nextPlugin.ts
|
|
96
|
+
import nextPlugin from "@next/eslint-plugin-next";
|
|
81
97
|
var nextPluginConfig = {
|
|
82
98
|
name: "commencis/plugin:next",
|
|
83
99
|
files: JSX_TSX_FILE_PATTERNS,
|
|
@@ -108,12 +124,13 @@ import reactPlugin from "eslint-plugin-react";
|
|
|
108
124
|
var reactPluginConfig = {
|
|
109
125
|
name: "commencis/plugin:react",
|
|
110
126
|
files: JSX_TSX_FILE_PATTERNS,
|
|
111
|
-
languageOptions: { ...reactPlugin.configs.recommended.languageOptions },
|
|
127
|
+
languageOptions: { ...reactPlugin.configs.flat.recommended.languageOptions },
|
|
112
128
|
plugins: {
|
|
113
129
|
react: reactPlugin
|
|
114
130
|
},
|
|
115
131
|
rules: {
|
|
116
|
-
...reactPlugin.configs.recommended.rules,
|
|
132
|
+
...reactPlugin.configs.flat.recommended.rules,
|
|
133
|
+
...reactPlugin.configs.flat["jsx-runtime"].rules,
|
|
117
134
|
...reactRules
|
|
118
135
|
},
|
|
119
136
|
settings: {
|
|
@@ -125,10 +142,12 @@ var reactPluginConfig = {
|
|
|
125
142
|
|
|
126
143
|
// src/plugins/vuePlugin.ts
|
|
127
144
|
import vuePlugin from "eslint-plugin-vue";
|
|
128
|
-
var vuePluginConfig =
|
|
129
|
-
...vuePlugin.configs
|
|
130
|
-
|
|
131
|
-
|
|
145
|
+
var vuePluginConfig = [
|
|
146
|
+
...vuePlugin.configs["flat/recommended"],
|
|
147
|
+
{
|
|
148
|
+
name: "commencis/plugin:vue"
|
|
149
|
+
}
|
|
150
|
+
];
|
|
132
151
|
|
|
133
152
|
// src/configs/base.ts
|
|
134
153
|
var base_default = [
|
package/dist/configs/next.d.ts
CHANGED
package/dist/configs/next.js
CHANGED
|
@@ -57,13 +57,17 @@ var reactRules = {
|
|
|
57
57
|
// No longer necessary
|
|
58
58
|
// https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint
|
|
59
59
|
"react/jsx-uses-react": "off",
|
|
60
|
-
"react/react-in-jsx-scope": "off"
|
|
60
|
+
"react/react-in-jsx-scope": "off",
|
|
61
|
+
// We are not planning to utilize rules below
|
|
62
|
+
"react/jsx-props-no-spreading": "off"
|
|
61
63
|
};
|
|
62
64
|
|
|
63
65
|
// src/rules/typescriptRules.ts
|
|
64
66
|
var typescriptRules = {
|
|
65
67
|
"@typescript-eslint/consistent-type-definitions": "off",
|
|
66
|
-
"@typescript-eslint/no-empty-function": "off"
|
|
68
|
+
"@typescript-eslint/no-empty-function": "off",
|
|
69
|
+
"@typescript-eslint/array-type": "off",
|
|
70
|
+
"@typescript-eslint/explicit-function-return-type": "error"
|
|
67
71
|
};
|
|
68
72
|
|
|
69
73
|
// src/plugins/importSortPlugin.ts
|
|
@@ -77,13 +81,27 @@ var importSortPluginConfig = {
|
|
|
77
81
|
}
|
|
78
82
|
};
|
|
79
83
|
|
|
80
|
-
// src/plugins/
|
|
81
|
-
import
|
|
84
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
85
|
+
import jsxA11yPlugin from "eslint-plugin-jsx-a11y";
|
|
82
86
|
|
|
83
87
|
// src/constants/index.ts
|
|
84
88
|
var JSX_TSX_FILE_PATTERNS = ["**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}"];
|
|
85
89
|
|
|
90
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
91
|
+
var jsxA11yPluginConfig = {
|
|
92
|
+
name: "commencis/plugin:jsx-a11y",
|
|
93
|
+
files: JSX_TSX_FILE_PATTERNS,
|
|
94
|
+
plugins: {
|
|
95
|
+
"jsx-a11y": jsxA11yPlugin
|
|
96
|
+
},
|
|
97
|
+
languageOptions: { ...jsxA11yPlugin.flatConfigs.recommended.languageOptions },
|
|
98
|
+
rules: {
|
|
99
|
+
...jsxA11yPlugin.flatConfigs.recommended.rules
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
86
103
|
// src/plugins/nextPlugin.ts
|
|
104
|
+
import nextPlugin from "@next/eslint-plugin-next";
|
|
87
105
|
var nextPluginConfig = {
|
|
88
106
|
name: "commencis/plugin:next",
|
|
89
107
|
files: JSX_TSX_FILE_PATTERNS,
|
|
@@ -114,12 +132,13 @@ import reactPlugin from "eslint-plugin-react";
|
|
|
114
132
|
var reactPluginConfig = {
|
|
115
133
|
name: "commencis/plugin:react",
|
|
116
134
|
files: JSX_TSX_FILE_PATTERNS,
|
|
117
|
-
languageOptions: { ...reactPlugin.configs.recommended.languageOptions },
|
|
135
|
+
languageOptions: { ...reactPlugin.configs.flat.recommended.languageOptions },
|
|
118
136
|
plugins: {
|
|
119
137
|
react: reactPlugin
|
|
120
138
|
},
|
|
121
139
|
rules: {
|
|
122
|
-
...reactPlugin.configs.recommended.rules,
|
|
140
|
+
...reactPlugin.configs.flat.recommended.rules,
|
|
141
|
+
...reactPlugin.configs.flat["jsx-runtime"].rules,
|
|
123
142
|
...reactRules
|
|
124
143
|
},
|
|
125
144
|
settings: {
|
|
@@ -131,10 +150,12 @@ var reactPluginConfig = {
|
|
|
131
150
|
|
|
132
151
|
// src/plugins/vuePlugin.ts
|
|
133
152
|
import vuePlugin from "eslint-plugin-vue";
|
|
134
|
-
var vuePluginConfig =
|
|
135
|
-
...vuePlugin.configs
|
|
136
|
-
|
|
137
|
-
|
|
153
|
+
var vuePluginConfig = [
|
|
154
|
+
...vuePlugin.configs["flat/recommended"],
|
|
155
|
+
{
|
|
156
|
+
name: "commencis/plugin:vue"
|
|
157
|
+
}
|
|
158
|
+
];
|
|
138
159
|
|
|
139
160
|
// src/configs/base.ts
|
|
140
161
|
var base_default = [
|
|
@@ -183,6 +204,7 @@ var next_default = [
|
|
|
183
204
|
...typescript_default,
|
|
184
205
|
reactPluginConfig,
|
|
185
206
|
reactHooksPluginConfig,
|
|
207
|
+
jsxA11yPluginConfig,
|
|
186
208
|
nextPluginConfig,
|
|
187
209
|
...prettier_default,
|
|
188
210
|
{ name: "commencis/next" }
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
// src/configs/base.ts
|
|
2
|
+
import globals from "globals";
|
|
3
|
+
import eslint from "@eslint/js";
|
|
4
|
+
|
|
5
|
+
// src/plugins/importSortPlugin.ts
|
|
6
|
+
import simpleImportSortPlugin from "eslint-plugin-simple-import-sort";
|
|
7
|
+
|
|
8
|
+
// src/rules/importSortRules.ts
|
|
9
|
+
var importSortRules = {
|
|
10
|
+
"simple-import-sort/imports": [
|
|
11
|
+
"error",
|
|
12
|
+
{
|
|
13
|
+
groups: [
|
|
14
|
+
// External package imports
|
|
15
|
+
["^\\w", "^@\\w"],
|
|
16
|
+
// @commencis package imports
|
|
17
|
+
["^@commencis"],
|
|
18
|
+
// Config, util imports
|
|
19
|
+
["(@/config|@/util)"],
|
|
20
|
+
// Type imports
|
|
21
|
+
["@/type"],
|
|
22
|
+
// Absolute imports
|
|
23
|
+
["^@/"],
|
|
24
|
+
// Relative imports
|
|
25
|
+
["^\\.\\./", "^\\./"],
|
|
26
|
+
// Style imports
|
|
27
|
+
["^.+\\.s?css$"]
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"simple-import-sort/exports": "error"
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// src/rules/nextPluginRules.ts
|
|
35
|
+
var nextPluginRules = {
|
|
36
|
+
// Breaks with ESLint 9, should be activated after the next plugin is updated
|
|
37
|
+
"@next/next/no-duplicate-head": "off"
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// src/rules/reactHooksRules.ts
|
|
41
|
+
var reactHooksRules = {
|
|
42
|
+
"react-hooks/exhaustive-deps": "warn",
|
|
43
|
+
"react-hooks/rules-of-hooks": "error"
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// src/rules/reactRules.ts
|
|
47
|
+
var reactRules = {
|
|
48
|
+
// Disable JS specific rules
|
|
49
|
+
"react/jsx-filename-extension": "off",
|
|
50
|
+
"react/default-props-match-prop-types": "off",
|
|
51
|
+
"react/prop-types": "off",
|
|
52
|
+
// Breaks @typescript-eslint/parser
|
|
53
|
+
"react/jsx-indent": "off",
|
|
54
|
+
"react/no-typos": "off",
|
|
55
|
+
"react/jsx-closing-tag-location": "off",
|
|
56
|
+
"react/jsx-wrap-multilines": "off",
|
|
57
|
+
// No longer necessary
|
|
58
|
+
// https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint
|
|
59
|
+
"react/jsx-uses-react": "off",
|
|
60
|
+
"react/react-in-jsx-scope": "off",
|
|
61
|
+
// We are not planning to utilize rules below
|
|
62
|
+
"react/jsx-props-no-spreading": "off"
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// src/rules/typescriptRules.ts
|
|
66
|
+
var typescriptRules = {
|
|
67
|
+
"@typescript-eslint/consistent-type-definitions": "off",
|
|
68
|
+
"@typescript-eslint/no-empty-function": "off",
|
|
69
|
+
"@typescript-eslint/array-type": "off",
|
|
70
|
+
"@typescript-eslint/explicit-function-return-type": "error"
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// src/plugins/importSortPlugin.ts
|
|
74
|
+
var importSortPluginConfig = {
|
|
75
|
+
name: "commencis/plugin:simple-import-sort",
|
|
76
|
+
plugins: {
|
|
77
|
+
"simple-import-sort": simpleImportSortPlugin
|
|
78
|
+
},
|
|
79
|
+
rules: {
|
|
80
|
+
...importSortRules
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
85
|
+
import jsxA11yPlugin from "eslint-plugin-jsx-a11y";
|
|
86
|
+
|
|
87
|
+
// src/constants/index.ts
|
|
88
|
+
var JSX_TSX_FILE_PATTERNS = ["**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}"];
|
|
89
|
+
|
|
90
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
91
|
+
var jsxA11yPluginConfig = {
|
|
92
|
+
name: "commencis/plugin:jsx-a11y",
|
|
93
|
+
files: JSX_TSX_FILE_PATTERNS,
|
|
94
|
+
plugins: {
|
|
95
|
+
"jsx-a11y": jsxA11yPlugin
|
|
96
|
+
},
|
|
97
|
+
languageOptions: { ...jsxA11yPlugin.flatConfigs.recommended.languageOptions },
|
|
98
|
+
rules: {
|
|
99
|
+
...jsxA11yPlugin.flatConfigs.recommended.rules
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// src/plugins/nextPlugin.ts
|
|
104
|
+
import nextPlugin from "@next/eslint-plugin-next";
|
|
105
|
+
var nextPluginConfig = {
|
|
106
|
+
name: "commencis/plugin:next",
|
|
107
|
+
files: JSX_TSX_FILE_PATTERNS,
|
|
108
|
+
plugins: {
|
|
109
|
+
"@next/next": nextPlugin
|
|
110
|
+
},
|
|
111
|
+
rules: {
|
|
112
|
+
...nextPlugin.configs.recommended.rules,
|
|
113
|
+
...nextPlugin.configs["core-web-vitals"].rules,
|
|
114
|
+
...nextPluginRules
|
|
115
|
+
},
|
|
116
|
+
ignores: [".next/*"]
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// src/plugins/reactHooksPlugin.ts
|
|
120
|
+
import reactHooksPlugin from "eslint-plugin-react-hooks";
|
|
121
|
+
var reactHooksPluginConfig = {
|
|
122
|
+
name: "commencis/plugin:react-hooks",
|
|
123
|
+
files: JSX_TSX_FILE_PATTERNS,
|
|
124
|
+
plugins: {
|
|
125
|
+
"react-hooks": reactHooksPlugin
|
|
126
|
+
},
|
|
127
|
+
rules: { ...reactHooksRules }
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// src/plugins/reactPlugin.ts
|
|
131
|
+
import reactPlugin from "eslint-plugin-react";
|
|
132
|
+
var reactPluginConfig = {
|
|
133
|
+
name: "commencis/plugin:react",
|
|
134
|
+
files: JSX_TSX_FILE_PATTERNS,
|
|
135
|
+
languageOptions: { ...reactPlugin.configs.flat.recommended.languageOptions },
|
|
136
|
+
plugins: {
|
|
137
|
+
react: reactPlugin
|
|
138
|
+
},
|
|
139
|
+
rules: {
|
|
140
|
+
...reactPlugin.configs.flat.recommended.rules,
|
|
141
|
+
...reactPlugin.configs.flat["jsx-runtime"].rules,
|
|
142
|
+
...reactRules
|
|
143
|
+
},
|
|
144
|
+
settings: {
|
|
145
|
+
react: {
|
|
146
|
+
version: "detect"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
// src/plugins/vuePlugin.ts
|
|
152
|
+
import vuePlugin from "eslint-plugin-vue";
|
|
153
|
+
var vuePluginConfig = [
|
|
154
|
+
...vuePlugin.configs["flat/recommended"],
|
|
155
|
+
{
|
|
156
|
+
name: "commencis/plugin:vue"
|
|
157
|
+
}
|
|
158
|
+
];
|
|
159
|
+
|
|
160
|
+
// src/configs/base.ts
|
|
161
|
+
var base_default = [
|
|
162
|
+
eslint.configs.recommended,
|
|
163
|
+
importSortPluginConfig,
|
|
164
|
+
{
|
|
165
|
+
name: "commencis/base",
|
|
166
|
+
languageOptions: {
|
|
167
|
+
ecmaVersion: 2022,
|
|
168
|
+
globals: {
|
|
169
|
+
...globals.browser,
|
|
170
|
+
...globals.es2021,
|
|
171
|
+
...globals.node,
|
|
172
|
+
...globals.serviceworker
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
rules: {
|
|
176
|
+
"no-console": "warn"
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
];
|
|
180
|
+
|
|
181
|
+
// src/configs/prettier.ts
|
|
182
|
+
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
|
|
183
|
+
var prettier_default = [
|
|
184
|
+
eslintPluginPrettierRecommended,
|
|
185
|
+
{ name: "commencis/prettier" }
|
|
186
|
+
];
|
|
187
|
+
|
|
188
|
+
// src/configs/typescript.ts
|
|
189
|
+
import tseslint from "typescript-eslint";
|
|
190
|
+
var typescript_default = [
|
|
191
|
+
...tseslint.configs.strict,
|
|
192
|
+
...tseslint.configs.stylistic,
|
|
193
|
+
{
|
|
194
|
+
name: "commencis/typescript",
|
|
195
|
+
rules: {
|
|
196
|
+
...typescriptRules
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
];
|
|
200
|
+
|
|
201
|
+
// src/configs/react-native.ts
|
|
202
|
+
var react_native_default = [
|
|
203
|
+
...base_default,
|
|
204
|
+
...typescript_default,
|
|
205
|
+
reactPluginConfig,
|
|
206
|
+
reactHooksPluginConfig,
|
|
207
|
+
jsxA11yPluginConfig,
|
|
208
|
+
...prettier_default,
|
|
209
|
+
{ name: "commencis/react-native" }
|
|
210
|
+
];
|
|
211
|
+
export {
|
|
212
|
+
react_native_default as default
|
|
213
|
+
};
|
package/dist/configs/react.d.ts
CHANGED
package/dist/configs/react.js
CHANGED
|
@@ -57,13 +57,17 @@ var reactRules = {
|
|
|
57
57
|
// No longer necessary
|
|
58
58
|
// https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint
|
|
59
59
|
"react/jsx-uses-react": "off",
|
|
60
|
-
"react/react-in-jsx-scope": "off"
|
|
60
|
+
"react/react-in-jsx-scope": "off",
|
|
61
|
+
// We are not planning to utilize rules below
|
|
62
|
+
"react/jsx-props-no-spreading": "off"
|
|
61
63
|
};
|
|
62
64
|
|
|
63
65
|
// src/rules/typescriptRules.ts
|
|
64
66
|
var typescriptRules = {
|
|
65
67
|
"@typescript-eslint/consistent-type-definitions": "off",
|
|
66
|
-
"@typescript-eslint/no-empty-function": "off"
|
|
68
|
+
"@typescript-eslint/no-empty-function": "off",
|
|
69
|
+
"@typescript-eslint/array-type": "off",
|
|
70
|
+
"@typescript-eslint/explicit-function-return-type": "error"
|
|
67
71
|
};
|
|
68
72
|
|
|
69
73
|
// src/plugins/importSortPlugin.ts
|
|
@@ -77,13 +81,27 @@ var importSortPluginConfig = {
|
|
|
77
81
|
}
|
|
78
82
|
};
|
|
79
83
|
|
|
80
|
-
// src/plugins/
|
|
81
|
-
import
|
|
84
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
85
|
+
import jsxA11yPlugin from "eslint-plugin-jsx-a11y";
|
|
82
86
|
|
|
83
87
|
// src/constants/index.ts
|
|
84
88
|
var JSX_TSX_FILE_PATTERNS = ["**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}"];
|
|
85
89
|
|
|
90
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
91
|
+
var jsxA11yPluginConfig = {
|
|
92
|
+
name: "commencis/plugin:jsx-a11y",
|
|
93
|
+
files: JSX_TSX_FILE_PATTERNS,
|
|
94
|
+
plugins: {
|
|
95
|
+
"jsx-a11y": jsxA11yPlugin
|
|
96
|
+
},
|
|
97
|
+
languageOptions: { ...jsxA11yPlugin.flatConfigs.recommended.languageOptions },
|
|
98
|
+
rules: {
|
|
99
|
+
...jsxA11yPlugin.flatConfigs.recommended.rules
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
86
103
|
// src/plugins/nextPlugin.ts
|
|
104
|
+
import nextPlugin from "@next/eslint-plugin-next";
|
|
87
105
|
var nextPluginConfig = {
|
|
88
106
|
name: "commencis/plugin:next",
|
|
89
107
|
files: JSX_TSX_FILE_PATTERNS,
|
|
@@ -114,12 +132,13 @@ import reactPlugin from "eslint-plugin-react";
|
|
|
114
132
|
var reactPluginConfig = {
|
|
115
133
|
name: "commencis/plugin:react",
|
|
116
134
|
files: JSX_TSX_FILE_PATTERNS,
|
|
117
|
-
languageOptions: { ...reactPlugin.configs.recommended.languageOptions },
|
|
135
|
+
languageOptions: { ...reactPlugin.configs.flat.recommended.languageOptions },
|
|
118
136
|
plugins: {
|
|
119
137
|
react: reactPlugin
|
|
120
138
|
},
|
|
121
139
|
rules: {
|
|
122
|
-
...reactPlugin.configs.recommended.rules,
|
|
140
|
+
...reactPlugin.configs.flat.recommended.rules,
|
|
141
|
+
...reactPlugin.configs.flat["jsx-runtime"].rules,
|
|
123
142
|
...reactRules
|
|
124
143
|
},
|
|
125
144
|
settings: {
|
|
@@ -131,10 +150,12 @@ var reactPluginConfig = {
|
|
|
131
150
|
|
|
132
151
|
// src/plugins/vuePlugin.ts
|
|
133
152
|
import vuePlugin from "eslint-plugin-vue";
|
|
134
|
-
var vuePluginConfig =
|
|
135
|
-
...vuePlugin.configs
|
|
136
|
-
|
|
137
|
-
|
|
153
|
+
var vuePluginConfig = [
|
|
154
|
+
...vuePlugin.configs["flat/recommended"],
|
|
155
|
+
{
|
|
156
|
+
name: "commencis/plugin:vue"
|
|
157
|
+
}
|
|
158
|
+
];
|
|
138
159
|
|
|
139
160
|
// src/configs/base.ts
|
|
140
161
|
var base_default = [
|
|
@@ -183,6 +204,7 @@ var react_default = [
|
|
|
183
204
|
...typescript_default,
|
|
184
205
|
reactPluginConfig,
|
|
185
206
|
reactHooksPluginConfig,
|
|
207
|
+
jsxA11yPluginConfig,
|
|
186
208
|
...prettier_default,
|
|
187
209
|
{ name: "commencis/react" }
|
|
188
210
|
];
|
|
@@ -4,7 +4,9 @@ import tseslint from "typescript-eslint";
|
|
|
4
4
|
// src/rules/typescriptRules.ts
|
|
5
5
|
var typescriptRules = {
|
|
6
6
|
"@typescript-eslint/consistent-type-definitions": "off",
|
|
7
|
-
"@typescript-eslint/no-empty-function": "off"
|
|
7
|
+
"@typescript-eslint/no-empty-function": "off",
|
|
8
|
+
"@typescript-eslint/array-type": "off",
|
|
9
|
+
"@typescript-eslint/explicit-function-return-type": "error"
|
|
8
10
|
};
|
|
9
11
|
|
|
10
12
|
// src/configs/typescript.ts
|
package/dist/configs/vue.d.ts
CHANGED
package/dist/configs/vue.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// src/configs/vue.ts
|
|
2
|
+
import tseslint2 from "typescript-eslint";
|
|
3
|
+
|
|
1
4
|
// src/configs/base.ts
|
|
2
5
|
import globals from "globals";
|
|
3
6
|
import eslint from "@eslint/js";
|
|
@@ -57,13 +60,17 @@ var reactRules = {
|
|
|
57
60
|
// No longer necessary
|
|
58
61
|
// https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint
|
|
59
62
|
"react/jsx-uses-react": "off",
|
|
60
|
-
"react/react-in-jsx-scope": "off"
|
|
63
|
+
"react/react-in-jsx-scope": "off",
|
|
64
|
+
// We are not planning to utilize rules below
|
|
65
|
+
"react/jsx-props-no-spreading": "off"
|
|
61
66
|
};
|
|
62
67
|
|
|
63
68
|
// src/rules/typescriptRules.ts
|
|
64
69
|
var typescriptRules = {
|
|
65
70
|
"@typescript-eslint/consistent-type-definitions": "off",
|
|
66
|
-
"@typescript-eslint/no-empty-function": "off"
|
|
71
|
+
"@typescript-eslint/no-empty-function": "off",
|
|
72
|
+
"@typescript-eslint/array-type": "off",
|
|
73
|
+
"@typescript-eslint/explicit-function-return-type": "error"
|
|
67
74
|
};
|
|
68
75
|
|
|
69
76
|
// src/plugins/importSortPlugin.ts
|
|
@@ -77,13 +84,27 @@ var importSortPluginConfig = {
|
|
|
77
84
|
}
|
|
78
85
|
};
|
|
79
86
|
|
|
80
|
-
// src/plugins/
|
|
81
|
-
import
|
|
87
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
88
|
+
import jsxA11yPlugin from "eslint-plugin-jsx-a11y";
|
|
82
89
|
|
|
83
90
|
// src/constants/index.ts
|
|
84
91
|
var JSX_TSX_FILE_PATTERNS = ["**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}"];
|
|
85
92
|
|
|
93
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
94
|
+
var jsxA11yPluginConfig = {
|
|
95
|
+
name: "commencis/plugin:jsx-a11y",
|
|
96
|
+
files: JSX_TSX_FILE_PATTERNS,
|
|
97
|
+
plugins: {
|
|
98
|
+
"jsx-a11y": jsxA11yPlugin
|
|
99
|
+
},
|
|
100
|
+
languageOptions: { ...jsxA11yPlugin.flatConfigs.recommended.languageOptions },
|
|
101
|
+
rules: {
|
|
102
|
+
...jsxA11yPlugin.flatConfigs.recommended.rules
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
86
106
|
// src/plugins/nextPlugin.ts
|
|
107
|
+
import nextPlugin from "@next/eslint-plugin-next";
|
|
87
108
|
var nextPluginConfig = {
|
|
88
109
|
name: "commencis/plugin:next",
|
|
89
110
|
files: JSX_TSX_FILE_PATTERNS,
|
|
@@ -114,12 +135,13 @@ import reactPlugin from "eslint-plugin-react";
|
|
|
114
135
|
var reactPluginConfig = {
|
|
115
136
|
name: "commencis/plugin:react",
|
|
116
137
|
files: JSX_TSX_FILE_PATTERNS,
|
|
117
|
-
languageOptions: { ...reactPlugin.configs.recommended.languageOptions },
|
|
138
|
+
languageOptions: { ...reactPlugin.configs.flat.recommended.languageOptions },
|
|
118
139
|
plugins: {
|
|
119
140
|
react: reactPlugin
|
|
120
141
|
},
|
|
121
142
|
rules: {
|
|
122
|
-
...reactPlugin.configs.recommended.rules,
|
|
143
|
+
...reactPlugin.configs.flat.recommended.rules,
|
|
144
|
+
...reactPlugin.configs.flat["jsx-runtime"].rules,
|
|
123
145
|
...reactRules
|
|
124
146
|
},
|
|
125
147
|
settings: {
|
|
@@ -131,10 +153,12 @@ var reactPluginConfig = {
|
|
|
131
153
|
|
|
132
154
|
// src/plugins/vuePlugin.ts
|
|
133
155
|
import vuePlugin from "eslint-plugin-vue";
|
|
134
|
-
var vuePluginConfig =
|
|
135
|
-
...vuePlugin.configs
|
|
136
|
-
|
|
137
|
-
|
|
156
|
+
var vuePluginConfig = [
|
|
157
|
+
...vuePlugin.configs["flat/recommended"],
|
|
158
|
+
{
|
|
159
|
+
name: "commencis/plugin:vue"
|
|
160
|
+
}
|
|
161
|
+
];
|
|
138
162
|
|
|
139
163
|
// src/configs/base.ts
|
|
140
164
|
var base_default = [
|
|
@@ -181,8 +205,20 @@ var typescript_default = [
|
|
|
181
205
|
var vue_default = [
|
|
182
206
|
...base_default,
|
|
183
207
|
...typescript_default,
|
|
184
|
-
vuePluginConfig,
|
|
208
|
+
...vuePluginConfig,
|
|
185
209
|
...prettier_default,
|
|
210
|
+
{
|
|
211
|
+
plugins: {
|
|
212
|
+
"typescript-eslint": tseslint2.plugin
|
|
213
|
+
},
|
|
214
|
+
languageOptions: {
|
|
215
|
+
parserOptions: {
|
|
216
|
+
parser: tseslint2.parser,
|
|
217
|
+
extraFileExtensions: [".vue"],
|
|
218
|
+
sourceType: "module"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
},
|
|
186
222
|
{ name: "commencis/vue" }
|
|
187
223
|
];
|
|
188
224
|
export {
|
|
@@ -10,7 +10,7 @@ import { Linter } from 'eslint';
|
|
|
10
10
|
* @see Using plugins in your configuration]
|
|
11
11
|
* (https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration)
|
|
12
12
|
*/
|
|
13
|
-
type FlatConfig = Omit<Linter.
|
|
13
|
+
type FlatConfig = Omit<Linter.Config, 'plugins'> & {
|
|
14
14
|
plugins?: Record<string, unknown>;
|
|
15
15
|
};
|
|
16
16
|
type FlatConfigArray = FlatConfig[];
|
package/dist/index.d.ts
CHANGED
|
@@ -3,10 +3,11 @@ export { default as commencisBaseConfig } from './configs/base.js';
|
|
|
3
3
|
export { default as commencisNextConfig } from './configs/next.js';
|
|
4
4
|
export { default as commencisPrettierConfig } from './configs/prettier.js';
|
|
5
5
|
export { default as commencisReactConfig } from './configs/react.js';
|
|
6
|
+
export { default as commencisReactNativeConfig } from './configs/react-native.js';
|
|
6
7
|
export { default as commencisTypescriptConfig } from './configs/typescript.js';
|
|
7
8
|
export { default as commencisVueConfig } from './configs/vue.js';
|
|
8
9
|
import 'eslint';
|
|
9
|
-
import './flatConfig-
|
|
10
|
+
import './flatConfig-Cm6wkwA_.js';
|
|
10
11
|
|
|
11
12
|
declare const defineConfig: typeof typescript_eslint.config;
|
|
12
13
|
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
import
|
|
2
|
+
import tseslint3 from "typescript-eslint";
|
|
3
3
|
|
|
4
4
|
// src/configs/base.ts
|
|
5
5
|
import globals from "globals";
|
|
@@ -60,13 +60,17 @@ var reactRules = {
|
|
|
60
60
|
// No longer necessary
|
|
61
61
|
// https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint
|
|
62
62
|
"react/jsx-uses-react": "off",
|
|
63
|
-
"react/react-in-jsx-scope": "off"
|
|
63
|
+
"react/react-in-jsx-scope": "off",
|
|
64
|
+
// We are not planning to utilize rules below
|
|
65
|
+
"react/jsx-props-no-spreading": "off"
|
|
64
66
|
};
|
|
65
67
|
|
|
66
68
|
// src/rules/typescriptRules.ts
|
|
67
69
|
var typescriptRules = {
|
|
68
70
|
"@typescript-eslint/consistent-type-definitions": "off",
|
|
69
|
-
"@typescript-eslint/no-empty-function": "off"
|
|
71
|
+
"@typescript-eslint/no-empty-function": "off",
|
|
72
|
+
"@typescript-eslint/array-type": "off",
|
|
73
|
+
"@typescript-eslint/explicit-function-return-type": "error"
|
|
70
74
|
};
|
|
71
75
|
|
|
72
76
|
// src/plugins/importSortPlugin.ts
|
|
@@ -80,13 +84,27 @@ var importSortPluginConfig = {
|
|
|
80
84
|
}
|
|
81
85
|
};
|
|
82
86
|
|
|
83
|
-
// src/plugins/
|
|
84
|
-
import
|
|
87
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
88
|
+
import jsxA11yPlugin from "eslint-plugin-jsx-a11y";
|
|
85
89
|
|
|
86
90
|
// src/constants/index.ts
|
|
87
91
|
var JSX_TSX_FILE_PATTERNS = ["**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}"];
|
|
88
92
|
|
|
93
|
+
// src/plugins/jsxA11yPlugin.ts
|
|
94
|
+
var jsxA11yPluginConfig = {
|
|
95
|
+
name: "commencis/plugin:jsx-a11y",
|
|
96
|
+
files: JSX_TSX_FILE_PATTERNS,
|
|
97
|
+
plugins: {
|
|
98
|
+
"jsx-a11y": jsxA11yPlugin
|
|
99
|
+
},
|
|
100
|
+
languageOptions: { ...jsxA11yPlugin.flatConfigs.recommended.languageOptions },
|
|
101
|
+
rules: {
|
|
102
|
+
...jsxA11yPlugin.flatConfigs.recommended.rules
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
89
106
|
// src/plugins/nextPlugin.ts
|
|
107
|
+
import nextPlugin from "@next/eslint-plugin-next";
|
|
90
108
|
var nextPluginConfig = {
|
|
91
109
|
name: "commencis/plugin:next",
|
|
92
110
|
files: JSX_TSX_FILE_PATTERNS,
|
|
@@ -117,12 +135,13 @@ import reactPlugin from "eslint-plugin-react";
|
|
|
117
135
|
var reactPluginConfig = {
|
|
118
136
|
name: "commencis/plugin:react",
|
|
119
137
|
files: JSX_TSX_FILE_PATTERNS,
|
|
120
|
-
languageOptions: { ...reactPlugin.configs.recommended.languageOptions },
|
|
138
|
+
languageOptions: { ...reactPlugin.configs.flat.recommended.languageOptions },
|
|
121
139
|
plugins: {
|
|
122
140
|
react: reactPlugin
|
|
123
141
|
},
|
|
124
142
|
rules: {
|
|
125
|
-
...reactPlugin.configs.recommended.rules,
|
|
143
|
+
...reactPlugin.configs.flat.recommended.rules,
|
|
144
|
+
...reactPlugin.configs.flat["jsx-runtime"].rules,
|
|
126
145
|
...reactRules
|
|
127
146
|
},
|
|
128
147
|
settings: {
|
|
@@ -134,10 +153,12 @@ var reactPluginConfig = {
|
|
|
134
153
|
|
|
135
154
|
// src/plugins/vuePlugin.ts
|
|
136
155
|
import vuePlugin from "eslint-plugin-vue";
|
|
137
|
-
var vuePluginConfig =
|
|
138
|
-
...vuePlugin.configs
|
|
139
|
-
|
|
140
|
-
|
|
156
|
+
var vuePluginConfig = [
|
|
157
|
+
...vuePlugin.configs["flat/recommended"],
|
|
158
|
+
{
|
|
159
|
+
name: "commencis/plugin:vue"
|
|
160
|
+
}
|
|
161
|
+
];
|
|
141
162
|
|
|
142
163
|
// src/configs/base.ts
|
|
143
164
|
var base_default = [
|
|
@@ -186,6 +207,7 @@ var next_default = [
|
|
|
186
207
|
...typescript_default,
|
|
187
208
|
reactPluginConfig,
|
|
188
209
|
reactHooksPluginConfig,
|
|
210
|
+
jsxA11yPluginConfig,
|
|
189
211
|
nextPluginConfig,
|
|
190
212
|
...prettier_default,
|
|
191
213
|
{ name: "commencis/next" }
|
|
@@ -197,26 +219,52 @@ var react_default = [
|
|
|
197
219
|
...typescript_default,
|
|
198
220
|
reactPluginConfig,
|
|
199
221
|
reactHooksPluginConfig,
|
|
222
|
+
jsxA11yPluginConfig,
|
|
200
223
|
...prettier_default,
|
|
201
224
|
{ name: "commencis/react" }
|
|
202
225
|
];
|
|
203
226
|
|
|
227
|
+
// src/configs/react-native.ts
|
|
228
|
+
var react_native_default = [
|
|
229
|
+
...base_default,
|
|
230
|
+
...typescript_default,
|
|
231
|
+
reactPluginConfig,
|
|
232
|
+
reactHooksPluginConfig,
|
|
233
|
+
jsxA11yPluginConfig,
|
|
234
|
+
...prettier_default,
|
|
235
|
+
{ name: "commencis/react-native" }
|
|
236
|
+
];
|
|
237
|
+
|
|
204
238
|
// src/configs/vue.ts
|
|
239
|
+
import tseslint2 from "typescript-eslint";
|
|
205
240
|
var vue_default = [
|
|
206
241
|
...base_default,
|
|
207
242
|
...typescript_default,
|
|
208
|
-
vuePluginConfig,
|
|
243
|
+
...vuePluginConfig,
|
|
209
244
|
...prettier_default,
|
|
245
|
+
{
|
|
246
|
+
plugins: {
|
|
247
|
+
"typescript-eslint": tseslint2.plugin
|
|
248
|
+
},
|
|
249
|
+
languageOptions: {
|
|
250
|
+
parserOptions: {
|
|
251
|
+
parser: tseslint2.parser,
|
|
252
|
+
extraFileExtensions: [".vue"],
|
|
253
|
+
sourceType: "module"
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
},
|
|
210
257
|
{ name: "commencis/vue" }
|
|
211
258
|
];
|
|
212
259
|
|
|
213
260
|
// src/index.ts
|
|
214
|
-
var defineConfig =
|
|
261
|
+
var defineConfig = tseslint3.config;
|
|
215
262
|
export {
|
|
216
263
|
base_default as commencisBaseConfig,
|
|
217
264
|
next_default as commencisNextConfig,
|
|
218
265
|
prettier_default as commencisPrettierConfig,
|
|
219
266
|
react_default as commencisReactConfig,
|
|
267
|
+
react_native_default as commencisReactNativeConfig,
|
|
220
268
|
typescript_default as commencisTypescriptConfig,
|
|
221
269
|
vue_default as commencisVueConfig,
|
|
222
270
|
defineConfig
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commencis/eslint-config",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Commencis ESLint config",
|
|
5
5
|
"author": "Commencis WEB Team",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"type": "module",
|
|
8
|
-
"homepage": "https://github.com/Commencis/js-toolkit/packages/eslint-config#readme",
|
|
8
|
+
"homepage": "https://github.com/Commencis/js-toolkit/tree/main/packages/eslint-config#readme",
|
|
9
9
|
"bugs": {
|
|
10
10
|
"url": "https://github.com/Commencis/js-toolkit/issues"
|
|
11
11
|
},
|
|
@@ -25,56 +25,60 @@
|
|
|
25
25
|
],
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|
|
28
|
-
"
|
|
29
|
-
"
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"import": "./dist/index.js"
|
|
30
30
|
},
|
|
31
31
|
"./base": {
|
|
32
|
-
"
|
|
33
|
-
"
|
|
32
|
+
"types": "./dist/configs/base.d.ts",
|
|
33
|
+
"import": "./dist/configs/base.js"
|
|
34
34
|
},
|
|
35
35
|
"./next": {
|
|
36
|
-
"
|
|
37
|
-
"
|
|
36
|
+
"types": "./dist/configs/next.d.ts",
|
|
37
|
+
"import": "./dist/configs/next.js"
|
|
38
38
|
},
|
|
39
39
|
"./prettier": {
|
|
40
|
-
"
|
|
41
|
-
"
|
|
40
|
+
"types": "./dist/configs/prettier.d.ts",
|
|
41
|
+
"import": "./dist/configs/prettier.js"
|
|
42
42
|
},
|
|
43
43
|
"./react": {
|
|
44
|
-
"
|
|
45
|
-
"
|
|
44
|
+
"types": "./dist/configs/react.d.ts",
|
|
45
|
+
"import": "./dist/configs/react.js"
|
|
46
|
+
},
|
|
47
|
+
"./react-native": {
|
|
48
|
+
"types": "./dist/configs/react-native.d.ts",
|
|
49
|
+
"import": "./dist/configs/react-native.js"
|
|
46
50
|
},
|
|
47
51
|
"./typescript": {
|
|
48
|
-
"
|
|
49
|
-
"
|
|
52
|
+
"types": "./dist/configs/typescript.d.ts",
|
|
53
|
+
"import": "./dist/configs/typescript.js"
|
|
50
54
|
},
|
|
51
55
|
"./vue": {
|
|
52
|
-
"
|
|
53
|
-
"
|
|
56
|
+
"types": "./dist/configs/vue.d.ts",
|
|
57
|
+
"import": "./dist/configs/vue.js"
|
|
54
58
|
}
|
|
55
59
|
},
|
|
56
60
|
"dependencies": {
|
|
57
|
-
"@eslint/js": "9.
|
|
58
|
-
"@next/eslint-plugin-next": "14.2.
|
|
59
|
-
"@typescript-eslint/utils": "8.
|
|
61
|
+
"@eslint/js": "9.12.0",
|
|
62
|
+
"@next/eslint-plugin-next": "14.2.15",
|
|
63
|
+
"@typescript-eslint/utils": "8.8.1",
|
|
60
64
|
"eslint-config-prettier": "9.1.0",
|
|
61
|
-
"eslint-plugin-jsx-a11y": "6.
|
|
62
|
-
"eslint-plugin-prettier": "5.1
|
|
63
|
-
"eslint-plugin-react": "7.
|
|
65
|
+
"eslint-plugin-jsx-a11y": "6.10.0",
|
|
66
|
+
"eslint-plugin-prettier": "5.2.1",
|
|
67
|
+
"eslint-plugin-react": "7.37.1",
|
|
64
68
|
"eslint-plugin-react-hooks": "4.6.2",
|
|
65
|
-
"eslint-plugin-simple-import-sort": "12.1.
|
|
66
|
-
"eslint-plugin-vue": "9.
|
|
67
|
-
"globals": "15.
|
|
68
|
-
"typescript-eslint": "8.
|
|
69
|
+
"eslint-plugin-simple-import-sort": "12.1.1",
|
|
70
|
+
"eslint-plugin-vue": "9.28.0",
|
|
71
|
+
"globals": "15.11.0",
|
|
72
|
+
"typescript-eslint": "8.8.1"
|
|
69
73
|
},
|
|
70
74
|
"devDependencies": {
|
|
71
75
|
"@types/eslint__js": "8.42.3",
|
|
72
|
-
"tsup": "8.
|
|
73
|
-
"typescript": "5.
|
|
76
|
+
"tsup": "8.3.0",
|
|
77
|
+
"typescript": "5.6.3",
|
|
74
78
|
"@commencis/ts-config": "0.0.1"
|
|
75
79
|
},
|
|
76
80
|
"peerDependencies": {
|
|
77
|
-
"eslint": ">= 9"
|
|
81
|
+
"eslint": ">= 9.7"
|
|
78
82
|
},
|
|
79
83
|
"scripts": {
|
|
80
84
|
"dev": "tsup --watch",
|