@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.
- package/CHANGELOG.md +41 -0
- package/CLAUDE.md +39 -2
- package/README.md +2 -0
- package/build/analyze/engine/index.js.map +1 -1
- package/build/analyze/helpers/schemas.js +1 -1
- package/build/analyze/helpers/schemas.js.map +1 -1
- package/build/analyze/index.js +1 -0
- package/build/analyze/index.js.map +1 -1
- package/build/globalConfig.js +2 -2
- package/build/globalConfig.js.map +1 -1
- package/build/index.js +73 -3
- package/build/index.js.map +1 -1
- package/build/lazyLoad/downloadQueue.js +1 -1
- package/build/lazyLoad/downloadQueue.js.map +1 -1
- package/build/lazyLoad/index.js +25 -0
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/methodFilter.js +1 -0
- package/build/lazyLoad/methodFilter.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js +64 -0
- package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js.map +1 -0
- package/build/lazyLoad/react/react_followImports.js +8 -2
- package/build/lazyLoad/react/react_followImports.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js +16 -0
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_getVersionJson.js +40 -0
- package/build/lazyLoad/svelte/svelte_getVersionJson.js.map +1 -0
- package/build/map/angular_js/getAngularConnections.js +88 -0
- package/build/map/angular_js/getAngularConnections.js.map +1 -0
- package/build/map/angular_js/interactive.js +4 -0
- package/build/map/angular_js/interactive.js.map +1 -0
- package/build/map/index.js +38 -0
- package/build/map/index.js.map +1 -1
- package/build/refactor/index.js +478 -12
- package/build/refactor/index.js.map +1 -1
- package/build/refactor/react/helpers.js +13 -0
- package/build/refactor/react/helpers.js.map +1 -1
- package/build/refactor/react/index.js +149 -41
- package/build/refactor/react/index.js.map +1 -1
- package/build/refactor/react/library-classify.js +232 -1
- package/build/refactor/react/library-classify.js.map +1 -1
- package/build/refactor/react/transform.js +1046 -34
- package/build/refactor/react/transform.js.map +1 -1
- package/build/refactor/react-vite/index.js +618 -0
- package/build/refactor/react-vite/index.js.map +1 -0
- package/build/refactor/react-vite/vendor-analyze.js +336 -0
- package/build/refactor/react-vite/vendor-analyze.js.map +1 -0
- package/build/refactor/remote/cache.js +211 -0
- package/build/refactor/remote/cache.js.map +1 -0
- package/build/refactor/remote/config.js +47 -0
- package/build/refactor/remote/config.js.map +1 -0
- package/build/refactor/remote/hf-client.js +137 -0
- package/build/refactor/remote/hf-client.js.map +1 -0
- package/build/run/index.js +116 -11
- package/build/run/index.js.map +1 -1
- package/build/utility/banner.js +68 -0
- package/build/utility/banner.js.map +1 -0
- package/package.json +2 -1
package/build/refactor/index.js
CHANGED
|
@@ -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
|
-
//
|
|
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)",
|
|
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' })],
|
|
102
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,7 +464,8 @@ 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
470
|
if (list) {
|
|
119
471
|
console.log(chalk.cyan("[i] Listing available technologies"));
|
|
@@ -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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
168
|
-
|
|
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
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
|
-
|
|
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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"}
|
|
@@ -10,10 +10,23 @@ export const isInModuleMap = (path) => {
|
|
|
10
10
|
const objHolder = objectParent.parentPath;
|
|
11
11
|
if (!objHolder)
|
|
12
12
|
return false;
|
|
13
|
+
// Standard IIFE format: var X = { numId: fn }
|
|
13
14
|
if (objHolder.isVariableDeclarator())
|
|
14
15
|
return true;
|
|
15
16
|
if (objHolder.isAssignmentExpression())
|
|
16
17
|
return true;
|
|
18
|
+
// Lazy chunk format: (self.webpackChunk...).push([[chunkIds], {numId: fn}])
|
|
19
|
+
// The module-map ObjectExpression is an element of the ArrayExpression argument to .push()
|
|
20
|
+
if (objHolder.isArrayExpression()) {
|
|
21
|
+
const arrayHolder = objHolder.parentPath;
|
|
22
|
+
if (arrayHolder === null || arrayHolder === void 0 ? void 0 : arrayHolder.isCallExpression()) {
|
|
23
|
+
const callee = arrayHolder.node.callee;
|
|
24
|
+
if (t.isMemberExpression(callee) &&
|
|
25
|
+
t.isIdentifier(callee.property, { name: "push" })) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
17
30
|
return false;
|
|
18
31
|
};
|
|
19
32
|
// Returns { propName, rhs } if expr matches `<exportsParam>.<propName> = <rhs>`.
|