weapp-vite 7.5.0 → 7.7.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.
Files changed (135) hide show
  1. package/README.md +14 -6
  2. package/THIRD_PARTY_NOTICES.md +60 -0
  3. package/bin/bootstrap.js +9 -4
  4. package/bin/bootstrap.test.ts +82 -1
  5. package/bin/nodeVersionWarning.js +17 -0
  6. package/bin/nodeVersionWarning.test.ts +30 -0
  7. package/dist/action-BD56SQh4.mjs +254 -0
  8. package/dist/action-CPtgEl6p.mjs +94 -0
  9. package/dist/action-le0bNff_.mjs +1102 -0
  10. package/dist/action-ytG5oFAw.mjs +138 -0
  11. package/dist/action-zmJrU8PC.mjs +245 -0
  12. package/dist/{analyze-ZJUvEdaY.mjs → analyze-DCZo-sJd.mjs} +4 -71
  13. package/dist/artifacts-TrTX9_jj.mjs +104 -0
  14. package/dist/assets-XyhpYtGl.mjs +630 -0
  15. package/dist/auto-import-components/resolvers.d.mts +1 -1
  16. package/dist/auto-import-components/resolvers.mjs +1 -1
  17. package/dist/auto-import-presets/wevu-router.d.mts +1 -1
  18. package/dist/auto-import-presets/wevu-router.mjs +1 -1
  19. package/dist/auto-import-presets/wevu.d.mts +1 -1
  20. package/dist/auto-import-presets/wevu.mjs +1 -1
  21. package/dist/auto-import-presets.d.mts +2 -2
  22. package/dist/auto-import-presets.mjs +2 -2
  23. package/dist/auto-routes.d.mts +1 -3
  24. package/dist/auto-routes.mjs +3 -4
  25. package/dist/{budget-BD7VqLCl.d.mts → budget-DTPngJU0.d.mts} +1 -10
  26. package/dist/budget-_Mu-4GKn.mjs +63 -0
  27. package/dist/builtProject-B145uOt5.mjs +534 -0
  28. package/dist/{package-7swhyLmf.mjs → classifier-CNTJOYQL.mjs} +5 -9
  29. package/dist/cli-acceptance.mjs +3 -4
  30. package/dist/cli.mjs +142 -4569
  31. package/dist/{config-DRGcCi3h.mjs → config-59ZWhCIf.mjs} +1 -2
  32. package/dist/{config-V0L-IAJf.d.mts → config-BNx2BODw.d.mts} +145 -150
  33. package/dist/config.d.mts +2 -2
  34. package/dist/config.mjs +3 -3
  35. package/dist/{constants-DEZdcsMn.mjs → constants-BOe8mgqL.mjs} +2 -4
  36. package/dist/{createCompilerContextInstance-DJH_P_nZ.mjs → createCompilerContextInstance-BXSdH2E8.mjs} +19930 -14019
  37. package/dist/{createContext-BqYzHhY9.mjs → createContext-W0TeXxbo.mjs} +7 -5
  38. package/dist/dashboard/analyze.d.mts +1 -7
  39. package/dist/dashboard/analyze.mjs +3 -1
  40. package/dist/dashboard/vite.d.mts +2 -4
  41. package/dist/dashboard/vite.mjs +1 -2
  42. package/dist/dashboard.d.mts +2 -2
  43. package/dist/dashboard.mjs +1733 -1
  44. package/dist/dashboardTransport-C9290QgS.mjs +15 -0
  45. package/dist/{dashboardViteBridge-Dy3nAD4m.mjs → dashboardViteBridge-B7QgQo94.mjs} +11 -11
  46. package/dist/{dev-fR5GiJRO.mjs → dev-D1QSExwk.mjs} +6 -3
  47. package/dist/devProvider-Bcvz5nu4.mjs +4966 -0
  48. package/dist/docs/README.md +14 -6
  49. package/dist/docs/ai-workflows.md +2 -0
  50. package/dist/docs/mcp.md +11 -1
  51. package/dist/docs/troubleshooting.md +16 -0
  52. package/dist/docs/vue-sfc.md +25 -2
  53. package/dist/docs/weapp-config.md +29 -0
  54. package/dist/docs/wevu-authoring.md +2 -0
  55. package/dist/doctor-worker.mjs +5 -5
  56. package/dist/doctor.d.mts +2 -8
  57. package/dist/doctor.mjs +24 -31
  58. package/dist/engine-Mnnm_ALP.mjs +53 -0
  59. package/dist/file-5eEfbK60.mjs +1 -0
  60. package/dist/{file-sC3jD7Fh.mjs → file-D8mp5GmB.mjs} +50 -26
  61. package/dist/{files-BqxFIPRp.mjs → files-Cy9jURJu.mjs} +1 -2
  62. package/dist/forwardConsole-D2Q0RIqc.mjs +509 -0
  63. package/dist/getInstance-BXNVH7sU.mjs +1 -0
  64. package/dist/{getInstance-DiGSzBNI.mjs → getInstance-DfNlbr-X.mjs} +2 -3
  65. package/dist/history-dKxzoHmN.mjs +774 -0
  66. package/dist/i18n.d.mts +1 -3
  67. package/dist/i18n.mjs +1 -2
  68. package/dist/{index-C9HjUX5c.d.mts → index-DIZJRrvK.d.mts} +1 -24
  69. package/dist/{index-CaXAtb9e.d.mts → index-SnaW3cvA.d.mts} +0 -12
  70. package/dist/index.d.mts +3 -7
  71. package/dist/index.mjs +6 -6
  72. package/dist/{json-BL8Dhhk6.mjs → json-Cvon2mw5.mjs} +1 -2
  73. package/dist/json.d.mts +1 -1
  74. package/dist/json.mjs +1 -1
  75. package/dist/lib-CJyMBzoe.mjs +140 -0
  76. package/dist/{lifecycle-BROTlwSL.mjs → lifecycle-CUo8PMQc.mjs} +123 -33
  77. package/dist/{loadConfig-C3BQhz7F.mjs → loadConfig-CKIdfW4o.mjs} +2 -3
  78. package/dist/loadConfig-D4WGJcYp.mjs +1 -0
  79. package/dist/logBuildAppFinish-DOBoof6S.mjs +54 -0
  80. package/dist/mcp-D88QvQgG.mjs +84 -0
  81. package/dist/{mcp-Cj8Maqo6.mjs → mcp-ovJgl1N9.mjs} +2 -4
  82. package/dist/mcp.d.mts +1 -3
  83. package/dist/mcp.mjs +1 -1
  84. package/dist/mcpClient-C8JzVZ46.mjs +283 -0
  85. package/dist/{processCleanup-B6KA30Zc.mjs → metadata-HlDKtlsu.mjs} +2 -21
  86. package/dist/nodeEnv-zq1EymWj.mjs +6 -0
  87. package/dist/openIde-QoYKhuuM.mjs +643 -0
  88. package/dist/options-Cz8vZ-0w.mjs +33 -0
  89. package/dist/{chunkStrategy-DRA5WpB-.mjs → package-DR62fAzP.mjs} +32 -31
  90. package/dist/path-E1OjBJAl.mjs +43 -0
  91. package/dist/{platform-CnkySBKz.mjs → platform-BiMpsZIb.mjs} +1 -2
  92. package/dist/{pluginHost--CaeyWpA.mjs → pluginHost-vn8Vty1J.mjs} +1 -2
  93. package/dist/processCleanup-DzB64WI8.mjs +18 -0
  94. package/dist/{protocol-vg8HGJ4n.mjs → protocol-HiSJRrSO.mjs} +43 -41
  95. package/dist/reader-wzPH_W8A.mjs +92 -0
  96. package/dist/realpathScope-DwlLaCk3.mjs +22 -0
  97. package/dist/report-PJVyo-UZ.mjs +105 -0
  98. package/dist/{path-doV773b7.mjs → resolvedId-DaxPh_yV.mjs} +5 -50
  99. package/dist/{resolvers-Dod-euqX.mjs → resolvers-CKYqmRD_.mjs} +10 -20
  100. package/dist/resolvers.d.mts +1 -1
  101. package/dist/resolvers.mjs +1 -1
  102. package/dist/{routes-C7fCmf92.d.mts → routes-DvAFX29h.d.mts} +0 -2
  103. package/dist/{runtime-Ee2HY6gR.d.mts → runtime-BL4RjBRa.d.mts} +1 -9
  104. package/dist/runtime-CKtMVERT.mjs +42 -0
  105. package/dist/{runtime-D6VCNhNY.mjs → runtime-DDUCb7pP.mjs} +4 -8
  106. package/dist/runtime.d.mts +1 -1
  107. package/dist/runtime.mjs +1 -1
  108. package/dist/schematics-DikfOjMD.mjs +90 -0
  109. package/dist/{session-PskhD-nZ.mjs → session-COrQJYif.mjs} +81 -21
  110. package/dist/test.d.mts +1 -3
  111. package/dist/test.mjs +54 -30
  112. package/dist/types-BK2EQ3Jm.d.mts +37 -0
  113. package/dist/{types-CgZn5X6j.d.mts → types-e2BMP9NU.d.mts} +1 -4
  114. package/dist/types.d.mts +4 -4
  115. package/dist/{upload-D4msblBf.mjs → upload-Chal5b3w.mjs} +118 -24
  116. package/dist/upload-worker.mjs +3 -5
  117. package/dist/{utils-CJSCgEj6.mjs → utils-CTGSZp4j.mjs} +72 -146
  118. package/dist/vite.d.mts +2 -4
  119. package/dist/vite.mjs +55 -21
  120. package/dist/volar.mjs +1 -2
  121. package/dist/{wevu-BQWUU7br.mjs → wevu-BaihCXO9.mjs} +1 -2
  122. package/dist/wevu-DTtSOyxB.d.mts +3 -0
  123. package/dist/{wevu-router-Dg1LnBlg.mjs → wevu-router-BIoxDbnu.mjs} +1 -2
  124. package/dist/wevu-router-CdWurGQ4.d.mts +3 -0
  125. package/dist/wxs-7V7MPzeW.mjs +1 -0
  126. package/dist/wxs-BdHHXltv.mjs +110 -0
  127. package/package.json +62 -53
  128. package/dist/dashboard-DvqF3Key.mjs +0 -1842
  129. package/dist/devProvider-BGBkw28J.mjs +0 -1050
  130. package/dist/file-DRb4eWqw.mjs +0 -1
  131. package/dist/getInstance-SiE6WZRh.mjs +0 -1
  132. package/dist/loadConfig-VGtBF4qm.mjs +0 -1
  133. package/dist/mcp-D3Yh24Cj.mjs +0 -529
  134. package/dist/wevu-C4KEC5kO.d.mts +0 -5
  135. package/dist/wevu-router-Cg2sIkIE.d.mts +0 -5
@@ -0,0 +1,110 @@
1
+ import { createRequire } from "node:module";
2
+ import { addExtension } from "@weapp-core/shared";
3
+ import * as t from "@weapp-vite/ast/babelTypes";
4
+ import * as babel from "@weapp-vite/ast/babelCore";
5
+ // src/wxs/utils.ts
6
+ function normalizeWxsFilename(value, extension = "wxs") {
7
+ const normalized = extension.startsWith(".") ? extension.slice(1) : extension;
8
+ let filename = value;
9
+ filename = filename.replace(/\.[jt]s$/i, "");
10
+ filename = filename.replace(/\.(wxs|sjs)$/i, "");
11
+ return addExtension(filename, `.${normalized}`);
12
+ }
13
+ // src/wxs/index.ts
14
+ const nodeRequire = createRequire(import.meta.url);
15
+ let babelPresets;
16
+ /** 首次转换才加载 presets,兼容 Babel 的 ESM default 与 CommonJS 导出。 */
17
+ function loadBabelPreset(name) {
18
+ const loaded = nodeRequire(name);
19
+ return loaded.default ?? loaded;
20
+ }
21
+ function getBabelPresets() {
22
+ return babelPresets ??= {
23
+ env: loadBabelPreset("@babel/preset-env"),
24
+ typescript: loadBabelPreset("@babel/preset-typescript")
25
+ };
26
+ }
27
+ function transformWxsCode(code, options) {
28
+ const presets = getBabelPresets();
29
+ const filename = options?.filename ?? "script.ts";
30
+ const extension = options?.extension ?? "wxs";
31
+ const preserveEsmExports = extension.replace(/^\./, "") === "sjs";
32
+ const importees = [];
33
+ const maybePushImportee = (value) => {
34
+ if (typeof value !== "string" || !value) return;
35
+ importees.push({ source: value });
36
+ };
37
+ const tryCollectArgument = (path) => {
38
+ const node = path.node;
39
+ if (t.isStringLiteral(node)) {
40
+ maybePushImportee(node.value);
41
+ return;
42
+ }
43
+ if (t.isTemplateLiteral(node) && node.expressions.length === 0) {
44
+ const value = node.quasis.map((q) => q.value.cooked ?? q.value.raw ?? "").join("");
45
+ maybePushImportee(value);
46
+ return;
47
+ }
48
+ try {
49
+ const evaluated = path.evaluate();
50
+ if (evaluated.confident) maybePushImportee(evaluated.value);
51
+ } catch {}
52
+ };
53
+ return {
54
+ result: babel.transformSync(code, {
55
+ babelrc: false,
56
+ configFile: false,
57
+ presets: [[presets.env, {
58
+ modules: preserveEsmExports ? false : "commonjs",
59
+ targets: { ie: "11" }
60
+ }], presets.typescript],
61
+ filename,
62
+ plugins: [{ visitor: {
63
+ Directive: { enter(p) {
64
+ p.remove();
65
+ } },
66
+ CallExpression: { enter(p) {
67
+ const node = p.node;
68
+ if (!t.isIdentifier(node.callee, { name: "require" })) return;
69
+ if (node.arguments.length !== 1) return;
70
+ const argPath = p.get("arguments.0");
71
+ tryCollectArgument(argPath);
72
+ const arg = node.arguments[0];
73
+ if (t.isStringLiteral(arg)) arg.value = normalizeWxsFilename(arg.value, extension);
74
+ } },
75
+ ExpressionStatement(p) {
76
+ const expression = p.node.expression;
77
+ if (expression.type === "CallExpression" && expression.callee.type === "MemberExpression" && t.isIdentifier(expression.callee.object) && expression.callee.object.name === "Object" && t.isIdentifier(expression.callee.property) && expression.callee.property.name === "defineProperty" && expression.arguments.length >= 2 && t.isIdentifier(expression.arguments[0]) && expression.arguments[0].name === "exports" && t.isStringLiteral(expression.arguments[1]) && expression.arguments[1].value === "__esModule") p.remove();
78
+ },
79
+ AssignmentExpression: { enter(p) {
80
+ if (!preserveEsmExports || p.node.operator !== "=") return;
81
+ const left = p.node.left;
82
+ if (!t.isMemberExpression(left) || left.computed || !t.isIdentifier(left.object, { name: "module" }) || !t.isIdentifier(left.property, { name: "exports" }) || !p.parentPath.isExpressionStatement()) return;
83
+ p.parentPath.replaceWith(t.exportDefaultDeclaration(p.node.right));
84
+ } },
85
+ NewExpression: { enter(p) {
86
+ const node = p.node;
87
+ if (t.isIdentifier(node.callee, { name: "RegExp" })) p.replaceWith(t.callExpression(t.identifier("getRegExp"), node.arguments));
88
+ else if (t.isIdentifier(node.callee, { name: "Date" })) p.replaceWith(t.callExpression(t.identifier("getDate"), node.arguments));
89
+ } },
90
+ RegExpLiteral: { enter(p) {
91
+ const args = [t.stringLiteral(p.node.pattern)];
92
+ if (p.node.flags) args.push(t.stringLiteral(p.node.flags));
93
+ p.replaceWith(t.callExpression(t.identifier("getRegExp"), args));
94
+ } },
95
+ MemberExpression: { enter(p) {
96
+ if (preserveEsmExports) return;
97
+ const node = p.node;
98
+ if (!t.isIdentifier(node.object, { name: "exports" })) return;
99
+ const moduleExports = t.memberExpression(t.identifier("module"), t.identifier("exports"));
100
+ p.replaceWith(t.memberExpression(moduleExports, node.property, node.computed));
101
+ } },
102
+ ImportDeclaration: { enter(p) {
103
+ maybePushImportee(p.node.source.value);
104
+ } }
105
+ } }]
106
+ }),
107
+ importees
108
+ };
109
+ }
110
+ export { normalizeWxsFilename as n, transformWxsCode as t };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "weapp-vite",
3
3
  "type": "module",
4
- "version": "7.5.0",
4
+ "version": "7.7.0",
5
5
  "description": "weapp-vite 一个现代化的小程序打包工具",
6
6
  "author": "ice breaker <1324318532@qq.com>",
7
7
  "license": "MIT",
@@ -135,6 +135,7 @@
135
135
  "wv": "bin/weapp-vite.js"
136
136
  },
137
137
  "files": [
138
+ "THIRD_PARTY_NOTICES.md",
138
139
  "bin",
139
140
  "client.d.ts",
140
141
  "dist",
@@ -142,14 +143,14 @@
142
143
  "volar.cjs"
143
144
  ],
144
145
  "engines": {
145
- "node": "^22.18.0 || ^24.11.0 || >=26.0.0"
146
+ "node": "^22.23.4 || ^24.22.1 || >=26.12.1"
146
147
  },
147
148
  "publishConfig": {
148
149
  "access": "public",
149
150
  "registry": "https://registry.npmjs.org"
150
151
  },
151
152
  "peerDependencies": {
152
- "@vitejs/devtools-kit": "^0.7.6"
153
+ "@vitejs/devtools-kit": "^0.8.0"
153
154
  },
154
155
  "peerDependenciesMeta": {
155
156
  "@vitejs/devtools-kit": {
@@ -157,43 +158,46 @@
157
158
  }
158
159
  },
159
160
  "dependencies": {
161
+ "@babel/core": "^8.0.9",
162
+ "@babel/plugin-transform-dynamic-import": "^8.0.1",
160
163
  "@babel/plugin-transform-modules-commonjs": "^8.0.1",
161
164
  "@babel/preset-env": "^8.0.7",
162
165
  "@babel/preset-typescript": "^8.0.7",
163
- "@devframes/agentic": "1.2.3",
164
- "@devframes/hub": "1.2.3",
165
- "@devframes/hub-ui": "1.2.3",
166
166
  "@jridgewell/remapping": "^2.3.5",
167
- "@modelcontextprotocol/node": "^2.1.1",
168
- "@typescript-eslint/parser": "^8.71.1",
169
- "@vercel/detect-agent": "^1.2.5",
170
- "@volar/typescript": "^2.4.28",
171
- "@vue/language-core": "^3.3.12",
172
- "@weapp-core/constants": "0.3.1",
173
- "@weapp-core/init": "6.0.25",
174
- "@weapp-core/logger": "3.1.9",
175
- "@weapp-core/schematics": "6.2.9",
176
- "@weapp-core/shared": "3.2.8",
177
- "@weapp-tailwindcss/engine": "0.1.5",
178
- "@weapp-vite/acceptance": "0.1.0",
179
- "@weapp-vite/ast": "7.5.0",
180
- "@weapp-vite/eslint": "0.2.10",
181
- "@weapp-vite/hmr": "0.2.1",
182
- "@weapp-vite/i18n": "0.2.9",
183
- "@weapp-vite/mcp": "2.0.0",
184
- "@weapp-vite/miniprogram-automator": "1.3.0",
185
- "@weapp-vite/tailwindcss": "1.0.0",
186
- "@weapp-vite/volar": "2.1.13",
187
- "@weapp-vite/web": "2.0.0",
188
- "@wevu/api": "0.3.8",
189
- "@wevu/web-apis": "1.3.5",
190
- "cac": "^7.0.1",
191
- "chokidar": "^5.0.0",
167
+ "@modelcontextprotocol/node": "^2.1.2",
168
+ "@modelcontextprotocol/server": "^2.4.0",
169
+ "@types/picomatch": "^4.0.3",
170
+ "@types/set-value": "^4.0.3",
171
+ "@typescript-eslint/parser": "^8.72.0",
172
+ "@vercel/detect-agent": "^1.2.7",
173
+ "@volar/language-service": "^2.4.30",
174
+ "@volar/typescript": "^2.4.30",
175
+ "@vue/language-core": "^3.3.13",
176
+ "@weapp-core/constants": "0.5.0",
177
+ "@weapp-core/init": "6.1.0",
178
+ "@weapp-core/logger": "3.2.0",
179
+ "@weapp-core/schematics": "6.3.0",
180
+ "@weapp-core/shared": "3.4.0",
181
+ "@weapp-tailwindcss/engine": "0.1.6",
182
+ "@weapp-vite/acceptance": "0.2.0",
183
+ "@weapp-vite/ast": "7.7.0",
184
+ "@weapp-vite/eslint": "0.3.0",
185
+ "@weapp-vite/hmr": "0.3.0",
186
+ "@weapp-vite/i18n": "0.3.0",
187
+ "@weapp-vite/mcp": "2.2.0",
188
+ "@weapp-vite/miniprogram-automator": "1.5.0",
189
+ "@weapp-vite/tailwindcss": "1.1.0",
190
+ "@weapp-vite/volar": "2.2.0",
191
+ "@weapp-vite/web": "2.1.0",
192
+ "@wevu/api": "0.4.0",
193
+ "@wevu/web-apis": "1.4.0",
194
+ "cac": "^7.1.0",
195
+ "chokidar": "^6.0.0",
192
196
  "comment-json": "^5.0.0",
193
- "devframe": "1.2.3",
194
- "dotenv": "^18.0.6",
197
+ "devframe": "1.2.6",
198
+ "dotenv": "^18.0.9",
195
199
  "dotenv-expand": "^1000.0.0",
196
- "eslint": "^10.12.0",
200
+ "eslint": "^10.13.0",
197
201
  "fdir": "^6.5.0",
198
202
  "get-tsconfig": "^4.14.3",
199
203
  "htmlparser2": "^12.0.0",
@@ -202,43 +206,48 @@
202
206
  "magic-string": "^1.4.3",
203
207
  "merge": "^2.1.1",
204
208
  "obug": "^3.0.0",
205
- "p-queue": "^9.3.3",
209
+ "p-queue": "^10.0.0",
206
210
  "package-manager-detector": "^1.9.0",
207
211
  "pathe": "^2.0.3",
212
+ "picocolors": "^1.1.1",
208
213
  "picomatch": "^4.0.7",
209
- "postcss": "^8.5.29",
210
- "postcss-selector-parser": "^7.1.6",
214
+ "postcss": "^8.5.31",
215
+ "postcss-selector-parser": "^7.1.7",
211
216
  "postcss-value-parser": "4.2.0",
212
- "rolldown": "1.2.13",
213
- "rolldown-plugin-dts": "0.28.6",
214
- "rolldown-require": "2.0.35",
217
+ "rolldown": "1.2.15",
218
+ "rolldown-plugin-dts": "0.28.8",
219
+ "rolldown-require": "2.1.0",
215
220
  "semver": "^7.8.5",
216
221
  "tinyexec": "^1.3.1",
217
222
  "typescript": "^6.0.3",
218
- "vite": "8.3.4",
219
- "vite-plugin-performance": "2.0.8",
223
+ "vite": "8.3.5",
224
+ "vite-plugin-performance": "2.1.0",
220
225
  "vite-tsconfig-paths": "^7.0.0-alpha.3",
221
- "vue": "^3.5.43",
226
+ "vue": "^3.5.44",
222
227
  "vue-eslint-parser": "^10.4.1",
223
- "vue-tsc": "^3.3.12",
224
- "weapp-ide-cli": "6.2.0",
225
- "weapp-tailwindcss": "^5.6.0",
226
- "wevu": "7.5.0",
227
- "zod": "^4.6.5"
228
+ "vue-tsc": "^3.3.13",
229
+ "weapp-ide-cli": "6.4.0",
230
+ "weapp-tailwindcss": "^5.6.3",
231
+ "wevu": "7.7.0",
232
+ "zod": "^4.6.7"
228
233
  },
229
234
  "optionalDependencies": {
230
- "@swc/core": "^1.16.13"
235
+ "@swc/core": "^1.16.20"
231
236
  },
232
237
  "devDependencies": {
233
- "@modelcontextprotocol/client": "^2.3.1",
234
- "@vitejs/devtools-kit": "0.7.6",
235
- "oxc-parser": "^0.153.0",
238
+ "@devframes/agentic": "1.2.6",
239
+ "@devframes/hub": "1.2.6",
240
+ "@devframes/hub-ui": "1.2.6",
241
+ "@modelcontextprotocol/client": "^2.4.0",
242
+ "@parcel/watcher": "2.6.0",
243
+ "@vitejs/devtools": "0.8.0",
244
+ "@vitejs/devtools-kit": "0.8.0",
245
+ "oxc-parser": "^0.155.0",
236
246
  "oxc-walker": "^1.1.1",
237
247
  "tailwindcss": "^4.3.3",
238
248
  "ts-morph": "^28.0.0"
239
249
  },
240
250
  "scripts": {
241
- "stub": "unbuild --stub",
242
251
  "dev": "tsdown -w --sourcemap",
243
252
  "build": "tsdown",
244
253
  "release": "tsx scripts/release.ts",