@js-recon/js-recon 1.3.2 → 1.4.1-alpha.9
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/.claude/settings.local.json +10 -0
- package/.github/workflows/build-and-prettify.yaml +205 -14
- package/.github/workflows/pr_checker.yml +2 -2
- package/.github/workflows/promote-js-recon.yml +104 -0
- package/.github/workflows/publish-js-recon.yml +22 -80
- package/.github/workflows/rules-smoke-test.yaml +79 -0
- package/CHANGELOG.md +171 -4
- package/CLAUDE.md +350 -16
- package/Dockerfile.release +29 -0
- package/README.md +48 -19
- package/build/analyze/engine/csMastSEngine.js +129 -0
- package/build/analyze/engine/csMastSEngine.js.map +1 -0
- package/build/analyze/engine/index.js +15 -0
- package/build/analyze/engine/index.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/findDirectAssignment.js +2 -1
- package/build/analyze/helpers/engineHelpers/findDirectAssignment.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js +2 -1
- package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js +2 -1
- package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/taintFlow.js +11 -2
- package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -1
- package/build/analyze/helpers/initRules.js +1 -1
- package/build/analyze/helpers/initRules.js.map +1 -1
- package/build/analyze/helpers/schemas.js +6 -2
- package/build/analyze/helpers/schemas.js.map +1 -1
- package/build/analyze/helpers/validate.js +3 -3
- package/build/analyze/helpers/validate.js.map +1 -1
- package/build/analyze/index.js +1 -0
- package/build/analyze/index.js.map +1 -1
- package/build/completion/index.js +432 -0
- package/build/completion/index.js.map +1 -0
- package/build/cs_mast/index.js +213 -0
- package/build/cs_mast/index.js.map +1 -0
- package/build/endpoints/next_js/client_jsFilesHref.js +2 -1
- package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
- package/build/endpoints/next_js/client_jsonParse.js +2 -1
- package/build/endpoints/next_js/client_jsonParse.js.map +1 -1
- package/build/endpoints/next_js/client_mappedJsonFile.js +2 -1
- package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
- package/build/endpoints/next_js/client_subsequentRequests.js +2 -1
- package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
- package/build/fingerprint/index.js +56 -33
- package/build/fingerprint/index.js.map +1 -1
- package/build/globalConfig.js +3 -3
- package/build/globalConfig.js.map +1 -1
- package/build/index.js +210 -10
- package/build/index.js.map +1 -1
- package/build/lazyLoad/angular/angular_getFromMainJs.js +2 -1
- package/build/lazyLoad/angular/angular_getFromMainJs.js.map +1 -1
- package/build/lazyLoad/downloadFilesUtil.js +6 -5
- package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
- package/build/lazyLoad/downloadLoadedJsUtil.js +59 -5
- package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -1
- package/build/lazyLoad/downloadQueue.js +10 -9
- package/build/lazyLoad/downloadQueue.js.map +1 -1
- package/build/lazyLoad/index.js +127 -85
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/methodFilter.js +50 -0
- package/build/lazyLoad/methodFilter.js.map +1 -0
- package/build/lazyLoad/next_js/NextJsCrawler.js +69 -48
- package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js +36 -34
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +66 -13
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_parseLayoutJs.js +80 -68
- package/build/lazyLoad/next_js/next_parseLayoutJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_promiseResolve.js +22 -16
- package/build/lazyLoad/next_js/next_promiseResolve.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_astParse.js +49 -47
- package/build/lazyLoad/nuxt_js/nuxt_astParse.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/nuxt_js/nuxt_getFromPageSource.js +3 -1
- package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +3 -2
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/react/react_followImports.js +16 -7
- package/build/lazyLoad/react/react_followImports.js.map +1 -1
- package/build/lazyLoad/react/react_webpackChunkPaths.js +175 -123
- package/build/lazyLoad/react/react_webpackChunkPaths.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/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +3 -2
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/techDetect/checkAngularJS.js +27 -6
- package/build/lazyLoad/techDetect/checkAngularJS.js.map +1 -1
- package/build/lazyLoad/techDetect/checkNextJS.js +24 -15
- package/build/lazyLoad/techDetect/checkNextJS.js.map +1 -1
- package/build/lazyLoad/techDetect/checkReact.js +8 -0
- package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
- package/build/lazyLoad/techDetect/checkSvelte.js +17 -0
- package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
- package/build/lazyLoad/techDetect/index.js +33 -5
- package/build/lazyLoad/techDetect/index.js.map +1 -1
- package/build/lazyLoad/vue/vue_RuntimeJs.js +2 -1
- package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -1
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +2 -1
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
- package/build/lazyLoad/vue/vue_discoverJsFiles.js +59 -25
- package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js +2 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
- package/build/lazyLoad/vue/vue_jsImports.js +2 -1
- package/build/lazyLoad/vue/vue_jsImports.js.map +1 -1
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +2 -2
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
- package/build/lazyLoad/vue/vue_viteMapDeps.js +62 -54
- package/build/lazyLoad/vue/vue_viteMapDeps.js.map +1 -1
- 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/graphql/resolveGraphql.js +2 -1
- package/build/map/graphql/resolveGraphql.js.map +1 -1
- package/build/map/index.js +38 -0
- package/build/map/index.js.map +1 -1
- package/build/map/next_js/getExports.js +2 -1
- package/build/map/next_js/getExports.js.map +1 -1
- package/build/map/next_js/getFetchInstances.js +2 -1
- package/build/map/next_js/getFetchInstances.js.map +1 -1
- package/build/map/next_js/getTurbopackConnections.js +2 -1
- package/build/map/next_js/getTurbopackConnections.js.map +1 -1
- package/build/map/next_js/getWebpackConnections.js +2 -1
- package/build/map/next_js/getWebpackConnections.js.map +1 -1
- package/build/map/next_js/resolveAxios.js +2 -1
- package/build/map/next_js/resolveAxios.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/traceBody.js +2 -1
- package/build/map/next_js/resolveAxiosHelpers/traceBody.js.map +1 -1
- package/build/map/next_js/resolveFetch.js +2 -1
- package/build/map/next_js/resolveFetch.js.map +1 -1
- package/build/map/next_js/resolveNewRequest.js +2 -1
- package/build/map/next_js/resolveNewRequest.js.map +1 -1
- package/build/map/next_js/resolveServerActions.js +2 -1
- package/build/map/next_js/resolveServerActions.js.map +1 -1
- package/build/map/next_js/utils.js +2 -1
- package/build/map/next_js/utils.js.map +1 -1
- package/build/map/react_js/getReactConnections.js +5 -4
- package/build/map/react_js/getReactConnections.js.map +1 -1
- package/build/map/vue_js/crossFileResolver.js +3 -2
- package/build/map/vue_js/crossFileResolver.js.map +1 -1
- package/build/map/vue_js/getViteConnections.js +5 -4
- package/build/map/vue_js/getViteConnections.js.map +1 -1
- package/build/map/vue_js/taint_utils.js +2 -1
- package/build/map/vue_js/taint_utils.js.map +1 -1
- package/build/map/vue_js/vue_resolveFetch.js +3 -2
- package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
- package/build/map/vue_js/vue_resolveHttpClient.js +5 -3
- package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -1
- package/build/map/vue_js/vue_resolveXhr.js +5 -3
- package/build/map/vue_js/vue_resolveXhr.js.map +1 -1
- package/build/mcp/cli.js.map +1 -1
- package/build/refactor/index.js +973 -27
- package/build/refactor/index.js.map +1 -1
- package/build/refactor/next/helpers.js +395 -0
- package/build/refactor/next/helpers.js.map +1 -0
- package/build/refactor/next/index.js +261 -71
- package/build/refactor/next/index.js.map +1 -1
- package/build/refactor/next/transform.js +1027 -0
- package/build/refactor/next/transform.js.map +1 -0
- package/build/refactor/next/validator.js +119 -0
- package/build/refactor/next/validator.js.map +1 -0
- package/build/refactor/react/helpers.js +106 -0
- package/build/refactor/react/helpers.js.map +1 -0
- package/build/refactor/react/index.js +290 -585
- package/build/refactor/react/index.js.map +1 -1
- package/build/refactor/react/library-classify.js +397 -0
- package/build/refactor/react/library-classify.js.map +1 -0
- package/build/refactor/react/transform.js +1852 -0
- package/build/refactor/react/transform.js.map +1 -0
- package/build/refactor/react/validator.js +123 -0
- package/build/refactor/react/validator.js.map +1 -0
- package/build/refactor/react-vite/index.js +652 -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 +250 -0
- package/build/refactor/remote/cache.js.map +1 -0
- package/build/refactor/remote/config.js +63 -0
- package/build/refactor/remote/config.js.map +1 -0
- package/build/refactor/remote/hf-client.js +202 -0
- package/build/refactor/remote/hf-client.js.map +1 -0
- package/build/refactor/remote/version-detect.js +355 -0
- package/build/refactor/remote/version-detect.js.map +1 -0
- package/build/refactor/vue/index.js +176 -0
- package/build/refactor/vue/index.js.map +1 -0
- package/build/refactor/vue/vendor-analyze-vue.js +271 -0
- package/build/refactor/vue/vendor-analyze-vue.js.map +1 -0
- package/build/refactor/vue/vite.js +216 -0
- package/build/refactor/vue/vite.js.map +1 -0
- package/build/report/utility/genHtml.js +15 -4
- package/build/report/utility/genHtml.js.map +1 -1
- package/build/run/bundler-detect.js +154 -0
- package/build/run/bundler-detect.js.map +1 -0
- package/build/run/index.js +208 -16
- package/build/run/index.js.map +1 -1
- package/build/sourcemaps/index.js +89 -0
- package/build/sourcemaps/index.js.map +1 -0
- package/build/strings/index.js +6 -2
- package/build/strings/index.js.map +1 -1
- package/build/strings/trufflehog.js +71 -0
- package/build/strings/trufflehog.js.map +1 -0
- package/build/utility/banner.js +68 -0
- package/build/utility/banner.js.map +1 -0
- package/build/utility/getChromiumPath.js +40 -0
- package/build/utility/getChromiumPath.js.map +1 -0
- package/build/utility/globals.js +7 -0
- package/build/utility/globals.js.map +1 -1
- package/build/utility/makeReq.js +21 -11
- package/build/utility/makeReq.js.map +1 -1
- package/build/utility/postmanGenerator.js +2 -2
- package/build/utility/postmanGenerator.js.map +1 -1
- package/build/utility/puppeteerInstance.js +7 -1
- package/build/utility/puppeteerInstance.js.map +1 -1
- package/package.json +14 -8
- package/scripts/smoke-test.js +74 -0
- package/urls.txt +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/refactor/next/transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import parser from "@babel/parser";
|
|
4
|
+
import _generator from "@babel/generator";
|
|
5
|
+
import * as t from "@babel/types";
|
|
6
|
+
const generate = ((_a = _generator.default) !== null && _a !== void 0 ? _a : _generator);
|
|
7
|
+
export const MAX_FIX_ITERATIONS = 10;
|
|
8
|
+
export const tryStrictParse = (code) => {
|
|
9
|
+
try {
|
|
10
|
+
parser.parse(code, {
|
|
11
|
+
sourceType: "module",
|
|
12
|
+
plugins: ["jsx"],
|
|
13
|
+
errorRecovery: false,
|
|
14
|
+
});
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
return [err];
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export const applyFixes = (code, statements) => {
|
|
22
|
+
var _a;
|
|
23
|
+
let recoveredAst;
|
|
24
|
+
try {
|
|
25
|
+
recoveredAst = parser.parse(code, {
|
|
26
|
+
sourceType: "module",
|
|
27
|
+
plugins: ["jsx"],
|
|
28
|
+
errorRecovery: true,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
catch (_b) {
|
|
32
|
+
return statements.slice(0, -1);
|
|
33
|
+
}
|
|
34
|
+
const parseErrors = ((_a = recoveredAst.errors) !== null && _a !== void 0 ? _a : []).map((e) => {
|
|
35
|
+
var _a, _b, _c, _d;
|
|
36
|
+
return ({
|
|
37
|
+
line: (_b = (_a = e.loc) === null || _a === void 0 ? void 0 : _a.line) !== null && _b !== void 0 ? _b : 0,
|
|
38
|
+
col: (_d = (_c = e.loc) === null || _c === void 0 ? void 0 : _c.column) !== null && _d !== void 0 ? _d : 0,
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
if (parseErrors.length === 0)
|
|
42
|
+
return statements;
|
|
43
|
+
let lineOffset = 0;
|
|
44
|
+
const stmtLineRanges = [];
|
|
45
|
+
for (const stmt of statements) {
|
|
46
|
+
const stmtCode = generate(stmt).code;
|
|
47
|
+
const lineCount = stmtCode.split("\n").length;
|
|
48
|
+
stmtLineRanges.push({ start: lineOffset + 1, end: lineOffset + lineCount });
|
|
49
|
+
lineOffset += lineCount;
|
|
50
|
+
}
|
|
51
|
+
const errorStmtIndices = new Set();
|
|
52
|
+
for (const err of parseErrors) {
|
|
53
|
+
for (let i = 0; i < stmtLineRanges.length; i++) {
|
|
54
|
+
if (err.line >= stmtLineRanges[i].start && err.line <= stmtLineRanges[i].end) {
|
|
55
|
+
errorStmtIndices.add(i);
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const out = [];
|
|
61
|
+
for (let i = 0; i < statements.length; i++) {
|
|
62
|
+
const stmt = statements[i];
|
|
63
|
+
if (!errorStmtIndices.has(i)) {
|
|
64
|
+
out.push(stmt);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
// Downgrade `export { ident as "StringKey" }` to `export const StringKey = ident`.
|
|
68
|
+
if (t.isExportNamedDeclaration(stmt) &&
|
|
69
|
+
!stmt.declaration &&
|
|
70
|
+
stmt.specifiers.length === 1 &&
|
|
71
|
+
t.isExportSpecifier(stmt.specifiers[0]) &&
|
|
72
|
+
t.isStringLiteral(stmt.specifiers[0].exported)) {
|
|
73
|
+
const spec = stmt.specifiers[0];
|
|
74
|
+
const propName = spec.exported.value;
|
|
75
|
+
const local = spec.local;
|
|
76
|
+
out.push(t.exportNamedDeclaration(t.variableDeclaration("const", [t.variableDeclarator(t.identifier(propName), local)])));
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
// Downgrade `export function name() { ... }` to `export const name = function() { ... }`.
|
|
80
|
+
if (t.isExportNamedDeclaration(stmt) &&
|
|
81
|
+
stmt.declaration &&
|
|
82
|
+
t.isFunctionDeclaration(stmt.declaration) &&
|
|
83
|
+
stmt.declaration.id) {
|
|
84
|
+
const fn = stmt.declaration;
|
|
85
|
+
out.push(t.exportNamedDeclaration(t.variableDeclaration("const", [
|
|
86
|
+
t.variableDeclarator(fn.id, t.functionExpression(null, fn.params, fn.body, fn.generator, fn.async)),
|
|
87
|
+
])));
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
console.log(chalk.yellow(` [~] Dropping unresolvable statement at index ${i}: ${generate(stmt)
|
|
91
|
+
.code.slice(0, 80)
|
|
92
|
+
.replace(/\s+/g, " ")}`));
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
};
|
|
96
|
+
export const validateAndFix = (statements, moduleId) => {
|
|
97
|
+
let current = [...statements];
|
|
98
|
+
for (let attempt = 0; attempt <= MAX_FIX_ITERATIONS; attempt++) {
|
|
99
|
+
const programNode = t.program(current, [], "module");
|
|
100
|
+
const code = generate(programNode).code;
|
|
101
|
+
const errors = tryStrictParse(code);
|
|
102
|
+
if (errors.length === 0)
|
|
103
|
+
return code;
|
|
104
|
+
if (attempt === MAX_FIX_ITERATIONS) {
|
|
105
|
+
console.log(chalk.red(`[!] Module ${moduleId} could not be fixed after ${MAX_FIX_ITERATIONS} attempts — skipping`));
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
for (const err of errors) {
|
|
109
|
+
const loc = err.loc ? ` at line ${err.loc.line}, col ${err.loc.column}` : "";
|
|
110
|
+
console.log(chalk.red(`[!] Syntax error in module ${moduleId} (attempt ${attempt + 1}/${MAX_FIX_ITERATIONS}):`));
|
|
111
|
+
console.log(chalk.red(` ${err.message}${loc}`));
|
|
112
|
+
if (err.codeFrame)
|
|
113
|
+
console.log(err.codeFrame);
|
|
114
|
+
}
|
|
115
|
+
current = applyFixes(code, current);
|
|
116
|
+
}
|
|
117
|
+
return null;
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/refactor/next/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as t from "@babel/types";
|
|
2
|
+
export const VALID_IDENT_RE = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;
|
|
3
|
+
// Returns true if the given ObjectProperty/ObjectMethod sits directly inside
|
|
4
|
+
// the webpack module-map object (var X = { <numId>: fn, … }) and not inside
|
|
5
|
+
// a nested object within a module body.
|
|
6
|
+
export const isInModuleMap = (path) => {
|
|
7
|
+
const objectParent = path.parentPath;
|
|
8
|
+
if (!objectParent || !objectParent.isObjectExpression())
|
|
9
|
+
return false;
|
|
10
|
+
const objHolder = objectParent.parentPath;
|
|
11
|
+
if (!objHolder)
|
|
12
|
+
return false;
|
|
13
|
+
// Standard IIFE format: var X = { numId: fn }
|
|
14
|
+
if (objHolder.isVariableDeclarator())
|
|
15
|
+
return true;
|
|
16
|
+
if (objHolder.isAssignmentExpression())
|
|
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
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
};
|
|
32
|
+
// Returns { propName, rhs } if expr matches `<exportsParam>.<propName> = <rhs>`.
|
|
33
|
+
export const tryExtractExportsAssignment = (expr, exportsParam) => {
|
|
34
|
+
if (!t.isAssignmentExpression(expr) || expr.operator !== "=")
|
|
35
|
+
return null;
|
|
36
|
+
const left = expr.left;
|
|
37
|
+
if (!t.isMemberExpression(left) || left.computed)
|
|
38
|
+
return null;
|
|
39
|
+
if (!t.isIdentifier(left.object, { name: exportsParam }))
|
|
40
|
+
return null;
|
|
41
|
+
let propName = null;
|
|
42
|
+
if (t.isIdentifier(left.property))
|
|
43
|
+
propName = left.property.name;
|
|
44
|
+
else if (t.isStringLiteral(left.property))
|
|
45
|
+
propName = left.property.value;
|
|
46
|
+
if (!propName)
|
|
47
|
+
return null;
|
|
48
|
+
return { propName, rhs: expr.right };
|
|
49
|
+
};
|
|
50
|
+
// Returns the rhs if expr matches `<moduleParam>.exports = <rhs>`, else null.
|
|
51
|
+
export const tryExtractModuleExportsAssignment = (expr, moduleParam) => {
|
|
52
|
+
if (!t.isAssignmentExpression(expr) || expr.operator !== "=")
|
|
53
|
+
return null;
|
|
54
|
+
const left = expr.left;
|
|
55
|
+
if (!t.isMemberExpression(left) || left.computed)
|
|
56
|
+
return null;
|
|
57
|
+
if (!t.isIdentifier(left.object, { name: moduleParam }))
|
|
58
|
+
return null;
|
|
59
|
+
if (!t.isIdentifier(left.property, { name: "exports" }))
|
|
60
|
+
return null;
|
|
61
|
+
return expr.right;
|
|
62
|
+
};
|
|
63
|
+
// Returns the numeric module ID if expr is `<requireParam>(<NumericLiteral>)`.
|
|
64
|
+
export const tryExtractRequireCall = (expr, requireParam) => {
|
|
65
|
+
if (!t.isCallExpression(expr))
|
|
66
|
+
return null;
|
|
67
|
+
if (!t.isIdentifier(expr.callee, { name: requireParam }))
|
|
68
|
+
return null;
|
|
69
|
+
if (expr.arguments.length !== 1)
|
|
70
|
+
return null;
|
|
71
|
+
if (!t.isNumericLiteral(expr.arguments[0]))
|
|
72
|
+
return null;
|
|
73
|
+
return expr.arguments[0].value;
|
|
74
|
+
};
|
|
75
|
+
// Builds an export statement for `<moduleParam>.exports = <rhs>`.
|
|
76
|
+
// - `<requireParam>(N)` RHS → `export * from "./N.js"` (transparent re-export).
|
|
77
|
+
// - anything else → `export default <rhs>`.
|
|
78
|
+
export const buildModuleExportStatement = (rhs, requireParam) => {
|
|
79
|
+
if (requireParam) {
|
|
80
|
+
const numId = tryExtractRequireCall(rhs, requireParam);
|
|
81
|
+
if (numId !== null) {
|
|
82
|
+
return t.exportAllDeclaration(t.stringLiteral(`./${numId}.js`));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return t.exportDefaultDeclaration(rhs);
|
|
86
|
+
};
|
|
87
|
+
// Builds an ECMAScript-compliant export statement for `<exportsParam>.<propName> = <rhs>`.
|
|
88
|
+
// Forms per MDN export reference:
|
|
89
|
+
// FunctionExpression → export function propName(params) { body }
|
|
90
|
+
// Identifier → export { ident as propName } (string key when needed)
|
|
91
|
+
// Literals / Arrow / everything else → export const propName = <rhs>
|
|
92
|
+
export const makeNamedExportStatement = (propName, rhs) => {
|
|
93
|
+
if (t.isFunctionExpression(rhs)) {
|
|
94
|
+
const fn = rhs;
|
|
95
|
+
return t.exportNamedDeclaration(t.functionDeclaration(t.identifier(propName), fn.params, fn.body, fn.generator, fn.async));
|
|
96
|
+
}
|
|
97
|
+
if (t.isIdentifier(rhs)) {
|
|
98
|
+
const local = rhs;
|
|
99
|
+
const exported = VALID_IDENT_RE.test(propName)
|
|
100
|
+
? t.identifier(propName)
|
|
101
|
+
: t.stringLiteral(propName);
|
|
102
|
+
return t.exportNamedDeclaration(null, [t.exportSpecifier(local, exported)]);
|
|
103
|
+
}
|
|
104
|
+
return t.exportNamedDeclaration(t.variableDeclaration("const", [t.variableDeclarator(t.identifier(propName), rhs)]));
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/refactor/react/helpers.ts"],"names":[],"mappings":"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"}
|