@docyrus/rules 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/eslint/ai.d.ts +1 -1
- package/dist/eslint/ai.d.ts.map +1 -1
- package/dist/eslint/ai.js +4 -4
- package/dist/eslint/base.d.ts +1 -1
- package/dist/eslint/base.d.ts.map +1 -1
- package/dist/eslint/base.js +99 -56
- package/dist/eslint/expo.d.ts +1 -1
- package/dist/eslint/expo.d.ts.map +1 -1
- package/dist/eslint/expo.js +10 -8
- package/dist/eslint/nextjs.d.ts +1 -1
- package/dist/eslint/nextjs.d.ts.map +1 -1
- package/dist/eslint/nextjs.js +6 -9
- package/dist/eslint/react.d.ts +1 -1
- package/dist/eslint/react.d.ts.map +1 -1
- package/dist/eslint/react.js +6 -6
- package/package.json +25 -21
package/dist/eslint/ai.d.ts
CHANGED
package/dist/eslint/ai.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/eslint/ai.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/eslint/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIlD,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAWnC,CAAC"}
|
package/dist/eslint/ai.js
CHANGED
|
@@ -3,11 +3,11 @@ export const aiConfig = [
|
|
|
3
3
|
{
|
|
4
4
|
files: ['**/*.{ts,tsx,js,jsx}'],
|
|
5
5
|
plugins: {
|
|
6
|
-
'vercel-ai-security': vercelAiPlugin.plugin
|
|
6
|
+
'vercel-ai-security': vercelAiPlugin.plugin
|
|
7
7
|
},
|
|
8
8
|
rules: {
|
|
9
9
|
// ─── Vercel AI Security (recommended) ───
|
|
10
|
-
...vercelAiPlugin.configs.recommended.rules
|
|
11
|
-
}
|
|
12
|
-
}
|
|
10
|
+
...vercelAiPlugin.configs.recommended.rules
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
13
|
];
|
package/dist/eslint/base.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/eslint/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/eslint/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAoBlD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAkUrC,CAAC"}
|
package/dist/eslint/base.js
CHANGED
|
@@ -12,7 +12,7 @@ const customized = stylisticPlugin.configs.customize({
|
|
|
12
12
|
braceStyle: '1tbs',
|
|
13
13
|
blockSpacing: true,
|
|
14
14
|
quoteProps: 'as-needed',
|
|
15
|
-
commaDangle: 'always-multiline'
|
|
15
|
+
commaDangle: 'always-multiline'
|
|
16
16
|
});
|
|
17
17
|
export const baseConfig = [
|
|
18
18
|
{
|
|
@@ -23,8 +23,8 @@ export const baseConfig = [
|
|
|
23
23
|
'**/coverage/**',
|
|
24
24
|
'**/.history/**',
|
|
25
25
|
'**/.turbo/**',
|
|
26
|
-
'**/scripts/**'
|
|
27
|
-
]
|
|
26
|
+
'**/scripts/**'
|
|
27
|
+
]
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
files: ['**/*.{ts,tsx,mjs,js,jsx}'],
|
|
@@ -34,18 +34,18 @@ export const baseConfig = [
|
|
|
34
34
|
ecmaVersion: 'latest',
|
|
35
35
|
sourceType: 'module',
|
|
36
36
|
ecmaFeatures: {
|
|
37
|
-
jsx: true
|
|
38
|
-
}
|
|
37
|
+
jsx: true
|
|
38
|
+
}
|
|
39
39
|
},
|
|
40
40
|
globals: {
|
|
41
|
-
__DEV__: 'readonly'
|
|
42
|
-
}
|
|
41
|
+
__DEV__: 'readonly'
|
|
42
|
+
}
|
|
43
43
|
},
|
|
44
44
|
plugins: {
|
|
45
45
|
'@stylistic': stylisticPlugin,
|
|
46
46
|
'@typescript-eslint': typescriptPlugin,
|
|
47
47
|
'unused-imports': unusedPlugin,
|
|
48
|
-
'import-x': importPlugin
|
|
48
|
+
'import-x': importPlugin
|
|
49
49
|
},
|
|
50
50
|
settings: {
|
|
51
51
|
'import-x/extensions': [
|
|
@@ -56,7 +56,7 @@ export const baseConfig = [
|
|
|
56
56
|
'.mjs',
|
|
57
57
|
'.mts',
|
|
58
58
|
'.cts',
|
|
59
|
-
'.cjs'
|
|
59
|
+
'.cjs'
|
|
60
60
|
],
|
|
61
61
|
'import-x/resolver': {
|
|
62
62
|
node: {
|
|
@@ -68,10 +68,10 @@ export const baseConfig = [
|
|
|
68
68
|
'.mjs',
|
|
69
69
|
'.mts',
|
|
70
70
|
'.cts',
|
|
71
|
-
'.cjs'
|
|
72
|
-
]
|
|
73
|
-
}
|
|
74
|
-
}
|
|
71
|
+
'.cjs'
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
75
|
},
|
|
76
76
|
rules: {
|
|
77
77
|
// ─── Stylistic (base from customize) ───
|
|
@@ -91,11 +91,15 @@ export const baseConfig = [
|
|
|
91
91
|
outerIIFEBody: 0,
|
|
92
92
|
ArrayExpression: 1,
|
|
93
93
|
ObjectExpression: 1,
|
|
94
|
-
offsetTernaryExpressions: true
|
|
95
|
-
}
|
|
94
|
+
offsetTernaryExpressions: true
|
|
95
|
+
}
|
|
96
96
|
],
|
|
97
97
|
'@stylistic/comma-dangle': ['error', 'never'],
|
|
98
|
-
'@stylistic/lines-between-class-members': [
|
|
98
|
+
'@stylistic/lines-between-class-members': [
|
|
99
|
+
'error',
|
|
100
|
+
'always',
|
|
101
|
+
{ exceptAfterSingleLine: false }
|
|
102
|
+
],
|
|
99
103
|
'@stylistic/jsx-closing-bracket-location': ['error', 'after-props'],
|
|
100
104
|
'@stylistic/jsx-indent-props': ['error', 2],
|
|
101
105
|
'@stylistic/jsx-quotes': ['error', 'prefer-double'],
|
|
@@ -115,8 +119,8 @@ export const baseConfig = [
|
|
|
115
119
|
closingSlash: 'never',
|
|
116
120
|
beforeSelfClosing: 'always',
|
|
117
121
|
afterOpening: 'never',
|
|
118
|
-
beforeClosing: 'never'
|
|
119
|
-
}
|
|
122
|
+
beforeClosing: 'never'
|
|
123
|
+
}
|
|
120
124
|
],
|
|
121
125
|
'@stylistic/jsx-wrap-multilines': 'off',
|
|
122
126
|
'@stylistic/jsx-curly-newline': ['error', { multiline: 'consistent', singleline: 'forbid' }],
|
|
@@ -129,9 +133,9 @@ export const baseConfig = [
|
|
|
129
133
|
Property: true,
|
|
130
134
|
BinaryExpression: true,
|
|
131
135
|
VariableDeclarator: false,
|
|
132
|
-
ImportDeclaration: false
|
|
133
|
-
}
|
|
134
|
-
}
|
|
136
|
+
ImportDeclaration: false
|
|
137
|
+
}
|
|
138
|
+
}
|
|
135
139
|
],
|
|
136
140
|
'@stylistic/linebreak-style': ['error', 'unix'],
|
|
137
141
|
'@stylistic/max-len': [
|
|
@@ -143,33 +147,57 @@ export const baseConfig = [
|
|
|
143
147
|
ignoreComments: false,
|
|
144
148
|
ignoreRegExpLiterals: true,
|
|
145
149
|
ignoreStrings: true,
|
|
146
|
-
ignoreTemplateLiterals: true
|
|
147
|
-
}
|
|
150
|
+
ignoreTemplateLiterals: true
|
|
151
|
+
}
|
|
148
152
|
],
|
|
149
153
|
'@stylistic/member-delimiter-style': [
|
|
150
154
|
'error',
|
|
151
155
|
{
|
|
152
156
|
multiline: { delimiter: 'semi', requireLast: true },
|
|
153
|
-
singleline: { delimiter: 'semi', requireLast: false }
|
|
154
|
-
}
|
|
157
|
+
singleline: { delimiter: 'semi', requireLast: false }
|
|
158
|
+
}
|
|
155
159
|
],
|
|
156
160
|
'@stylistic/no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0 }],
|
|
157
161
|
'@stylistic/no-trailing-spaces': 'error',
|
|
158
162
|
'@stylistic/padding-line-between-statements': [
|
|
159
163
|
'error',
|
|
160
164
|
{ blankLine: 'always', prev: '*', next: 'return' },
|
|
161
|
-
{ blankLine: 'always', prev: [
|
|
162
|
-
|
|
165
|
+
{ blankLine: 'always', prev: [
|
|
166
|
+
'const',
|
|
167
|
+
'let',
|
|
168
|
+
'var'
|
|
169
|
+
], next: '*' },
|
|
170
|
+
{ blankLine: 'any', prev: [
|
|
171
|
+
'const',
|
|
172
|
+
'let',
|
|
173
|
+
'var'
|
|
174
|
+
], next: [
|
|
175
|
+
'const',
|
|
176
|
+
'let',
|
|
177
|
+
'var'
|
|
178
|
+
] },
|
|
163
179
|
{ blankLine: 'always', prev: 'directive', next: '*' },
|
|
164
180
|
{ blankLine: 'any', prev: 'directive', next: 'directive' },
|
|
165
|
-
{ blankLine: 'always', prev: ['case', 'default'], next: '*' }
|
|
181
|
+
{ blankLine: 'always', prev: ['case', 'default'], next: '*' }
|
|
166
182
|
],
|
|
167
183
|
'@stylistic/array-bracket-newline': ['error', { multiline: true, minItems: 4 }],
|
|
168
|
-
'@stylistic/array-bracket-spacing': [
|
|
184
|
+
'@stylistic/array-bracket-spacing': [
|
|
185
|
+
'error',
|
|
186
|
+
'never',
|
|
187
|
+
{ singleValue: false, arraysInArrays: false, objectsInArrays: false }
|
|
188
|
+
],
|
|
169
189
|
'@stylistic/array-element-newline': ['error', { consistent: false, multiline: true, minItems: 4 }],
|
|
170
|
-
'@stylistic/arrow-parens': [
|
|
190
|
+
'@stylistic/arrow-parens': [
|
|
191
|
+
'error',
|
|
192
|
+
'as-needed',
|
|
193
|
+
{ requireForBlockBody: true }
|
|
194
|
+
],
|
|
171
195
|
'@stylistic/block-spacing': 'error',
|
|
172
|
-
'@stylistic/brace-style': [
|
|
196
|
+
'@stylistic/brace-style': [
|
|
197
|
+
'error',
|
|
198
|
+
'1tbs',
|
|
199
|
+
{ allowSingleLine: true }
|
|
200
|
+
],
|
|
173
201
|
'@stylistic/comma-spacing': ['error', { before: false, after: true }],
|
|
174
202
|
'@stylistic/comma-style': ['error', 'last'],
|
|
175
203
|
'@stylistic/computed-property-spacing': ['error', 'never'],
|
|
@@ -177,11 +205,19 @@ export const baseConfig = [
|
|
|
177
205
|
'@stylistic/function-paren-newline': ['error', 'multiline-arguments'],
|
|
178
206
|
'@stylistic/implicit-arrow-linebreak': ['error', 'beside'],
|
|
179
207
|
'@stylistic/quote-props': ['error', 'as-needed'],
|
|
180
|
-
'@stylistic/quotes': [
|
|
208
|
+
'@stylistic/quotes': [
|
|
209
|
+
'error',
|
|
210
|
+
'single',
|
|
211
|
+
{ avoidEscape: true, allowTemplateLiterals: 'always' }
|
|
212
|
+
],
|
|
181
213
|
'@stylistic/semi': ['error', 'always'],
|
|
182
214
|
'@stylistic/semi-spacing': ['error', { before: false, after: true }],
|
|
183
215
|
'@stylistic/object-curly-newline': ['error', { consistent: true, minProperties: 4 }],
|
|
184
|
-
'@stylistic/object-curly-spacing': [
|
|
216
|
+
'@stylistic/object-curly-spacing': [
|
|
217
|
+
'error',
|
|
218
|
+
'always',
|
|
219
|
+
{ objectsInObjects: true, arraysInObjects: true }
|
|
220
|
+
],
|
|
185
221
|
'@stylistic/space-before-blocks': 'error',
|
|
186
222
|
'@stylistic/multiline-ternary': ['error', 'never'],
|
|
187
223
|
'@stylistic/multiline-comment-style': ['error', 'starred-block'],
|
|
@@ -190,8 +226,8 @@ export const baseConfig = [
|
|
|
190
226
|
{
|
|
191
227
|
anonymous: 'always',
|
|
192
228
|
named: 'never',
|
|
193
|
-
asyncArrow: 'always'
|
|
194
|
-
}
|
|
229
|
+
asyncArrow: 'always'
|
|
230
|
+
}
|
|
195
231
|
],
|
|
196
232
|
'@stylistic/space-in-parens': ['error', 'never'],
|
|
197
233
|
'@stylistic/space-infix-ops': 'error',
|
|
@@ -207,10 +243,13 @@ export const baseConfig = [
|
|
|
207
243
|
'@typescript-eslint/no-non-null-assertion': 'warn',
|
|
208
244
|
'@typescript-eslint/no-empty-interface': 'warn',
|
|
209
245
|
'@typescript-eslint/ban-ts-comment': 'warn',
|
|
210
|
-
'@typescript-eslint/consistent-type-imports': [
|
|
246
|
+
'@typescript-eslint/consistent-type-imports': [
|
|
247
|
+
'error',
|
|
248
|
+
{
|
|
211
249
|
prefer: 'type-imports',
|
|
212
|
-
disallowTypeAnnotations: true
|
|
213
|
-
}
|
|
250
|
+
disallowTypeAnnotations: true
|
|
251
|
+
}
|
|
252
|
+
],
|
|
214
253
|
// ─── Unused imports ───
|
|
215
254
|
'unused-imports/no-unused-imports': 'error',
|
|
216
255
|
'unused-imports/no-unused-vars': [
|
|
@@ -220,8 +259,8 @@ export const baseConfig = [
|
|
|
220
259
|
varsIgnorePattern: '^_',
|
|
221
260
|
args: 'after-used',
|
|
222
261
|
argsIgnorePattern: '^_',
|
|
223
|
-
caughtErrorsIgnorePattern: '^_'
|
|
224
|
-
}
|
|
262
|
+
caughtErrorsIgnorePattern: '^_'
|
|
263
|
+
}
|
|
225
264
|
],
|
|
226
265
|
// ─── Import ordering ───
|
|
227
266
|
'import-x/order': [
|
|
@@ -232,15 +271,12 @@ export const baseConfig = [
|
|
|
232
271
|
'builtin',
|
|
233
272
|
'external',
|
|
234
273
|
'internal',
|
|
235
|
-
['sibling', 'parent']
|
|
274
|
+
['sibling', 'parent']
|
|
236
275
|
],
|
|
237
276
|
'newlines-between': 'always-and-inside-groups',
|
|
238
|
-
pathGroups: [
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
],
|
|
242
|
-
pathGroupsExcludedImportTypes: ['react'],
|
|
243
|
-
},
|
|
277
|
+
pathGroups: [{ pattern: 'react', group: 'type', position: 'before' }, { pattern: 'react', group: 'builtin', position: 'before' }],
|
|
278
|
+
pathGroupsExcludedImportTypes: ['react']
|
|
279
|
+
}
|
|
244
280
|
],
|
|
245
281
|
'import-x/consistent-type-specifier-style': ['error', 'prefer-inline'],
|
|
246
282
|
'import-x/no-duplicates': ['error', { 'prefer-inline': true }],
|
|
@@ -253,13 +289,20 @@ export const baseConfig = [
|
|
|
253
289
|
allowArrowFunction: true,
|
|
254
290
|
allowCallExpression: true,
|
|
255
291
|
allowLiteral: false,
|
|
256
|
-
allowObject: true
|
|
257
|
-
}
|
|
292
|
+
allowObject: true
|
|
293
|
+
}
|
|
258
294
|
],
|
|
259
295
|
'import-x/no-dynamic-require': 'error',
|
|
260
296
|
'import-x/prefer-default-export': 'off',
|
|
261
297
|
// ─── General rules ───
|
|
262
|
-
'no-console': [
|
|
298
|
+
'no-console': [
|
|
299
|
+
'warn',
|
|
300
|
+
{ allow: [
|
|
301
|
+
'warn',
|
|
302
|
+
'error',
|
|
303
|
+
'info'
|
|
304
|
+
] }
|
|
305
|
+
],
|
|
263
306
|
'no-debugger': 'error',
|
|
264
307
|
'no-alert': 'error',
|
|
265
308
|
'prefer-const': 'error',
|
|
@@ -279,13 +322,13 @@ export const baseConfig = [
|
|
|
279
322
|
'error',
|
|
280
323
|
{
|
|
281
324
|
selector: 'ForInStatement',
|
|
282
|
-
message: 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.'
|
|
325
|
+
message: 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.'
|
|
283
326
|
},
|
|
284
327
|
{
|
|
285
328
|
selector: 'WithStatement',
|
|
286
|
-
message: '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.'
|
|
287
|
-
}
|
|
288
|
-
]
|
|
289
|
-
}
|
|
290
|
-
}
|
|
329
|
+
message: '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.'
|
|
330
|
+
}
|
|
331
|
+
]
|
|
332
|
+
}
|
|
333
|
+
}
|
|
291
334
|
];
|
package/dist/eslint/expo.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expo.d.ts","sourceRoot":"","sources":["../../src/eslint/expo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expo.d.ts","sourceRoot":"","sources":["../../src/eslint/expo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAkClD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAuBrC,CAAC"}
|
package/dist/eslint/expo.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import expoEslint from 'eslint-config-expo/flat.js';
|
|
2
2
|
import reactNativePlugin from 'eslint-plugin-react-native';
|
|
3
|
-
const pluginsToFilter = [
|
|
3
|
+
const pluginsToFilter = [
|
|
4
|
+
'import',
|
|
5
|
+
'react-hooks',
|
|
6
|
+
'react'
|
|
7
|
+
];
|
|
4
8
|
const filteredExpoConfig = expoEslint.map((config) => {
|
|
5
9
|
if (!config.plugins) {
|
|
6
10
|
return config;
|
|
@@ -20,15 +24,13 @@ const filteredExpoConfig = expoEslint.map((config) => {
|
|
|
20
24
|
});
|
|
21
25
|
export const expoConfig = [
|
|
22
26
|
{
|
|
23
|
-
ignores: [
|
|
24
|
-
'**/.expo/**',
|
|
25
|
-
],
|
|
27
|
+
ignores: ['**/.expo/**']
|
|
26
28
|
},
|
|
27
29
|
...filteredExpoConfig,
|
|
28
30
|
{
|
|
29
31
|
files: ['**/*.{ts,tsx,js,jsx}'],
|
|
30
32
|
plugins: {
|
|
31
|
-
'react-native': reactNativePlugin
|
|
33
|
+
'react-native': reactNativePlugin
|
|
32
34
|
},
|
|
33
35
|
rules: {
|
|
34
36
|
// ─── Expo overrides ───
|
|
@@ -39,7 +41,7 @@ export const expoConfig = [
|
|
|
39
41
|
'react-native/no-inline-styles': 'off',
|
|
40
42
|
'react-native/no-color-literals': 'off',
|
|
41
43
|
'react-native/no-raw-text': 'off',
|
|
42
|
-
'react-native/no-single-element-style-arrays': 'warn'
|
|
43
|
-
}
|
|
44
|
-
}
|
|
44
|
+
'react-native/no-single-element-style-arrays': 'warn'
|
|
45
|
+
}
|
|
46
|
+
}
|
|
45
47
|
];
|
package/dist/eslint/nextjs.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nextjs.d.ts","sourceRoot":"","sources":["../../src/eslint/nextjs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nextjs.d.ts","sourceRoot":"","sources":["../../src/eslint/nextjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKlD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAwBvC,CAAC"}
|
package/dist/eslint/nextjs.js
CHANGED
|
@@ -6,24 +6,21 @@ export const nextjsConfig = [
|
|
|
6
6
|
'**/.next/**',
|
|
7
7
|
'**/.open-next/**',
|
|
8
8
|
'**/next-env.d.ts',
|
|
9
|
-
'**/src/components/ui/**'
|
|
10
|
-
]
|
|
9
|
+
'**/src/components/ui/**'
|
|
10
|
+
]
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
files: ['**/*.{ts,tsx,js,jsx}'],
|
|
14
14
|
plugins: {
|
|
15
15
|
'@next/next': nextPlugin,
|
|
16
|
-
'react-refresh': reactRefreshPlugin
|
|
16
|
+
'react-refresh': reactRefreshPlugin
|
|
17
17
|
},
|
|
18
18
|
rules: {
|
|
19
19
|
// ─── Next.js recommended + core-web-vitals ───
|
|
20
20
|
...nextPlugin.configs.recommended.rules,
|
|
21
21
|
...nextPlugin.configs['core-web-vitals'].rules,
|
|
22
22
|
// ─── React Refresh ───
|
|
23
|
-
'react-refresh/only-export-components': [
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
],
|
|
27
|
-
},
|
|
28
|
-
},
|
|
23
|
+
'react-refresh/only-export-components': ['warn', { allowConstantExport: true }]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
29
26
|
];
|
package/dist/eslint/react.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/eslint/react.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/eslint/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKlD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAqCtC,CAAC"}
|
package/dist/eslint/react.js
CHANGED
|
@@ -5,12 +5,12 @@ export const reactConfig = [
|
|
|
5
5
|
files: ['**/*.{ts,tsx,js,jsx}'],
|
|
6
6
|
plugins: {
|
|
7
7
|
react: reactPlugin,
|
|
8
|
-
'react-hooks': reactHooksPlugin
|
|
8
|
+
'react-hooks': reactHooksPlugin
|
|
9
9
|
},
|
|
10
10
|
settings: {
|
|
11
11
|
react: {
|
|
12
|
-
version: 'detect'
|
|
13
|
-
}
|
|
12
|
+
version: 'detect'
|
|
13
|
+
}
|
|
14
14
|
},
|
|
15
15
|
rules: {
|
|
16
16
|
// ─── React rules ───
|
|
@@ -33,7 +33,7 @@ export const reactConfig = [
|
|
|
33
33
|
'react/no-array-index-key': 'warn',
|
|
34
34
|
// ─── React Hooks rules ───
|
|
35
35
|
'react-hooks/rules-of-hooks': 'error',
|
|
36
|
-
'react-hooks/exhaustive-deps': 'error'
|
|
37
|
-
}
|
|
38
|
-
}
|
|
36
|
+
'react-hooks/exhaustive-deps': 'error'
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
39
|
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docyrus/rules",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/Docyrus/docyrus-devkit.git",
|
|
7
|
+
"directory": "packages/rules"
|
|
8
|
+
},
|
|
4
9
|
"description": "Shared ESLint and Biome configurations for Docyrus projects",
|
|
5
10
|
"type": "module",
|
|
6
11
|
"exports": {
|
|
@@ -40,27 +45,30 @@
|
|
|
40
45
|
"build": "tsc && cp -r src/biome dist/biome",
|
|
41
46
|
"clean": "rm -rf dist",
|
|
42
47
|
"verify": "node --input-type=module -e \"import { baseConfig, reactConfig, nextjsConfig, expoConfig, aiConfig } from '@docyrus/rules/eslint'; console.log('All exports OK');\"",
|
|
48
|
+
"lint": "eslint src",
|
|
49
|
+
"format": "eslint src --fix",
|
|
50
|
+
"typecheck": "eslint src && tsc --noEmit",
|
|
43
51
|
"prepublishOnly": "pnpm run clean && pnpm run build"
|
|
44
52
|
},
|
|
45
53
|
"dependencies": {
|
|
46
|
-
"@next/eslint-plugin-next": "
|
|
47
|
-
"@stylistic/eslint-plugin": "
|
|
48
|
-
"@typescript-eslint/eslint-plugin": "
|
|
49
|
-
"@typescript-eslint/parser": "
|
|
50
|
-
"enhanced-resolve": "
|
|
51
|
-
"eslint-config-expo": "
|
|
52
|
-
"eslint-import-resolver-typescript": "
|
|
53
|
-
"eslint-plugin-import-x": "
|
|
54
|
-
"eslint-plugin-react": "
|
|
55
|
-
"eslint-plugin-react-hooks": "
|
|
56
|
-
"eslint-plugin-react-native": "
|
|
57
|
-
"eslint-plugin-react-refresh": "
|
|
58
|
-
"eslint-plugin-unused-imports": "
|
|
59
|
-
"eslint-plugin-vercel-ai-security": "
|
|
54
|
+
"@next/eslint-plugin-next": "catalog:",
|
|
55
|
+
"@stylistic/eslint-plugin": "catalog:",
|
|
56
|
+
"@typescript-eslint/eslint-plugin": "catalog:",
|
|
57
|
+
"@typescript-eslint/parser": "catalog:",
|
|
58
|
+
"enhanced-resolve": "catalog:",
|
|
59
|
+
"eslint-config-expo": "catalog:",
|
|
60
|
+
"eslint-import-resolver-typescript": "catalog:",
|
|
61
|
+
"eslint-plugin-import-x": "catalog:",
|
|
62
|
+
"eslint-plugin-react": "catalog:",
|
|
63
|
+
"eslint-plugin-react-hooks": "catalog:",
|
|
64
|
+
"eslint-plugin-react-native": "catalog:",
|
|
65
|
+
"eslint-plugin-react-refresh": "catalog:",
|
|
66
|
+
"eslint-plugin-unused-imports": "catalog:",
|
|
67
|
+
"eslint-plugin-vercel-ai-security": "catalog:"
|
|
60
68
|
},
|
|
61
69
|
"devDependencies": {
|
|
62
|
-
"eslint": "
|
|
63
|
-
"typescript": "
|
|
70
|
+
"eslint": "catalog:",
|
|
71
|
+
"typescript": "catalog:"
|
|
64
72
|
},
|
|
65
73
|
"peerDependencies": {
|
|
66
74
|
"eslint": "^10.0.0",
|
|
@@ -71,9 +79,5 @@
|
|
|
71
79
|
"@biomejs/biome": {
|
|
72
80
|
"optional": true
|
|
73
81
|
}
|
|
74
|
-
},
|
|
75
|
-
"packageManager": "pnpm@10.29.1",
|
|
76
|
-
"engines": {
|
|
77
|
-
"node": ">=24"
|
|
78
82
|
}
|
|
79
83
|
}
|