@kirklin/eslint-config 2.0.0 → 2.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 CHANGED
@@ -216,7 +216,7 @@ export default kirklin({
216
216
 
217
217
  // `.eslintignore` is no longer supported in Flat config, use `ignores` instead
218
218
  ignores: [
219
- "./fixtures",
219
+ "**/fixtures",
220
220
  // ...globs
221
221
  ]
222
222
  });
package/README.zh-cn.md CHANGED
@@ -216,7 +216,7 @@ export default kirklin({
216
216
 
217
217
  // 在Flat配置中不再支持`.eslintignore`,请使用`ignores`代替
218
218
  ignores: [
219
- "./fixtures",
219
+ "**/fixtures",
220
220
  // ...globs
221
221
  ]
222
222
  });
package/bin/index.js CHANGED
File without changes
package/dist/cli.cjs CHANGED
@@ -46,39 +46,40 @@ var import_parse_gitignore = __toESM(require("parse-gitignore"), 1);
46
46
  var import_picocolors = __toESM(require("picocolors"), 1);
47
47
 
48
48
  // package.json
49
- var version = "2.0.0";
49
+ var version = "2.1.0";
50
50
  var devDependencies = {
51
- "@antfu/eslint-plugin-prettier": "^5.0.1-1",
51
+ "@antfu/eslint-plugin-prettier": "5.0.1-1",
52
52
  "@antfu/ni": "^0.21.12",
53
53
  "@kirklin/eslint-config": "workspace:*",
54
- "@stylistic/eslint-plugin-migrate": "^1.5.1",
55
- "@types/eslint": "^8.56.0",
54
+ "@stylistic/eslint-plugin-migrate": "^1.6.0",
55
+ "@types/eslint": "^8.56.2",
56
56
  "@types/fs-extra": "^11.0.4",
57
- "@types/node": "^20.10.6",
57
+ "@types/node": "^20.11.16",
58
58
  "@types/prompts": "^2.4.9",
59
59
  "@types/yargs": "^17.0.32",
60
- "@unocss/eslint-plugin": "^0.58.2",
61
- bumpp: "^9.2.1",
62
- eslint: "npm:eslint-ts-patch@^8.56.0-0",
63
- "eslint-flat-config-viewer": "^0.1.4",
60
+ "@unocss/eslint-plugin": "^0.58.5",
61
+ bumpp: "^9.3.0",
62
+ eslint: "npm:eslint-ts-patch@8.56.0-0",
63
+ "eslint-flat-config-viewer": "^0.1.11",
64
64
  "eslint-plugin-format": "^0.1.0",
65
65
  "eslint-plugin-react": "^7.33.2",
66
66
  "eslint-plugin-react-hooks": "^4.6.0",
67
67
  "eslint-plugin-react-refresh": "^0.4.5",
68
68
  "eslint-plugin-svelte": "^2.35.1",
69
- "eslint-ts-patch": "^8.56.0-0",
69
+ "eslint-ts-patch": "8.56.0-0",
70
70
  esno: "^4.0.0",
71
71
  execa: "^8.0.1",
72
72
  "fast-glob": "^3.3.2",
73
73
  "fs-extra": "^11.2.0",
74
- "lint-staged": "^15.2.0",
74
+ "lint-staged": "^15.2.2",
75
75
  rimraf: "^5.0.5",
76
76
  "simple-git-hooks": "^2.9.0",
77
+ svelte: "^4.2.10",
77
78
  "svelte-eslint-parser": "^0.33.1",
78
79
  tsup: "^8.0.1",
79
80
  typescript: "^5.3.3",
80
- vitest: "^1.1.0",
81
- vue: "^3.4.3"
81
+ vitest: "^1.2.2",
82
+ vue: "^3.4.15"
82
83
  };
83
84
 
84
85
  // src/cli/constants.ts
package/dist/cli.js CHANGED
@@ -17,39 +17,40 @@ import parse from "parse-gitignore";
17
17
  import c from "picocolors";
18
18
 
19
19
  // package.json
20
- var version = "2.0.0";
20
+ var version = "2.1.0";
21
21
  var devDependencies = {
22
- "@antfu/eslint-plugin-prettier": "^5.0.1-1",
22
+ "@antfu/eslint-plugin-prettier": "5.0.1-1",
23
23
  "@antfu/ni": "^0.21.12",
24
24
  "@kirklin/eslint-config": "workspace:*",
25
- "@stylistic/eslint-plugin-migrate": "^1.5.1",
26
- "@types/eslint": "^8.56.0",
25
+ "@stylistic/eslint-plugin-migrate": "^1.6.0",
26
+ "@types/eslint": "^8.56.2",
27
27
  "@types/fs-extra": "^11.0.4",
28
- "@types/node": "^20.10.6",
28
+ "@types/node": "^20.11.16",
29
29
  "@types/prompts": "^2.4.9",
30
30
  "@types/yargs": "^17.0.32",
31
- "@unocss/eslint-plugin": "^0.58.2",
32
- bumpp: "^9.2.1",
33
- eslint: "npm:eslint-ts-patch@^8.56.0-0",
34
- "eslint-flat-config-viewer": "^0.1.4",
31
+ "@unocss/eslint-plugin": "^0.58.5",
32
+ bumpp: "^9.3.0",
33
+ eslint: "npm:eslint-ts-patch@8.56.0-0",
34
+ "eslint-flat-config-viewer": "^0.1.11",
35
35
  "eslint-plugin-format": "^0.1.0",
36
36
  "eslint-plugin-react": "^7.33.2",
37
37
  "eslint-plugin-react-hooks": "^4.6.0",
38
38
  "eslint-plugin-react-refresh": "^0.4.5",
39
39
  "eslint-plugin-svelte": "^2.35.1",
40
- "eslint-ts-patch": "^8.56.0-0",
40
+ "eslint-ts-patch": "8.56.0-0",
41
41
  esno: "^4.0.0",
42
42
  execa: "^8.0.1",
43
43
  "fast-glob": "^3.3.2",
44
44
  "fs-extra": "^11.2.0",
45
- "lint-staged": "^15.2.0",
45
+ "lint-staged": "^15.2.2",
46
46
  rimraf: "^5.0.5",
47
47
  "simple-git-hooks": "^2.9.0",
48
+ svelte: "^4.2.10",
48
49
  "svelte-eslint-parser": "^0.33.1",
49
50
  tsup: "^8.0.1",
50
51
  typescript: "^5.3.3",
51
- vitest: "^1.1.0",
52
- vue: "^3.4.3"
52
+ vitest: "^1.2.2",
53
+ vue: "^3.4.15"
53
54
  };
54
55
 
55
56
  // src/cli/constants.ts
package/dist/index.cjs CHANGED
@@ -328,7 +328,6 @@ async function javascript(options = {}) {
328
328
  "no-multi-str": "error",
329
329
  "no-new": "error",
330
330
  "no-new-func": "error",
331
- "no-new-object": "error",
332
331
  "no-new-symbol": "error",
333
332
  "no-new-wrappers": "error",
334
333
  "no-obj-calls": "error",
@@ -534,7 +533,6 @@ async function jsdoc(options = {}) {
534
533
  {
535
534
  name: "kirklin:jsdoc",
536
535
  plugins: {
537
- // @ts-expect-error missing types
538
536
  jsdoc: await interopDefault(import("eslint-plugin-jsdoc"))
539
537
  },
540
538
  rules: {
@@ -1325,6 +1323,7 @@ async function svelte(options = {}) {
1325
1323
  }
1326
1324
  },
1327
1325
  name: "kirklin:svelte:rules",
1326
+ processor: pluginSvelte.processors[".svelte"],
1328
1327
  rules: {
1329
1328
  "import/no-mutable-exports": "off",
1330
1329
  "no-undef": "off",
@@ -1438,6 +1437,8 @@ async function typescript(options = {}) {
1438
1437
  ...componentExts.map((ext) => `**/*.${ext}`)
1439
1438
  ];
1440
1439
  const filesTypeAware = options.filesTypeAware ?? [GLOB_TS, GLOB_TSX];
1440
+ const tsconfigPath = options?.tsconfigPath ? toArray(options.tsconfigPath) : void 0;
1441
+ const isTypeAware = !!tsconfigPath;
1441
1442
  const typeAwareRules = {
1442
1443
  "dot-notation": "off",
1443
1444
  "no-implied-eval": "off",
@@ -1459,7 +1460,6 @@ async function typescript(options = {}) {
1459
1460
  "ts/restrict-template-expressions": "error",
1460
1461
  "ts/unbound-method": "error"
1461
1462
  };
1462
- const tsconfigPath = options?.tsconfigPath ? toArray(options.tsconfigPath) : void 0;
1463
1463
  const [
1464
1464
  pluginTs,
1465
1465
  parserTs
@@ -1467,29 +1467,41 @@ async function typescript(options = {}) {
1467
1467
  interopDefault(import("@typescript-eslint/eslint-plugin")),
1468
1468
  interopDefault(import("@typescript-eslint/parser"))
1469
1469
  ]);
1470
- return [
1471
- {
1472
- // Install the plugins without globs, so they can be configured separately.
1473
- name: "kirklin:typescript:setup",
1474
- plugins: {
1475
- kirklin: import_eslint_plugin_kirklin.default,
1476
- ts: pluginTs
1477
- }
1478
- },
1479
- {
1480
- files,
1470
+ function makeParser(typeAware, files2, ignores2) {
1471
+ return {
1472
+ files: files2,
1473
+ ...ignores2 ? { ignores: ignores2 } : {},
1481
1474
  languageOptions: {
1482
1475
  parser: parserTs,
1483
1476
  parserOptions: {
1484
1477
  extraFileExtensions: componentExts.map((ext) => `.${ext}`),
1485
1478
  sourceType: "module",
1486
- ...tsconfigPath ? {
1479
+ ...typeAware ? {
1487
1480
  project: tsconfigPath,
1488
1481
  tsconfigRootDir: import_node_process2.default.cwd()
1489
1482
  } : {},
1490
1483
  ...parserOptions
1491
1484
  }
1492
1485
  },
1486
+ name: `kirklin:typescript:${typeAware ? "type-aware-parser" : "parser"}`
1487
+ };
1488
+ }
1489
+ return [
1490
+ {
1491
+ // Install the plugins without globs, so they can be configured separately.
1492
+ name: "kirklin:typescript:setup",
1493
+ plugins: {
1494
+ kirklin: import_eslint_plugin_kirklin.default,
1495
+ ts: pluginTs
1496
+ }
1497
+ },
1498
+ // assign type-aware parser for type-aware files and type-unaware parser for the rest
1499
+ ...isTypeAware ? [
1500
+ makeParser(true, filesTypeAware),
1501
+ makeParser(false, files, filesTypeAware)
1502
+ ] : [makeParser(false, files)],
1503
+ {
1504
+ files,
1493
1505
  name: "kirklin:typescript:rules",
1494
1506
  rules: {
1495
1507
  ...renameRules(
@@ -1511,6 +1523,8 @@ async function typescript(options = {}) {
1511
1523
  "ts/ban-types": ["error", { types: { Function: false } }],
1512
1524
  "ts/consistent-type-definitions": ["error", "interface"],
1513
1525
  "ts/consistent-type-imports": ["error", { disallowTypeAnnotations: false, prefer: "type-imports" }],
1526
+ "ts/method-signature-style": ["error", "property"],
1527
+ // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful
1514
1528
  "ts/no-dupe-class-members": "error",
1515
1529
  "ts/no-dynamic-delete": "off",
1516
1530
  "ts/no-explicit-any": "off",
@@ -1715,6 +1729,8 @@ async function vue(options = {}) {
1715
1729
  registeredComponentsOnly: false
1716
1730
  }],
1717
1731
  "vue/component-options-name-casing": ["error", "PascalCase"],
1732
+ // this is deprecated
1733
+ "vue/component-tags-order": "off",
1718
1734
  "vue/custom-event-name-casing": ["error", "camelCase"],
1719
1735
  "vue/define-macros-order": ["error", {
1720
1736
  order: ["defineOptions", "defineProps", "defineEmits", "defineSlots"]
@@ -1728,7 +1744,6 @@ async function vue(options = {}) {
1728
1744
  "vue/multi-word-component-names": "off",
1729
1745
  "vue/no-dupe-keys": "off",
1730
1746
  "vue/no-empty-pattern": "error",
1731
- "vue/no-extra-parens": ["error", "functions"],
1732
1747
  "vue/no-irregular-whitespace": "error",
1733
1748
  "vue/no-loss-of-precision": "error",
1734
1749
  "vue/no-restricted-syntax": [
@@ -1910,6 +1925,7 @@ async function toml(options = {}) {
1910
1925
 
1911
1926
  // src/factory.ts
1912
1927
  var flatConfigProps = [
1928
+ "name",
1913
1929
  "files",
1914
1930
  "ignores",
1915
1931
  "languageOptions",
@@ -1974,7 +1990,8 @@ async function kirklin(options = {}, ...userConfigs) {
1974
1990
  if (enableTypeScript) {
1975
1991
  configs.push(typescript({
1976
1992
  ...resolveSubOptions(options, "typescript"),
1977
- componentExts
1993
+ componentExts,
1994
+ overrides: getOverrides(options, "typescript")
1978
1995
  }));
1979
1996
  }
1980
1997
  if (stylisticOptions) {
@@ -1992,6 +2009,7 @@ async function kirklin(options = {}, ...userConfigs) {
1992
2009
  if (enableVue) {
1993
2010
  configs.push(vue({
1994
2011
  ...resolveSubOptions(options, "vue"),
2012
+ overrides: getOverrides(options, "vue"),
1995
2013
  stylistic: stylisticOptions,
1996
2014
  typescript: !!enableTypeScript
1997
2015
  }));
package/dist/index.d.cts CHANGED
@@ -316,7 +316,7 @@ interface OptionsConfig extends OptionsComponentExts {
316
316
  *
317
317
  * @default true
318
318
  */
319
- stylistic?: boolean | StylisticConfig;
319
+ stylistic?: boolean | (StylisticConfig & OptionsOverrides);
320
320
  /**
321
321
  * Enable react rules.
322
322
  *
package/dist/index.d.ts CHANGED
@@ -316,7 +316,7 @@ interface OptionsConfig extends OptionsComponentExts {
316
316
  *
317
317
  * @default true
318
318
  */
319
- stylistic?: boolean | StylisticConfig;
319
+ stylistic?: boolean | (StylisticConfig & OptionsOverrides);
320
320
  /**
321
321
  * Enable react rules.
322
322
  *
package/dist/index.js CHANGED
@@ -235,7 +235,6 @@ async function javascript(options = {}) {
235
235
  "no-multi-str": "error",
236
236
  "no-new": "error",
237
237
  "no-new-func": "error",
238
- "no-new-object": "error",
239
238
  "no-new-symbol": "error",
240
239
  "no-new-wrappers": "error",
241
240
  "no-obj-calls": "error",
@@ -441,7 +440,6 @@ async function jsdoc(options = {}) {
441
440
  {
442
441
  name: "kirklin:jsdoc",
443
442
  plugins: {
444
- // @ts-expect-error missing types
445
443
  jsdoc: await interopDefault(import("eslint-plugin-jsdoc"))
446
444
  },
447
445
  rules: {
@@ -1232,6 +1230,7 @@ async function svelte(options = {}) {
1232
1230
  }
1233
1231
  },
1234
1232
  name: "kirklin:svelte:rules",
1233
+ processor: pluginSvelte.processors[".svelte"],
1235
1234
  rules: {
1236
1235
  "import/no-mutable-exports": "off",
1237
1236
  "no-undef": "off",
@@ -1345,6 +1344,8 @@ async function typescript(options = {}) {
1345
1344
  ...componentExts.map((ext) => `**/*.${ext}`)
1346
1345
  ];
1347
1346
  const filesTypeAware = options.filesTypeAware ?? [GLOB_TS, GLOB_TSX];
1347
+ const tsconfigPath = options?.tsconfigPath ? toArray(options.tsconfigPath) : void 0;
1348
+ const isTypeAware = !!tsconfigPath;
1348
1349
  const typeAwareRules = {
1349
1350
  "dot-notation": "off",
1350
1351
  "no-implied-eval": "off",
@@ -1366,7 +1367,6 @@ async function typescript(options = {}) {
1366
1367
  "ts/restrict-template-expressions": "error",
1367
1368
  "ts/unbound-method": "error"
1368
1369
  };
1369
- const tsconfigPath = options?.tsconfigPath ? toArray(options.tsconfigPath) : void 0;
1370
1370
  const [
1371
1371
  pluginTs,
1372
1372
  parserTs
@@ -1374,29 +1374,41 @@ async function typescript(options = {}) {
1374
1374
  interopDefault(import("@typescript-eslint/eslint-plugin")),
1375
1375
  interopDefault(import("@typescript-eslint/parser"))
1376
1376
  ]);
1377
- return [
1378
- {
1379
- // Install the plugins without globs, so they can be configured separately.
1380
- name: "kirklin:typescript:setup",
1381
- plugins: {
1382
- kirklin: default2,
1383
- ts: pluginTs
1384
- }
1385
- },
1386
- {
1387
- files,
1377
+ function makeParser(typeAware, files2, ignores2) {
1378
+ return {
1379
+ files: files2,
1380
+ ...ignores2 ? { ignores: ignores2 } : {},
1388
1381
  languageOptions: {
1389
1382
  parser: parserTs,
1390
1383
  parserOptions: {
1391
1384
  extraFileExtensions: componentExts.map((ext) => `.${ext}`),
1392
1385
  sourceType: "module",
1393
- ...tsconfigPath ? {
1386
+ ...typeAware ? {
1394
1387
  project: tsconfigPath,
1395
1388
  tsconfigRootDir: process2.cwd()
1396
1389
  } : {},
1397
1390
  ...parserOptions
1398
1391
  }
1399
1392
  },
1393
+ name: `kirklin:typescript:${typeAware ? "type-aware-parser" : "parser"}`
1394
+ };
1395
+ }
1396
+ return [
1397
+ {
1398
+ // Install the plugins without globs, so they can be configured separately.
1399
+ name: "kirklin:typescript:setup",
1400
+ plugins: {
1401
+ kirklin: default2,
1402
+ ts: pluginTs
1403
+ }
1404
+ },
1405
+ // assign type-aware parser for type-aware files and type-unaware parser for the rest
1406
+ ...isTypeAware ? [
1407
+ makeParser(true, filesTypeAware),
1408
+ makeParser(false, files, filesTypeAware)
1409
+ ] : [makeParser(false, files)],
1410
+ {
1411
+ files,
1400
1412
  name: "kirklin:typescript:rules",
1401
1413
  rules: {
1402
1414
  ...renameRules(
@@ -1418,6 +1430,8 @@ async function typescript(options = {}) {
1418
1430
  "ts/ban-types": ["error", { types: { Function: false } }],
1419
1431
  "ts/consistent-type-definitions": ["error", "interface"],
1420
1432
  "ts/consistent-type-imports": ["error", { disallowTypeAnnotations: false, prefer: "type-imports" }],
1433
+ "ts/method-signature-style": ["error", "property"],
1434
+ // https://www.totaltypescript.com/method-shorthand-syntax-considered-harmful
1421
1435
  "ts/no-dupe-class-members": "error",
1422
1436
  "ts/no-dynamic-delete": "off",
1423
1437
  "ts/no-explicit-any": "off",
@@ -1622,6 +1636,8 @@ async function vue(options = {}) {
1622
1636
  registeredComponentsOnly: false
1623
1637
  }],
1624
1638
  "vue/component-options-name-casing": ["error", "PascalCase"],
1639
+ // this is deprecated
1640
+ "vue/component-tags-order": "off",
1625
1641
  "vue/custom-event-name-casing": ["error", "camelCase"],
1626
1642
  "vue/define-macros-order": ["error", {
1627
1643
  order: ["defineOptions", "defineProps", "defineEmits", "defineSlots"]
@@ -1635,7 +1651,6 @@ async function vue(options = {}) {
1635
1651
  "vue/multi-word-component-names": "off",
1636
1652
  "vue/no-dupe-keys": "off",
1637
1653
  "vue/no-empty-pattern": "error",
1638
- "vue/no-extra-parens": ["error", "functions"],
1639
1654
  "vue/no-irregular-whitespace": "error",
1640
1655
  "vue/no-loss-of-precision": "error",
1641
1656
  "vue/no-restricted-syntax": [
@@ -1817,6 +1832,7 @@ async function toml(options = {}) {
1817
1832
 
1818
1833
  // src/factory.ts
1819
1834
  var flatConfigProps = [
1835
+ "name",
1820
1836
  "files",
1821
1837
  "ignores",
1822
1838
  "languageOptions",
@@ -1881,7 +1897,8 @@ async function kirklin(options = {}, ...userConfigs) {
1881
1897
  if (enableTypeScript) {
1882
1898
  configs.push(typescript({
1883
1899
  ...resolveSubOptions(options, "typescript"),
1884
- componentExts
1900
+ componentExts,
1901
+ overrides: getOverrides(options, "typescript")
1885
1902
  }));
1886
1903
  }
1887
1904
  if (stylisticOptions) {
@@ -1899,6 +1916,7 @@ async function kirklin(options = {}, ...userConfigs) {
1899
1916
  if (enableVue) {
1900
1917
  configs.push(vue({
1901
1918
  ...resolveSubOptions(options, "vue"),
1919
+ overrides: getOverrides(options, "vue"),
1902
1920
  stylistic: stylisticOptions,
1903
1921
  typescript: !!enableTypeScript
1904
1922
  }));
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@kirklin/eslint-config",
3
3
  "type": "module",
4
- "version": "2.0.0",
5
- "packageManager": "pnpm@8.13.1",
4
+ "version": "2.1.0",
5
+ "packageManager": "pnpm@8.15.1",
6
6
  "description": "Kirk Lin's ESLint config",
7
7
  "author": "Kirk Lin (https://github.com/kirklin/)",
8
8
  "license": "MIT",
@@ -24,19 +24,6 @@
24
24
  "bin",
25
25
  "dist"
26
26
  ],
27
- "scripts": {
28
- "build": "tsup --format esm,cjs --clean --dts",
29
- "stub": "tsup --format esm",
30
- "dev": "tsup --format esm,cjs --watch & eslint-flat-config-viewer",
31
- "watch": "tsup --format esm,cjs --watch",
32
- "lint": "eslint .",
33
- "lint:fix": "eslint . --fix",
34
- "prepack": "nr build",
35
- "release": "bumpp && pnpm publish",
36
- "test": "vitest",
37
- "typecheck": "tsc --noEmit",
38
- "prepare": "simple-git-hooks"
39
- },
40
27
  "peerDependencies": {
41
28
  "@unocss/eslint-plugin": ">=0.50.0",
42
29
  "eslint": ">=8.40.0",
@@ -71,31 +58,31 @@
71
58
  }
72
59
  },
73
60
  "dependencies": {
74
- "@antfu/eslint-define-config": "^1.23.0-2",
61
+ "@antfu/eslint-define-config": "1.23.0-2",
75
62
  "@antfu/install-pkg": "^0.3.1",
76
- "@eslint-types/jsdoc": "46.9.1",
77
- "@eslint-types/typescript-eslint": "^6.16.0",
63
+ "@eslint-types/jsdoc": "48.0.4",
64
+ "@eslint-types/typescript-eslint": "^6.19.1",
78
65
  "@eslint-types/unicorn": "^50.0.1",
79
- "@stylistic/eslint-plugin": "^1.5.1",
80
- "@typescript-eslint/eslint-plugin": "^6.16.0",
81
- "@typescript-eslint/parser": "^6.16.0",
66
+ "@stylistic/eslint-plugin": "^1.6.0",
67
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
68
+ "@typescript-eslint/parser": "^6.21.0",
82
69
  "eslint-config-flat-gitignore": "^0.1.2",
83
70
  "eslint-merge-processors": "^0.1.0",
84
71
  "eslint-plugin-eslint-comments": "^3.2.0",
85
72
  "eslint-plugin-i": "^2.29.1",
86
- "eslint-plugin-jsdoc": "^46.10.1",
87
- "eslint-plugin-jsonc": "^2.11.2",
73
+ "eslint-plugin-jsdoc": "^48.0.5",
74
+ "eslint-plugin-jsonc": "^2.13.0",
88
75
  "eslint-plugin-kirklin": "^1.1.0",
89
76
  "eslint-plugin-markdown": "^3.0.1",
90
- "eslint-plugin-n": "^16.6.0",
77
+ "eslint-plugin-n": "^16.6.2",
91
78
  "eslint-plugin-no-only-tests": "^3.1.0",
92
79
  "eslint-plugin-perfectionist": "^2.5.0",
93
- "eslint-plugin-toml": "^0.8.0",
80
+ "eslint-plugin-toml": "^0.9.2",
94
81
  "eslint-plugin-unicorn": "^50.0.1",
95
82
  "eslint-plugin-unused-imports": "^3.0.0",
96
- "eslint-plugin-vitest": "^0.3.20",
97
- "eslint-plugin-vue": "^9.19.2",
98
- "eslint-plugin-yml": "^1.11.0",
83
+ "eslint-plugin-vitest": "^0.3.21",
84
+ "eslint-plugin-vue": "^9.21.1",
85
+ "eslint-plugin-yml": "^1.12.2",
99
86
  "eslint-processor-vue-blocks": "^0.1.1",
100
87
  "globals": "^13.24.0",
101
88
  "jsonc-eslint-parser": "^2.4.0",
@@ -104,47 +91,59 @@
104
91
  "picocolors": "^1.0.0",
105
92
  "prompts": "^2.4.2",
106
93
  "toml-eslint-parser": "^0.9.3",
107
- "vue-eslint-parser": "^9.3.2",
94
+ "vue-eslint-parser": "^9.4.2",
108
95
  "yaml-eslint-parser": "^1.2.2",
109
96
  "yargs": "^17.7.2"
110
97
  },
111
98
  "devDependencies": {
112
- "@antfu/eslint-plugin-prettier": "^5.0.1-1",
99
+ "@antfu/eslint-plugin-prettier": "5.0.1-1",
113
100
  "@antfu/ni": "^0.21.12",
114
- "@kirklin/eslint-config": "workspace:*",
115
- "@stylistic/eslint-plugin-migrate": "^1.5.1",
116
- "@types/eslint": "^8.56.0",
101
+ "@stylistic/eslint-plugin-migrate": "^1.6.0",
102
+ "@types/eslint": "^8.56.2",
117
103
  "@types/fs-extra": "^11.0.4",
118
- "@types/node": "^20.10.6",
104
+ "@types/node": "^20.11.16",
119
105
  "@types/prompts": "^2.4.9",
120
106
  "@types/yargs": "^17.0.32",
121
- "@unocss/eslint-plugin": "^0.58.2",
122
- "bumpp": "^9.2.1",
123
- "eslint": "npm:eslint-ts-patch@^8.56.0-0",
124
- "eslint-flat-config-viewer": "^0.1.4",
107
+ "@unocss/eslint-plugin": "^0.58.5",
108
+ "bumpp": "^9.3.0",
109
+ "eslint": "npm:eslint-ts-patch@8.56.0-0",
110
+ "eslint-flat-config-viewer": "^0.1.11",
125
111
  "eslint-plugin-format": "^0.1.0",
126
112
  "eslint-plugin-react": "^7.33.2",
127
113
  "eslint-plugin-react-hooks": "^4.6.0",
128
114
  "eslint-plugin-react-refresh": "^0.4.5",
129
115
  "eslint-plugin-svelte": "^2.35.1",
130
- "eslint-ts-patch": "^8.56.0-0",
116
+ "eslint-ts-patch": "8.56.0-0",
131
117
  "esno": "^4.0.0",
132
118
  "execa": "^8.0.1",
133
119
  "fast-glob": "^3.3.2",
134
120
  "fs-extra": "^11.2.0",
135
- "lint-staged": "^15.2.0",
121
+ "lint-staged": "^15.2.2",
136
122
  "rimraf": "^5.0.5",
137
123
  "simple-git-hooks": "^2.9.0",
124
+ "svelte": "^4.2.10",
138
125
  "svelte-eslint-parser": "^0.33.1",
139
126
  "tsup": "^8.0.1",
140
127
  "typescript": "^5.3.3",
141
- "vitest": "^1.1.0",
142
- "vue": "^3.4.3"
128
+ "vitest": "^1.2.2",
129
+ "vue": "^3.4.15",
130
+ "@kirklin/eslint-config": "2.1.0"
143
131
  },
144
132
  "simple-git-hooks": {
145
133
  "pre-commit": "pnpm lint-staged"
146
134
  },
147
135
  "lint-staged": {
148
136
  "*": "eslint --fix"
137
+ },
138
+ "scripts": {
139
+ "build": "tsup --format esm,cjs --clean --dts",
140
+ "stub": "tsup --format esm",
141
+ "dev": "tsup --format esm,cjs --watch & eslint-flat-config-viewer",
142
+ "watch": "tsup --format esm,cjs --watch",
143
+ "lint": "eslint .",
144
+ "lint:fix": "eslint . --fix",
145
+ "release": "bumpp && pnpm publish",
146
+ "test": "vitest",
147
+ "typecheck": "tsc --noEmit"
149
148
  }
150
- }
149
+ }