one 1.25.16 → 1.26.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 (78) hide show
  1. package/dist/cjs/native-transforms.cjs +28 -0
  2. package/dist/cjs/native-transforms.native.js +31 -0
  3. package/dist/cjs/native-transforms.native.js.map +1 -0
  4. package/dist/cjs/router/useViteRoutes.cjs +3 -2
  5. package/dist/cjs/router/useViteRoutes.native.js +3 -2
  6. package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
  7. package/dist/cjs/router/useViteRoutes.test.cjs +101 -1
  8. package/dist/cjs/router/useViteRoutes.test.native.js +109 -1
  9. package/dist/cjs/router/useViteRoutes.test.native.js.map +1 -1
  10. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.cjs +45 -44
  11. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js +64 -39
  12. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
  13. package/dist/cjs/vite/one.cjs +10 -2
  14. package/dist/cjs/vite/one.native.js +13 -4
  15. package/dist/cjs/vite/one.native.js.map +1 -1
  16. package/dist/cjs/vite/plugins/clientTreeShakePlugin.cjs +597 -92
  17. package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js +1358 -113
  18. package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
  19. package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.cjs +185 -0
  20. package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.native.js +185 -0
  21. package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.native.js.map +1 -1
  22. package/dist/cjs/vite/plugins/useDomPlugin.cjs +14 -37
  23. package/dist/cjs/vite/plugins/useDomPlugin.native.js +14 -36
  24. package/dist/cjs/vite/plugins/useDomPlugin.native.js.map +1 -1
  25. package/dist/esm/native-transforms.mjs +3 -0
  26. package/dist/esm/native-transforms.mjs.map +1 -0
  27. package/dist/esm/native-transforms.native.js +3 -0
  28. package/dist/esm/native-transforms.native.js.map +1 -0
  29. package/dist/esm/router/useViteRoutes.mjs +3 -2
  30. package/dist/esm/router/useViteRoutes.mjs.map +1 -1
  31. package/dist/esm/router/useViteRoutes.native.js +3 -2
  32. package/dist/esm/router/useViteRoutes.native.js.map +1 -1
  33. package/dist/esm/router/useViteRoutes.test.mjs +77 -1
  34. package/dist/esm/router/useViteRoutes.test.mjs.map +1 -1
  35. package/dist/esm/router/useViteRoutes.test.native.js +85 -1
  36. package/dist/esm/router/useViteRoutes.test.native.js.map +1 -1
  37. package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs +45 -44
  38. package/dist/esm/vercel/build/generate/createApiServerlessFunction.mjs.map +1 -1
  39. package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js +64 -39
  40. package/dist/esm/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
  41. package/dist/esm/vite/one.mjs +10 -2
  42. package/dist/esm/vite/one.mjs.map +1 -1
  43. package/dist/esm/vite/one.native.js +13 -4
  44. package/dist/esm/vite/one.native.js.map +1 -1
  45. package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs +597 -92
  46. package/dist/esm/vite/plugins/clientTreeShakePlugin.mjs.map +1 -1
  47. package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js +1358 -113
  48. package/dist/esm/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
  49. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.mjs +185 -0
  50. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.mjs.map +1 -1
  51. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.native.js +185 -0
  52. package/dist/esm/vite/plugins/clientTreeShakePlugin.test.native.js.map +1 -1
  53. package/dist/esm/vite/plugins/useDomPlugin.mjs +13 -25
  54. package/dist/esm/vite/plugins/useDomPlugin.mjs.map +1 -1
  55. package/dist/esm/vite/plugins/useDomPlugin.native.js +14 -25
  56. package/dist/esm/vite/plugins/useDomPlugin.native.js.map +1 -1
  57. package/package.json +15 -10
  58. package/src/createApp.tsx +0 -1
  59. package/src/headless.tsx +0 -1
  60. package/src/native-transforms.ts +11 -0
  61. package/src/router/useViteRoutes.test.ts +91 -0
  62. package/src/router/useViteRoutes.tsx +7 -4
  63. package/src/vercel/build/generate/createApiServerlessFunction.ts +65 -112
  64. package/src/vite/one.ts +22 -2
  65. package/src/vite/plugins/clientTreeShakePlugin.test.ts +201 -0
  66. package/src/vite/plugins/clientTreeShakePlugin.ts +732 -152
  67. package/src/vite/plugins/useDomPlugin.ts +20 -32
  68. package/src/vite/types.ts +60 -5
  69. package/types/native-transforms.d.ts +11 -0
  70. package/types/native-transforms.d.ts.map +1 -0
  71. package/types/router/useViteRoutes.d.ts.map +1 -1
  72. package/types/vercel/build/generate/createApiServerlessFunction.d.ts.map +1 -1
  73. package/types/vite/one.d.ts.map +1 -1
  74. package/types/vite/plugins/clientTreeShakePlugin.d.ts +1 -9
  75. package/types/vite/plugins/clientTreeShakePlugin.d.ts.map +1 -1
  76. package/types/vite/plugins/useDomPlugin.d.ts.map +1 -1
  77. package/types/vite/types.d.ts +57 -5
  78. package/types/vite/types.d.ts.map +1 -1
@@ -1,8 +1,6 @@
1
1
  import { extname, relative } from "path";
2
- import BabelGenerate from "@babel/generator";
3
- import { parse } from "@babel/parser";
4
- import BabelTraverse from "@babel/traverse";
5
- import { deadCodeElimination, findReferencedIdentifiers } from "babel-dead-code-elimination";
2
+ import MagicString from "magic-string";
3
+ import { parseSync } from "oxc-parser";
6
4
  import { EMPTY_LOADER_STRING, makeLoaderRouteIdStub } from "../constants.native.js";
7
5
  function _instanceof(left, right) {
8
6
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
@@ -11,53 +9,10 @@ function _instanceof(left, right) {
11
9
  return left instanceof right;
12
10
  }
13
11
  }
14
- var traverse = BabelTraverse["default"] || BabelTraverse;
15
- var generate = BabelGenerate["default"] || BabelGenerate;
16
- function collectTypeImports(ast) {
17
- var typeImports = [];
18
- traverse(ast, {
19
- ImportDeclaration(path) {
20
- if (path.node.importKind === "type") {
21
- typeImports.push(path.node);
22
- }
23
- }
24
- });
25
- return typeImports;
26
- }
27
- function restoreTypeImports(ast, typeImports) {
28
- if (typeImports.length === 0) return;
29
- var existingSources = /* @__PURE__ */new Set();
30
- traverse(ast, {
31
- ImportDeclaration(path) {
32
- if (path.node.importKind === "type") {
33
- existingSources.add(path.node.source.value);
34
- }
35
- }
36
- });
37
- var _iteratorNormalCompletion = true,
38
- _didIteratorError = false,
39
- _iteratorError = void 0;
40
- try {
41
- for (var _iterator = typeImports[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
42
- var typeImport = _step.value;
43
- if (!existingSources.has(typeImport.source.value)) {
44
- ast.program.body.unshift(typeImport);
45
- }
46
- }
47
- } catch (err) {
48
- _didIteratorError = true;
49
- _iteratorError = err;
50
- } finally {
51
- try {
52
- if (!_iteratorNormalCompletion && _iterator.return != null) {
53
- _iterator.return();
54
- }
55
- } finally {
56
- if (_didIteratorError) {
57
- throw _iteratorError;
58
- }
59
- }
60
- }
12
+ function _type_of(obj) {
13
+ "@swc/helpers - typeof";
14
+
15
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
61
16
  }
62
17
  var clientTreeShakePlugin = function (opts) {
63
18
  var _ref, _ref1;
@@ -90,97 +45,1387 @@ var clientTreeShakePlugin = function (opts) {
90
45
  }
91
46
  };
92
47
  };
48
+ function extractPatternBindings(node, names) {
49
+ if (!node) return;
50
+ switch (node.type) {
51
+ case "Identifier":
52
+ names.add(node.name);
53
+ break;
54
+ case "ObjectPattern":
55
+ var _iteratorNormalCompletion = true,
56
+ _didIteratorError = false,
57
+ _iteratorError = void 0;
58
+ try {
59
+ for (var _iterator = node.properties[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
60
+ var prop = _step.value;
61
+ if (prop.type === "Property") {
62
+ extractPatternBindings(prop.value, names);
63
+ } else if (prop.type === "RestElement") {
64
+ extractPatternBindings(prop.argument, names);
65
+ }
66
+ }
67
+ } catch (err) {
68
+ _didIteratorError = true;
69
+ _iteratorError = err;
70
+ } finally {
71
+ try {
72
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
73
+ _iterator.return();
74
+ }
75
+ } finally {
76
+ if (_didIteratorError) {
77
+ throw _iteratorError;
78
+ }
79
+ }
80
+ }
81
+ break;
82
+ case "ArrayPattern":
83
+ var _iteratorNormalCompletion1 = true,
84
+ _didIteratorError1 = false,
85
+ _iteratorError1 = void 0;
86
+ try {
87
+ for (var _iterator1 = node.elements[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
88
+ var element = _step1.value;
89
+ if (element) {
90
+ extractPatternBindings(element, names);
91
+ }
92
+ }
93
+ } catch (err) {
94
+ _didIteratorError1 = true;
95
+ _iteratorError1 = err;
96
+ } finally {
97
+ try {
98
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
99
+ _iterator1.return();
100
+ }
101
+ } finally {
102
+ if (_didIteratorError1) {
103
+ throw _iteratorError1;
104
+ }
105
+ }
106
+ }
107
+ break;
108
+ case "AssignmentPattern":
109
+ extractPatternBindings(node.left, names);
110
+ break;
111
+ case "RestElement":
112
+ extractPatternBindings(node.argument, names);
113
+ break;
114
+ case "TSParameterProperty":
115
+ extractPatternBindings(node.parameter, names);
116
+ break;
117
+ }
118
+ }
119
+ function getReferencedIdentifiers(rootNode, candidateNames) {
120
+ var referenced = /* @__PURE__ */new Set();
121
+ var scopeStack = [];
122
+ function isShadowed(name) {
123
+ for (var i = scopeStack.length - 1; i >= 0; i--) {
124
+ if (scopeStack[i].has(name)) return true;
125
+ }
126
+ return false;
127
+ }
128
+ function checkIdentifier(name) {
129
+ if (!isShadowed(name) && candidateNames.has(name)) {
130
+ referenced.add(name);
131
+ }
132
+ }
133
+ function walk(node) {
134
+ if (!node || (typeof node === "undefined" ? "undefined" : _type_of(node)) !== "object") return;
135
+ if (node.type === "TSTypeAnnotation" || node.type === "TSTypeReference" || node.type === "TSTypeAliasDeclaration" || node.type === "TSInterfaceDeclaration" || node.type === "TSTypeParameterDeclaration" || node.type === "TSTypeParameterInstantiation") {
136
+ return;
137
+ }
138
+ if (node.type === "TSAsExpression" || node.type === "TSTypeAssertion" || node.type === "TSSatisfiesExpression" || node.type === "TSNonNullExpression") {
139
+ walk(node.expression);
140
+ return;
141
+ }
142
+ function walkPatternExpressions(pat) {
143
+ if (!pat || (typeof pat === "undefined" ? "undefined" : _type_of(pat)) !== "object") return;
144
+ switch (pat.type) {
145
+ case "AssignmentPattern":
146
+ walk(pat.right);
147
+ walkPatternExpressions(pat.left);
148
+ break;
149
+ case "ObjectPattern":
150
+ var _iteratorNormalCompletion8 = true,
151
+ _didIteratorError8 = false,
152
+ _iteratorError8 = void 0;
153
+ try {
154
+ for (var _iterator8 = pat.properties[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
155
+ var prop = _step8.value;
156
+ if (prop.type === "Property") {
157
+ if (prop.computed) {
158
+ walk(prop.key);
159
+ }
160
+ walkPatternExpressions(prop.value);
161
+ } else if (prop.type === "RestElement") {
162
+ walkPatternExpressions(prop.argument);
163
+ }
164
+ }
165
+ } catch (err) {
166
+ _didIteratorError8 = true;
167
+ _iteratorError8 = err;
168
+ } finally {
169
+ try {
170
+ if (!_iteratorNormalCompletion8 && _iterator8.return != null) {
171
+ _iterator8.return();
172
+ }
173
+ } finally {
174
+ if (_didIteratorError8) {
175
+ throw _iteratorError8;
176
+ }
177
+ }
178
+ }
179
+ break;
180
+ case "ArrayPattern":
181
+ var _iteratorNormalCompletion12 = true,
182
+ _didIteratorError12 = false,
183
+ _iteratorError12 = void 0;
184
+ try {
185
+ for (var _iterator12 = pat.elements[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {
186
+ var element = _step12.value;
187
+ if (element) {
188
+ walkPatternExpressions(element);
189
+ }
190
+ }
191
+ } catch (err) {
192
+ _didIteratorError12 = true;
193
+ _iteratorError12 = err;
194
+ } finally {
195
+ try {
196
+ if (!_iteratorNormalCompletion12 && _iterator12.return != null) {
197
+ _iterator12.return();
198
+ }
199
+ } finally {
200
+ if (_didIteratorError12) {
201
+ throw _iteratorError12;
202
+ }
203
+ }
204
+ }
205
+ break;
206
+ case "RestElement":
207
+ walkPatternExpressions(pat.argument);
208
+ break;
209
+ case "TSParameterProperty":
210
+ walkPatternExpressions(pat.parameter);
211
+ break;
212
+ }
213
+ }
214
+ if (node.type === "FunctionDeclaration" || node.type === "FunctionExpression" || node.type === "ArrowFunctionExpression") {
215
+ let addVars2 = function (n) {
216
+ if (!n || (typeof n === "undefined" ? "undefined" : _type_of(n)) !== "object") return;
217
+ if (n.type === "FunctionDeclaration" || n.type === "FunctionExpression" || n.type === "ArrowFunctionExpression") {
218
+ return;
219
+ }
220
+ if (n.type === "VariableDeclaration" && n.kind === "var") {
221
+ var _iteratorNormalCompletion8 = true,
222
+ _didIteratorError8 = false,
223
+ _iteratorError8 = void 0;
224
+ try {
225
+ for (var _iterator8 = n.declarations[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
226
+ var d = _step8.value;
227
+ extractPatternBindings(d.id, scope);
228
+ }
229
+ } catch (err) {
230
+ _didIteratorError8 = true;
231
+ _iteratorError8 = err;
232
+ } finally {
233
+ try {
234
+ if (!_iteratorNormalCompletion8 && _iterator8.return != null) {
235
+ _iterator8.return();
236
+ }
237
+ } finally {
238
+ if (_didIteratorError8) {
239
+ throw _iteratorError8;
240
+ }
241
+ }
242
+ }
243
+ }
244
+ var _iteratorNormalCompletion12 = true,
245
+ _didIteratorError12 = false,
246
+ _iteratorError12 = void 0;
247
+ try {
248
+ for (var _iterator12 = Object.keys(n)[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {
249
+ var k = _step12.value;
250
+ if (k === "parent") continue;
251
+ var val = n[k];
252
+ if (Array.isArray(val)) {
253
+ var _iteratorNormalCompletion22 = true,
254
+ _didIteratorError22 = false,
255
+ _iteratorError22 = void 0;
256
+ try {
257
+ for (var _iterator22 = val[Symbol.iterator](), _step22; !(_iteratorNormalCompletion22 = (_step22 = _iterator22.next()).done); _iteratorNormalCompletion22 = true) {
258
+ var item2 = _step22.value;
259
+ addVars2(item2);
260
+ }
261
+ } catch (err) {
262
+ _didIteratorError22 = true;
263
+ _iteratorError22 = err;
264
+ } finally {
265
+ try {
266
+ if (!_iteratorNormalCompletion22 && _iterator22.return != null) {
267
+ _iterator22.return();
268
+ }
269
+ } finally {
270
+ if (_didIteratorError22) {
271
+ throw _iteratorError22;
272
+ }
273
+ }
274
+ }
275
+ } else if (val && (typeof val === "undefined" ? "undefined" : _type_of(val)) === "object") {
276
+ addVars2(val);
277
+ }
278
+ }
279
+ } catch (err) {
280
+ _didIteratorError12 = true;
281
+ _iteratorError12 = err;
282
+ } finally {
283
+ try {
284
+ if (!_iteratorNormalCompletion12 && _iterator12.return != null) {
285
+ _iterator12.return();
286
+ }
287
+ } finally {
288
+ if (_didIteratorError12) {
289
+ throw _iteratorError12;
290
+ }
291
+ }
292
+ }
293
+ };
294
+ var addVars = addVars2;
295
+ var scope = /* @__PURE__ */new Set();
296
+ if (node.type === "FunctionExpression" && node.id) {
297
+ scope.add(node.id.name);
298
+ }
299
+ if (node.params) {
300
+ var _iteratorNormalCompletion = true,
301
+ _didIteratorError = false,
302
+ _iteratorError = void 0;
303
+ try {
304
+ for (var _iterator = node.params[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
305
+ var param = _step.value;
306
+ walkPatternExpressions(param);
307
+ extractPatternBindings(param, scope);
308
+ }
309
+ } catch (err) {
310
+ _didIteratorError = true;
311
+ _iteratorError = err;
312
+ } finally {
313
+ try {
314
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
315
+ _iterator.return();
316
+ }
317
+ } finally {
318
+ if (_didIteratorError) {
319
+ throw _iteratorError;
320
+ }
321
+ }
322
+ }
323
+ }
324
+ addVars2(node.body);
325
+ scopeStack.push(scope);
326
+ walk(node.body);
327
+ scopeStack.pop();
328
+ return;
329
+ }
330
+ if (node.type === "BlockStatement") {
331
+ var scope1 = /* @__PURE__ */new Set();
332
+ var _iteratorNormalCompletion1 = true,
333
+ _didIteratorError1 = false,
334
+ _iteratorError1 = void 0;
335
+ try {
336
+ for (var _iterator1 = node.body[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
337
+ var stmt = _step1.value;
338
+ if (stmt.type === "VariableDeclaration" && (stmt.kind === "let" || stmt.kind === "const")) {
339
+ var _iteratorNormalCompletion2 = true,
340
+ _didIteratorError2 = false,
341
+ _iteratorError2 = void 0;
342
+ try {
343
+ for (var _iterator2 = stmt.declarations[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
344
+ var decl = _step2.value;
345
+ extractPatternBindings(decl.id, scope1);
346
+ }
347
+ } catch (err) {
348
+ _didIteratorError2 = true;
349
+ _iteratorError2 = err;
350
+ } finally {
351
+ try {
352
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
353
+ _iterator2.return();
354
+ }
355
+ } finally {
356
+ if (_didIteratorError2) {
357
+ throw _iteratorError2;
358
+ }
359
+ }
360
+ }
361
+ } else if (stmt.type === "FunctionDeclaration" && stmt.id) {
362
+ scope1.add(stmt.id.name);
363
+ } else if (stmt.type === "ClassDeclaration" && stmt.id) {
364
+ scope1.add(stmt.id.name);
365
+ }
366
+ }
367
+ } catch (err) {
368
+ _didIteratorError1 = true;
369
+ _iteratorError1 = err;
370
+ } finally {
371
+ try {
372
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
373
+ _iterator1.return();
374
+ }
375
+ } finally {
376
+ if (_didIteratorError1) {
377
+ throw _iteratorError1;
378
+ }
379
+ }
380
+ }
381
+ scopeStack.push(scope1);
382
+ var _iteratorNormalCompletion3 = true,
383
+ _didIteratorError3 = false,
384
+ _iteratorError3 = void 0;
385
+ try {
386
+ for (var _iterator3 = node.body[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
387
+ var stmt1 = _step3.value;
388
+ walk(stmt1);
389
+ }
390
+ } catch (err) {
391
+ _didIteratorError3 = true;
392
+ _iteratorError3 = err;
393
+ } finally {
394
+ try {
395
+ if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
396
+ _iterator3.return();
397
+ }
398
+ } finally {
399
+ if (_didIteratorError3) {
400
+ throw _iteratorError3;
401
+ }
402
+ }
403
+ }
404
+ scopeStack.pop();
405
+ return;
406
+ }
407
+ if (node.type === "CatchClause") {
408
+ var scope2 = /* @__PURE__ */new Set();
409
+ if (node.param) {
410
+ extractPatternBindings(node.param, scope2);
411
+ }
412
+ scopeStack.push(scope2);
413
+ walk(node.body);
414
+ scopeStack.pop();
415
+ return;
416
+ }
417
+ if (node.type === "ForStatement" || node.type === "ForInStatement" || node.type === "ForOfStatement") {
418
+ var scope3 = /* @__PURE__ */new Set();
419
+ var initOrLeft = node.init || node.left;
420
+ if (initOrLeft && initOrLeft.type === "VariableDeclaration" && initOrLeft.kind !== "var") {
421
+ var _iteratorNormalCompletion4 = true,
422
+ _didIteratorError4 = false,
423
+ _iteratorError4 = void 0;
424
+ try {
425
+ for (var _iterator4 = initOrLeft.declarations[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
426
+ var decl1 = _step4.value;
427
+ extractPatternBindings(decl1.id, scope3);
428
+ }
429
+ } catch (err) {
430
+ _didIteratorError4 = true;
431
+ _iteratorError4 = err;
432
+ } finally {
433
+ try {
434
+ if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
435
+ _iterator4.return();
436
+ }
437
+ } finally {
438
+ if (_didIteratorError4) {
439
+ throw _iteratorError4;
440
+ }
441
+ }
442
+ }
443
+ }
444
+ scopeStack.push(scope3);
445
+ if (node.init) walk(node.init);
446
+ if (node.left) walk(node.left);
447
+ if (node.right) walk(node.right);
448
+ if (node.test) walk(node.test);
449
+ if (node.update) walk(node.update);
450
+ walk(node.body);
451
+ scopeStack.pop();
452
+ return;
453
+ }
454
+ if (node.type === "Identifier") {
455
+ checkIdentifier(node.name);
456
+ return;
457
+ }
458
+ if (node.type === "JSXOpeningElement") {
459
+ if (node.name) {
460
+ if (node.name.type === "JSXIdentifier") {
461
+ if (node.name.name && /^[A-Z]/.test(node.name.name)) {
462
+ checkIdentifier(node.name.name);
463
+ }
464
+ } else if (node.name.type === "JSXMemberExpression") {
465
+ var rootObj = node.name.object;
466
+ while (rootObj && rootObj.type === "JSXMemberExpression") {
467
+ rootObj = rootObj.object;
468
+ }
469
+ if (rootObj && rootObj.type === "JSXIdentifier") {
470
+ checkIdentifier(rootObj.name);
471
+ }
472
+ }
473
+ }
474
+ if (node.attributes) {
475
+ var _iteratorNormalCompletion5 = true,
476
+ _didIteratorError5 = false,
477
+ _iteratorError5 = void 0;
478
+ try {
479
+ for (var _iterator5 = node.attributes[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
480
+ var attr = _step5.value;
481
+ walk(attr);
482
+ }
483
+ } catch (err) {
484
+ _didIteratorError5 = true;
485
+ _iteratorError5 = err;
486
+ } finally {
487
+ try {
488
+ if (!_iteratorNormalCompletion5 && _iterator5.return != null) {
489
+ _iterator5.return();
490
+ }
491
+ } finally {
492
+ if (_didIteratorError5) {
493
+ throw _iteratorError5;
494
+ }
495
+ }
496
+ }
497
+ }
498
+ return;
499
+ }
500
+ if (node.type === "JSXAttribute") {
501
+ if (node.value) walk(node.value);
502
+ return;
503
+ }
504
+ if (node.type === "JSXClosingElement") {
505
+ return;
506
+ }
507
+ if (node.type === "Property") {
508
+ if (node.computed) {
509
+ walk(node.key);
510
+ }
511
+ walk(node.value);
512
+ return;
513
+ }
514
+ if (node.type === "MemberExpression") {
515
+ walk(node.object);
516
+ if (node.computed) {
517
+ walk(node.property);
518
+ }
519
+ return;
520
+ }
521
+ if (node.type === "VariableDeclarator") {
522
+ walkPatternExpressions(node.id);
523
+ if (node.init) {
524
+ walk(node.init);
525
+ }
526
+ return;
527
+ }
528
+ if (node.type === "ExportSpecifier") {
529
+ if (node.local && node.local.type === "Identifier") {
530
+ checkIdentifier(node.local.name);
531
+ }
532
+ return;
533
+ }
534
+ var _iteratorNormalCompletion6 = true,
535
+ _didIteratorError6 = false,
536
+ _iteratorError6 = void 0;
537
+ try {
538
+ for (var _iterator6 = Object.keys(node)[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
539
+ var key = _step6.value;
540
+ if (key === "parent") continue;
541
+ var child = node[key];
542
+ if (Array.isArray(child)) {
543
+ var _iteratorNormalCompletion7 = true,
544
+ _didIteratorError7 = false,
545
+ _iteratorError7 = void 0;
546
+ try {
547
+ for (var _iterator7 = child[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
548
+ var item = _step7.value;
549
+ if (item && (typeof item === "undefined" ? "undefined" : _type_of(item)) === "object") walk(item);
550
+ }
551
+ } catch (err) {
552
+ _didIteratorError7 = true;
553
+ _iteratorError7 = err;
554
+ } finally {
555
+ try {
556
+ if (!_iteratorNormalCompletion7 && _iterator7.return != null) {
557
+ _iterator7.return();
558
+ }
559
+ } finally {
560
+ if (_didIteratorError7) {
561
+ throw _iteratorError7;
562
+ }
563
+ }
564
+ }
565
+ } else if (child && (typeof child === "undefined" ? "undefined" : _type_of(child)) === "object") {
566
+ walk(child);
567
+ }
568
+ }
569
+ } catch (err) {
570
+ _didIteratorError6 = true;
571
+ _iteratorError6 = err;
572
+ } finally {
573
+ try {
574
+ if (!_iteratorNormalCompletion6 && _iterator6.return != null) {
575
+ _iterator6.return();
576
+ }
577
+ } finally {
578
+ if (_didIteratorError6) {
579
+ throw _iteratorError6;
580
+ }
581
+ }
582
+ }
583
+ }
584
+ walk(rootNode);
585
+ return referenced;
586
+ }
93
587
  async function transformTreeShakeClient(code, id, root) {
94
588
  var routerRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "app";
95
589
  if (!/generateStaticParams|loader/.test(code)) {
96
590
  return;
97
591
  }
98
- var ast;
592
+ var isProd = process.env.NODE_ENV === "production";
593
+ var filename = (id || "file.tsx").split("?")[0].split("#")[0];
594
+ var parseResult;
99
595
  try {
100
- ast = parse(code, {
101
- sourceType: "module",
102
- plugins: ["typescript", "jsx"]
103
- });
596
+ parseResult = parseSync(filename, code);
597
+ if (parseResult.errors && parseResult.errors.length > 0) {
598
+ var errorMessage = parseResult.errors.map(function (e) {
599
+ return e.message;
600
+ }).join("\n");
601
+ if (isProd) {
602
+ throw new Error(`[one] Failed to parse ${id} with server exports:
603
+ ${errorMessage}`);
604
+ }
605
+ console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage);
606
+ return;
607
+ }
104
608
  } catch (error) {
105
- var errorMessage = _instanceof(error, Error) ? error.message : String(error);
106
- console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage);
609
+ if (isProd) {
610
+ throw _instanceof(error, Error) ? error : new Error(String(error));
611
+ }
612
+ var errorMessage1 = _instanceof(error, Error) ? error.message : String(error);
613
+ console.warn(`[one] Skipping tree shaking for ${id} due to syntax error:`, errorMessage1);
107
614
  return;
108
615
  }
109
- var referenced;
616
+ var ast = parseResult.program;
110
617
  try {
111
- referenced = findReferencedIdentifiers(ast);
618
+ return doTreeShakeClient(code, id, root, ast, routerRoot);
112
619
  } catch (error) {
113
- var errorMessage1 = _instanceof(error, Error) ? error.message : String(error);
114
- console.warn(`[one] Skipping tree shaking for ${id} due to identifier analysis error:`, errorMessage1);
620
+ if (isProd) {
621
+ throw _instanceof(error, Error) ? error : new Error(String(error));
622
+ }
623
+ var errorMessage2 = _instanceof(error, Error) ? error.message : String(error);
624
+ console.warn(`[one] Skipping tree shaking for ${id} due to analysis error:`, errorMessage2);
115
625
  return;
116
626
  }
627
+ }
628
+ function doTreeShakeClient(code, id, root, ast, routerRoot) {
117
629
  var removed = {
118
630
  loader: false,
119
631
  generateStaticParams: false
120
632
  };
633
+ var serverExportStmts = /* @__PURE__ */new Map();
634
+ var _iteratorNormalCompletion = true,
635
+ _didIteratorError = false,
636
+ _iteratorError = void 0;
121
637
  try {
122
- traverse(ast, {
123
- ExportNamedDeclaration(path) {
124
- if (path.node.declaration && path.node.declaration.type === "FunctionDeclaration") {
125
- if (!path.node.declaration.id) return;
126
- var functionName = path.node.declaration.id.name;
127
- if (functionName === "loader" || functionName === "generateStaticParams") {
128
- path.remove();
129
- removed[functionName] = true;
130
- }
131
- } else if (path.node.declaration && path.node.declaration.type === "VariableDeclaration") {
132
- path.node.declaration.declarations.forEach(function (declarator, index) {
133
- if (declarator.id.type === "Identifier" && (declarator.id.name === "loader" || declarator.id.name === "generateStaticParams")) {
134
- var declaration = path.get("declaration.declarations." + index);
135
- if (!Array.isArray(declaration) && declaration) {
136
- ;
137
- declaration.remove();
138
- removed[declarator.id.name] = true;
638
+ for (var _iterator = ast.body[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
639
+ var stmt = _step.value;
640
+ if (stmt.type === "ExportNamedDeclaration" && stmt.declaration) {
641
+ if (stmt.declaration.type === "FunctionDeclaration") {
642
+ var _stmt_declaration_id;
643
+ var fnName = (_stmt_declaration_id = stmt.declaration.id) === null || _stmt_declaration_id === void 0 ? void 0 : _stmt_declaration_id.name;
644
+ if (fnName === "loader" || fnName === "generateStaticParams") {
645
+ removed[fnName] = true;
646
+ serverExportStmts.set(stmt, {
647
+ names: /* @__PURE__ */new Set([fnName]),
648
+ replaceAll: true,
649
+ declaratorsToRemove: /* @__PURE__ */new Set()
650
+ });
651
+ }
652
+ } else if (stmt.declaration.type === "VariableDeclaration") {
653
+ var found = [];
654
+ var _iteratorNormalCompletion1 = true,
655
+ _didIteratorError1 = false,
656
+ _iteratorError1 = void 0;
657
+ try {
658
+ for (var _iterator1 = stmt.declaration.declarations[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
659
+ var d = _step1.value;
660
+ var _d_id;
661
+ if (((_d_id = d.id) === null || _d_id === void 0 ? void 0 : _d_id.type) === "Identifier" && (d.id.name === "loader" || d.id.name === "generateStaticParams")) {
662
+ found.push(d);
663
+ removed[d.id.name] = true;
139
664
  }
140
665
  }
141
- });
666
+ } catch (err) {
667
+ _didIteratorError1 = true;
668
+ _iteratorError1 = err;
669
+ } finally {
670
+ try {
671
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
672
+ _iterator1.return();
673
+ }
674
+ } finally {
675
+ if (_didIteratorError1) {
676
+ throw _iteratorError1;
677
+ }
678
+ }
679
+ }
680
+ if (found.length > 0) {
681
+ serverExportStmts.set(stmt, {
682
+ names: new Set(found.map(function (d7) {
683
+ return d7.id.name;
684
+ })),
685
+ replaceAll: found.length === stmt.declaration.declarations.length,
686
+ declaratorsToRemove: new Set(found)
687
+ });
688
+ }
142
689
  }
143
690
  }
144
- });
145
- } catch (error) {
146
- var errorMessage2 = _instanceof(error, Error) ? error.message : String(error);
147
- console.warn(`[one] Skipping tree shaking for ${id} due to traversal error:`, errorMessage2);
148
- return;
691
+ }
692
+ } catch (err) {
693
+ _didIteratorError = true;
694
+ _iteratorError = err;
695
+ } finally {
696
+ try {
697
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
698
+ _iterator.return();
699
+ }
700
+ } finally {
701
+ if (_didIteratorError) {
702
+ throw _iteratorError;
703
+ }
704
+ }
149
705
  }
150
- var removedFunctions = Object.keys(removed).filter(function (key) {
151
- return removed[key];
706
+ var removedFunctions = Object.keys(removed).filter(function (k) {
707
+ return removed[k];
152
708
  });
153
- if (removedFunctions.length) {
709
+ if (removedFunctions.length === 0) {
710
+ return;
711
+ }
712
+ var moduleBindings = /* @__PURE__ */new Map();
713
+ var _iteratorNormalCompletion2 = true,
714
+ _didIteratorError2 = false,
715
+ _iteratorError2 = void 0;
716
+ try {
717
+ for (var _iterator2 = ast.body[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
718
+ var stmt1 = _step2.value;
719
+ if (stmt1.type === "ImportDeclaration") {
720
+ var isDeclType = stmt1.importKind === "type";
721
+ var _iteratorNormalCompletion3 = true,
722
+ _didIteratorError3 = false,
723
+ _iteratorError3 = void 0;
724
+ try {
725
+ for (var _iterator3 = stmt1.specifiers[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
726
+ var sp = _step3.value;
727
+ var isType = isDeclType || sp.importKind === "type";
728
+ moduleBindings.set(sp.local.name, {
729
+ kind: "import",
730
+ stmt: stmt1,
731
+ node: sp,
732
+ isType
733
+ });
734
+ }
735
+ } catch (err) {
736
+ _didIteratorError3 = true;
737
+ _iteratorError3 = err;
738
+ } finally {
739
+ try {
740
+ if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
741
+ _iterator3.return();
742
+ }
743
+ } finally {
744
+ if (_didIteratorError3) {
745
+ throw _iteratorError3;
746
+ }
747
+ }
748
+ }
749
+ } else if (stmt1.type === "ExportNamedDeclaration" && stmt1.declaration) {
750
+ var decl = stmt1.declaration;
751
+ if (decl.type === "FunctionDeclaration" && decl.id) {
752
+ moduleBindings.set(decl.id.name, {
753
+ kind: "function",
754
+ stmt: stmt1,
755
+ node: decl
756
+ });
757
+ } else if (decl.type === "VariableDeclaration") {
758
+ var _iteratorNormalCompletion4 = true,
759
+ _didIteratorError4 = false,
760
+ _iteratorError4 = void 0;
761
+ try {
762
+ for (var _iterator4 = decl.declarations[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
763
+ var d1 = _step4.value;
764
+ var names = /* @__PURE__ */new Set();
765
+ extractPatternBindings(d1.id, names);
766
+ var _iteratorNormalCompletion5 = true,
767
+ _didIteratorError5 = false,
768
+ _iteratorError5 = void 0;
769
+ try {
770
+ for (var _iterator5 = names[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
771
+ var name = _step5.value;
772
+ moduleBindings.set(name, {
773
+ kind: "variable",
774
+ stmt: stmt1,
775
+ node: d1
776
+ });
777
+ }
778
+ } catch (err) {
779
+ _didIteratorError5 = true;
780
+ _iteratorError5 = err;
781
+ } finally {
782
+ try {
783
+ if (!_iteratorNormalCompletion5 && _iterator5.return != null) {
784
+ _iterator5.return();
785
+ }
786
+ } finally {
787
+ if (_didIteratorError5) {
788
+ throw _iteratorError5;
789
+ }
790
+ }
791
+ }
792
+ }
793
+ } catch (err) {
794
+ _didIteratorError4 = true;
795
+ _iteratorError4 = err;
796
+ } finally {
797
+ try {
798
+ if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
799
+ _iterator4.return();
800
+ }
801
+ } finally {
802
+ if (_didIteratorError4) {
803
+ throw _iteratorError4;
804
+ }
805
+ }
806
+ }
807
+ } else if (decl.type === "ClassDeclaration" && decl.id) {
808
+ moduleBindings.set(decl.id.name, {
809
+ kind: "class",
810
+ stmt: stmt1,
811
+ node: decl
812
+ });
813
+ }
814
+ } else if (stmt1.type === "FunctionDeclaration" && stmt1.id) {
815
+ moduleBindings.set(stmt1.id.name, {
816
+ kind: "function",
817
+ stmt: stmt1,
818
+ node: stmt1
819
+ });
820
+ } else if (stmt1.type === "VariableDeclaration") {
821
+ var _iteratorNormalCompletion6 = true,
822
+ _didIteratorError6 = false,
823
+ _iteratorError6 = void 0;
824
+ try {
825
+ for (var _iterator6 = stmt1.declarations[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
826
+ var d2 = _step6.value;
827
+ var names1 = /* @__PURE__ */new Set();
828
+ extractPatternBindings(d2.id, names1);
829
+ var _iteratorNormalCompletion7 = true,
830
+ _didIteratorError7 = false,
831
+ _iteratorError7 = void 0;
832
+ try {
833
+ for (var _iterator7 = names1[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
834
+ var name1 = _step7.value;
835
+ moduleBindings.set(name1, {
836
+ kind: "variable",
837
+ stmt: stmt1,
838
+ node: d2
839
+ });
840
+ }
841
+ } catch (err) {
842
+ _didIteratorError7 = true;
843
+ _iteratorError7 = err;
844
+ } finally {
845
+ try {
846
+ if (!_iteratorNormalCompletion7 && _iterator7.return != null) {
847
+ _iterator7.return();
848
+ }
849
+ } finally {
850
+ if (_didIteratorError7) {
851
+ throw _iteratorError7;
852
+ }
853
+ }
854
+ }
855
+ }
856
+ } catch (err) {
857
+ _didIteratorError6 = true;
858
+ _iteratorError6 = err;
859
+ } finally {
860
+ try {
861
+ if (!_iteratorNormalCompletion6 && _iterator6.return != null) {
862
+ _iterator6.return();
863
+ }
864
+ } finally {
865
+ if (_didIteratorError6) {
866
+ throw _iteratorError6;
867
+ }
868
+ }
869
+ }
870
+ } else if (stmt1.type === "ClassDeclaration" && stmt1.id) {
871
+ moduleBindings.set(stmt1.id.name, {
872
+ kind: "class",
873
+ stmt: stmt1,
874
+ node: stmt1
875
+ });
876
+ } else if (stmt1.type === "TSEnumDeclaration" && stmt1.id) {
877
+ moduleBindings.set(stmt1.id.name, {
878
+ kind: "enum",
879
+ stmt: stmt1,
880
+ node: stmt1
881
+ });
882
+ }
883
+ }
884
+ } catch (err) {
885
+ _didIteratorError2 = true;
886
+ _iteratorError2 = err;
887
+ } finally {
154
888
  try {
155
- var typeImports = collectTypeImports(ast);
156
- deadCodeElimination(ast, referenced);
157
- restoreTypeImports(ast, typeImports);
158
- var out = generate(ast, {
159
- retainLines: true
160
- });
161
- var codeOut = out.code + "\n\n" + removedFunctions.map(function (key) {
162
- if (key === "loader") {
163
- if (root) {
164
- var fromRoot = relative(root, id).replace(/\\/g, "/");
165
- var prefix = routerRoot.replace(/^\.\//, "").replace(/\/$/, "") + "/";
166
- var routeId = "./" + (fromRoot.startsWith(prefix) ? fromRoot.slice(prefix.length) : fromRoot);
167
- return makeLoaderRouteIdStub(routeId);
889
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
890
+ _iterator2.return();
891
+ }
892
+ } finally {
893
+ if (_didIteratorError2) {
894
+ throw _iteratorError2;
895
+ }
896
+ }
897
+ }
898
+ var allBindingNames = new Set(moduleBindings.keys());
899
+ var topLevelDeps = /* @__PURE__ */new Map();
900
+ var clientRootDeps = /* @__PURE__ */new Set();
901
+ var _iteratorNormalCompletion8 = true,
902
+ _didIteratorError8 = false,
903
+ _iteratorError8 = void 0;
904
+ try {
905
+ for (var _iterator8 = moduleBindings[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
906
+ var [name2, info] = _step8.value;
907
+ if (info.kind === "import") {
908
+ topLevelDeps.set(name2, /* @__PURE__ */new Set());
909
+ } else if (info.kind === "function") {
910
+ topLevelDeps.set(name2, getReferencedIdentifiers(info.node, allBindingNames));
911
+ } else if (info.kind === "variable") {
912
+ var deps = getReferencedIdentifiers(info.node, allBindingNames);
913
+ deps.delete(name2);
914
+ topLevelDeps.set(name2, deps);
915
+ } else if (info.kind === "class") {
916
+ topLevelDeps.set(name2, getReferencedIdentifiers(info.node, allBindingNames));
917
+ } else if (info.kind === "enum") {
918
+ topLevelDeps.set(name2, getReferencedIdentifiers(info.node, allBindingNames));
919
+ }
920
+ }
921
+ } catch (err) {
922
+ _didIteratorError8 = true;
923
+ _iteratorError8 = err;
924
+ } finally {
925
+ try {
926
+ if (!_iteratorNormalCompletion8 && _iterator8.return != null) {
927
+ _iterator8.return();
928
+ }
929
+ } finally {
930
+ if (_didIteratorError8) {
931
+ throw _iteratorError8;
932
+ }
933
+ }
934
+ }
935
+ var serverNeeded = /* @__PURE__ */new Set();
936
+ var serverQueue = [];
937
+ var _iteratorNormalCompletion9 = true,
938
+ _didIteratorError9 = false,
939
+ _iteratorError9 = void 0;
940
+ try {
941
+ for (var _iterator9 = removedFunctions[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {
942
+ var fn = _step9.value;
943
+ var deps1 = topLevelDeps.get(fn);
944
+ if (deps1) {
945
+ var _iteratorNormalCompletion10 = true,
946
+ _didIteratorError10 = false,
947
+ _iteratorError10 = void 0;
948
+ try {
949
+ for (var _iterator10 = deps1[Symbol.iterator](), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) {
950
+ var dep = _step10.value;
951
+ serverQueue.push(dep);
952
+ }
953
+ } catch (err) {
954
+ _didIteratorError10 = true;
955
+ _iteratorError10 = err;
956
+ } finally {
957
+ try {
958
+ if (!_iteratorNormalCompletion10 && _iterator10.return != null) {
959
+ _iterator10.return();
960
+ }
961
+ } finally {
962
+ if (_didIteratorError10) {
963
+ throw _iteratorError10;
964
+ }
168
965
  }
169
- return EMPTY_LOADER_STRING;
170
966
  }
171
- return `export function generateStaticParams() {};`;
172
- }).join("\n");
173
- console.info(` \u{1F9F9} [one] ${relative(process.cwd(), id)} removed ${removedFunctions.length} server-only exports`);
174
- return {
175
- code: codeOut,
176
- map: out.map
177
- };
178
- } catch (error) {
179
- var errorMessage3 = _instanceof(error, Error) ? error.message : String(error);
180
- console.warn(`[one] Skipping tree shaking for ${id} due to code generation error:`, errorMessage3);
181
- return;
967
+ }
968
+ }
969
+ } catch (err) {
970
+ _didIteratorError9 = true;
971
+ _iteratorError9 = err;
972
+ } finally {
973
+ try {
974
+ if (!_iteratorNormalCompletion9 && _iterator9.return != null) {
975
+ _iterator9.return();
976
+ }
977
+ } finally {
978
+ if (_didIteratorError9) {
979
+ throw _iteratorError9;
980
+ }
182
981
  }
183
982
  }
983
+ while (serverQueue.length > 0) {
984
+ var name3 = serverQueue.shift();
985
+ if (serverNeeded.has(name3)) continue;
986
+ serverNeeded.add(name3);
987
+ var deps2 = topLevelDeps.get(name3);
988
+ if (deps2) {
989
+ var _iteratorNormalCompletion11 = true,
990
+ _didIteratorError11 = false,
991
+ _iteratorError11 = void 0;
992
+ try {
993
+ for (var _iterator11 = deps2[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) {
994
+ var dep1 = _step11.value;
995
+ if (!serverNeeded.has(dep1)) serverQueue.push(dep1);
996
+ }
997
+ } catch (err) {
998
+ _didIteratorError11 = true;
999
+ _iteratorError11 = err;
1000
+ } finally {
1001
+ try {
1002
+ if (!_iteratorNormalCompletion11 && _iterator11.return != null) {
1003
+ _iterator11.return();
1004
+ }
1005
+ } finally {
1006
+ if (_didIteratorError11) {
1007
+ throw _iteratorError11;
1008
+ }
1009
+ }
1010
+ }
1011
+ }
1012
+ }
1013
+ var _iteratorNormalCompletion12 = true,
1014
+ _didIteratorError12 = false,
1015
+ _iteratorError12 = void 0;
1016
+ try {
1017
+ for (var _iterator12 = ast.body[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {
1018
+ var stmt2 = _step12.value;
1019
+ if (stmt2.type === "ImportDeclaration") {
1020
+ continue;
1021
+ }
1022
+ if (serverExportStmts.has(stmt2)) {
1023
+ var _stmt_declaration;
1024
+ var info1 = serverExportStmts.get(stmt2);
1025
+ if (!info1.replaceAll && ((_stmt_declaration = stmt2.declaration) === null || _stmt_declaration === void 0 ? void 0 : _stmt_declaration.declarations)) {
1026
+ var _iteratorNormalCompletion13 = true,
1027
+ _didIteratorError13 = false,
1028
+ _iteratorError13 = void 0;
1029
+ try {
1030
+ for (var _iterator13 = stmt2.declaration.declarations[Symbol.iterator](), _step13; !(_iteratorNormalCompletion13 = (_step13 = _iterator13.next()).done); _iteratorNormalCompletion13 = true) {
1031
+ var d3 = _step13.value;
1032
+ if (!info1.declaratorsToRemove.has(d3)) {
1033
+ var deps3 = getReferencedIdentifiers(d3, allBindingNames);
1034
+ var _iteratorNormalCompletion14 = true,
1035
+ _didIteratorError14 = false,
1036
+ _iteratorError14 = void 0;
1037
+ try {
1038
+ for (var _iterator14 = deps3[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {
1039
+ var dep2 = _step14.value;
1040
+ clientRootDeps.add(dep2);
1041
+ }
1042
+ } catch (err) {
1043
+ _didIteratorError14 = true;
1044
+ _iteratorError14 = err;
1045
+ } finally {
1046
+ try {
1047
+ if (!_iteratorNormalCompletion14 && _iterator14.return != null) {
1048
+ _iterator14.return();
1049
+ }
1050
+ } finally {
1051
+ if (_didIteratorError14) {
1052
+ throw _iteratorError14;
1053
+ }
1054
+ }
1055
+ }
1056
+ }
1057
+ }
1058
+ } catch (err) {
1059
+ _didIteratorError13 = true;
1060
+ _iteratorError13 = err;
1061
+ } finally {
1062
+ try {
1063
+ if (!_iteratorNormalCompletion13 && _iterator13.return != null) {
1064
+ _iterator13.return();
1065
+ }
1066
+ } finally {
1067
+ if (_didIteratorError13) {
1068
+ throw _iteratorError13;
1069
+ }
1070
+ }
1071
+ }
1072
+ }
1073
+ continue;
1074
+ }
1075
+ if (stmt2.type === "VariableDeclaration") {
1076
+ var allInServer = stmt2.declarations.every(function (d7) {
1077
+ var names4 = /* @__PURE__ */new Set();
1078
+ extractPatternBindings(d7.id, names4);
1079
+ return names4.size > 0 && Array.from(names4).every(function (n) {
1080
+ return serverNeeded.has(n);
1081
+ });
1082
+ });
1083
+ if (!allInServer) {
1084
+ var _iteratorNormalCompletion15 = true,
1085
+ _didIteratorError15 = false,
1086
+ _iteratorError15 = void 0;
1087
+ try {
1088
+ for (var _iterator15 = stmt2.declarations[Symbol.iterator](), _step15; !(_iteratorNormalCompletion15 = (_step15 = _iterator15.next()).done); _iteratorNormalCompletion15 = true) {
1089
+ var d4 = _step15.value;
1090
+ var names2 = /* @__PURE__ */new Set();
1091
+ extractPatternBindings(d4.id, names2);
1092
+ var inServer = names2.size > 0 && Array.from(names2).every(function (n) {
1093
+ return serverNeeded.has(n);
1094
+ });
1095
+ if (!inServer) {
1096
+ var deps4 = getReferencedIdentifiers(d4, allBindingNames);
1097
+ var _iteratorNormalCompletion16 = true,
1098
+ _didIteratorError16 = false,
1099
+ _iteratorError16 = void 0;
1100
+ try {
1101
+ for (var _iterator16 = deps4[Symbol.iterator](), _step16; !(_iteratorNormalCompletion16 = (_step16 = _iterator16.next()).done); _iteratorNormalCompletion16 = true) {
1102
+ var dep3 = _step16.value;
1103
+ clientRootDeps.add(dep3);
1104
+ }
1105
+ } catch (err) {
1106
+ _didIteratorError16 = true;
1107
+ _iteratorError16 = err;
1108
+ } finally {
1109
+ try {
1110
+ if (!_iteratorNormalCompletion16 && _iterator16.return != null) {
1111
+ _iterator16.return();
1112
+ }
1113
+ } finally {
1114
+ if (_didIteratorError16) {
1115
+ throw _iteratorError16;
1116
+ }
1117
+ }
1118
+ }
1119
+ }
1120
+ }
1121
+ } catch (err) {
1122
+ _didIteratorError15 = true;
1123
+ _iteratorError15 = err;
1124
+ } finally {
1125
+ try {
1126
+ if (!_iteratorNormalCompletion15 && _iterator15.return != null) {
1127
+ _iterator15.return();
1128
+ }
1129
+ } finally {
1130
+ if (_didIteratorError15) {
1131
+ throw _iteratorError15;
1132
+ }
1133
+ }
1134
+ }
1135
+ }
1136
+ continue;
1137
+ }
1138
+ if ((stmt2.type === "FunctionDeclaration" || stmt2.type === "ClassDeclaration" || stmt2.type === "TSEnumDeclaration") && stmt2.id && serverNeeded.has(stmt2.id.name)) {
1139
+ continue;
1140
+ }
1141
+ var deps5 = getReferencedIdentifiers(stmt2, allBindingNames);
1142
+ var _iteratorNormalCompletion17 = true,
1143
+ _didIteratorError17 = false,
1144
+ _iteratorError17 = void 0;
1145
+ try {
1146
+ for (var _iterator17 = deps5[Symbol.iterator](), _step17; !(_iteratorNormalCompletion17 = (_step17 = _iterator17.next()).done); _iteratorNormalCompletion17 = true) {
1147
+ var dep4 = _step17.value;
1148
+ clientRootDeps.add(dep4);
1149
+ }
1150
+ } catch (err) {
1151
+ _didIteratorError17 = true;
1152
+ _iteratorError17 = err;
1153
+ } finally {
1154
+ try {
1155
+ if (!_iteratorNormalCompletion17 && _iterator17.return != null) {
1156
+ _iterator17.return();
1157
+ }
1158
+ } finally {
1159
+ if (_didIteratorError17) {
1160
+ throw _iteratorError17;
1161
+ }
1162
+ }
1163
+ }
1164
+ }
1165
+ } catch (err) {
1166
+ _didIteratorError12 = true;
1167
+ _iteratorError12 = err;
1168
+ } finally {
1169
+ try {
1170
+ if (!_iteratorNormalCompletion12 && _iterator12.return != null) {
1171
+ _iterator12.return();
1172
+ }
1173
+ } finally {
1174
+ if (_didIteratorError12) {
1175
+ throw _iteratorError12;
1176
+ }
1177
+ }
1178
+ }
1179
+ var clientNeeded = /* @__PURE__ */new Set();
1180
+ var clientQueue = Array.from(clientRootDeps);
1181
+ while (clientQueue.length > 0) {
1182
+ var name4 = clientQueue.shift();
1183
+ if (clientNeeded.has(name4)) continue;
1184
+ clientNeeded.add(name4);
1185
+ if (name4 === "loader" || name4 === "generateStaticParams") continue;
1186
+ var deps6 = topLevelDeps.get(name4);
1187
+ if (deps6) {
1188
+ var _iteratorNormalCompletion18 = true,
1189
+ _didIteratorError18 = false,
1190
+ _iteratorError18 = void 0;
1191
+ try {
1192
+ for (var _iterator18 = deps6[Symbol.iterator](), _step18; !(_iteratorNormalCompletion18 = (_step18 = _iterator18.next()).done); _iteratorNormalCompletion18 = true) {
1193
+ var dep5 = _step18.value;
1194
+ if (!clientNeeded.has(dep5)) clientQueue.push(dep5);
1195
+ }
1196
+ } catch (err) {
1197
+ _didIteratorError18 = true;
1198
+ _iteratorError18 = err;
1199
+ } finally {
1200
+ try {
1201
+ if (!_iteratorNormalCompletion18 && _iterator18.return != null) {
1202
+ _iterator18.return();
1203
+ }
1204
+ } finally {
1205
+ if (_didIteratorError18) {
1206
+ throw _iteratorError18;
1207
+ }
1208
+ }
1209
+ }
1210
+ }
1211
+ }
1212
+ var exclusiveServerBindings = /* @__PURE__ */new Set();
1213
+ var _iteratorNormalCompletion19 = true,
1214
+ _didIteratorError19 = false,
1215
+ _iteratorError19 = void 0;
1216
+ try {
1217
+ for (var _iterator19 = serverNeeded[Symbol.iterator](), _step19; !(_iteratorNormalCompletion19 = (_step19 = _iterator19.next()).done); _iteratorNormalCompletion19 = true) {
1218
+ var name5 = _step19.value;
1219
+ if (!clientNeeded.has(name5)) {
1220
+ exclusiveServerBindings.add(name5);
1221
+ }
1222
+ }
1223
+ } catch (err) {
1224
+ _didIteratorError19 = true;
1225
+ _iteratorError19 = err;
1226
+ } finally {
1227
+ try {
1228
+ if (!_iteratorNormalCompletion19 && _iterator19.return != null) {
1229
+ _iterator19.return();
1230
+ }
1231
+ } finally {
1232
+ if (_didIteratorError19) {
1233
+ throw _iteratorError19;
1234
+ }
1235
+ }
1236
+ }
1237
+ var s = new MagicString(code);
1238
+ var _iteratorNormalCompletion20 = true,
1239
+ _didIteratorError20 = false,
1240
+ _iteratorError20 = void 0;
1241
+ try {
1242
+ for (var _iterator20 = serverExportStmts[Symbol.iterator](), _step20; !(_iteratorNormalCompletion20 = (_step20 = _iterator20.next()).done); _iteratorNormalCompletion20 = true) {
1243
+ var [stmt3, info2] = _step20.value;
1244
+ var stubs = [];
1245
+ if (info2.names.has("loader")) {
1246
+ if (root) {
1247
+ var fromRoot = relative(root, id).replace(/\\/g, "/");
1248
+ var prefix = routerRoot.replace(/^\.\//, "").replace(/\/$/, "") + "/";
1249
+ var routeId = "./" + (fromRoot.startsWith(prefix) ? fromRoot.slice(prefix.length) : fromRoot);
1250
+ stubs.push(makeLoaderRouteIdStub(routeId));
1251
+ } else {
1252
+ stubs.push(EMPTY_LOADER_STRING);
1253
+ }
1254
+ }
1255
+ if (info2.names.has("generateStaticParams")) {
1256
+ stubs.push("export function generateStaticParams() {};");
1257
+ }
1258
+ if (info2.replaceAll) {
1259
+ s.overwrite(stmt3.start, stmt3.end, stubs.join("\n"));
1260
+ } else {
1261
+ var decl1 = stmt3.declaration;
1262
+ for (var i = decl1.declarations.length - 1; i >= 0; i--) {
1263
+ var d5 = decl1.declarations[i];
1264
+ if (info2.declaratorsToRemove.has(d5)) {
1265
+ if (i === 0) {
1266
+ var next = decl1.declarations[1];
1267
+ s.remove(d5.start, next.start);
1268
+ } else {
1269
+ var prev = decl1.declarations[i - 1];
1270
+ s.remove(prev.end, d5.end);
1271
+ }
1272
+ }
1273
+ }
1274
+ s.appendRight(stmt3.end, "\n" + stubs.join("\n"));
1275
+ }
1276
+ }
1277
+ } catch (err) {
1278
+ _didIteratorError20 = true;
1279
+ _iteratorError20 = err;
1280
+ } finally {
1281
+ try {
1282
+ if (!_iteratorNormalCompletion20 && _iterator20.return != null) {
1283
+ _iterator20.return();
1284
+ }
1285
+ } finally {
1286
+ if (_didIteratorError20) {
1287
+ throw _iteratorError20;
1288
+ }
1289
+ }
1290
+ }
1291
+ var _iteratorNormalCompletion21 = true,
1292
+ _didIteratorError21 = false,
1293
+ _iteratorError21 = void 0;
1294
+ try {
1295
+ for (var _iterator21 = ast.body[Symbol.iterator](), _step21; !(_iteratorNormalCompletion21 = (_step21 = _iterator21.next()).done); _iteratorNormalCompletion21 = true) {
1296
+ var stmt4 = _step21.value;
1297
+ if (serverExportStmts.has(stmt4) || stmt4.type === "ImportDeclaration") continue;
1298
+ if ((stmt4.type === "FunctionDeclaration" || stmt4.type === "ClassDeclaration" || stmt4.type === "TSEnumDeclaration") && stmt4.id && exclusiveServerBindings.has(stmt4.id.name)) {
1299
+ var end = stmt4.end;
1300
+ if (code[end] === ";") end++;
1301
+ if (code[end] === "\r" && code[end + 1] === "\n") end += 2;else if (code[end] === "\n") end += 1;
1302
+ s.remove(stmt4.start, end);
1303
+ } else if (stmt4.type === "VariableDeclaration") {
1304
+ var allExclusive = stmt4.declarations.every(function (d7) {
1305
+ var names4 = /* @__PURE__ */new Set();
1306
+ extractPatternBindings(d7.id, names4);
1307
+ return Array.from(names4).every(function (n) {
1308
+ return exclusiveServerBindings.has(n);
1309
+ });
1310
+ });
1311
+ if (allExclusive) {
1312
+ var end1 = stmt4.end;
1313
+ if (code[end1] === ";") end1++;
1314
+ if (code[end1] === "\r" && code[end1 + 1] === "\n") end1 += 2;else if (code[end1] === "\n") end1 += 1;
1315
+ s.remove(stmt4.start, end1);
1316
+ } else {
1317
+ for (var i1 = stmt4.declarations.length - 1; i1 >= 0; i1--) {
1318
+ var d6 = stmt4.declarations[i1];
1319
+ var names3 = /* @__PURE__ */new Set();
1320
+ extractPatternBindings(d6.id, names3);
1321
+ if (Array.from(names3).every(function (n) {
1322
+ return exclusiveServerBindings.has(n);
1323
+ })) {
1324
+ if (i1 === 0) {
1325
+ var next1 = stmt4.declarations[1];
1326
+ s.remove(d6.start, next1.start);
1327
+ } else {
1328
+ var prev1 = stmt4.declarations[i1 - 1];
1329
+ s.remove(prev1.end, d6.end);
1330
+ }
1331
+ }
1332
+ }
1333
+ }
1334
+ } else if (stmt4.type === "ClassDeclaration" && stmt4.id && exclusiveServerBindings.has(stmt4.id.name)) {
1335
+ var end2 = stmt4.end;
1336
+ if (code[end2] === ";") end2++;
1337
+ if (code[end2] === "\r" && code[end2 + 1] === "\n") end2 += 2;else if (code[end2] === "\n") end2 += 1;
1338
+ s.remove(stmt4.start, end2);
1339
+ }
1340
+ }
1341
+ } catch (err) {
1342
+ _didIteratorError21 = true;
1343
+ _iteratorError21 = err;
1344
+ } finally {
1345
+ try {
1346
+ if (!_iteratorNormalCompletion21 && _iterator21.return != null) {
1347
+ _iterator21.return();
1348
+ }
1349
+ } finally {
1350
+ if (_didIteratorError21) {
1351
+ throw _iteratorError21;
1352
+ }
1353
+ }
1354
+ }
1355
+ var _iteratorNormalCompletion22 = true,
1356
+ _didIteratorError22 = false,
1357
+ _iteratorError22 = void 0;
1358
+ try {
1359
+ for (var _iterator22 = ast.body[Symbol.iterator](), _step22; !(_iteratorNormalCompletion22 = (_step22 = _iterator22.next()).done); _iteratorNormalCompletion22 = true) {
1360
+ var stmt5 = _step22.value;
1361
+ if (stmt5.type !== "ImportDeclaration") continue;
1362
+ if (stmt5.importKind === "type") continue;
1363
+ if (!stmt5.specifiers || stmt5.specifiers.length === 0) continue;
1364
+ var kept = stmt5.specifiers.filter(function (sp2) {
1365
+ if (sp2.importKind === "type") return true;
1366
+ return !exclusiveServerBindings.has(sp2.local.name);
1367
+ });
1368
+ if (kept.length === 0) {
1369
+ var end3 = stmt5.end;
1370
+ if (code[end3] === ";") end3++;
1371
+ if (code[end3] === "\r" && code[end3 + 1] === "\n") end3 += 2;else if (code[end3] === "\n") end3 += 1;
1372
+ s.remove(stmt5.start, end3);
1373
+ } else if (kept.length < stmt5.specifiers.length) {
1374
+ var declCode = code.slice(stmt5.start, stmt5.source.start);
1375
+ var prefixMatch = declCode.match(/^import\s+/);
1376
+ var prefixEnd = stmt5.start + (prefixMatch ? prefixMatch[0].length : 7);
1377
+ var pos = stmt5.source.start - 1;
1378
+ while (pos >= 0 && /\s/.test(code[pos])) pos--;
1379
+ var fromStart = pos - 3;
1380
+ var defaultSpec = kept.find(function (sp2) {
1381
+ return sp2.type === "ImportDefaultSpecifier";
1382
+ });
1383
+ var namespaceSpec = kept.find(function (sp2) {
1384
+ return sp2.type === "ImportNamespaceSpecifier";
1385
+ });
1386
+ var namedSpecs = kept.filter(function (sp2) {
1387
+ return sp2.type === "ImportSpecifier";
1388
+ });
1389
+ var parts = [];
1390
+ if (defaultSpec) parts.push(defaultSpec.local.name);
1391
+ if (namespaceSpec) parts.push("* as " + namespaceSpec.local.name);
1392
+ if (namedSpecs.length > 0) {
1393
+ var namedStr = namedSpecs.map(function (sp2) {
1394
+ var typePrefix = sp2.importKind === "type" ? "type " : "";
1395
+ var importedName = sp2.imported.raw || sp2.imported.name;
1396
+ if (importedName === sp2.local.name) {
1397
+ return typePrefix + sp2.local.name;
1398
+ }
1399
+ return typePrefix + importedName + " as " + sp2.local.name;
1400
+ }).join(", ");
1401
+ parts.push("{ " + namedStr + " }");
1402
+ }
1403
+ s.overwrite(prefixEnd, fromStart, parts.join(", ") + " ");
1404
+ }
1405
+ }
1406
+ } catch (err) {
1407
+ _didIteratorError22 = true;
1408
+ _iteratorError22 = err;
1409
+ } finally {
1410
+ try {
1411
+ if (!_iteratorNormalCompletion22 && _iterator22.return != null) {
1412
+ _iterator22.return();
1413
+ }
1414
+ } finally {
1415
+ if (_didIteratorError22) {
1416
+ throw _iteratorError22;
1417
+ }
1418
+ }
1419
+ }
1420
+ console.info(` \u{1F9F9} [one] ${relative(process.cwd(), id)} removed ${removedFunctions.length} server-only exports`);
1421
+ return {
1422
+ code: s.toString(),
1423
+ map: s.generateMap({
1424
+ hires: "boundary",
1425
+ source: id,
1426
+ includeContent: true
1427
+ })
1428
+ };
184
1429
  }
185
1430
  export { clientTreeShakePlugin, transformTreeShakeClient };
186
1431
  //# sourceMappingURL=clientTreeShakePlugin.native.js.map