@shriyanss/js-recon 1.4.1-alpha.2 → 1.4.1-alpha.3

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 (57) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/CLAUDE.md +39 -2
  3. package/README.md +2 -0
  4. package/build/analyze/engine/index.js.map +1 -1
  5. package/build/analyze/helpers/schemas.js +1 -1
  6. package/build/analyze/helpers/schemas.js.map +1 -1
  7. package/build/analyze/index.js +1 -0
  8. package/build/analyze/index.js.map +1 -1
  9. package/build/globalConfig.js +2 -2
  10. package/build/globalConfig.js.map +1 -1
  11. package/build/index.js +73 -3
  12. package/build/index.js.map +1 -1
  13. package/build/lazyLoad/downloadQueue.js +1 -1
  14. package/build/lazyLoad/downloadQueue.js.map +1 -1
  15. package/build/lazyLoad/index.js +25 -0
  16. package/build/lazyLoad/index.js.map +1 -1
  17. package/build/lazyLoad/methodFilter.js +1 -0
  18. package/build/lazyLoad/methodFilter.js.map +1 -1
  19. package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js +64 -0
  20. package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js.map +1 -0
  21. package/build/lazyLoad/react/react_followImports.js +8 -2
  22. package/build/lazyLoad/react/react_followImports.js.map +1 -1
  23. package/build/lazyLoad/svelte/svelte_getFromPageSource.js +16 -0
  24. package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
  25. package/build/lazyLoad/svelte/svelte_getVersionJson.js +40 -0
  26. package/build/lazyLoad/svelte/svelte_getVersionJson.js.map +1 -0
  27. package/build/map/angular_js/getAngularConnections.js +88 -0
  28. package/build/map/angular_js/getAngularConnections.js.map +1 -0
  29. package/build/map/angular_js/interactive.js +4 -0
  30. package/build/map/angular_js/interactive.js.map +1 -0
  31. package/build/map/index.js +38 -0
  32. package/build/map/index.js.map +1 -1
  33. package/build/refactor/index.js +478 -12
  34. package/build/refactor/index.js.map +1 -1
  35. package/build/refactor/react/helpers.js +13 -0
  36. package/build/refactor/react/helpers.js.map +1 -1
  37. package/build/refactor/react/index.js +149 -41
  38. package/build/refactor/react/index.js.map +1 -1
  39. package/build/refactor/react/library-classify.js +232 -1
  40. package/build/refactor/react/library-classify.js.map +1 -1
  41. package/build/refactor/react/transform.js +1046 -34
  42. package/build/refactor/react/transform.js.map +1 -1
  43. package/build/refactor/react-vite/index.js +618 -0
  44. package/build/refactor/react-vite/index.js.map +1 -0
  45. package/build/refactor/react-vite/vendor-analyze.js +336 -0
  46. package/build/refactor/react-vite/vendor-analyze.js.map +1 -0
  47. package/build/refactor/remote/cache.js +211 -0
  48. package/build/refactor/remote/cache.js.map +1 -0
  49. package/build/refactor/remote/config.js +47 -0
  50. package/build/refactor/remote/config.js.map +1 -0
  51. package/build/refactor/remote/hf-client.js +137 -0
  52. package/build/refactor/remote/hf-client.js.map +1 -0
  53. package/build/run/index.js +116 -11
  54. package/build/run/index.js.map +1 -1
  55. package/build/utility/banner.js +68 -0
  56. package/build/utility/banner.js.map +1 -0
  57. package/package.json +2 -1
@@ -0,0 +1,618 @@
1
+ // Refactor module for Vite-bundled React apps.
2
+ //
3
+ // Vite (with rolldown) produces already-split ESM files. Each chunk:
4
+ // - imports rolldown interop helpers from rolldown-runtime-*.js
5
+ // - imports from a vendor chunk (vendor-react-*.js)
6
+ // - uses CJS-interop wrappers: var X = __toESM(getter(), 1)
7
+ // - calls library APIs via (0, X.prop)(args)
8
+ //
9
+ // This module:
10
+ // 1. Analyzes the vendor chunk to classify exports
11
+ // 2. For each app chunk, rewrites (0, X.prop)(args) → prop(args)
12
+ // 3. Applies Passes E/F/G via applyModuleCleanupPasses
13
+ // 4. Rewrites direct vendor imports using vendor export map
14
+ // 5. Cleans up rolldown boilerplate
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ var _a;
25
+ import { parse } from "@babel/parser";
26
+ import _traverse from "@babel/traverse";
27
+ import * as t from "@babel/types";
28
+ import _generator from "@babel/generator";
29
+ import path from "path";
30
+ const traverse = _traverse.default;
31
+ import { applyModuleCleanupPasses } from "../react/transform.js";
32
+ import { REACT_CANONICAL, JSX_RUNTIME_CANONICAL, REACT_DOM_CLIENT_CANONICAL, REACT_ROUTER_DOM_CANONICAL, librarySource, } from "../react/library-classify.js";
33
+ import { analyzeVendorChunk } from "./vendor-analyze.js";
34
+ const generate = (_a = _generator.default) !== null && _a !== void 0 ? _a : _generator;
35
+ // ---------------------------------------------------------------------------
36
+ // Vite chunk classification helpers
37
+ // ---------------------------------------------------------------------------
38
+ /**
39
+ * Identifies the rolldown-runtime chunk. It always has a single import (from itself)
40
+ * and exports __toESM (as 'n') and __commonJS (as 't').
41
+ */
42
+ function isRolldownRuntimeChunk(filename) {
43
+ return /rolldown[-_]runtime/i.test(path.basename(filename));
44
+ }
45
+ /**
46
+ * Identifies the vendor chunk. Typically vendor-react-*.js
47
+ */
48
+ function isVendorChunk(filename) {
49
+ return /vendor[-_]react/i.test(path.basename(filename));
50
+ }
51
+ /**
52
+ * Builds a map of chunk-local var name → VendorExportInfo by scanning import
53
+ * declarations against all known vendor chunk export maps.
54
+ */
55
+ function buildLocalVarToVendorExport(statements, vendorExportMaps) {
56
+ const result = new Map();
57
+ for (const stmt of statements) {
58
+ if (!t.isImportDeclaration(stmt))
59
+ continue;
60
+ const sourceBase = path.basename(stmt.source.value);
61
+ for (const [vendorBasename, exportMap] of vendorExportMaps) {
62
+ if (!sourceBase.includes(vendorBasename.replace(/\.js$/, "")))
63
+ continue;
64
+ for (const spec of stmt.specifiers) {
65
+ if (!t.isImportSpecifier(spec))
66
+ continue;
67
+ const importedName = t.isIdentifier(spec.imported)
68
+ ? spec.imported.name
69
+ : spec.imported.value;
70
+ const localName = spec.local.name;
71
+ const exportInfo = exportMap.get(importedName);
72
+ if (exportInfo)
73
+ result.set(localName, exportInfo);
74
+ }
75
+ break;
76
+ }
77
+ }
78
+ return result;
79
+ }
80
+ /**
81
+ * Finds interop vars and classifies them using vendor export map info.
82
+ *
83
+ * Handles two rolldown patterns:
84
+ * - `var X = toESM(getter(), 1)` — wrapped CJS interop
85
+ * - `var X = getter()` — direct CJS call (no toESM)
86
+ *
87
+ * Returns interopVarNames (set of vars to remove) and varToLib (for Pass D).
88
+ */
89
+ function detectInteropVars(statements, toEsmLocalName, localVarToVendorExport) {
90
+ const interopVarNames = new Set();
91
+ const varToLib = new Map();
92
+ for (const stmt of statements) {
93
+ if (!t.isVariableDeclaration(stmt))
94
+ continue;
95
+ for (const decl of stmt.declarations) {
96
+ if (!t.isIdentifier(decl.id) || !decl.init)
97
+ continue;
98
+ if (!t.isCallExpression(decl.init))
99
+ continue;
100
+ const callee = decl.init.callee;
101
+ const args = decl.init.arguments;
102
+ const varName = decl.id.name;
103
+ let getterExportInfo;
104
+ // Pattern 1: toESM(getter(), 1)
105
+ if (toEsmLocalName &&
106
+ t.isIdentifier(callee, { name: toEsmLocalName }) &&
107
+ args.length >= 1 &&
108
+ t.isCallExpression(args[0]) &&
109
+ t.isIdentifier(args[0].callee)) {
110
+ const getterName = args[0].callee.name;
111
+ const info = localVarToVendorExport.get(getterName);
112
+ if (info === null || info === void 0 ? void 0 : info.isCjsGetter)
113
+ getterExportInfo = info;
114
+ }
115
+ // Pattern 2: getter() — direct CJS call without toESM wrapper
116
+ if (!getterExportInfo && t.isIdentifier(callee)) {
117
+ const info = localVarToVendorExport.get(callee.name);
118
+ if (info === null || info === void 0 ? void 0 : info.isCjsGetter)
119
+ getterExportInfo = info;
120
+ }
121
+ if (!getterExportInfo)
122
+ continue;
123
+ interopVarNames.add(varName);
124
+ let libType = "unknown";
125
+ if (getterExportInfo.library === "react")
126
+ libType = "react";
127
+ else if (getterExportInfo.library === "react/jsx-runtime")
128
+ libType = "react-jsx-runtime";
129
+ else if (getterExportInfo.library === "react-dom/client")
130
+ libType = "react-dom-client";
131
+ if (libType !== "unknown") {
132
+ varToLib.set(varName, { varName, libType, exportMap: new Map() });
133
+ }
134
+ }
135
+ }
136
+ return { interopVarNames, varToLib };
137
+ }
138
+ // ---------------------------------------------------------------------------
139
+ // Vite Pass D — rewrite (0, X.prop)(args) → prop(args)
140
+ // ---------------------------------------------------------------------------
141
+ /**
142
+ * Rewrites `(0, X.prop)(args)` → `prop(args)` for known library vars.
143
+ * Also rewrites bare `X.prop` member accesses in non-call positions.
144
+ * Returns a Map from library source path → set of used canonical names.
145
+ */
146
+ function rewriteViteLibraryCalls(statements, varToLib) {
147
+ const usedExports = new Map();
148
+ const record = (libType, name) => {
149
+ const src = librarySource(libType);
150
+ if (!src)
151
+ return;
152
+ if (!usedExports.has(src))
153
+ usedExports.set(src, new Set());
154
+ usedExports.get(src).add(name);
155
+ };
156
+ const resolveViteProp = (varName, prop) => {
157
+ const info = varToLib.get(varName);
158
+ if (!info || info.libType === "unknown")
159
+ return null;
160
+ const isCanonical = (name) => {
161
+ if (info.libType === "react")
162
+ return REACT_CANONICAL.has(name);
163
+ if (info.libType === "react-jsx-runtime")
164
+ return JSX_RUNTIME_CANONICAL.has(name) || name === "Fragment";
165
+ if (info.libType === "react-dom-client")
166
+ return REACT_DOM_CLIENT_CANONICAL.has(name);
167
+ if (info.libType === "react-router-dom")
168
+ return REACT_ROUTER_DOM_CANONICAL.has(name);
169
+ return false;
170
+ };
171
+ if (isCanonical(prop))
172
+ return { canonical: prop, libType: info.libType };
173
+ return null;
174
+ };
175
+ const syntheticFile = t.file(t.program(statements, [], "module"));
176
+ traverse(syntheticFile, {
177
+ CallExpression(p) {
178
+ const callee = p.node.callee;
179
+ // (0, X.prop) form
180
+ if (t.isSequenceExpression(callee) && callee.expressions.length === 2) {
181
+ const [first, second] = callee.expressions;
182
+ if (t.isNumericLiteral(first) &&
183
+ first.value === 0 &&
184
+ t.isMemberExpression(second) &&
185
+ !second.computed &&
186
+ t.isIdentifier(second.object) &&
187
+ t.isIdentifier(second.property)) {
188
+ const varName = second.object.name;
189
+ const prop = second.property.name;
190
+ const resolved = resolveViteProp(varName, prop);
191
+ if (resolved) {
192
+ record(resolved.libType, resolved.canonical);
193
+ p.node.callee = t.identifier(resolved.canonical);
194
+ }
195
+ }
196
+ return;
197
+ }
198
+ // X.prop form
199
+ if (t.isMemberExpression(callee) &&
200
+ !callee.computed &&
201
+ t.isIdentifier(callee.object) &&
202
+ t.isIdentifier(callee.property)) {
203
+ const varName = callee.object.name;
204
+ const prop = callee.property.name;
205
+ const resolved = resolveViteProp(varName, prop);
206
+ if (resolved) {
207
+ record(resolved.libType, resolved.canonical);
208
+ p.node.callee = t.identifier(resolved.canonical);
209
+ }
210
+ }
211
+ },
212
+ MemberExpression(p) {
213
+ // Non-call positions
214
+ if (t.isCallExpression(p.parent) && p.parent.callee === p.node)
215
+ return;
216
+ if (p.node.computed)
217
+ return;
218
+ if (!t.isIdentifier(p.node.object) || !t.isIdentifier(p.node.property))
219
+ return;
220
+ const varName = p.node.object.name;
221
+ const prop = p.node.property.name;
222
+ const resolved = resolveViteProp(varName, prop);
223
+ if (resolved) {
224
+ record(resolved.libType, resolved.canonical);
225
+ p.replaceWith(t.identifier(resolved.canonical));
226
+ p.skip();
227
+ }
228
+ },
229
+ });
230
+ return usedExports;
231
+ }
232
+ // ---------------------------------------------------------------------------
233
+ // Boilerplate removal
234
+ // ---------------------------------------------------------------------------
235
+ /**
236
+ * Removes the `__vite__mapDeps` const declaration.
237
+ * Pattern: const __vite__mapDeps = (i, m=__vite__mapDeps, d=(m.f||(m.f=[...]))) => ...
238
+ */
239
+ function removeViteMapDeps(statements) {
240
+ return statements.filter((stmt) => {
241
+ if (!t.isVariableDeclaration(stmt))
242
+ return true;
243
+ return !stmt.declarations.some((d) => t.isIdentifier(d.id) && d.id.name === "__vite__mapDeps");
244
+ });
245
+ }
246
+ /**
247
+ * Removes modulepreload setup IIFEs.
248
+ * Pattern: (function(){let e=document.createElement(`link`).relList;...})()
249
+ */
250
+ function removeModulepreloadIIFE(statements) {
251
+ return statements.filter((stmt) => {
252
+ if (!t.isExpressionStatement(stmt))
253
+ return true;
254
+ const expr = stmt.expression;
255
+ if (!t.isCallExpression(expr))
256
+ return true;
257
+ const callee = expr.callee;
258
+ if (!t.isFunctionExpression(callee) && !t.isArrowFunctionExpression(callee))
259
+ return true;
260
+ // Detect modulepreload setup by looking for `relList` or `modulepreload` in body
261
+ try {
262
+ const bodyCode = generate(callee).code;
263
+ if (bodyCode.includes("relList") ||
264
+ bodyCode.includes("modulepreload") ||
265
+ (bodyCode.includes("createElement") && bodyCode.includes("link"))) {
266
+ return false;
267
+ }
268
+ }
269
+ catch (_a) {
270
+ // skip
271
+ }
272
+ return true;
273
+ });
274
+ }
275
+ /**
276
+ * Simplifies dynamic imports wrapped with __vite__mapDeps preloading helper.
277
+ * Pattern: (0, o.lazy)(() => o(()=>import('./X.js'), __vite__mapDeps([0,1,2])))
278
+ * After Pass D, becomes: lazy(() => o(()=>import('./X.js'), __vite__mapDeps([0,1,2])))
279
+ * We simplify the inner call: lazy(() => import('./X.js'))
280
+ */
281
+ function simplifyViteMapDepsImports(statements) {
282
+ const syntheticFile = t.file(t.program(statements, [], "module"));
283
+ traverse(syntheticFile, {
284
+ CallExpression(p) {
285
+ // Look for: lazy(() => someWrapper(()=>import('./X.js'), __vite__mapDeps(...)))
286
+ const callee = p.node.callee;
287
+ if (!t.isIdentifier(callee, { name: "lazy" }))
288
+ return;
289
+ if (p.node.arguments.length !== 1)
290
+ return;
291
+ const arg = p.node.arguments[0];
292
+ if (!t.isArrowFunctionExpression(arg))
293
+ return;
294
+ const body = arg.body;
295
+ if (!t.isCallExpression(body))
296
+ return;
297
+ // The inner call has 2 args: ()=>import('./X.js'), __vite__mapDeps(...)
298
+ const innerArgs = body.arguments;
299
+ if (innerArgs.length < 2)
300
+ return;
301
+ const firstInnerArg = innerArgs[0];
302
+ if (!t.isArrowFunctionExpression(firstInnerArg))
303
+ return;
304
+ const innerBody = firstInnerArg.body;
305
+ if (!t.isCallExpression(innerBody))
306
+ return;
307
+ if (!t.isImport(innerBody.callee))
308
+ return;
309
+ // We found: lazy(() => wrapper(() => import('./X.js'), __vite__mapDeps(...)))
310
+ // Simplify to: lazy(() => import('./X.js'))
311
+ p.node.arguments = [t.arrowFunctionExpression([], innerBody)];
312
+ },
313
+ });
314
+ }
315
+ // ---------------------------------------------------------------------------
316
+ // Import rewriting for direct vendor imports
317
+ // ---------------------------------------------------------------------------
318
+ /**
319
+ * Rewrites vendor imports using all known vendor export maps.
320
+ * Removes all vendor chunk imports and replaces direct (non-CJS-getter) exports
321
+ * with proper library imports. Returns new statement list and rename map.
322
+ */
323
+ function rewriteVendorImports(statements, vendorExportMaps) {
324
+ const renames = new Map(); // localSpecifier → canonicalName
325
+ const newLibImports = new Map(); // libraryPath → set of canonical names
326
+ const vendorSources = new Set(); // exact source values to remove
327
+ for (const stmt of statements) {
328
+ if (!t.isImportDeclaration(stmt))
329
+ continue;
330
+ const source = stmt.source.value;
331
+ const sourceBase = path.basename(source);
332
+ let exportMap;
333
+ for (const [vendorBasename, map] of vendorExportMaps) {
334
+ if (sourceBase.includes(vendorBasename.replace(/\.js$/, ""))) {
335
+ exportMap = map;
336
+ vendorSources.add(source);
337
+ break;
338
+ }
339
+ }
340
+ if (!exportMap)
341
+ continue;
342
+ for (const spec of stmt.specifiers) {
343
+ if (!t.isImportSpecifier(spec))
344
+ continue;
345
+ const importedName = t.isIdentifier(spec.imported)
346
+ ? spec.imported.name
347
+ : spec.imported.value;
348
+ const localName = spec.local.name;
349
+ const exportInfo = exportMap.get(importedName);
350
+ if (!exportInfo || exportInfo.isCjsGetter)
351
+ continue;
352
+ // Direct export (react-router-dom component or similar)
353
+ const libPath = exportInfo.library;
354
+ if (!newLibImports.has(libPath))
355
+ newLibImports.set(libPath, new Set());
356
+ newLibImports.get(libPath).add(exportInfo.canonicalName);
357
+ if (localName !== exportInfo.canonicalName) {
358
+ renames.set(localName, exportInfo.canonicalName);
359
+ }
360
+ }
361
+ }
362
+ // Remove all vendor import statements (identified by exact source value)
363
+ const filtered = statements.filter((stmt) => {
364
+ if (!t.isImportDeclaration(stmt))
365
+ return true;
366
+ return !vendorSources.has(stmt.source.value);
367
+ });
368
+ // Build new import declarations for direct exports
369
+ const libImportStmts = [];
370
+ for (const [libPath, canonicalNames] of newLibImports) {
371
+ if (canonicalNames.size === 0)
372
+ continue;
373
+ const specifiers = Array.from(canonicalNames).map((name) => t.importSpecifier(t.identifier(name), t.identifier(name)));
374
+ libImportStmts.push(t.importDeclaration(specifiers, t.stringLiteral(libPath)));
375
+ }
376
+ return {
377
+ newStatements: [...libImportStmts, ...filtered],
378
+ renames,
379
+ };
380
+ }
381
+ /**
382
+ * Renames usages of old identifier names to new names throughout statements.
383
+ */
384
+ function applyRenames(statements, renames) {
385
+ if (renames.size === 0)
386
+ return;
387
+ const syntheticFile = t.file(t.program(statements, [], "module"));
388
+ traverse(syntheticFile, {
389
+ Identifier(p) {
390
+ var _a, _b;
391
+ const newName = renames.get(p.node.name);
392
+ if (!newName)
393
+ return;
394
+ // Skip binding declarations and import specifiers
395
+ if ((_a = p.parentPath) === null || _a === void 0 ? void 0 : _a.isImportSpecifier())
396
+ return;
397
+ if ((_b = p.parentPath) === null || _b === void 0 ? void 0 : _b.isImportDefaultSpecifier())
398
+ return;
399
+ p.node.name = newName;
400
+ },
401
+ JSXIdentifier(p) {
402
+ const newName = renames.get(p.node.name);
403
+ if (!newName)
404
+ return;
405
+ p.node.name = newName;
406
+ },
407
+ });
408
+ }
409
+ // ---------------------------------------------------------------------------
410
+ // Build new library import declarations from usedExports
411
+ // ---------------------------------------------------------------------------
412
+ function buildLibImportStatements(usedExports) {
413
+ const decls = [];
414
+ for (const [libPath, names] of usedExports) {
415
+ if (names.size === 0)
416
+ continue;
417
+ const specifiers = Array.from(names).map((name) => t.importSpecifier(t.identifier(name), t.identifier(name)));
418
+ decls.push(t.importDeclaration(specifiers, t.stringLiteral(libPath)));
419
+ }
420
+ return decls;
421
+ }
422
+ // ---------------------------------------------------------------------------
423
+ // Prune unused named imports (Pass H equivalent)
424
+ // ---------------------------------------------------------------------------
425
+ function collectReferencedNames(stmts) {
426
+ const names = new Set();
427
+ const syntheticFile = t.file(t.program(stmts, [], "module"));
428
+ traverse(syntheticFile, {
429
+ Identifier(p) {
430
+ var _a, _b, _c, _d, _e, _f, _g, _h;
431
+ if ((_a = p.parentPath) === null || _a === void 0 ? void 0 : _a.isImportSpecifier())
432
+ return;
433
+ if ((_b = p.parentPath) === null || _b === void 0 ? void 0 : _b.isImportDefaultSpecifier())
434
+ return;
435
+ if ((_c = p.parentPath) === null || _c === void 0 ? void 0 : _c.isImportNamespaceSpecifier())
436
+ return;
437
+ if (((_d = p.parentPath) === null || _d === void 0 ? void 0 : _d.isMemberExpression()) &&
438
+ !p.parent.computed &&
439
+ p.parentPath.get("property") === p)
440
+ return;
441
+ if (((_e = p.parentPath) === null || _e === void 0 ? void 0 : _e.isObjectProperty()) &&
442
+ !p.parent.computed &&
443
+ p.parentPath.get("key") === p)
444
+ return;
445
+ if ((_f = p.parentPath) === null || _f === void 0 ? void 0 : _f.isJSXAttribute())
446
+ return;
447
+ if (((_g = p.parentPath) === null || _g === void 0 ? void 0 : _g.isJSXOpeningElement()) || ((_h = p.parentPath) === null || _h === void 0 ? void 0 : _h.isJSXClosingElement()))
448
+ return;
449
+ names.add(p.node.name);
450
+ },
451
+ JSXIdentifier(p) {
452
+ names.add(p.node.name);
453
+ },
454
+ });
455
+ return names;
456
+ }
457
+ function pruneUnusedNamedImports(importStmts, bodyStmts) {
458
+ const refs = collectReferencedNames(bodyStmts);
459
+ return importStmts
460
+ .map((stmt) => {
461
+ if (!t.isImportDeclaration(stmt))
462
+ return stmt;
463
+ const prunedSpecifiers = stmt.specifiers.filter((spec) => {
464
+ if (t.isImportNamespaceSpecifier(spec))
465
+ return true;
466
+ if (t.isImportDefaultSpecifier(spec))
467
+ return true;
468
+ if (t.isImportSpecifier(spec)) {
469
+ const localName = t.isIdentifier(spec.local) ? spec.local.name : null;
470
+ return localName ? refs.has(localName) : true;
471
+ }
472
+ return true;
473
+ });
474
+ if (prunedSpecifiers.length === 0)
475
+ return null;
476
+ if (prunedSpecifiers.length === stmt.specifiers.length)
477
+ return stmt;
478
+ return t.importDeclaration(prunedSpecifiers, stmt.source);
479
+ })
480
+ .filter(Boolean);
481
+ }
482
+ // ---------------------------------------------------------------------------
483
+ // Main refactor function
484
+ // ---------------------------------------------------------------------------
485
+ /**
486
+ * Refactors Vite-bundled React app chunks.
487
+ *
488
+ * @param chunks - Mapped chunks from the Vite app (vendor + app chunks)
489
+ * @param libSigs - Optional set of library signatures for module stripping (not used for Vite)
490
+ * @returns Record<filename, refactoredCode>
491
+ */
492
+ export default function refactorVite(chunks, _libSigs) {
493
+ return __awaiter(this, void 0, void 0, function* () {
494
+ var _a, _b, _c, _d, _e;
495
+ const result = {};
496
+ // Step 1: Collect all vendor chunks and detect the rolldown runtime chunk
497
+ const vendorChunks = new Map(); // basename → code
498
+ for (const [, chunk] of Object.entries(chunks)) {
499
+ const filename = (_b = (_a = chunk.file) !== null && _a !== void 0 ? _a : chunk.id) !== null && _b !== void 0 ? _b : "";
500
+ const basename = path.basename(filename);
501
+ if (isVendorChunk(basename)) {
502
+ vendorChunks.set(basename, (_c = chunk.code) !== null && _c !== void 0 ? _c : "");
503
+ }
504
+ }
505
+ // Step 2: Analyze all vendor chunks
506
+ const vendorExportMaps = new Map();
507
+ for (const [basename, code] of vendorChunks) {
508
+ vendorExportMaps.set(basename, analyzeVendorChunk(code));
509
+ }
510
+ // Step 3: Process each non-vendor, non-runtime chunk
511
+ for (const [chunkKey, chunk] of Object.entries(chunks)) {
512
+ const filename = (_e = (_d = chunk.file) !== null && _d !== void 0 ? _d : chunk.id) !== null && _e !== void 0 ? _e : chunkKey;
513
+ const basename = path.basename(filename);
514
+ // Skip vendor and runtime chunks (they're not app code)
515
+ if (isVendorChunk(basename))
516
+ continue;
517
+ if (isRolldownRuntimeChunk(basename))
518
+ continue;
519
+ const code = chunk.code;
520
+ if (!code || code.trim().length === 0)
521
+ continue;
522
+ let ast;
523
+ try {
524
+ ast = parse(code, {
525
+ sourceType: "module",
526
+ plugins: ["jsx"],
527
+ errorRecovery: true,
528
+ });
529
+ }
530
+ catch (_f) {
531
+ // If parsing fails, keep the original code
532
+ result[chunkKey] = code;
533
+ continue;
534
+ }
535
+ let statements = ast.program.body;
536
+ // Step 3a: Find rolldown-runtime import to identify __toESM local name
537
+ let toEsmLocalName = null;
538
+ for (const stmt of statements) {
539
+ if (!t.isImportDeclaration(stmt))
540
+ continue;
541
+ if (!stmt.source.value.includes("rolldown-runtime"))
542
+ continue;
543
+ for (const spec of stmt.specifiers) {
544
+ if (!t.isImportSpecifier(spec))
545
+ continue;
546
+ const imported = t.isIdentifier(spec.imported)
547
+ ? spec.imported.name
548
+ : spec.imported.value;
549
+ // rolldown exports __toESM as 'n'
550
+ if (imported === "n") {
551
+ toEsmLocalName = spec.local.name;
552
+ }
553
+ }
554
+ }
555
+ // Step 3b: Build local var → vendor export info from import statements
556
+ const localVarToVendorExport = buildLocalVarToVendorExport(statements, vendorExportMaps);
557
+ // Step 3c: Detect interop vars and classify them using vendor export info
558
+ const { interopVarNames, varToLib } = detectInteropVars(statements, toEsmLocalName, localVarToVendorExport);
559
+ // Step 3d: Vite Pass D — rewrite (0, X.prop)(args) → prop(args)
560
+ const usedExports = rewriteViteLibraryCalls(statements, varToLib);
561
+ // Step 3e: Build new library import declarations from usedExports
562
+ const libImportDecls = buildLibImportStatements(usedExports);
563
+ // Step 3f: Apply cleanup passes E/F/G
564
+ const bodyStatements = statements.filter((s) => !t.isImportDeclaration(s));
565
+ const cleanedBody = applyModuleCleanupPasses(bodyStatements);
566
+ // Step 3g: Apply Pass H (prune unused imports)
567
+ const prunedLibImports = pruneUnusedNamedImports(libImportDecls, cleanedBody);
568
+ // Step 3h: Simplify __vite__mapDeps lazy imports
569
+ simplifyViteMapDepsImports(cleanedBody);
570
+ // Step 3i: Remove Vite boilerplate from body
571
+ const cleanedBodyNoBoilerplate = removeViteMapDeps(removeModulepreloadIIFE(cleanedBody));
572
+ // Step 3j: Rewrite direct vendor imports using all vendor export maps
573
+ const vendorImportStmts = statements.filter((s) => t.isImportDeclaration(s));
574
+ const vendorResult = vendorExportMaps.size > 0
575
+ ? rewriteVendorImports(vendorImportStmts, vendorExportMaps)
576
+ : { newStatements: vendorImportStmts, renames: new Map() };
577
+ // Remove rolldown-runtime imports from the resulting statement list
578
+ const filteredNonVendorImports = vendorResult.newStatements.filter((s) => {
579
+ if (!t.isImportDeclaration(s))
580
+ return true;
581
+ return !s.source.value.includes("rolldown-runtime");
582
+ });
583
+ const vendorRenames = vendorResult.renames;
584
+ // Remove interop var declarators from body.
585
+ // When a declaration mixes interop and non-interop declarators, keep non-interop ones.
586
+ const bodyWithoutInteropVars = cleanedBodyNoBoilerplate
587
+ .map((stmt) => {
588
+ if (!t.isVariableDeclaration(stmt))
589
+ return stmt;
590
+ const keptDeclarators = stmt.declarations.filter((d) => !(t.isIdentifier(d.id) && interopVarNames.has(d.id.name)));
591
+ if (keptDeclarators.length === 0)
592
+ return null; // all interop — drop statement
593
+ if (keptDeclarators.length === stmt.declarations.length)
594
+ return stmt; // unchanged
595
+ return t.variableDeclaration(stmt.kind, keptDeclarators);
596
+ })
597
+ .filter(Boolean);
598
+ // Apply vendor renames to the body
599
+ applyRenames(bodyWithoutInteropVars, vendorRenames);
600
+ // Step 3k: Assemble final statement list
601
+ const finalStatements = [
602
+ ...filteredNonVendorImports,
603
+ ...prunedLibImports,
604
+ ...bodyWithoutInteropVars,
605
+ ];
606
+ // Step 3l: Generate code
607
+ try {
608
+ const generated = generate(t.file(t.program(finalStatements, [], "module"))).code;
609
+ result[chunkKey] = generated;
610
+ }
611
+ catch (_g) {
612
+ result[chunkKey] = code; // fallback to original
613
+ }
614
+ }
615
+ return result;
616
+ });
617
+ }
618
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/refactor/react-vite/index.ts"],"names":[],"mappings":"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"}