@mikey-pro/eslint-config 9.0.8 → 10.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/base-config.js +163 -65
- package/flat.js +12 -4
- package/index.js +48 -43
- package/overrides.js +125 -69
- package/package.json +23 -49
- package/rules.js +0 -622
package/overrides.js
CHANGED
|
@@ -5,12 +5,14 @@ import html from '@html-eslint/eslint-plugin';
|
|
|
5
5
|
import htmlParser from '@html-eslint/parser';
|
|
6
6
|
import tsPlugin from '@typescript-eslint/eslint-plugin';
|
|
7
7
|
import tsParser from '@typescript-eslint/parser';
|
|
8
|
+
import markdown from '@eslint/markdown';
|
|
8
9
|
import cypress from 'eslint-plugin-cypress';
|
|
9
|
-
import
|
|
10
|
+
import importX from 'eslint-plugin-import-x';
|
|
10
11
|
import jest from 'eslint-plugin-jest';
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
12
|
+
import jestDom from 'eslint-plugin-jest-dom';
|
|
13
|
+
import jsoncPlugin from 'eslint-plugin-jsonc';
|
|
14
|
+
import testingLibrary from 'eslint-plugin-testing-library';
|
|
15
|
+
import tomlPlugin from 'eslint-plugin-toml';
|
|
14
16
|
import jsoncParser from 'jsonc-eslint-parser';
|
|
15
17
|
import tomlParser from 'toml-eslint-parser';
|
|
16
18
|
import yamlParser from 'yaml-eslint-parser';
|
|
@@ -31,15 +33,11 @@ export const ts = {
|
|
|
31
33
|
},
|
|
32
34
|
sourceType: 'module',
|
|
33
35
|
},
|
|
34
|
-
plugins: {
|
|
35
|
-
'@typescript-eslint': tsPlugin,
|
|
36
|
-
import: importPlugin,
|
|
37
|
-
},
|
|
38
36
|
rules: {
|
|
39
37
|
// TypeScript-specific rules
|
|
40
38
|
...tsPlugin.configs.all.rules,
|
|
41
39
|
...tsPlugin.configs['recommended-requiring-type-checking'].rules,
|
|
42
|
-
...
|
|
40
|
+
...importX.flatConfigs.typescript.rules,
|
|
43
41
|
|
|
44
42
|
// Override some rules for better developer experience
|
|
45
43
|
'@typescript-eslint/class-methods-use-this': 'off',
|
|
@@ -208,10 +206,10 @@ export const ts = {
|
|
|
208
206
|
'@typescript-eslint/use-unknown-in-catch-callback-variable': 'off',
|
|
209
207
|
},
|
|
210
208
|
settings: {
|
|
211
|
-
'import/parsers': {
|
|
209
|
+
'import-x/parsers': {
|
|
212
210
|
'@typescript-eslint/parser': ['.ts', '.tsx', '.d.ts'],
|
|
213
211
|
},
|
|
214
|
-
'import/resolver': {
|
|
212
|
+
'import-x/resolver': {
|
|
215
213
|
typescript: { alwaysTryTypes: true },
|
|
216
214
|
},
|
|
217
215
|
},
|
|
@@ -247,11 +245,25 @@ export const yaml = {
|
|
|
247
245
|
languageOptions: {
|
|
248
246
|
parser: yamlParser,
|
|
249
247
|
},
|
|
250
|
-
plugins: {
|
|
251
|
-
yml: yml,
|
|
252
|
-
},
|
|
253
248
|
rules: {
|
|
249
|
+
'yml/block-mapping': 'error',
|
|
250
|
+
'yml/block-mapping-question-indicator-newline': 'error',
|
|
251
|
+
'yml/block-sequence': 'error',
|
|
252
|
+
'yml/block-sequence-hyphen-indicator-newline': 'error',
|
|
253
|
+
'yml/flow-mapping-curly-newline': 'error',
|
|
254
|
+
'yml/flow-mapping-curly-spacing': 'error',
|
|
255
|
+
'yml/flow-sequence-bracket-newline': 'error',
|
|
256
|
+
'yml/flow-sequence-bracket-spacing': 'error',
|
|
257
|
+
'yml/indent': ['error', 2],
|
|
258
|
+
'yml/key-spacing': 'error',
|
|
259
|
+
'yml/no-empty-document': 'error',
|
|
260
|
+
'yml/no-empty-key': 'error',
|
|
261
|
+
'yml/no-empty-mapping-value': 'error',
|
|
262
|
+
'yml/no-empty-sequence-entry': 'error',
|
|
263
|
+
'yml/no-irregular-whitespace': 'error',
|
|
264
|
+
'yml/no-tab-indent': 'error',
|
|
254
265
|
'yml/quotes': ['warn', { avoidEscape: true, prefer: 'double' }],
|
|
266
|
+
'yml/require-string-key': 'error',
|
|
255
267
|
},
|
|
256
268
|
};
|
|
257
269
|
|
|
@@ -262,20 +274,40 @@ export const toml = {
|
|
|
262
274
|
parser: tomlParser,
|
|
263
275
|
},
|
|
264
276
|
rules: {
|
|
277
|
+
...tomlPlugin.configs['flat/recommended'].reduce(
|
|
278
|
+
(accumulator, config) => ({ ...accumulator, ...config.rules }),
|
|
279
|
+
{},
|
|
280
|
+
),
|
|
265
281
|
'prettier/prettier': 'off',
|
|
266
282
|
},
|
|
267
283
|
};
|
|
268
284
|
|
|
269
|
-
// Markdown files
|
|
285
|
+
// Markdown files — uses @eslint/markdown language plugin
|
|
270
286
|
export const md = {
|
|
271
287
|
files: ['**/*.md'],
|
|
272
|
-
|
|
288
|
+
language: 'markdown/commonmark',
|
|
289
|
+
rules: {
|
|
290
|
+
'markdown/fenced-code-language': 'error',
|
|
291
|
+
'markdown/heading-increment': 'error',
|
|
292
|
+
'markdown/no-duplicate-headings': 'error',
|
|
293
|
+
'markdown/no-empty-links': 'error',
|
|
294
|
+
'markdown/no-html': 'off',
|
|
295
|
+
'markdown/no-invalid-label-refs': 'error',
|
|
296
|
+
'markdown/no-missing-label-refs': 'error',
|
|
297
|
+
},
|
|
273
298
|
};
|
|
274
299
|
|
|
275
300
|
// Package.json files
|
|
276
301
|
export const packageJson = {
|
|
277
302
|
files: ['**/package.json'],
|
|
303
|
+
languageOptions: {
|
|
304
|
+
parser: jsoncParser,
|
|
305
|
+
},
|
|
278
306
|
rules: {
|
|
307
|
+
...jsoncPlugin.configs['flat/recommended-with-json'].reduce(
|
|
308
|
+
(accumulator, config) => ({ ...accumulator, ...config.rules }),
|
|
309
|
+
{},
|
|
310
|
+
),
|
|
279
311
|
'prettier/prettier': ['warn', { parser: 'json' }],
|
|
280
312
|
},
|
|
281
313
|
settings: {
|
|
@@ -316,11 +348,8 @@ export const htmlConfig = {
|
|
|
316
348
|
languageOptions: {
|
|
317
349
|
parser: htmlParser,
|
|
318
350
|
},
|
|
319
|
-
plugins: {
|
|
320
|
-
'@html-eslint': html,
|
|
321
|
-
},
|
|
322
351
|
rules: {
|
|
323
|
-
...html.configs
|
|
352
|
+
...html.configs['flat/recommended'].rules,
|
|
324
353
|
'@html-eslint/element-newline': 'off',
|
|
325
354
|
'@html-eslint/indent': 'off',
|
|
326
355
|
'@html-eslint/no-extra-spacing-attrs': 'off',
|
|
@@ -333,11 +362,21 @@ export const htmlConfig = {
|
|
|
333
362
|
|
|
334
363
|
// JSONC files
|
|
335
364
|
export const jsonc = {
|
|
336
|
-
files: [
|
|
365
|
+
files: [
|
|
366
|
+
'**/*.jsonc',
|
|
367
|
+
'**/.babelrc',
|
|
368
|
+
'**/.eslintrc',
|
|
369
|
+
'**/.prettierrc',
|
|
370
|
+
'**/.stylelintrc',
|
|
371
|
+
],
|
|
337
372
|
languageOptions: {
|
|
338
373
|
parser: jsoncParser,
|
|
339
374
|
},
|
|
340
375
|
rules: {
|
|
376
|
+
...jsoncPlugin.configs['flat/recommended-with-jsonc'].reduce(
|
|
377
|
+
(accumulator, config) => ({ ...accumulator, ...config.rules }),
|
|
378
|
+
{},
|
|
379
|
+
),
|
|
341
380
|
'prettier/prettier': ['warn', { parser: 'json' }],
|
|
342
381
|
},
|
|
343
382
|
};
|
|
@@ -349,6 +388,10 @@ export const json5 = {
|
|
|
349
388
|
parser: jsoncParser,
|
|
350
389
|
},
|
|
351
390
|
rules: {
|
|
391
|
+
...jsoncPlugin.configs['flat/recommended-with-json5'].reduce(
|
|
392
|
+
(accumulator, config) => ({ ...accumulator, ...config.rules }),
|
|
393
|
+
{},
|
|
394
|
+
),
|
|
352
395
|
'prettier/prettier': ['warn', { parser: 'json5' }],
|
|
353
396
|
},
|
|
354
397
|
};
|
|
@@ -359,14 +402,42 @@ export const jestJs = {
|
|
|
359
402
|
languageOptions: {
|
|
360
403
|
globals: { jest: true },
|
|
361
404
|
},
|
|
362
|
-
plugins: {
|
|
363
|
-
jest,
|
|
364
|
-
},
|
|
365
405
|
rules: {
|
|
366
|
-
...jest.configs
|
|
406
|
+
...jest.configs['flat/all'].rules,
|
|
407
|
+
// Jest DOM rules for testing-library assertions
|
|
408
|
+
'jest-dom/prefer-checked': 'error',
|
|
409
|
+
'jest-dom/prefer-enabled-disabled': 'error',
|
|
410
|
+
'jest-dom/prefer-focus': 'error',
|
|
411
|
+
'jest-dom/prefer-in-document': 'error',
|
|
412
|
+
'jest-dom/prefer-required': 'error',
|
|
413
|
+
'jest-dom/prefer-to-have-attribute': 'error',
|
|
414
|
+
'jest-dom/prefer-to-have-class': 'error',
|
|
415
|
+
'jest-dom/prefer-to-have-style': 'error',
|
|
416
|
+
'jest-dom/prefer-to-have-text-content': 'error',
|
|
417
|
+
'jest-dom/prefer-to-have-value': 'error',
|
|
418
|
+
// Testing Library rules
|
|
419
|
+
'testing-library/await-async-queries': 'error',
|
|
420
|
+
'testing-library/await-async-utils': 'error',
|
|
421
|
+
'testing-library/no-await-sync-queries': 'error',
|
|
422
|
+
'testing-library/no-debugging-utils': 'warn',
|
|
423
|
+
'testing-library/no-dom-import': 'error',
|
|
424
|
+
'testing-library/no-manual-cleanup': 'error',
|
|
425
|
+
'testing-library/no-render-in-lifecycle': 'error',
|
|
426
|
+
'testing-library/no-unnecessary-act': 'error',
|
|
427
|
+
'testing-library/no-wait-for-multiple-assertions': 'error',
|
|
428
|
+
'testing-library/prefer-explicit-assert': 'warn',
|
|
429
|
+
'testing-library/prefer-find-by': 'error',
|
|
430
|
+
'testing-library/prefer-presence-queries': 'error',
|
|
431
|
+
'testing-library/prefer-query-by-disappearance': 'error',
|
|
432
|
+
'testing-library/prefer-screen-queries': 'error',
|
|
433
|
+
'testing-library/render-result-naming-convention': 'error',
|
|
434
|
+
// Disable rules requiring TypeScript type checking (not available in JS files)
|
|
435
|
+
'jest/no-error-equal': 'off',
|
|
436
|
+
'jest/no-unnecessary-assertion': 'off',
|
|
437
|
+
'jest/unbound-method': 'off',
|
|
438
|
+
'jest/valid-expect-with-promise': 'off',
|
|
367
439
|
'jest/prefer-spy-on': 'warn',
|
|
368
440
|
'jest/require-top-level-describe': 'error',
|
|
369
|
-
'jest/unbound-method': 'off',
|
|
370
441
|
'unicorn/no-array-callback-reference': 'off',
|
|
371
442
|
'unicorn/prevent-abbreviations': ['warn', { ignore: [/e2e/] }],
|
|
372
443
|
},
|
|
@@ -379,12 +450,35 @@ export const jestTs = {
|
|
|
379
450
|
globals: { jest: true },
|
|
380
451
|
parser: tsParser,
|
|
381
452
|
},
|
|
382
|
-
plugins: {
|
|
383
|
-
'@typescript-eslint': tsPlugin,
|
|
384
|
-
jest,
|
|
385
|
-
},
|
|
386
453
|
rules: {
|
|
387
|
-
...jest.configs
|
|
454
|
+
...jest.configs['flat/all'].rules,
|
|
455
|
+
// Jest DOM rules for testing-library assertions
|
|
456
|
+
'jest-dom/prefer-checked': 'error',
|
|
457
|
+
'jest-dom/prefer-enabled-disabled': 'error',
|
|
458
|
+
'jest-dom/prefer-focus': 'error',
|
|
459
|
+
'jest-dom/prefer-in-document': 'error',
|
|
460
|
+
'jest-dom/prefer-required': 'error',
|
|
461
|
+
'jest-dom/prefer-to-have-attribute': 'error',
|
|
462
|
+
'jest-dom/prefer-to-have-class': 'error',
|
|
463
|
+
'jest-dom/prefer-to-have-style': 'error',
|
|
464
|
+
'jest-dom/prefer-to-have-text-content': 'error',
|
|
465
|
+
'jest-dom/prefer-to-have-value': 'error',
|
|
466
|
+
// Testing Library rules
|
|
467
|
+
'testing-library/await-async-queries': 'error',
|
|
468
|
+
'testing-library/await-async-utils': 'error',
|
|
469
|
+
'testing-library/no-await-sync-queries': 'error',
|
|
470
|
+
'testing-library/no-debugging-utils': 'warn',
|
|
471
|
+
'testing-library/no-dom-import': 'error',
|
|
472
|
+
'testing-library/no-manual-cleanup': 'error',
|
|
473
|
+
'testing-library/no-render-in-lifecycle': 'error',
|
|
474
|
+
'testing-library/no-unnecessary-act': 'error',
|
|
475
|
+
'testing-library/no-wait-for-multiple-assertions': 'error',
|
|
476
|
+
'testing-library/prefer-explicit-assert': 'warn',
|
|
477
|
+
'testing-library/prefer-find-by': 'error',
|
|
478
|
+
'testing-library/prefer-presence-queries': 'error',
|
|
479
|
+
'testing-library/prefer-query-by-disappearance': 'error',
|
|
480
|
+
'testing-library/prefer-screen-queries': 'error',
|
|
481
|
+
'testing-library/render-result-naming-convention': 'error',
|
|
388
482
|
'jest/prefer-spy-on': 'warn',
|
|
389
483
|
'jest/require-top-level-describe': 'error',
|
|
390
484
|
'jest/unbound-method': 'off',
|
|
@@ -396,47 +490,11 @@ export const jestTs = {
|
|
|
396
490
|
// Cypress files
|
|
397
491
|
export const cypressConfig = {
|
|
398
492
|
files: ['**/*.cy.*'],
|
|
399
|
-
plugins: {
|
|
400
|
-
cypress,
|
|
401
|
-
},
|
|
402
493
|
rules: {
|
|
403
494
|
...cypress.configs.recommended.rules,
|
|
404
495
|
},
|
|
405
496
|
};
|
|
406
497
|
|
|
407
|
-
// Shell scripts (bash, sh, zsh)
|
|
408
|
-
export const shellConfig = {
|
|
409
|
-
files: ['**/*.sh', '**/*.bash', '**/*.zsh'],
|
|
410
|
-
languageOptions: {
|
|
411
|
-
parser: parserPlain,
|
|
412
|
-
},
|
|
413
|
-
plugins: {
|
|
414
|
-
shell,
|
|
415
|
-
},
|
|
416
|
-
rules: {
|
|
417
|
-
// Basic shell script linting rules
|
|
418
|
-
// Note: Full shell script linting may require shellcheck (external tool)
|
|
419
|
-
'shell/shell': 'warn',
|
|
420
|
-
},
|
|
421
|
-
};
|
|
422
|
-
|
|
423
|
-
// .env files
|
|
424
|
-
export const envFilesConfig = {
|
|
425
|
-
files: ['**/.env', '**/.env.*', '**/*.env'],
|
|
426
|
-
languageOptions: {
|
|
427
|
-
parser: parserPlain,
|
|
428
|
-
},
|
|
429
|
-
plugins: {
|
|
430
|
-
shell,
|
|
431
|
-
},
|
|
432
|
-
rules: {
|
|
433
|
-
// Relax JavaScript-specific variable rules for .env files
|
|
434
|
-
// Note: .env formatting and validation should be handled by external tools
|
|
435
|
-
'no-undef': 'off',
|
|
436
|
-
'no-unused-vars': 'off',
|
|
437
|
-
},
|
|
438
|
-
};
|
|
439
|
-
|
|
440
498
|
// Export all overrides
|
|
441
499
|
export const baseOverrides = [
|
|
442
500
|
ts,
|
|
@@ -453,6 +511,4 @@ export const baseOverrides = [
|
|
|
453
511
|
jestJs,
|
|
454
512
|
jestTs,
|
|
455
513
|
cypressConfig,
|
|
456
|
-
shellConfig,
|
|
457
|
-
envFilesConfig,
|
|
458
514
|
];
|
package/package.json
CHANGED
|
@@ -1,56 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mikey-pro/eslint-config",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0",
|
|
4
4
|
"description": "Mikey Pro ESLint configuration - Ultimate coding style guide for excellence",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@
|
|
10
|
-
"@
|
|
11
|
-
"@babel/eslint-plugin": "^7.27.1",
|
|
12
|
-
"@babel/preset-env": "^7.28.3",
|
|
13
|
-
"@cypress/eslint-plugin-json": "^3.2.3",
|
|
14
|
-
"@eslint/js": "^9.35.0",
|
|
9
|
+
"@eslint/js": "^10.0.0",
|
|
10
|
+
"@eslint/markdown": "^7.5.1",
|
|
15
11
|
"@html-eslint/eslint-plugin": "^0.46.2",
|
|
16
12
|
"@html-eslint/parser": "^0.46.2",
|
|
17
|
-
"@
|
|
18
|
-
"@typescript-eslint/
|
|
19
|
-
"
|
|
20
|
-
"eslint": "^
|
|
21
|
-
"eslint-
|
|
22
|
-
"eslint-
|
|
23
|
-
"eslint-plugin-
|
|
24
|
-
"eslint-plugin-
|
|
25
|
-
"eslint-plugin-css-modules": "^2.12.0",
|
|
26
|
-
"eslint-plugin-cypress": "^5.1.1",
|
|
27
|
-
"eslint-plugin-filenames": "^1.3.2",
|
|
28
|
-
"@eslint/markdown": "^6.1.0",
|
|
13
|
+
"@typescript-eslint/eslint-plugin": "^8.56.0",
|
|
14
|
+
"@typescript-eslint/parser": "^8.56.0",
|
|
15
|
+
"eslint": "^10.0.0",
|
|
16
|
+
"eslint-plugin-boundaries": "^5.4.0",
|
|
17
|
+
"eslint-plugin-compat": "^7.0.0",
|
|
18
|
+
"eslint-plugin-cypress": "^6.1.0",
|
|
19
|
+
"eslint-plugin-import-x": "^4.16.1",
|
|
20
|
+
"eslint-plugin-jest": "^29.12.1",
|
|
29
21
|
"eslint-plugin-jest-dom": "^5.5.0",
|
|
30
22
|
"eslint-plugin-jsonc": "^2.20.1",
|
|
31
|
-
"eslint-plugin-
|
|
32
|
-
"eslint-plugin-n": "^17.21.3",
|
|
23
|
+
"eslint-plugin-n": "^17.23.1",
|
|
33
24
|
"eslint-plugin-no-only-tests": "^3.3.0",
|
|
34
|
-
"eslint-plugin-no-secrets": "^2.
|
|
35
|
-
"eslint-plugin-only-warn": "^1.1.0",
|
|
36
|
-
"eslint-plugin-optimize-regex": "^1.2.1",
|
|
25
|
+
"eslint-plugin-no-secrets": "^2.3.3",
|
|
37
26
|
"eslint-plugin-perfectionist": "^4.15.0",
|
|
38
|
-
"eslint-plugin-prettier": "^5.5.
|
|
27
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
39
28
|
"eslint-plugin-promise": "^7.2.1",
|
|
40
29
|
"eslint-plugin-regexp": "^2.10.0",
|
|
41
|
-
"eslint-plugin-security": "^
|
|
42
|
-
"eslint-plugin-shell": "^0.0.1",
|
|
30
|
+
"eslint-plugin-security": "^4.0.0",
|
|
43
31
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
44
32
|
"eslint-plugin-sonarjs": "^3.0.5",
|
|
45
|
-
"eslint-plugin-sort-destructure-keys": "^
|
|
33
|
+
"eslint-plugin-sort-destructure-keys": "^3.0.0",
|
|
46
34
|
"eslint-plugin-testing-library": "^7.6.8",
|
|
47
35
|
"eslint-plugin-toml": "^0.12.0",
|
|
48
|
-
"eslint-plugin-unicorn": "^
|
|
49
|
-
"eslint-plugin-write-good-comments": "^0.2.0",
|
|
36
|
+
"eslint-plugin-unicorn": "^62.0.0",
|
|
50
37
|
"eslint-plugin-yml": "^1.18.0",
|
|
51
38
|
"globals": "^16.4.0",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
39
|
+
"jsonc-eslint-parser": "^2.4.0",
|
|
40
|
+
"toml-eslint-parser": "^0.10.0",
|
|
54
41
|
"yaml-eslint-parser": "^1.3.0"
|
|
55
42
|
},
|
|
56
43
|
"peerDependenciesMeta": {
|
|
@@ -59,19 +46,12 @@
|
|
|
59
46
|
},
|
|
60
47
|
"@typescript-eslint/parser": {
|
|
61
48
|
"optional": true
|
|
62
|
-
},
|
|
63
|
-
"eslint-plugin-import": {
|
|
64
|
-
"optional": false
|
|
65
|
-
},
|
|
66
|
-
"eslint-plugin-n": {
|
|
67
|
-
"optional": false
|
|
68
49
|
}
|
|
69
50
|
},
|
|
70
51
|
"files": [
|
|
71
52
|
"index.js",
|
|
72
53
|
"base-config.js",
|
|
73
54
|
"flat.js",
|
|
74
|
-
"rules.js",
|
|
75
55
|
"overrides.js",
|
|
76
56
|
"README.md",
|
|
77
57
|
"LICENSE",
|
|
@@ -99,7 +79,7 @@
|
|
|
99
79
|
"style-guide",
|
|
100
80
|
"style",
|
|
101
81
|
"guide",
|
|
102
|
-
"eslint-
|
|
82
|
+
"eslint-10",
|
|
103
83
|
"flat-config",
|
|
104
84
|
"typescript",
|
|
105
85
|
"react",
|
|
@@ -108,17 +88,15 @@
|
|
|
108
88
|
"angular"
|
|
109
89
|
],
|
|
110
90
|
"author": "Mikl Wolfe <wolfe@mikl.io> (https://mikl.io)",
|
|
111
|
-
"browserslist": [
|
|
112
|
-
"defaults"
|
|
113
|
-
],
|
|
91
|
+
"browserslist": ["defaults"],
|
|
114
92
|
"type": "module",
|
|
115
93
|
"engines": {
|
|
116
|
-
"node": ">=20.
|
|
94
|
+
"node": ">=20.19.0",
|
|
117
95
|
"npm": ">=9.0.0",
|
|
118
96
|
"pnpm": ">=8.0.0",
|
|
119
97
|
"yarn": ">=4.0.0"
|
|
120
98
|
},
|
|
121
|
-
"_comment": "Priority: Latest Node (25+) for latest features. Minimum: Node 20. Older versions tested but may break.",
|
|
99
|
+
"_comment": "Priority: Latest Node (25+) for latest features. Minimum: Node 20.19.0. Older versions tested but may break.",
|
|
122
100
|
"exports": {
|
|
123
101
|
".": {
|
|
124
102
|
"import": "./index.js",
|
|
@@ -128,10 +106,6 @@
|
|
|
128
106
|
"import": "./flat.js",
|
|
129
107
|
"require": "./flat.js"
|
|
130
108
|
},
|
|
131
|
-
"./rules": {
|
|
132
|
-
"import": "./rules.js",
|
|
133
|
-
"require": "./rules.js"
|
|
134
|
-
},
|
|
135
109
|
"./overrides": {
|
|
136
110
|
"import": "./overrides.js",
|
|
137
111
|
"require": "./overrides.js"
|