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