@js-recon/js-recon 1.3.2 → 1.4.1-alpha.10
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/.github/workflows/build-and-prettify.yaml +207 -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 +177 -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.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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-detect.js","sourceRoot":"","sources":["../../../src/refactor/remote/version-detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var _a;
|
|
11
|
+
import chalk from "chalk";
|
|
12
|
+
import parser from "@babel/parser";
|
|
13
|
+
import _traverse from "@babel/traverse";
|
|
14
|
+
import * as t from "@babel/types";
|
|
15
|
+
import { transformWebpackModule } from "../next/transform.js";
|
|
16
|
+
import { validateAndFix } from "../next/validator.js";
|
|
17
|
+
const traverse = ((_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse);
|
|
18
|
+
/**
|
|
19
|
+
* Extracts the numeric module map from a webpack chunk container.
|
|
20
|
+
*
|
|
21
|
+
* Handles both webpack 4 (webpackJsonp) and webpack 5 (webpackChunk) formats:
|
|
22
|
+
*
|
|
23
|
+
* webpack 4: (window.webpackJsonp = window.webpackJsonp || []).push([[chunkIds], {moduleId: fn, ...}])
|
|
24
|
+
* webpack 5: (self.webpackChunk_APP = self.webpackChunk_APP || []).push([[chunkIds], {moduleId: fn, ...}, runtimeFn])
|
|
25
|
+
*
|
|
26
|
+
* Returns an array of { id, fnNode } pairs for all module functions in the chunk,
|
|
27
|
+
* or an empty array if the container format is not recognised.
|
|
28
|
+
*/
|
|
29
|
+
function extractModulesFromWebpackChunk(ast) {
|
|
30
|
+
const results = [];
|
|
31
|
+
traverse(ast, {
|
|
32
|
+
CallExpression(callPath) {
|
|
33
|
+
const node = callPath.node;
|
|
34
|
+
const callee = node.callee;
|
|
35
|
+
// Must be a member expression ending in `.push`
|
|
36
|
+
if (!t.isMemberExpression(callee) || callee.computed)
|
|
37
|
+
return;
|
|
38
|
+
if (!t.isIdentifier(callee.property, { name: "push" }))
|
|
39
|
+
return;
|
|
40
|
+
if (node.arguments.length < 1)
|
|
41
|
+
return;
|
|
42
|
+
// The single argument is an array: [[chunkIds], {moduleMap}, ?runtimeFn]
|
|
43
|
+
const arg = node.arguments[0];
|
|
44
|
+
if (!t.isArrayExpression(arg))
|
|
45
|
+
return;
|
|
46
|
+
if (arg.elements.length < 2)
|
|
47
|
+
return;
|
|
48
|
+
const moduleMapNode = arg.elements[1];
|
|
49
|
+
if (!moduleMapNode || !t.isObjectExpression(moduleMapNode))
|
|
50
|
+
return;
|
|
51
|
+
// Confirm the object contains at least one numeric or string key
|
|
52
|
+
const props = moduleMapNode.properties;
|
|
53
|
+
const hasModuleProps = props.some((p) => t.isObjectProperty(p) &&
|
|
54
|
+
(t.isNumericLiteral(p.key) || t.isStringLiteral(p.key)));
|
|
55
|
+
if (!hasModuleProps)
|
|
56
|
+
return;
|
|
57
|
+
// Extract all module functions
|
|
58
|
+
for (const prop of props) {
|
|
59
|
+
if (!t.isObjectProperty(prop))
|
|
60
|
+
continue;
|
|
61
|
+
const key = prop.key;
|
|
62
|
+
const val = prop.value;
|
|
63
|
+
const moduleId = t.isNumericLiteral(key)
|
|
64
|
+
? String(key.value)
|
|
65
|
+
: t.isStringLiteral(key)
|
|
66
|
+
? key.value
|
|
67
|
+
: null;
|
|
68
|
+
if (!moduleId)
|
|
69
|
+
continue;
|
|
70
|
+
if (!t.isFunctionExpression(val) && !t.isArrowFunctionExpression(val))
|
|
71
|
+
continue;
|
|
72
|
+
results.push({
|
|
73
|
+
id: moduleId,
|
|
74
|
+
fnNode: val,
|
|
75
|
+
path: callPath,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
callPath.stop();
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
return results;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Refactors a Vue webpack chunk into per-module ES module files.
|
|
85
|
+
*
|
|
86
|
+
* Input: a Chunk whose `code` field is a full webpack chunk file:
|
|
87
|
+
* - Possibly starts with `// File Source: <url>\n` (js-recon annotation)
|
|
88
|
+
* - Then the webpackJsonp / webpackChunk push expression
|
|
89
|
+
*
|
|
90
|
+
* Each module in the chunk's module map becomes a separate output file `<id>.js`.
|
|
91
|
+
*
|
|
92
|
+
* Module function format (webpack 4, FunctionExpression):
|
|
93
|
+
* { 429: function(module, exports, require) { ... } }
|
|
94
|
+
* Module function format (webpack 5, ArrowFunctionExpression):
|
|
95
|
+
* { 429: (module, exports, require) => { ... } }
|
|
96
|
+
*
|
|
97
|
+
* Both formats use identical param semantics:
|
|
98
|
+
* params[0] = module — module object (e.exports = X for CJS exports)
|
|
99
|
+
* params[1] = exports — exports target (ODP, require.d for named exports)
|
|
100
|
+
* params[2] = require — require function (r(N) for cross-module imports)
|
|
101
|
+
*/
|
|
102
|
+
export const refactorVueWebpack = (chunk) => __awaiter(void 0, void 0, void 0, function* () {
|
|
103
|
+
// Strip the js-recon file-source annotation if present
|
|
104
|
+
const code = chunk.code.replace(/^\/\/ File Source:[^\n]*\n/, "");
|
|
105
|
+
if (!code.trim())
|
|
106
|
+
return {};
|
|
107
|
+
let ast;
|
|
108
|
+
try {
|
|
109
|
+
ast = parser.parse(code, {
|
|
110
|
+
sourceType: "unambiguous",
|
|
111
|
+
plugins: ["jsx", "typescript"],
|
|
112
|
+
errorRecovery: true,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
catch (_a) {
|
|
116
|
+
console.log(chalk.yellow(`[!] Failed to parse Vue webpack chunk ${chunk.id} — skipping`));
|
|
117
|
+
return {};
|
|
118
|
+
}
|
|
119
|
+
const modules = extractModulesFromWebpackChunk(ast);
|
|
120
|
+
if (modules.length === 0) {
|
|
121
|
+
console.log(chalk.yellow(`[~] No webpack module map found in chunk ${chunk.id} — skipping`));
|
|
122
|
+
return {};
|
|
123
|
+
}
|
|
124
|
+
// Re-parse each module function in its own traversal so fnPath has correct scope.
|
|
125
|
+
// We need NodePath objects, which requires re-traversing with a visitor.
|
|
126
|
+
const results = {};
|
|
127
|
+
// Build a per-module-id lookup from the extracted fnNodes (by reference)
|
|
128
|
+
const fnNodeToId = new Map();
|
|
129
|
+
for (const { id, fnNode } of modules) {
|
|
130
|
+
fnNodeToId.set(fnNode, id);
|
|
131
|
+
}
|
|
132
|
+
// Collect NodePaths by traversing the AST
|
|
133
|
+
const capturedPaths = new Map();
|
|
134
|
+
traverse(ast, {
|
|
135
|
+
FunctionExpression(path) {
|
|
136
|
+
const id = fnNodeToId.get(path.node);
|
|
137
|
+
if (id)
|
|
138
|
+
capturedPaths.set(id, path);
|
|
139
|
+
},
|
|
140
|
+
ArrowFunctionExpression(path) {
|
|
141
|
+
const id = fnNodeToId.get(path.node);
|
|
142
|
+
if (id)
|
|
143
|
+
capturedPaths.set(id, path);
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
for (const { id, fnNode } of modules) {
|
|
147
|
+
console.log(chalk.cyan(`[i] Processing Vue (webpack) module: ${id}`));
|
|
148
|
+
const fnPath = capturedPaths.get(id);
|
|
149
|
+
if (!fnPath) {
|
|
150
|
+
console.log(chalk.yellow(`[!] Could not get NodePath for module ${id} — skipping`));
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
const params = fnNode.params;
|
|
154
|
+
const moduleParam = params[0] && t.isIdentifier(params[0]) ? params[0].name : "";
|
|
155
|
+
const exportsParam = params[1] && t.isIdentifier(params[1]) ? params[1].name : "";
|
|
156
|
+
const requireParam = params[2] && t.isIdentifier(params[2]) ? params[2].name : "";
|
|
157
|
+
const entry = {
|
|
158
|
+
id,
|
|
159
|
+
fnPath: fnPath,
|
|
160
|
+
runtimeParam: "",
|
|
161
|
+
moduleParam,
|
|
162
|
+
exportsParam,
|
|
163
|
+
requireParam,
|
|
164
|
+
};
|
|
165
|
+
const statements = transformWebpackModule(entry);
|
|
166
|
+
const rawCode = validateAndFix(statements, id);
|
|
167
|
+
if (rawCode === null) {
|
|
168
|
+
console.log(chalk.yellow(`[~] Module ${id} skipped due to unresolvable syntax errors`));
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
results[id] = rawCode;
|
|
172
|
+
}
|
|
173
|
+
return results;
|
|
174
|
+
});
|
|
175
|
+
export default refactorVueWebpack;
|
|
176
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/refactor/vue/index.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAAsB,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,QAAQ,GAAG,CAAC,MAAA,SAAS,CAAC,OAAO,mCAAI,SAAS,CAA6B,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,SAAS,8BAA8B,CACnC,GAAW;IAEX,MAAM,OAAO,GAAoG,EAAE,CAAC;IAEpH,QAAQ,CAAC,GAAG,EAAE;QACV,cAAc,CAAC,QAAQ;YACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,gDAAgD;YAChD,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;gBAAE,OAAO;YAC7D,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAAE,OAAO;YAC/D,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YAEtC,yEAAyE;YACzE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBAAE,OAAO;YACtC,IAAK,GAAyB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YAE3D,MAAM,aAAa,GAAI,GAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC;gBAAE,OAAO;YAEnE,iEAAiE;YACjE,MAAM,KAAK,GAAI,aAAoC,CAAC,UAAU,CAAC;YAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC,gBAAgB,CAAE,CAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,CAAE,CAAsB,CAAC,GAAG,CAAC,CAAC,CAC1G,CAAC;YACF,IAAI,CAAC,cAAc;gBAAE,OAAO;YAE5B,+BAA+B;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACxC,MAAM,GAAG,GAAI,IAAyB,CAAC,GAAG,CAAC;gBAC3C,MAAM,GAAG,GAAI,IAAyB,CAAC,KAAK,CAAC;gBAE7C,MAAM,QAAQ,GAAG,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC;oBACpC,CAAC,CAAC,MAAM,CAAE,GAAwB,CAAC,KAAK,CAAC;oBACzC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;wBACtB,CAAC,CAAE,GAAuB,CAAC,KAAK;wBAChC,CAAC,CAAC,IAAI,CAAC;gBACb,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBAExB,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAChF,OAAO,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,GAAuD;oBAC/D,IAAI,EAAE,QAAQ;iBACjB,CAAC,CAAC;YACP,CAAC;YAED,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;KACJ,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAO,KAAY,EAAmC,EAAE;IACtF,uDAAuD;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAElE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAE5B,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACrB,UAAU,EAAE,aAAa;YACzB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;YAC9B,aAAa,EAAE,IAAI;SACtB,CAAC,CAAC;IACP,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAC1F,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4CAA4C,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAC7F,OAAO,EAAE,CAAC;IACd,CAAC;IAED,kFAAkF;IAClF,yEAAyE;IACzE,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,yEAAyE;IACzE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACnC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,0CAA0C;IAC1C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsE,CAAC;IAEpG,QAAQ,CAAC,GAAG,EAAE;QACV,kBAAkB,CAAC,IAAI;YACnB,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,EAAE;gBAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAAsC,CAAC,CAAC;QAC1E,CAAC;QACD,uBAAuB,CAAC,IAAI;YACxB,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,EAAE;gBAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAA2C,CAAC,CAAC;QAC/E,CAAC;KACJ,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,EAAE,aAAa,CAAC,CAAC,CAAC;YACpF,SAAS;QACb,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,CAAC,CAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,CAAC,CAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,CAAC,CAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpG,MAAM,KAAK,GAAuB;YAC9B,EAAE;YACF,MAAM,EAAE,MAA6C;YACrD,YAAY,EAAE,EAAE;YAChB,WAAW;YACX,YAAY;YACZ,YAAY;SACf,CAAC;QAEF,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,4CAA4C,CAAC,CAAC,CAAC;YACxF,SAAS;QACb,CAAC;QAED,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAA,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analyzes a Vue Vite main index chunk to map its minified export aliases
|
|
3
|
+
* back to canonical Vue 3 runtime API names.
|
|
4
|
+
*
|
|
5
|
+
* Vue 3 + Vite (via @vitejs/plugin-vue) bundles the entire Vue runtime into
|
|
6
|
+
* the main index chunk and re-exports only the functions the app uses, under
|
|
7
|
+
* single-letter aliases:
|
|
8
|
+
*
|
|
9
|
+
* export { Eu as _, qt as a, Nl as c, Pl as o }
|
|
10
|
+
*
|
|
11
|
+
* Each internal symbol (Eu, qt, Nl, Pl, …) is fingerprinted against known
|
|
12
|
+
* Vue runtime patterns so page chunks can rewrite
|
|
13
|
+
*
|
|
14
|
+
* import { _ as t, c as a, o as s } from "./index-*.js"
|
|
15
|
+
*
|
|
16
|
+
* into canonical imports:
|
|
17
|
+
*
|
|
18
|
+
* import { _export_sfc, createElementVNode, openBlock } from "vue"
|
|
19
|
+
*
|
|
20
|
+
* Note: `_export_sfc` is a Vue compiler-internal helper, not part of the
|
|
21
|
+
* public API. It is preserved under its conventional name so the output
|
|
22
|
+
* remains recognisable.
|
|
23
|
+
*/
|
|
24
|
+
var _a, _b;
|
|
25
|
+
import parser from "@babel/parser";
|
|
26
|
+
import _traverse from "@babel/traverse";
|
|
27
|
+
import _generate from "@babel/generator";
|
|
28
|
+
import * as t from "@babel/types";
|
|
29
|
+
const traverse = (_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse;
|
|
30
|
+
const generate = (_b = _generate.default) !== null && _b !== void 0 ? _b : _generate;
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Pattern fingerprints
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
/**
|
|
35
|
+
* Canonical Vue 3 runtime API names paired with a body-pattern that
|
|
36
|
+
* uniquely identifies them after minification.
|
|
37
|
+
*
|
|
38
|
+
* Patterns are matched in order — put more specific patterns first.
|
|
39
|
+
*/
|
|
40
|
+
const VUE_PATTERNS = [
|
|
41
|
+
// _export_sfc: sets __vccOpts on component options (SFC compiler helper)
|
|
42
|
+
{ canonical: "_export_sfc", pattern: (b) => b.includes("__vccOpts") },
|
|
43
|
+
// openBlock: pushes to a shared block-stack variable
|
|
44
|
+
{ canonical: "openBlock", pattern: (b) => b.includes("kt.push") || b.includes(".push(be=") },
|
|
45
|
+
// createElementBlock: delegates to createBaseVNode with block flag
|
|
46
|
+
{
|
|
47
|
+
canonical: "createElementBlock",
|
|
48
|
+
pattern: (b) => b.includes("Il(qt(") || (b.includes("Il(") && b.includes(",!0)")),
|
|
49
|
+
},
|
|
50
|
+
// createElementVNode: similar to createElementBlock but different flag
|
|
51
|
+
{
|
|
52
|
+
canonical: "createElementVNode",
|
|
53
|
+
pattern: (b) => (b.includes("Il(") || b.includes("Kl(")) && !b.includes("__v_isVNode") && !b.includes("__vccOpts"),
|
|
54
|
+
},
|
|
55
|
+
// createBaseVNode / createVNode: core VNode factory — creates the {__v_isVNode: true} object
|
|
56
|
+
{
|
|
57
|
+
canonical: "createBaseVNode",
|
|
58
|
+
pattern: (b) => b.includes("__v_isVNode:!0") || b.includes("__v_isVNode: !0") || b.includes("__v_isVNode:true"),
|
|
59
|
+
},
|
|
60
|
+
// createTextVNode: short function that creates a text vnode
|
|
61
|
+
{ canonical: "createTextVNode", pattern: (b) => b.includes("__v_isVNode") && b.length < 200 },
|
|
62
|
+
// createCommentVNode: creates a comment/placeholder vnode
|
|
63
|
+
{
|
|
64
|
+
canonical: "createCommentVNode",
|
|
65
|
+
pattern: (b) => b.includes("<!--") || b.includes("createCommentVNode") || b.includes("comment"),
|
|
66
|
+
},
|
|
67
|
+
// withCtx: wraps slot render functions in the parent render context
|
|
68
|
+
{
|
|
69
|
+
canonical: "withCtx",
|
|
70
|
+
pattern: (b) => b.includes("renderCache") ||
|
|
71
|
+
b.includes("withCtx") ||
|
|
72
|
+
b.includes("setCurrentRenderingInstance") ||
|
|
73
|
+
b.includes("currentRenderingInstance"),
|
|
74
|
+
},
|
|
75
|
+
// normalizeClass: normalizes a class value to string
|
|
76
|
+
{
|
|
77
|
+
canonical: "normalizeClass",
|
|
78
|
+
pattern: (b) => b.includes("normalizeClass") || (b.includes("Array.isArray") && b.includes("join")),
|
|
79
|
+
},
|
|
80
|
+
// normalizeStyle: normalizes style value
|
|
81
|
+
{ canonical: "normalizeStyle", pattern: (b) => b.includes("normalizeStyle") },
|
|
82
|
+
// toDisplayString: converts a value to its string representation
|
|
83
|
+
{
|
|
84
|
+
canonical: "toDisplayString",
|
|
85
|
+
pattern: (b) => b.includes("toDisplayString") || (b.includes("isString") && b.includes("isArray") && b.length < 300),
|
|
86
|
+
},
|
|
87
|
+
// mergeProps: merges multiple prop objects
|
|
88
|
+
{ canonical: "mergeProps", pattern: (b) => b.includes("mergeProps") || b.includes("onUpdate:") },
|
|
89
|
+
// resolveComponent: resolves component by name at runtime
|
|
90
|
+
{
|
|
91
|
+
canonical: "resolveComponent",
|
|
92
|
+
pattern: (b) => b.includes("resolveComponent") || (b.includes("currentRenderingInstance") && b.includes("appContext")),
|
|
93
|
+
},
|
|
94
|
+
// withDirectives: applies custom directives to a vnode
|
|
95
|
+
{ canonical: "withDirectives", pattern: (b) => b.includes("withDirectives") || b.includes("invokeDirectiveHook") },
|
|
96
|
+
// vModelText / vModelCheckbox / vModelSelect: v-model directives
|
|
97
|
+
{
|
|
98
|
+
canonical: "vModelText",
|
|
99
|
+
pattern: (b) => b.includes("vModelText") || (b.includes("composing") && b.includes("input")),
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
canonical: "vModelCheckbox",
|
|
103
|
+
pattern: (b) => b.includes("vModelCheckbox") || (b.includes("checkbox") && b.includes("checked")),
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
canonical: "vModelSelect",
|
|
107
|
+
pattern: (b) => b.includes("vModelSelect") || (b.includes("select") && b.includes("options")),
|
|
108
|
+
},
|
|
109
|
+
// renderList: renders a v-for list
|
|
110
|
+
{
|
|
111
|
+
canonical: "renderList",
|
|
112
|
+
pattern: (b) => b.includes("renderList") ||
|
|
113
|
+
(b.includes("isArray") && b.includes("isString") && b.includes("isInteger") && b.includes("isObject")),
|
|
114
|
+
},
|
|
115
|
+
// Fragment: the Fragment symbol
|
|
116
|
+
{ canonical: "Fragment", pattern: (b) => b.includes("Fragment") },
|
|
117
|
+
// ref / reactive / computed: reactivity API
|
|
118
|
+
{ canonical: "ref", pattern: (b) => b.includes("RefImpl") || (b.includes("__v_isRef") && b.length < 400) },
|
|
119
|
+
{ canonical: "reactive", pattern: (b) => b.includes("reactive") && b.includes("Proxy") },
|
|
120
|
+
{
|
|
121
|
+
canonical: "computed",
|
|
122
|
+
pattern: (b) => b.includes("ComputedRefImpl") || (b.includes("getter") && b.includes("setter") && b.length < 800),
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
// Public Vue 3 API names — used to decide whether a canonical name gets imported from 'vue'.
|
|
126
|
+
// _export_sfc is NOT in the public API; it is inlined as a local helper.
|
|
127
|
+
export const VUE_PUBLIC_API = new Set([
|
|
128
|
+
"openBlock",
|
|
129
|
+
"createElementBlock",
|
|
130
|
+
"createElementVNode",
|
|
131
|
+
"createBaseVNode",
|
|
132
|
+
"createVNode",
|
|
133
|
+
"createTextVNode",
|
|
134
|
+
"createCommentVNode",
|
|
135
|
+
"createBlock",
|
|
136
|
+
"withCtx",
|
|
137
|
+
"normalizeClass",
|
|
138
|
+
"normalizeStyle",
|
|
139
|
+
"toDisplayString",
|
|
140
|
+
"mergeProps",
|
|
141
|
+
"resolveComponent",
|
|
142
|
+
"withDirectives",
|
|
143
|
+
"vModelText",
|
|
144
|
+
"vModelCheckbox",
|
|
145
|
+
"vModelSelect",
|
|
146
|
+
"renderList",
|
|
147
|
+
"Fragment",
|
|
148
|
+
"ref",
|
|
149
|
+
"reactive",
|
|
150
|
+
"computed",
|
|
151
|
+
"onMounted",
|
|
152
|
+
"onUpdated",
|
|
153
|
+
"onUnmounted",
|
|
154
|
+
"watch",
|
|
155
|
+
"watchEffect",
|
|
156
|
+
"defineComponent",
|
|
157
|
+
"defineAsyncComponent",
|
|
158
|
+
"provide",
|
|
159
|
+
"inject",
|
|
160
|
+
"useSlots",
|
|
161
|
+
"useAttrs",
|
|
162
|
+
"Transition",
|
|
163
|
+
"TransitionGroup",
|
|
164
|
+
"KeepAlive",
|
|
165
|
+
"Teleport",
|
|
166
|
+
"Suspense",
|
|
167
|
+
]);
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
// Main analysis function
|
|
170
|
+
// ---------------------------------------------------------------------------
|
|
171
|
+
/**
|
|
172
|
+
* Parses the Vue main index chunk and returns a map of:
|
|
173
|
+
* export-alias → canonical Vue name
|
|
174
|
+
*
|
|
175
|
+
* e.g. { "_": "_export_sfc", "a": "createBaseVNode", "c": "createElementVNode", "o": "openBlock" }
|
|
176
|
+
*
|
|
177
|
+
* Returns an empty map if the chunk cannot be parsed or does not look like a
|
|
178
|
+
* Vue bundle (no export statement with the `__vccOpts` pattern).
|
|
179
|
+
*/
|
|
180
|
+
export function analyzeVueIndexChunk(code) {
|
|
181
|
+
var _a;
|
|
182
|
+
const result = new Map();
|
|
183
|
+
// Quick sanity check: must contain __vccOpts (SFC helper marker)
|
|
184
|
+
if (!code.includes("__vccOpts"))
|
|
185
|
+
return result;
|
|
186
|
+
let ast;
|
|
187
|
+
try {
|
|
188
|
+
ast = parser.parse(code, {
|
|
189
|
+
sourceType: "module",
|
|
190
|
+
plugins: ["jsx"],
|
|
191
|
+
errorRecovery: true,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
catch (_b) {
|
|
195
|
+
return result;
|
|
196
|
+
}
|
|
197
|
+
// Step 1: Find the export statement and build alias→internal map.
|
|
198
|
+
// export { Eu as _, qt as a, Nl as c, Pl as o }
|
|
199
|
+
const aliasToInternal = new Map(); // "_" → "Eu"
|
|
200
|
+
traverse(ast, {
|
|
201
|
+
ExportNamedDeclaration(path) {
|
|
202
|
+
const node = path.node;
|
|
203
|
+
if (node.declaration || node.source)
|
|
204
|
+
return;
|
|
205
|
+
for (const spec of node.specifiers) {
|
|
206
|
+
if (!t.isExportSpecifier(spec))
|
|
207
|
+
continue;
|
|
208
|
+
const local = t.isIdentifier(spec.local) ? spec.local.name : null;
|
|
209
|
+
const exported = t.isIdentifier(spec.exported)
|
|
210
|
+
? spec.exported.name
|
|
211
|
+
: t.isStringLiteral(spec.exported)
|
|
212
|
+
? spec.exported.value
|
|
213
|
+
: null;
|
|
214
|
+
if (local && exported) {
|
|
215
|
+
aliasToInternal.set(exported, local); // "_" → "Eu"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
path.stop();
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
if (aliasToInternal.size === 0)
|
|
222
|
+
return result;
|
|
223
|
+
// Step 2: For each internal name, extract the function/arrow body as a string
|
|
224
|
+
// and fingerprint it.
|
|
225
|
+
const internalToBody = new Map(); // "Eu" → "const n=e.__vccOpts..."
|
|
226
|
+
traverse(ast, {
|
|
227
|
+
VariableDeclarator(path) {
|
|
228
|
+
const node = path.node;
|
|
229
|
+
if (!t.isIdentifier(node.id))
|
|
230
|
+
return;
|
|
231
|
+
const name = node.id.name;
|
|
232
|
+
if (!isRelevantInternal(name, aliasToInternal))
|
|
233
|
+
return;
|
|
234
|
+
const body = node.init ? generate(node.init).code : "";
|
|
235
|
+
internalToBody.set(name, body);
|
|
236
|
+
},
|
|
237
|
+
FunctionDeclaration(path) {
|
|
238
|
+
const node = path.node;
|
|
239
|
+
if (!node.id)
|
|
240
|
+
return;
|
|
241
|
+
const name = node.id.name;
|
|
242
|
+
if (!isRelevantInternal(name, aliasToInternal))
|
|
243
|
+
return;
|
|
244
|
+
const body = generate(node).code;
|
|
245
|
+
internalToBody.set(name, body);
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
// Step 3: Fingerprint each internal name against Vue patterns.
|
|
249
|
+
for (const [alias, internal] of aliasToInternal) {
|
|
250
|
+
const body = (_a = internalToBody.get(internal)) !== null && _a !== void 0 ? _a : "";
|
|
251
|
+
for (const { canonical, pattern } of VUE_PATTERNS) {
|
|
252
|
+
if (pattern(body)) {
|
|
253
|
+
result.set(alias, canonical);
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// If nothing matched, store the internal name as a fallback.
|
|
258
|
+
if (!result.has(alias)) {
|
|
259
|
+
result.set(alias, internal);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return result;
|
|
263
|
+
}
|
|
264
|
+
function isRelevantInternal(name, aliasToInternal) {
|
|
265
|
+
for (const internal of aliasToInternal.values()) {
|
|
266
|
+
if (internal === name)
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=vendor-analyze-vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendor-analyze-vue.js","sourceRoot":"","sources":["../../../src/refactor/vue/vendor-analyze-vue.ts"],"names":[],"mappings":"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"}
|