@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.
Files changed (233) hide show
  1. package/.github/workflows/build-and-prettify.yaml +207 -14
  2. package/.github/workflows/pr_checker.yml +2 -2
  3. package/.github/workflows/promote-js-recon.yml +104 -0
  4. package/.github/workflows/publish-js-recon.yml +22 -80
  5. package/.github/workflows/rules-smoke-test.yaml +79 -0
  6. package/CHANGELOG.md +177 -4
  7. package/CLAUDE.md +350 -16
  8. package/Dockerfile.release +29 -0
  9. package/README.md +48 -19
  10. package/build/analyze/engine/csMastSEngine.js +129 -0
  11. package/build/analyze/engine/csMastSEngine.js.map +1 -0
  12. package/build/analyze/engine/index.js +15 -0
  13. package/build/analyze/engine/index.js.map +1 -1
  14. package/build/analyze/helpers/engineHelpers/findDirectAssignment.js +2 -1
  15. package/build/analyze/helpers/engineHelpers/findDirectAssignment.js.map +1 -1
  16. package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js +2 -1
  17. package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js.map +1 -1
  18. package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js +2 -1
  19. package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js.map +1 -1
  20. package/build/analyze/helpers/engineHelpers/taintFlow.js +11 -2
  21. package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -1
  22. package/build/analyze/helpers/initRules.js.map +1 -1
  23. package/build/analyze/helpers/schemas.js +6 -2
  24. package/build/analyze/helpers/schemas.js.map +1 -1
  25. package/build/analyze/helpers/validate.js +3 -3
  26. package/build/analyze/helpers/validate.js.map +1 -1
  27. package/build/analyze/index.js +1 -0
  28. package/build/analyze/index.js.map +1 -1
  29. package/build/completion/index.js +432 -0
  30. package/build/completion/index.js.map +1 -0
  31. package/build/cs_mast/index.js +213 -0
  32. package/build/cs_mast/index.js.map +1 -0
  33. package/build/endpoints/next_js/client_jsFilesHref.js +2 -1
  34. package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
  35. package/build/endpoints/next_js/client_jsonParse.js +2 -1
  36. package/build/endpoints/next_js/client_jsonParse.js.map +1 -1
  37. package/build/endpoints/next_js/client_mappedJsonFile.js +2 -1
  38. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  39. package/build/endpoints/next_js/client_subsequentRequests.js +2 -1
  40. package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
  41. package/build/fingerprint/index.js +56 -33
  42. package/build/fingerprint/index.js.map +1 -1
  43. package/build/globalConfig.js +3 -3
  44. package/build/globalConfig.js.map +1 -1
  45. package/build/index.js +210 -10
  46. package/build/index.js.map +1 -1
  47. package/build/lazyLoad/angular/angular_getFromMainJs.js +2 -1
  48. package/build/lazyLoad/angular/angular_getFromMainJs.js.map +1 -1
  49. package/build/lazyLoad/downloadFilesUtil.js +6 -5
  50. package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
  51. package/build/lazyLoad/downloadLoadedJsUtil.js +59 -5
  52. package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -1
  53. package/build/lazyLoad/downloadQueue.js +10 -9
  54. package/build/lazyLoad/downloadQueue.js.map +1 -1
  55. package/build/lazyLoad/index.js +127 -85
  56. package/build/lazyLoad/index.js.map +1 -1
  57. package/build/lazyLoad/methodFilter.js +50 -0
  58. package/build/lazyLoad/methodFilter.js.map +1 -0
  59. package/build/lazyLoad/next_js/NextJsCrawler.js +69 -48
  60. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
  61. package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js +36 -34
  62. package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js.map +1 -1
  63. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +66 -13
  64. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  65. package/build/lazyLoad/next_js/next_parseLayoutJs.js +80 -68
  66. package/build/lazyLoad/next_js/next_parseLayoutJs.js.map +1 -1
  67. package/build/lazyLoad/next_js/next_promiseResolve.js +22 -16
  68. package/build/lazyLoad/next_js/next_promiseResolve.js.map +1 -1
  69. package/build/lazyLoad/nuxt_js/nuxt_astParse.js +49 -47
  70. package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -1
  71. package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js +64 -0
  72. package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js.map +1 -0
  73. package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +3 -1
  74. package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js.map +1 -1
  75. package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +3 -2
  76. package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -1
  77. package/build/lazyLoad/react/react_followImports.js +16 -7
  78. package/build/lazyLoad/react/react_followImports.js.map +1 -1
  79. package/build/lazyLoad/react/react_webpackChunkPaths.js +175 -123
  80. package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -1
  81. package/build/lazyLoad/svelte/svelte_getFromPageSource.js +16 -0
  82. package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
  83. package/build/lazyLoad/svelte/svelte_getVersionJson.js +40 -0
  84. package/build/lazyLoad/svelte/svelte_getVersionJson.js.map +1 -0
  85. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +3 -2
  86. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
  87. package/build/lazyLoad/techDetect/checkAngularJS.js +27 -6
  88. package/build/lazyLoad/techDetect/checkAngularJS.js.map +1 -1
  89. package/build/lazyLoad/techDetect/checkNextJS.js +24 -15
  90. package/build/lazyLoad/techDetect/checkNextJS.js.map +1 -1
  91. package/build/lazyLoad/techDetect/checkReact.js +8 -0
  92. package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
  93. package/build/lazyLoad/techDetect/checkSvelte.js +17 -0
  94. package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
  95. package/build/lazyLoad/techDetect/index.js +33 -5
  96. package/build/lazyLoad/techDetect/index.js.map +1 -1
  97. package/build/lazyLoad/vue/vue_RuntimeJs.js +2 -1
  98. package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -1
  99. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +2 -1
  100. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
  101. package/build/lazyLoad/vue/vue_discoverJsFiles.js +59 -25
  102. package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
  103. package/build/lazyLoad/vue/vue_getClientSidePaths.js +2 -1
  104. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
  105. package/build/lazyLoad/vue/vue_jsImports.js +2 -1
  106. package/build/lazyLoad/vue/vue_jsImports.js.map +1 -1
  107. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +2 -2
  108. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
  109. package/build/lazyLoad/vue/vue_viteMapDeps.js +62 -54
  110. package/build/lazyLoad/vue/vue_viteMapDeps.js.map +1 -1
  111. package/build/map/angular_js/getAngularConnections.js +88 -0
  112. package/build/map/angular_js/getAngularConnections.js.map +1 -0
  113. package/build/map/angular_js/interactive.js +4 -0
  114. package/build/map/angular_js/interactive.js.map +1 -0
  115. package/build/map/graphql/resolveGraphql.js +2 -1
  116. package/build/map/graphql/resolveGraphql.js.map +1 -1
  117. package/build/map/index.js +38 -0
  118. package/build/map/index.js.map +1 -1
  119. package/build/map/next_js/getExports.js +2 -1
  120. package/build/map/next_js/getExports.js.map +1 -1
  121. package/build/map/next_js/getFetchInstances.js +2 -1
  122. package/build/map/next_js/getFetchInstances.js.map +1 -1
  123. package/build/map/next_js/getTurbopackConnections.js +2 -1
  124. package/build/map/next_js/getTurbopackConnections.js.map +1 -1
  125. package/build/map/next_js/getWebpackConnections.js +2 -1
  126. package/build/map/next_js/getWebpackConnections.js.map +1 -1
  127. package/build/map/next_js/resolveAxios.js +2 -1
  128. package/build/map/next_js/resolveAxios.js.map +1 -1
  129. package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js +2 -1
  130. package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js.map +1 -1
  131. package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js +2 -1
  132. package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js.map +1 -1
  133. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +2 -1
  134. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
  135. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js +2 -1
  136. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
  137. package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js +2 -1
  138. package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js.map +1 -1
  139. package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js +2 -1
  140. package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js.map +1 -1
  141. package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js +2 -1
  142. package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js.map +1 -1
  143. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +2 -1
  144. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -1
  145. package/build/map/next_js/resolveAxiosHelpers/traceBody.js +2 -1
  146. package/build/map/next_js/resolveAxiosHelpers/traceBody.js.map +1 -1
  147. package/build/map/next_js/resolveFetch.js +2 -1
  148. package/build/map/next_js/resolveFetch.js.map +1 -1
  149. package/build/map/next_js/resolveNewRequest.js +2 -1
  150. package/build/map/next_js/resolveNewRequest.js.map +1 -1
  151. package/build/map/next_js/resolveServerActions.js +2 -1
  152. package/build/map/next_js/resolveServerActions.js.map +1 -1
  153. package/build/map/next_js/utils.js +2 -1
  154. package/build/map/next_js/utils.js.map +1 -1
  155. package/build/map/react_js/getReactConnections.js +5 -4
  156. package/build/map/react_js/getReactConnections.js.map +1 -1
  157. package/build/map/vue_js/crossFileResolver.js +3 -2
  158. package/build/map/vue_js/crossFileResolver.js.map +1 -1
  159. package/build/map/vue_js/getViteConnections.js +5 -4
  160. package/build/map/vue_js/getViteConnections.js.map +1 -1
  161. package/build/map/vue_js/taint_utils.js +2 -1
  162. package/build/map/vue_js/taint_utils.js.map +1 -1
  163. package/build/map/vue_js/vue_resolveFetch.js +3 -2
  164. package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
  165. package/build/map/vue_js/vue_resolveHttpClient.js +5 -3
  166. package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -1
  167. package/build/map/vue_js/vue_resolveXhr.js +5 -3
  168. package/build/map/vue_js/vue_resolveXhr.js.map +1 -1
  169. package/build/mcp/cli.js.map +1 -1
  170. package/build/refactor/index.js +973 -27
  171. package/build/refactor/index.js.map +1 -1
  172. package/build/refactor/next/helpers.js +395 -0
  173. package/build/refactor/next/helpers.js.map +1 -0
  174. package/build/refactor/next/index.js +261 -71
  175. package/build/refactor/next/index.js.map +1 -1
  176. package/build/refactor/next/transform.js +1027 -0
  177. package/build/refactor/next/transform.js.map +1 -0
  178. package/build/refactor/next/validator.js +119 -0
  179. package/build/refactor/next/validator.js.map +1 -0
  180. package/build/refactor/react/helpers.js +106 -0
  181. package/build/refactor/react/helpers.js.map +1 -0
  182. package/build/refactor/react/index.js +290 -585
  183. package/build/refactor/react/index.js.map +1 -1
  184. package/build/refactor/react/library-classify.js +397 -0
  185. package/build/refactor/react/library-classify.js.map +1 -0
  186. package/build/refactor/react/transform.js +1852 -0
  187. package/build/refactor/react/transform.js.map +1 -0
  188. package/build/refactor/react/validator.js +123 -0
  189. package/build/refactor/react/validator.js.map +1 -0
  190. package/build/refactor/react-vite/index.js +652 -0
  191. package/build/refactor/react-vite/index.js.map +1 -0
  192. package/build/refactor/react-vite/vendor-analyze.js +336 -0
  193. package/build/refactor/react-vite/vendor-analyze.js.map +1 -0
  194. package/build/refactor/remote/cache.js +250 -0
  195. package/build/refactor/remote/cache.js.map +1 -0
  196. package/build/refactor/remote/config.js +63 -0
  197. package/build/refactor/remote/config.js.map +1 -0
  198. package/build/refactor/remote/hf-client.js +202 -0
  199. package/build/refactor/remote/hf-client.js.map +1 -0
  200. package/build/refactor/remote/version-detect.js +355 -0
  201. package/build/refactor/remote/version-detect.js.map +1 -0
  202. package/build/refactor/vue/index.js +176 -0
  203. package/build/refactor/vue/index.js.map +1 -0
  204. package/build/refactor/vue/vendor-analyze-vue.js +271 -0
  205. package/build/refactor/vue/vendor-analyze-vue.js.map +1 -0
  206. package/build/refactor/vue/vite.js +216 -0
  207. package/build/refactor/vue/vite.js.map +1 -0
  208. package/build/report/utility/genHtml.js +15 -4
  209. package/build/report/utility/genHtml.js.map +1 -1
  210. package/build/run/bundler-detect.js +154 -0
  211. package/build/run/bundler-detect.js.map +1 -0
  212. package/build/run/index.js +208 -16
  213. package/build/run/index.js.map +1 -1
  214. package/build/sourcemaps/index.js +89 -0
  215. package/build/sourcemaps/index.js.map +1 -0
  216. package/build/strings/index.js +6 -2
  217. package/build/strings/index.js.map +1 -1
  218. package/build/strings/trufflehog.js +71 -0
  219. package/build/strings/trufflehog.js.map +1 -0
  220. package/build/utility/banner.js +68 -0
  221. package/build/utility/banner.js.map +1 -0
  222. package/build/utility/getChromiumPath.js +40 -0
  223. package/build/utility/getChromiumPath.js.map +1 -0
  224. package/build/utility/globals.js +7 -0
  225. package/build/utility/globals.js.map +1 -1
  226. package/build/utility/makeReq.js +21 -11
  227. package/build/utility/makeReq.js.map +1 -1
  228. package/build/utility/postmanGenerator.js +2 -2
  229. package/build/utility/postmanGenerator.js.map +1 -1
  230. package/build/utility/puppeteerInstance.js +7 -1
  231. package/build/utility/puppeteerInstance.js.map +1 -1
  232. package/package.json +14 -8
  233. 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":"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"}
@@ -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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"}