@ntnyq/eslint-config 2.5.3 → 2.6.1
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/index.cjs +108 -21
- package/dist/index.d.cts +11233 -57
- package/dist/index.d.ts +11233 -57
- package/dist/index.js +127 -47
- package/package.json +15 -9
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// src/env.ts
|
|
1
|
+
// src/utils/env.ts
|
|
2
2
|
import process from "node:process";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { isPackageExists } from "local-pkg";
|
|
@@ -8,7 +8,22 @@ var hasVue = isPackageExists("vue") || isPackageExists("nuxt") || isPackageExist
|
|
|
8
8
|
});
|
|
9
9
|
var hasUnoCSS = isPackageExists("unocss") || isPackageExists("@unocss/postcss") || isPackageExists("@unocss/webpack") || isPackageExists("@unocss/nuxt");
|
|
10
10
|
|
|
11
|
-
// src/
|
|
11
|
+
// src/utils/interopDefault.ts
|
|
12
|
+
async function interopDefault(mod) {
|
|
13
|
+
const resolved = await mod;
|
|
14
|
+
return resolved.default || resolved;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// src/utils/loadPlugin.ts
|
|
18
|
+
async function loadPlugin(name) {
|
|
19
|
+
const mod = await import(name).catch((err) => {
|
|
20
|
+
console.error(err);
|
|
21
|
+
throw new Error(`Failed to load ESLint plugin '${name}'. Please install it!.`);
|
|
22
|
+
});
|
|
23
|
+
return interopDefault(mod);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// src/utils/defineConfig.ts
|
|
12
27
|
function defineConfig(configs = []) {
|
|
13
28
|
return configs;
|
|
14
29
|
}
|
|
@@ -31,6 +46,7 @@ var GLOB_JSONC = "**/*.jsonc";
|
|
|
31
46
|
var GLOB_VUE = "**/*.vue";
|
|
32
47
|
var GLOB_MARKDOWN = "**/*.md";
|
|
33
48
|
var GLOB_YAML = "**/*.y?(a)ml";
|
|
49
|
+
var GLOB_TOML = "**/*.toml";
|
|
34
50
|
var GLOB_HTML = "**/*.htm?(l)";
|
|
35
51
|
var GLOB_ALL_SRC = [
|
|
36
52
|
GLOB_SRC,
|
|
@@ -40,6 +56,7 @@ var GLOB_ALL_SRC = [
|
|
|
40
56
|
GLOB_MARKDOWN,
|
|
41
57
|
GLOB_VUE,
|
|
42
58
|
GLOB_YAML,
|
|
59
|
+
GLOB_TOML,
|
|
43
60
|
GLOB_HTML
|
|
44
61
|
];
|
|
45
62
|
var GLOB_NODE_MODULES = "**/node_modules/**";
|
|
@@ -79,6 +96,7 @@ var GLOB_EXCLUDE = [
|
|
|
79
96
|
"**/?(.)cache",
|
|
80
97
|
"**/.eslintcache",
|
|
81
98
|
"**/.stylelintcache",
|
|
99
|
+
"**/.eslint-config-inspector",
|
|
82
100
|
"**/.vite-inspect",
|
|
83
101
|
"**/.nuxt",
|
|
84
102
|
"**/.wxt",
|
|
@@ -101,26 +119,25 @@ var ignores = defineConfig([
|
|
|
101
119
|
]);
|
|
102
120
|
|
|
103
121
|
// src/plugins.ts
|
|
122
|
+
import tseslint from "typescript-eslint";
|
|
123
|
+
import * as pluginRegexp from "eslint-plugin-regexp";
|
|
104
124
|
import { default as default2 } from "eslint-plugin-n";
|
|
105
125
|
import { default as default3 } from "eslint-plugin-vue";
|
|
106
|
-
import { default as default4 } from "
|
|
107
|
-
import { default as default5 } from "eslint-plugin-
|
|
108
|
-
import { default as default6 } from "eslint-plugin-
|
|
109
|
-
import { default as default7 } from "eslint-plugin-
|
|
110
|
-
import { default as default8 } from "eslint-plugin
|
|
111
|
-
import { default as default9 } from "eslint-plugin-
|
|
112
|
-
import { default as default10 } from "eslint-plugin-
|
|
113
|
-
import { default as default11 } from "eslint-plugin-
|
|
114
|
-
import { default as default12 } from "eslint-plugin-
|
|
115
|
-
import
|
|
116
|
-
import
|
|
126
|
+
import { default as default4 } from "eslint-plugin-yml";
|
|
127
|
+
import { default as default5 } from "eslint-plugin-toml";
|
|
128
|
+
import { default as default6 } from "eslint-plugin-jsonc";
|
|
129
|
+
import { default as default7 } from "eslint-plugin-jsdoc";
|
|
130
|
+
import { default as default8 } from "@unocss/eslint-plugin";
|
|
131
|
+
import { default as default9 } from "eslint-plugin-unicorn";
|
|
132
|
+
import { default as default10 } from "eslint-plugin-import-x";
|
|
133
|
+
import { default as default11 } from "eslint-plugin-prettier";
|
|
134
|
+
import { default as default12 } from "eslint-plugin-markdown";
|
|
135
|
+
import { default as default13 } from "eslint-plugin-unused-imports";
|
|
136
|
+
import { default as default14 } from "@eslint-community/eslint-plugin-eslint-comments";
|
|
137
|
+
import * as parserToml from "toml-eslint-parser";
|
|
117
138
|
import * as parserYaml from "yaml-eslint-parser";
|
|
118
139
|
import * as parserVue from "vue-eslint-parser";
|
|
119
140
|
import * as parserJsonc from "jsonc-eslint-parser";
|
|
120
|
-
// @__NO_SIDE_EFFECTS__
|
|
121
|
-
function interopDefault(m) {
|
|
122
|
-
return m.default || m;
|
|
123
|
-
}
|
|
124
141
|
|
|
125
142
|
// src/configs/node.ts
|
|
126
143
|
var node = defineConfig([
|
|
@@ -147,7 +164,7 @@ var jsdoc = defineConfig([
|
|
|
147
164
|
{
|
|
148
165
|
name: "ntnyq/jsdoc",
|
|
149
166
|
plugins: {
|
|
150
|
-
jsdoc:
|
|
167
|
+
jsdoc: default7
|
|
151
168
|
},
|
|
152
169
|
rules: {
|
|
153
170
|
"jsdoc/check-access": "warn",
|
|
@@ -176,7 +193,7 @@ var imports = defineConfig([
|
|
|
176
193
|
{
|
|
177
194
|
name: "ntnyq/imports",
|
|
178
195
|
plugins: {
|
|
179
|
-
import:
|
|
196
|
+
import: default10
|
|
180
197
|
},
|
|
181
198
|
settings: {
|
|
182
199
|
"import/resolver": {
|
|
@@ -219,7 +236,7 @@ var unicorn = defineConfig([
|
|
|
219
236
|
{
|
|
220
237
|
name: "ntnyq/unicorn",
|
|
221
238
|
plugins: {
|
|
222
|
-
unicorn:
|
|
239
|
+
unicorn: default9
|
|
223
240
|
},
|
|
224
241
|
rules: {
|
|
225
242
|
// Disabled for now
|
|
@@ -296,11 +313,11 @@ var prettier = defineConfig([
|
|
|
296
313
|
{
|
|
297
314
|
name: "ntnyq/prettier",
|
|
298
315
|
plugins: {
|
|
299
|
-
prettier:
|
|
316
|
+
prettier: default11
|
|
300
317
|
},
|
|
301
318
|
rules: {
|
|
302
319
|
...prettierConfig.rules,
|
|
303
|
-
...
|
|
320
|
+
...default11.configs.recommended.rules,
|
|
304
321
|
"prettier/prettier": "warn"
|
|
305
322
|
}
|
|
306
323
|
}
|
|
@@ -311,11 +328,11 @@ var comments = defineConfig([
|
|
|
311
328
|
{
|
|
312
329
|
name: "ntnyq/eslint-comments",
|
|
313
330
|
plugins: {
|
|
314
|
-
"eslint-comments":
|
|
331
|
+
"@eslint-community/eslint-comments": default14
|
|
315
332
|
},
|
|
316
333
|
rules: {
|
|
317
|
-
...
|
|
318
|
-
"eslint-comments/disable-enable-pair": ["error", { allowWholeFile: true }]
|
|
334
|
+
...default14.configs.recommended.rules,
|
|
335
|
+
"@eslint-community/eslint-comments/disable-enable-pair": ["error", { allowWholeFile: true }]
|
|
319
336
|
}
|
|
320
337
|
}
|
|
321
338
|
]);
|
|
@@ -635,7 +652,7 @@ var javascript = defineConfig([
|
|
|
635
652
|
"max-lines-per-function": [
|
|
636
653
|
"error",
|
|
637
654
|
{
|
|
638
|
-
max:
|
|
655
|
+
max: 200,
|
|
639
656
|
skipComments: true,
|
|
640
657
|
skipBlankLines: true
|
|
641
658
|
}
|
|
@@ -797,6 +814,29 @@ var typescript = defineConfig([
|
|
|
797
814
|
}
|
|
798
815
|
]);
|
|
799
816
|
|
|
817
|
+
// src/configs/unusedImports.ts
|
|
818
|
+
var unusedImports = defineConfig([
|
|
819
|
+
{
|
|
820
|
+
name: "ntnyq/unused-imports",
|
|
821
|
+
plugins: {
|
|
822
|
+
"unused-imports": default13
|
|
823
|
+
},
|
|
824
|
+
rules: {
|
|
825
|
+
"@typescript-eslint/no-unused-vars": "off",
|
|
826
|
+
"unused-imports/no-unused-imports": "error",
|
|
827
|
+
"unused-imports/no-unused-vars": [
|
|
828
|
+
"warn",
|
|
829
|
+
{
|
|
830
|
+
vars: "all",
|
|
831
|
+
varsIgnorePattern: "^_",
|
|
832
|
+
args: "after-used",
|
|
833
|
+
argsIgnorePattern: "^_"
|
|
834
|
+
}
|
|
835
|
+
]
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
]);
|
|
839
|
+
|
|
800
840
|
// src/configs/regexp.ts
|
|
801
841
|
var regexp = defineConfig([
|
|
802
842
|
/**
|
|
@@ -813,7 +853,7 @@ var unocss = defineConfig([
|
|
|
813
853
|
{
|
|
814
854
|
name: "ntnyq/unocss",
|
|
815
855
|
plugins: {
|
|
816
|
-
unocss:
|
|
856
|
+
unocss: default8
|
|
817
857
|
},
|
|
818
858
|
rules: {
|
|
819
859
|
"unocss/order": "error",
|
|
@@ -825,7 +865,7 @@ var unocss = defineConfig([
|
|
|
825
865
|
|
|
826
866
|
// src/configs/command.ts
|
|
827
867
|
import createCommandPlugin from "eslint-plugin-command/config";
|
|
828
|
-
var command = defineConfig([createCommandPlugin(
|
|
868
|
+
var command = defineConfig([createCommandPlugin()]);
|
|
829
869
|
|
|
830
870
|
// src/configs/yml.ts
|
|
831
871
|
var yml = defineConfig([
|
|
@@ -836,17 +876,52 @@ var yml = defineConfig([
|
|
|
836
876
|
parser: parserYaml
|
|
837
877
|
},
|
|
838
878
|
plugins: {
|
|
839
|
-
yml:
|
|
879
|
+
yml: default4
|
|
840
880
|
},
|
|
841
881
|
rules: {
|
|
842
|
-
...
|
|
843
|
-
...
|
|
882
|
+
...default4.configs.standard.rules,
|
|
883
|
+
...default4.configs.prettier.rules,
|
|
844
884
|
"yml/no-empty-mapping-value": "off",
|
|
845
885
|
"yml/quotes": ["error", { avoidEscape: false, prefer: "single" }]
|
|
846
886
|
}
|
|
847
887
|
}
|
|
848
888
|
]);
|
|
849
889
|
|
|
890
|
+
// src/configs/toml.ts
|
|
891
|
+
var toml = defineConfig([
|
|
892
|
+
{
|
|
893
|
+
name: "ntnyq/toml",
|
|
894
|
+
files: [GLOB_TOML],
|
|
895
|
+
languageOptions: {
|
|
896
|
+
parser: parserToml
|
|
897
|
+
},
|
|
898
|
+
plugins: {
|
|
899
|
+
toml: default5
|
|
900
|
+
},
|
|
901
|
+
rules: {
|
|
902
|
+
"toml/comma-style": "error",
|
|
903
|
+
"toml/keys-order": "error",
|
|
904
|
+
"toml/no-space-dots": "error",
|
|
905
|
+
"toml/no-unreadable-number-separator": "error",
|
|
906
|
+
"toml/precision-of-fractional-seconds": "error",
|
|
907
|
+
"toml/precision-of-integer": "error",
|
|
908
|
+
"toml/tables-order": "error",
|
|
909
|
+
"toml/indent": ["error", 2],
|
|
910
|
+
"toml/vue-custom-block/no-parsing-error": "error",
|
|
911
|
+
"toml/array-bracket-newline": "error",
|
|
912
|
+
"toml/array-bracket-spacing": "error",
|
|
913
|
+
"toml/array-element-newline": "error",
|
|
914
|
+
"toml/inline-table-curly-spacing": "error",
|
|
915
|
+
"toml/key-spacing": "error",
|
|
916
|
+
"toml/padding-line-between-pairs": "error",
|
|
917
|
+
"toml/padding-line-between-tables": "error",
|
|
918
|
+
"toml/quoted-keys": "error",
|
|
919
|
+
"toml/spaced-comment": "error",
|
|
920
|
+
"toml/table-bracket-spacing": "error"
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
]);
|
|
924
|
+
|
|
850
925
|
// src/configs/sort.ts
|
|
851
926
|
var sortPackageJson = defineConfig([
|
|
852
927
|
{
|
|
@@ -1070,13 +1145,13 @@ var jsonc = defineConfig([
|
|
|
1070
1145
|
name: "ntnyq/jsonc",
|
|
1071
1146
|
files: [GLOB_JSON, GLOB_JSON5, GLOB_JSONC, "**/*rc"],
|
|
1072
1147
|
plugins: {
|
|
1073
|
-
jsonc:
|
|
1148
|
+
jsonc: default6
|
|
1074
1149
|
},
|
|
1075
1150
|
languageOptions: {
|
|
1076
1151
|
parser: parserJsonc
|
|
1077
1152
|
},
|
|
1078
1153
|
rules: {
|
|
1079
|
-
...
|
|
1154
|
+
...default6.configs["recommended-with-jsonc"].rules,
|
|
1080
1155
|
"jsonc/array-bracket-spacing": ["error", "never"],
|
|
1081
1156
|
"jsonc/comma-dangle": ["error", "never"],
|
|
1082
1157
|
"jsonc/comma-style": ["error", "last"],
|
|
@@ -1109,9 +1184,7 @@ var jsonc = defineConfig([
|
|
|
1109
1184
|
|
|
1110
1185
|
// src/configs/markdown.ts
|
|
1111
1186
|
var markdown = defineConfig([
|
|
1112
|
-
|
|
1113
|
-
// wait for https://github.com/eslint/eslint-plugin-markdown/pull/256
|
|
1114
|
-
...default7.configs.recommended,
|
|
1187
|
+
...default12.configs.recommended,
|
|
1115
1188
|
{
|
|
1116
1189
|
name: "ntnyq/markdown/extensions",
|
|
1117
1190
|
files: [`${GLOB_MARKDOWN}/${GLOB_SRC}`, `${GLOB_MARKDOWN}/${GLOB_VUE}`],
|
|
@@ -1418,7 +1491,7 @@ var presetJavaScript = [
|
|
|
1418
1491
|
];
|
|
1419
1492
|
var presetBasic = [...presetJavaScript, ...typescript];
|
|
1420
1493
|
var presetJsonc = [...jsonc, ...sortPackageJson, ...sortTsConfig];
|
|
1421
|
-
var presetLanguageExtensions = [...presetJsonc, ...yml, ...markdown];
|
|
1494
|
+
var presetLanguageExtensions = [...presetJsonc, ...yml, ...toml, ...markdown];
|
|
1422
1495
|
var presetCommon = [...presetBasic, ...presetLanguageExtensions, ...prettier];
|
|
1423
1496
|
var presetAll = [...presetCommon, ...vue, ...unocss];
|
|
1424
1497
|
function ntnyq(config = [], {
|
|
@@ -1428,7 +1501,7 @@ function ntnyq(config = [], {
|
|
|
1428
1501
|
markdown: enableMarkdown = true,
|
|
1429
1502
|
command: enableCommand = true
|
|
1430
1503
|
} = {}) {
|
|
1431
|
-
const configs = defineConfig([...presetBasic, ...yml, ...presetJsonc]);
|
|
1504
|
+
const configs = defineConfig([...presetBasic, ...yml, ...toml, ...presetJsonc]);
|
|
1432
1505
|
if (enableVue) {
|
|
1433
1506
|
configs.push(...vue);
|
|
1434
1507
|
}
|
|
@@ -1469,6 +1542,7 @@ export {
|
|
|
1469
1542
|
GLOB_SRC,
|
|
1470
1543
|
GLOB_SRC_EXT,
|
|
1471
1544
|
GLOB_STYLE,
|
|
1545
|
+
GLOB_TOML,
|
|
1472
1546
|
GLOB_TS,
|
|
1473
1547
|
GLOB_TSX,
|
|
1474
1548
|
GLOB_VUE,
|
|
@@ -1487,24 +1561,28 @@ export {
|
|
|
1487
1561
|
jsdoc,
|
|
1488
1562
|
jsonc,
|
|
1489
1563
|
jsx,
|
|
1564
|
+
loadPlugin,
|
|
1490
1565
|
markdown,
|
|
1491
1566
|
node,
|
|
1492
1567
|
ntnyq,
|
|
1493
1568
|
parserJsonc,
|
|
1569
|
+
parserToml,
|
|
1494
1570
|
parserVue,
|
|
1495
1571
|
parserYaml,
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1572
|
+
default14 as pluginComments,
|
|
1573
|
+
default10 as pluginImport,
|
|
1574
|
+
default7 as pluginJsdoc,
|
|
1575
|
+
default6 as pluginJsonc,
|
|
1576
|
+
default12 as pluginMarkdown,
|
|
1501
1577
|
default2 as pluginNode,
|
|
1502
|
-
|
|
1578
|
+
default11 as pluginPrettier,
|
|
1503
1579
|
pluginRegexp,
|
|
1504
|
-
default5 as
|
|
1505
|
-
|
|
1580
|
+
default5 as pluginToml,
|
|
1581
|
+
default9 as pluginUnicorn,
|
|
1582
|
+
default8 as pluginUnoCSS,
|
|
1583
|
+
default13 as pluginUnusedImports,
|
|
1506
1584
|
default3 as pluginVue,
|
|
1507
|
-
|
|
1585
|
+
default4 as pluginYaml,
|
|
1508
1586
|
presetAll,
|
|
1509
1587
|
presetBasic,
|
|
1510
1588
|
presetCommon,
|
|
@@ -1515,11 +1593,13 @@ export {
|
|
|
1515
1593
|
regexp,
|
|
1516
1594
|
sortPackageJson,
|
|
1517
1595
|
sortTsConfig,
|
|
1596
|
+
toml,
|
|
1518
1597
|
tseslint,
|
|
1519
1598
|
typescript,
|
|
1520
1599
|
typescriptCore,
|
|
1521
1600
|
unicorn,
|
|
1522
1601
|
unocss,
|
|
1602
|
+
unusedImports,
|
|
1523
1603
|
vue,
|
|
1524
1604
|
yml
|
|
1525
1605
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ntnyq/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.6.1",
|
|
5
5
|
"packageManager": "pnpm@9.5.0",
|
|
6
6
|
"description": "ESLint flat config of ntnyq",
|
|
7
7
|
"keywords": [
|
|
@@ -36,10 +36,11 @@
|
|
|
36
36
|
"dist"
|
|
37
37
|
],
|
|
38
38
|
"scripts": {
|
|
39
|
-
"build": "tsup",
|
|
39
|
+
"build": "pnpm run generate:type && tsup",
|
|
40
40
|
"clean": "rimraf dist",
|
|
41
41
|
"dev": "tsup --watch",
|
|
42
|
-
"generate:site": "
|
|
42
|
+
"generate:site": "tsx scripts/generateSite.ts",
|
|
43
|
+
"generate:type": "tsx scripts/generateType.ts",
|
|
43
44
|
"lint": "eslint .",
|
|
44
45
|
"prepare": "husky",
|
|
45
46
|
"release": "run-s release:check release:version",
|
|
@@ -54,12 +55,13 @@
|
|
|
54
55
|
"eslint": "^9.0.0"
|
|
55
56
|
},
|
|
56
57
|
"dependencies": {
|
|
58
|
+
"@eslint-community/eslint-plugin-eslint-comments": "^4.3.0",
|
|
57
59
|
"@eslint/js": "^9.7.0",
|
|
58
60
|
"@types/eslint": "^8.56.10",
|
|
59
|
-
"@unocss/eslint-plugin": "^0.61.
|
|
61
|
+
"@unocss/eslint-plugin": "^0.61.5",
|
|
60
62
|
"eslint-config-prettier": "^9.1.0",
|
|
63
|
+
"eslint-flat-config-utils": "^0.2.5",
|
|
61
64
|
"eslint-plugin-command": "^0.2.3",
|
|
62
|
-
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
63
65
|
"eslint-plugin-import-x": "^3.0.1",
|
|
64
66
|
"eslint-plugin-jsdoc": "^48.7.0",
|
|
65
67
|
"eslint-plugin-jsonc": "^2.16.0",
|
|
@@ -67,6 +69,7 @@
|
|
|
67
69
|
"eslint-plugin-n": "^17.9.0",
|
|
68
70
|
"eslint-plugin-prettier": "^5.1.3",
|
|
69
71
|
"eslint-plugin-regexp": "^2.6.0",
|
|
72
|
+
"eslint-plugin-toml": "^0.11.1",
|
|
70
73
|
"eslint-plugin-unicorn": "^54.0.0",
|
|
71
74
|
"eslint-plugin-unused-imports": "^4.0.0",
|
|
72
75
|
"eslint-plugin-vue": "^9.27.0",
|
|
@@ -74,21 +77,24 @@
|
|
|
74
77
|
"globals": "^15.8.0",
|
|
75
78
|
"jsonc-eslint-parser": "^2.4.0",
|
|
76
79
|
"local-pkg": "^0.5.0",
|
|
77
|
-
"prettier": "^3.3.
|
|
78
|
-
"
|
|
80
|
+
"prettier": "^3.3.3",
|
|
81
|
+
"toml-eslint-parser": "^0.10.0",
|
|
82
|
+
"typescript-eslint": "^8.0.0-alpha.44",
|
|
79
83
|
"vue-eslint-parser": "^9.4.3",
|
|
80
84
|
"yaml-eslint-parser": "^1.2.3"
|
|
81
85
|
},
|
|
82
86
|
"devDependencies": {
|
|
83
87
|
"@ntnyq/prettier-config": "^1.21.2",
|
|
84
|
-
"@types/node": "^20.14.
|
|
88
|
+
"@types/node": "^20.14.11",
|
|
85
89
|
"bumpp": "^9.4.1",
|
|
86
|
-
"eslint": "^9.
|
|
90
|
+
"eslint": "^9.7.0",
|
|
91
|
+
"eslint-typegen": "^0.2.4",
|
|
87
92
|
"husky": "^9.0.11",
|
|
88
93
|
"nano-staged": "^0.8.0",
|
|
89
94
|
"npm-run-all2": "^6.2.2",
|
|
90
95
|
"rimraf": "^6.0.1",
|
|
91
96
|
"tsup": "^8.1.0",
|
|
97
|
+
"tsx": "^4.16.2",
|
|
92
98
|
"typescript": "^5.5.3",
|
|
93
99
|
"zx": "^8.1.4"
|
|
94
100
|
},
|