@shriyanss/js-recon 1.4.1-alpha.1 → 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 (63) hide show
  1. package/CHANGELOG.md +49 -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 +120 -5
  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 +97 -38
  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/next_js/NextJsCrawler.js +69 -48
  20. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
  21. package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js +64 -0
  22. package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js.map +1 -0
  23. package/build/lazyLoad/react/react_followImports.js +8 -2
  24. package/build/lazyLoad/react/react_followImports.js.map +1 -1
  25. package/build/lazyLoad/svelte/svelte_getFromPageSource.js +16 -0
  26. package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
  27. package/build/lazyLoad/svelte/svelte_getVersionJson.js +40 -0
  28. package/build/lazyLoad/svelte/svelte_getVersionJson.js.map +1 -0
  29. package/build/lazyLoad/vue/vue_discoverJsFiles.js +47 -25
  30. package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
  31. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +2 -2
  32. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
  33. package/build/map/angular_js/getAngularConnections.js +88 -0
  34. package/build/map/angular_js/getAngularConnections.js.map +1 -0
  35. package/build/map/angular_js/interactive.js +4 -0
  36. package/build/map/angular_js/interactive.js.map +1 -0
  37. package/build/map/index.js +38 -0
  38. package/build/map/index.js.map +1 -1
  39. package/build/refactor/index.js +485 -19
  40. package/build/refactor/index.js.map +1 -1
  41. package/build/refactor/react/helpers.js +13 -0
  42. package/build/refactor/react/helpers.js.map +1 -1
  43. package/build/refactor/react/index.js +149 -41
  44. package/build/refactor/react/index.js.map +1 -1
  45. package/build/refactor/react/library-classify.js +232 -1
  46. package/build/refactor/react/library-classify.js.map +1 -1
  47. package/build/refactor/react/transform.js +1046 -34
  48. package/build/refactor/react/transform.js.map +1 -1
  49. package/build/refactor/react-vite/index.js +618 -0
  50. package/build/refactor/react-vite/index.js.map +1 -0
  51. package/build/refactor/react-vite/vendor-analyze.js +336 -0
  52. package/build/refactor/react-vite/vendor-analyze.js.map +1 -0
  53. package/build/refactor/remote/cache.js +211 -0
  54. package/build/refactor/remote/cache.js.map +1 -0
  55. package/build/refactor/remote/config.js +47 -0
  56. package/build/refactor/remote/config.js.map +1 -0
  57. package/build/refactor/remote/hf-client.js +137 -0
  58. package/build/refactor/remote/hf-client.js.map +1 -0
  59. package/build/run/index.js +116 -11
  60. package/build/run/index.js.map +1 -1
  61. package/build/utility/banner.js +68 -0
  62. package/build/utility/banner.js.map +1 -0
  63. package/package.json +2 -1
@@ -10,15 +10,73 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import chalk from "chalk";
11
11
  import fs from "fs";
12
12
  import path from "path";
13
+ import { execSync } from "child_process";
13
14
  import prettier from "prettier";
14
15
  // Next.js
15
16
  import refactorNext from "./next/index.js";
16
17
  // React
17
18
  import refactorReact from "./react/index.js";
19
+ // React (Vite)
20
+ import refactorVite from "./react-vite/index.js";
21
+ // Remote HuggingFace client + cache
22
+ import { TECH_TO_BRANCH, getHfRawUrl, fetchCollisionsJson, listCollisionsFiles, validateRemoteBranch, getSampleSize, getTechnology, } from "./remote/hf-client.js";
23
+ import { loadRefactorConfig, validateRefactorConfig } from "./remote/config.js";
24
+ import { loadListCache, saveListCache, shouldRefreshListCache, loadCachedSignature, saveSignatureToCache, isSignatureCacheFresh, validateCaches, } from "./remote/cache.js";
25
+ /**
26
+ * Derives the assets directory from the URL embedded in any chunk's code comment.
27
+ * Chunks have a header like `// File Source: http://localhost:3001/assets/foo.js`.
28
+ * Returns null if the assets directory cannot be determined or does not exist.
29
+ */
30
+ function findAssetsDir(chunks, mappedJsonPath) {
31
+ var _a;
32
+ for (const chunk of Object.values(chunks)) {
33
+ const firstLine = ((_a = chunk.code) !== null && _a !== void 0 ? _a : "").split("\n")[0];
34
+ const urlMatch = firstLine.match(/\/\/ File Source: (https?:\/\/[^\s]+)/);
35
+ if (!urlMatch)
36
+ continue;
37
+ try {
38
+ const url = new URL(urlMatch[1]);
39
+ const port = url.port;
40
+ const hostname = url.hostname + (port ? `_${port}` : "");
41
+ const assetsDir = path.join(path.dirname(path.resolve(mappedJsonPath)), "output", hostname, "assets");
42
+ if (fs.existsSync(assetsDir))
43
+ return assetsDir;
44
+ }
45
+ catch (_b) {
46
+ continue;
47
+ }
48
+ }
49
+ return null;
50
+ }
51
+ /**
52
+ * Returns paths to .js files in `assetsDir` that are NOT covered by any chunk in `chunks`.
53
+ * Chunks cover a file when `path.basename(chunk.file)` matches the assets filename.
54
+ */
55
+ function findVendorChunkFiles(chunks, assetsDir) {
56
+ const coveredFiles = new Set();
57
+ for (const chunk of Object.values(chunks)) {
58
+ if (chunk.file)
59
+ coveredFiles.add(path.basename(chunk.file));
60
+ }
61
+ return fs
62
+ .readdirSync(assetsDir)
63
+ .filter((f) => f.endsWith(".js") && !coveredFiles.has(f))
64
+ .map((f) => path.join(assetsDir, f));
65
+ }
18
66
  // Maps a refactor tech to the scat-combo directory name in a baseline tree.
19
- // Must match LIB_SIG_SCAT in src/refactor/<tech>/index.ts (sorted alphabetically, joined with "-").
67
+ // The directory name is the scat categories joined by "-" in the order they appear in
68
+ // ALL_SCAT_CATEGORIES (matching the naming convention used by jsr-cs-mast-s-gen/experiment/csmast.mjs).
20
69
  const BASELINE_SCAT_DIR = {
21
70
  "react-webpack": "lit-decl-loop-cond",
71
+ "react-vite": "lit-decl-loop-cond",
72
+ };
73
+ // Canonical ordering of scat categories (matches ALL_SCAT_CATEGORIES in csmast.mjs).
74
+ // Used when converting a user-supplied --scat list to a bucket directory name.
75
+ const ALL_SCAT_CATEGORIES = ["lit", "id", "op", "decl", "loop", "cond", "name", "val", "op_name"];
76
+ // Converts a scat list to the bucket directory name, preserving canonical category order.
77
+ const scatToDir = (scat) => {
78
+ const scatSet = new Set(scat);
79
+ return ALL_SCAT_CATEGORIES.filter((c) => scatSet.has(c)).join("-") || scat.join("-");
22
80
  };
23
81
  // Parses a collisions.json file and returns signatures whose count equals the maximum.
24
82
  const loadCollisionsFile = (filePath) => {
@@ -36,11 +94,11 @@ const loadCollisionsFile = (filePath) => {
36
94
  // - a per-feature results directory → detects <dir>/<feature>/<scat>/collisions.json
37
95
  // and intersects max-count signatures across all feature subdirs (reads only
38
96
  // the relevant scat files, not the full dataset tree)
39
- const buildLibSigs = (input, tech) => {
97
+ const buildLibSigs = (input, tech, scatOverride) => {
40
98
  if (!fs.existsSync(input))
41
99
  return null;
42
100
  const stat = fs.statSync(input);
43
- const scat = BASELINE_SCAT_DIR[tech];
101
+ const scat = scatOverride ? scatToDir(scatOverride) : BASELINE_SCAT_DIR[tech];
44
102
  // Case 1: direct file path
45
103
  if (stat.isFile()) {
46
104
  return { sigs: loadCollisionsFile(input), desc: input };
@@ -96,10 +154,303 @@ const buildLibSigs = (input, tech) => {
96
154
  }
97
155
  return null;
98
156
  };
157
+ // Loads library signatures from the remote HuggingFace dataset.
158
+ // Returns null if the branch is not configured for `tech` or if validation fails.
159
+ const loadRemoteLibSigs = (tech, opts) => __awaiter(void 0, void 0, void 0, function* () {
160
+ var _a, _b, _c;
161
+ const branch = TECH_TO_BRANCH[tech];
162
+ if (!branch)
163
+ return null;
164
+ const scatDir = opts.scat ? scatToDir(opts.scat) : BASELINE_SCAT_DIR[tech];
165
+ if (!scatDir)
166
+ return null;
167
+ // Load and validate config.
168
+ const config = loadRefactorConfig();
169
+ const configWarnings = validateRefactorConfig(config);
170
+ for (const w of configWarnings) {
171
+ console.log(chalk.yellow(`[!] Refactor config warning: ${w}`));
172
+ }
173
+ // Validate cache files.
174
+ const cacheWarnings = validateCaches();
175
+ for (const w of cacheWarnings) {
176
+ console.log(chalk.yellow(`[!] Cache validation warning: ${w} (will refresh)`));
177
+ }
178
+ // Validate remote bucket prefix has required metadata files.
179
+ console.log(chalk.cyan(`[i] Validating remote bucket prefix "${branch}"...`));
180
+ const branchOk = yield validateRemoteBranch(branch);
181
+ if (!branchOk) {
182
+ console.log(chalk.red(`[!] Remote bucket prefix "${branch}" is missing required metadata (sample_size / technology). Skipping remote signatures.`));
183
+ return null;
184
+ }
185
+ // Verify the bucket prefix technology matches.
186
+ const remoteTech = yield getTechnology(branch);
187
+ if (remoteTech !== tech) {
188
+ console.log(chalk.red(`[!] Remote bucket prefix "${branch}" is for technology "${remoteTech}", not "${tech}". Skipping remote signatures.`));
189
+ return null;
190
+ }
191
+ const sampleSize = yield getSampleSize(branch);
192
+ // Build / refresh file list cache.
193
+ let listCache = cacheWarnings.length > 0 ? null : loadListCache();
194
+ if (shouldRefreshListCache(listCache, opts)) {
195
+ console.log(chalk.cyan(`[i] Refreshing remote file list cache for bucket prefix "${branch}"...`));
196
+ const paths = yield listCollisionsFiles(branch, scatDir);
197
+ const now = Date.now();
198
+ const branches = (_a = listCache === null || listCache === void 0 ? void 0 : listCache.branches) !== null && _a !== void 0 ? _a : {};
199
+ branches[branch] = paths;
200
+ listCache = { generatedAt: now, branches };
201
+ saveListCache(listCache);
202
+ console.log(chalk.cyan(`[i] File list cache updated: ${paths.length} files found`));
203
+ }
204
+ const filePaths = (_b = listCache === null || listCache === void 0 ? void 0 : listCache.branches[branch]) !== null && _b !== void 0 ? _b : [];
205
+ // Filter to only paths that match <something>/<scatDir>/collisions.json
206
+ const matchingPaths = filePaths.filter((p) => p.endsWith(`/${scatDir}/collisions.json`));
207
+ if (matchingPaths.length === 0) {
208
+ console.log(chalk.yellow(`[!] No remote collisions files found for scat "${scatDir}" in branch "${branch}"`));
209
+ return null;
210
+ }
211
+ console.log(chalk.cyan(`[i] Loading ${matchingPaths.length} remote signature files (quality threshold: ${opts.signatureQuality}%)...`));
212
+ let intersection = null;
213
+ let loadedCount = 0;
214
+ for (const relPath of matchingPaths) {
215
+ let records = null;
216
+ // Check local signature cache first.
217
+ if (isSignatureCacheFresh(branch, relPath, opts.skipCacheChecks)) {
218
+ records = loadCachedSignature(branch, relPath);
219
+ }
220
+ if (records === null) {
221
+ // Fetch from remote.
222
+ const url = getHfRawUrl(branch, relPath);
223
+ records = yield fetchCollisionsJson(url);
224
+ if (records === null) {
225
+ // 404 or error — invalidate list cache unless skip-cache-checks.
226
+ if (!opts.skipCacheChecks) {
227
+ console.log(chalk.yellow(`[!] Could not fetch ${relPath} (404 or error) — refreshing list cache`));
228
+ const freshPaths = yield listCollisionsFiles(branch, scatDir);
229
+ const updatedBranches = (_c = listCache === null || listCache === void 0 ? void 0 : listCache.branches) !== null && _c !== void 0 ? _c : {};
230
+ updatedBranches[branch] = freshPaths;
231
+ saveListCache({ generatedAt: Date.now(), branches: updatedBranches });
232
+ listCache = { generatedAt: Date.now(), branches: updatedBranches };
233
+ }
234
+ continue;
235
+ }
236
+ saveSignatureToCache(branch, relPath, records, config.maxCacheSizeMb);
237
+ }
238
+ // Apply signature quality filter: (count / sampleSize) * 100 >= threshold
239
+ const filtered = records.filter((r) => sampleSize > 0 && (r.count / sampleSize) * 100 >= opts.signatureQuality);
240
+ // Intersect with previous sets.
241
+ const sigSet = new Set(filtered.map((r) => r.signature));
242
+ if (intersection === null) {
243
+ intersection = sigSet;
244
+ }
245
+ else {
246
+ for (const sig of intersection) {
247
+ if (!sigSet.has(sig))
248
+ intersection.delete(sig);
249
+ }
250
+ }
251
+ loadedCount++;
252
+ }
253
+ if (!intersection || intersection.size === 0) {
254
+ console.log(chalk.yellow(`[!] Remote signatures loaded but intersection is empty (quality threshold may be too high)`));
255
+ return null;
256
+ }
257
+ console.log(chalk.cyan(`[i] Loaded ${intersection.size} library signatures from remote (${loadedCount} files, bucket prefix: ${branch})`));
258
+ return { sigs: intersection, desc: `remote:${branch} (${loadedCount} files, quality>=${opts.signatureQuality}%)` };
259
+ });
99
260
  const availableTechs = {
100
261
  next: "Next.js",
101
262
  "react-webpack": "React (webpack)",
263
+ "react-vite": "React (Vite)",
102
264
  };
265
+ /**
266
+ * Scaffolds a minimal webpack project in `outputDir` (package.json,
267
+ * webpack.config.js, index.html), then runs `npm install` + `npm run build`
268
+ * as a build check. Uses babel-loader so JSX in .js files is handled without
269
+ * renaming.
270
+ *
271
+ * The entry file is the first written file that contains `createRoot(` — i.e.
272
+ * the app entry point. If no such file is found, the first written file is used.
273
+ */
274
+ function runBuildCheck(outputDir, writtenFiles) {
275
+ var _a;
276
+ if (writtenFiles.length === 0)
277
+ return;
278
+ // Find the entry file: the module that calls createRoot().
279
+ const entryFile = (_a = writtenFiles.find((f) => {
280
+ try {
281
+ return fs.readFileSync(f, "utf8").includes("createRoot(");
282
+ }
283
+ catch (_a) {
284
+ return false;
285
+ }
286
+ })) !== null && _a !== void 0 ? _a : writtenFiles[0];
287
+ const entryRelative = `./${path.basename(entryFile)}`;
288
+ console.log(chalk.cyan(`[i] Setting up webpack build check in ${outputDir}/ (entry: ${entryRelative})`));
289
+ // package.json — no "type": "module" so webpack.config.js can use CommonJS require
290
+ const pkg = {
291
+ name: "refactored-app",
292
+ version: "1.0.0",
293
+ scripts: { build: "webpack" },
294
+ dependencies: {
295
+ react: "^18.3.1",
296
+ "react-dom": "^18.3.1",
297
+ "react-router-dom": "^6.27.0",
298
+ },
299
+ devDependencies: {
300
+ "@babel/core": "^7.25.0",
301
+ "@babel/preset-env": "^7.25.0",
302
+ "@babel/preset-react": "^7.25.0",
303
+ "babel-loader": "^9.2.1",
304
+ "html-webpack-plugin": "^5.6.0",
305
+ webpack: "^5.95.0",
306
+ "webpack-cli": "^5.1.4",
307
+ },
308
+ };
309
+ fs.writeFileSync(path.join(outputDir, "package.json"), JSON.stringify(pkg, null, 2));
310
+ // webpack.config.js — babel-loader with preset-react handles JSX in .js files
311
+ const webpackConfig = `const path = require('path');
312
+ const HtmlWebpackPlugin = require('html-webpack-plugin');
313
+ module.exports = {
314
+ mode: 'production',
315
+ entry: '${entryRelative}',
316
+ output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', clean: true },
317
+ module: {
318
+ rules: [{
319
+ test: /\\.jsx?$/,
320
+ exclude: /node_modules/,
321
+ use: {
322
+ loader: 'babel-loader',
323
+ options: {
324
+ presets: [
325
+ ['@babel/preset-env', { targets: 'defaults' }],
326
+ ['@babel/preset-react', { runtime: 'automatic' }],
327
+ ],
328
+ },
329
+ },
330
+ }],
331
+ },
332
+ resolve: { extensions: ['.js', '.jsx'] },
333
+ plugins: [new HtmlWebpackPlugin({ template: './index.html' })],
334
+ };
335
+ `;
336
+ fs.writeFileSync(path.join(outputDir, "webpack.config.js"), webpackConfig);
337
+ // index.html — HtmlWebpackPlugin injects the bundle script automatically
338
+ const indexHtml = `<!DOCTYPE html>
339
+ <html lang="en">
340
+ <head><meta charset="UTF-8" /><title>Refactored App</title></head>
341
+ <body><div id="root"></div></body>
342
+ </html>
343
+ `;
344
+ fs.writeFileSync(path.join(outputDir, "index.html"), indexHtml);
345
+ console.log(chalk.cyan("[i] Installing dependencies..."));
346
+ try {
347
+ execSync("npm install", { cwd: outputDir, stdio: "inherit" });
348
+ }
349
+ catch (_b) {
350
+ console.log(chalk.red("[!] npm install failed — skipping build check"));
351
+ return;
352
+ }
353
+ console.log(chalk.cyan("[i] Running build check..."));
354
+ try {
355
+ execSync("npm run build", { cwd: outputDir, stdio: "inherit" });
356
+ console.log(chalk.green("[✓] Build check passed"));
357
+ }
358
+ catch (_c) {
359
+ console.log(chalk.red("[!] Build check failed — review output above"));
360
+ }
361
+ }
362
+ /**
363
+ * Scaffolds a minimal Vite project in `outputDir` and runs `npm install` + `npm run build`
364
+ * as a build check. Uses @vitejs/plugin-react so JSX in .js files is handled.
365
+ *
366
+ * The entry file is the first written file that contains `createRoot(`.
367
+ */
368
+ function runViteBuildCheck(outputDir, writtenFiles) {
369
+ var _a;
370
+ if (writtenFiles.length === 0)
371
+ return;
372
+ // Rename .js files to .jsx — Vite's import analysis can't parse JSX in .js files,
373
+ // and refactored Vite chunks always contain JSX. The original source files were .jsx.
374
+ const jsxFiles = writtenFiles.map((f) => {
375
+ if (!f.endsWith(".js"))
376
+ return f;
377
+ const jsxPath = f.replace(/\.js$/, ".jsx");
378
+ fs.renameSync(f, jsxPath);
379
+ return jsxPath;
380
+ });
381
+ // After renaming to .jsx, update relative dynamic imports inside each file:
382
+ // import('./Foo.js') → import('./Foo.jsx') — only for same-dir relative imports.
383
+ const outputFileBasenames = new Set(jsxFiles.map((f) => path.basename(f)));
384
+ for (const f of jsxFiles) {
385
+ let content = fs.readFileSync(f, "utf8");
386
+ // Replace ./Foo.js with ./Foo.jsx only when Foo.jsx exists as an output file.
387
+ content = content.replace(/(import\([`'"])(\.\/[^`'"]+?)\.js([`'"]\))/g, (_match, open, stem, close) => {
388
+ const candidate = path.basename(stem) + ".jsx";
389
+ return outputFileBasenames.has(candidate) ? `${open}${stem}.jsx${close}` : _match;
390
+ });
391
+ fs.writeFileSync(f, content);
392
+ }
393
+ const entryFile = (_a = jsxFiles.find((f) => {
394
+ try {
395
+ return fs.readFileSync(f, "utf8").includes("createRoot(");
396
+ }
397
+ catch (_a) {
398
+ return false;
399
+ }
400
+ })) !== null && _a !== void 0 ? _a : jsxFiles[0];
401
+ const entryRelative = `./${path.basename(entryFile)}`;
402
+ console.log(chalk.cyan(`[i] Setting up Vite build check in ${outputDir}/ (entry: ${entryRelative})`));
403
+ const pkg = {
404
+ name: "refactored-app",
405
+ version: "1.0.0",
406
+ type: "module",
407
+ scripts: { build: "vite build" },
408
+ dependencies: {
409
+ react: "^18.3.1",
410
+ "react-dom": "^18.3.1",
411
+ "react-router-dom": "^6.27.0",
412
+ },
413
+ devDependencies: {
414
+ "@vitejs/plugin-react": "^4.3.1",
415
+ vite: "^5.4.0",
416
+ },
417
+ };
418
+ fs.writeFileSync(path.join(outputDir, "package.json"), JSON.stringify(pkg, null, 2));
419
+ const viteConfig = `import { defineConfig } from 'vite';
420
+ import react from '@vitejs/plugin-react';
421
+ export default defineConfig({
422
+ plugins: [react()],
423
+ build: { rollupOptions: { input: '${entryRelative}' } },
424
+ });
425
+ `;
426
+ fs.writeFileSync(path.join(outputDir, "vite.config.js"), viteConfig);
427
+ const indexHtml = `<!DOCTYPE html>
428
+ <html lang="en">
429
+ <head><meta charset="UTF-8" /><title>Refactored App</title></head>
430
+ <body>
431
+ <div id="root"></div>
432
+ <script type="module" src="${entryRelative}"></script>
433
+ </body>
434
+ </html>
435
+ `;
436
+ fs.writeFileSync(path.join(outputDir, "index.html"), indexHtml);
437
+ console.log(chalk.cyan("[i] Installing dependencies..."));
438
+ try {
439
+ execSync("npm install", { cwd: outputDir, stdio: "inherit" });
440
+ }
441
+ catch (_b) {
442
+ console.log(chalk.red("[!] npm install failed — skipping build check"));
443
+ return;
444
+ }
445
+ console.log(chalk.cyan("[i] Running Vite build check..."));
446
+ try {
447
+ execSync("npm run build", { cwd: outputDir, stdio: "inherit" });
448
+ console.log(chalk.green("[✓] Vite build check passed"));
449
+ }
450
+ catch (_c) {
451
+ console.log(chalk.red("[!] Vite build check failed — review output above"));
452
+ }
453
+ }
103
454
  /**
104
455
  * Refactors JavaScript code chunks based on technology-specific patterns.
105
456
  *
@@ -113,20 +464,21 @@ const availableTechs = {
113
464
  * @param list - Whether to list available technologies instead of running refactoring
114
465
  * @returns Promise that resolves when refactoring is complete
115
466
  */
116
- const refactor = (mappedJson, outputDir, tech, list, collisionsFile) => __awaiter(void 0, void 0, void 0, function* () {
467
+ const refactor = (mappedJson, outputDir, tech, list, collisionsFile, remoteOpts) => __awaiter(void 0, void 0, void 0, function* () {
468
+ var _a, _b, _c, _d;
117
469
  console.log(chalk.cyan("[i] Loading refactor module..."));
118
- // check if the file exists
119
- if (!fs.existsSync(mappedJson)) {
120
- console.error(chalk.red("[!] Mapped JSON file does not exist"));
121
- process.exit(7);
122
- }
123
470
  if (list) {
124
471
  console.log(chalk.cyan("[i] Listing available technologies"));
125
- for (const tech of Object.keys(availableTechs)) {
126
- console.log(chalk.green(`- ${tech}: ${availableTechs[tech]}`));
472
+ for (const key of Object.keys(availableTechs)) {
473
+ console.log(chalk.green(`- ${key}: ${availableTechs[key]}`));
127
474
  }
128
475
  return;
129
476
  }
477
+ // check if the file exists
478
+ if (!fs.existsSync(mappedJson)) {
479
+ console.error(chalk.red("[!] Mapped JSON file does not exist"));
480
+ process.exit(7);
481
+ }
130
482
  // verify if the tech provided is valid
131
483
  if (!Object.keys(availableTechs).includes(tech)) {
132
484
  console.error(chalk.red("[!] Invalid technology provided"));
@@ -142,10 +494,12 @@ const refactor = (mappedJson, outputDir, tech, list, collisionsFile) => __awaite
142
494
  }
143
495
  // read the mapped JSON file
144
496
  const chunks = JSON.parse(fs.readFileSync(mappedJson, "utf8"));
145
- // optional: load CS-MAST cross-app baseline signatures from a collisions.json (or a directory)
497
+ // Load CS-MAST cross-app baseline signatures.
498
+ // Priority: --collisions (local path) > remote HF (default) > none.
146
499
  let libSigs;
147
500
  if (collisionsFile) {
148
- const result = buildLibSigs(collisionsFile, tech);
501
+ // Explicit local path — use existing resolver unchanged.
502
+ const result = buildLibSigs(collisionsFile, tech, remoteOpts === null || remoteOpts === void 0 ? void 0 : remoteOpts.scat);
149
503
  if (!result) {
150
504
  console.log(chalk.red(`[!] Could not resolve library signatures from: ${collisionsFile}`));
151
505
  const scat = BASELINE_SCAT_DIR[tech];
@@ -163,9 +517,24 @@ const refactor = (mappedJson, outputDir, tech, list, collisionsFile) => __awaite
163
517
  libSigs = result.sigs;
164
518
  console.log(chalk.cyan(`[i] Loaded ${libSigs.size} library signatures from ${result.desc}`));
165
519
  }
520
+ else if (!(remoteOpts === null || remoteOpts === void 0 ? void 0 : remoteOpts.noRemote) && TECH_TO_BRANCH[tech]) {
521
+ // Default: load from remote HuggingFace dataset.
522
+ const opts = {
523
+ signatureQuality: (_a = remoteOpts === null || remoteOpts === void 0 ? void 0 : remoteOpts.signatureQuality) !== null && _a !== void 0 ? _a : 100,
524
+ refreshCache: (_b = remoteOpts === null || remoteOpts === void 0 ? void 0 : remoteOpts.refreshCache) !== null && _b !== void 0 ? _b : false,
525
+ skipCacheChecks: (_c = remoteOpts === null || remoteOpts === void 0 ? void 0 : remoteOpts.skipCacheChecks) !== null && _c !== void 0 ? _c : false,
526
+ };
527
+ const result = yield loadRemoteLibSigs(tech, opts);
528
+ if (result) {
529
+ libSigs = result.sigs;
530
+ }
531
+ else {
532
+ console.log(chalk.yellow(`[~] Remote signatures unavailable — proceeding without library stripping`));
533
+ }
534
+ }
166
535
  // iterate through the chunks
167
- for (const [key, value] of Object.entries(chunks)) {
168
- if (tech === "next") {
536
+ if (tech === "next") {
537
+ for (const [, value] of Object.entries(chunks)) {
169
538
  const moduleFiles = yield refactorNext(value);
170
539
  for (const [moduleId, rawCode] of Object.entries(moduleFiles)) {
171
540
  const formatted = yield prettier.format(rawCode, {
@@ -177,18 +546,115 @@ const refactor = (mappedJson, outputDir, tech, list, collisionsFile) => __awaite
177
546
  console.log(chalk.green(`[✓] Module ${moduleId} written to ${outputDir}/${moduleId}.js`));
178
547
  }
179
548
  }
180
- else if (tech === "react-webpack") {
181
- const moduleFiles = yield refactorReact(value, libSigs);
182
- for (const [moduleId, rawCode] of Object.entries(moduleFiles)) {
549
+ }
550
+ else if (tech === "react-webpack") {
551
+ // Sort chunks so the main bundle (contains library module definitions) is processed
552
+ // first. Its libModuleMap is then available when processing lazy chunks that import
553
+ // those same library module IDs (e.g. 540=React, 848=jsx-runtime, 671=react-router-dom).
554
+ const sortedEntries = Object.entries(chunks).sort(([a], [b]) => {
555
+ const aIsLazy = /^\d+_/.test(a);
556
+ const bIsLazy = /^\d+_/.test(b);
557
+ if (!aIsLazy && bIsLazy)
558
+ return -1; // main bundle first
559
+ if (aIsLazy && !bIsLazy)
560
+ return 1;
561
+ return 0;
562
+ });
563
+ // Accumulated library module map — grows as main bundles are processed.
564
+ // Passed to each subsequent chunk so lazy chunks can rewrite library imports.
565
+ const accLibModuleMap = new Map();
566
+ // Pre-scan vendor chunks from the assets directory that are not in mapped.json.
567
+ // These files (e.g. vendor-router.*.js, vendor-react-dom.*.js) contain library
568
+ // modules whose export maps must be classified before processing application chunks.
569
+ const assetsDir = findAssetsDir(chunks, mappedJson);
570
+ if (assetsDir) {
571
+ const vendorFiles = findVendorChunkFiles(chunks, assetsDir);
572
+ for (const vendorFile of vendorFiles) {
573
+ console.log(chalk.cyan(`[i] Pre-scanning vendor chunk: ${path.basename(vendorFile)}`));
574
+ const vendorCode = fs.readFileSync(vendorFile, "utf8");
575
+ const vendorChunk = {
576
+ id: path.basename(vendorFile, ".js"),
577
+ description: "",
578
+ loadedOn: [],
579
+ containsFetch: false,
580
+ isAxiosLibrary: false,
581
+ exports: [],
582
+ callStack: [],
583
+ code: vendorCode,
584
+ imports: [],
585
+ file: vendorFile,
586
+ };
587
+ const vendorResult = yield refactorReact(vendorChunk, undefined, undefined, true);
588
+ for (const [id, info] of vendorResult.libModuleMap) {
589
+ accLibModuleMap.set(id, info);
590
+ console.log(chalk.gray(` [-] Vendor module ${id} → ${info.type} (${info.exportMap.size} exports)`));
591
+ }
592
+ }
593
+ }
594
+ if (remoteOpts === null || remoteOpts === void 0 ? void 0 : remoteOpts.scat) {
595
+ console.log(chalk.cyan(`[i] Using custom scat config: ${remoteOpts.scat.join(",")}`));
596
+ }
597
+ const writtenFiles = [];
598
+ for (const [, value] of sortedEntries) {
599
+ const result = yield refactorReact(value, libSigs, accLibModuleMap, false, remoteOpts === null || remoteOpts === void 0 ? void 0 : remoteOpts.scat);
600
+ // Merge this chunk's library classifications into the accumulator.
601
+ for (const [id, info] of result.libModuleMap) {
602
+ accLibModuleMap.set(id, info);
603
+ }
604
+ for (const [moduleId, rawCode] of Object.entries(result.files)) {
183
605
  const formatted = yield prettier.format(rawCode, {
184
606
  parser: "babel",
185
607
  singleQuote: true,
186
608
  trailingComma: "none",
187
609
  });
188
- fs.writeFileSync(`${outputDir}/${moduleId}.js`, formatted);
610
+ // Skip writing empty files (e.g. index.js after webpack runtime stripping).
611
+ if (formatted.trim().length === 0) {
612
+ console.log(chalk.gray(`[~] Module ${moduleId} is empty after stripping — skipping`));
613
+ continue;
614
+ }
615
+ const filePath = `${outputDir}/${moduleId}.js`;
616
+ fs.writeFileSync(filePath, formatted);
617
+ writtenFiles.push(filePath);
189
618
  console.log(chalk.green(`[✓] Module ${moduleId} written to ${outputDir}/${moduleId}.js`));
190
619
  }
191
620
  }
621
+ // Build check — scaffold a minimal webpack project and verify the refactored
622
+ // code compiles.
623
+ runBuildCheck(outputDir, writtenFiles);
624
+ }
625
+ else if (tech === "react-vite") {
626
+ const viteFiles = yield refactorVite(chunks, libSigs);
627
+ const writtenFiles = [];
628
+ for (const [chunkKey, rawCode] of Object.entries(viteFiles)) {
629
+ let formatted;
630
+ try {
631
+ formatted = yield prettier.format(rawCode, {
632
+ parser: "babel",
633
+ singleQuote: true,
634
+ trailingComma: "none",
635
+ });
636
+ }
637
+ catch (_e) {
638
+ formatted = rawCode;
639
+ }
640
+ if (formatted.trim().length === 0) {
641
+ console.log(chalk.gray(`[~] Chunk ${chunkKey} is empty after refactoring — skipping`));
642
+ continue;
643
+ }
644
+ // Use the original chunk basename so dynamic imports (which reference
645
+ // the original Vite filenames) resolve correctly in the build check.
646
+ const chunkInfo = chunks[chunkKey];
647
+ const originalFile = chunkInfo ? ((_d = chunkInfo.file) !== null && _d !== void 0 ? _d : chunkInfo.id) : null;
648
+ const outputBasename = originalFile
649
+ ? path.basename(originalFile)
650
+ : chunkKey.replace(/[/\\]/g, "_").replace(/\.js$/, "") + ".js";
651
+ const filePath = `${outputDir}/${outputBasename}`;
652
+ fs.writeFileSync(filePath, formatted);
653
+ writtenFiles.push(filePath);
654
+ console.log(chalk.green(`[✓] Chunk ${chunkKey} written to ${filePath}`));
655
+ }
656
+ // Build check with Vite scaffold
657
+ runViteBuildCheck(outputDir, writtenFiles);
192
658
  }
193
659
  console.log(chalk.green("[✓] Refactoring complete."));
194
660
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/refactor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/refactor/index.ts"],"names":[],"mappings":"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"}