@shriyanss/js-recon 1.4.1-alpha.4 → 1.4.1-alpha.6

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 (191) hide show
  1. package/.github/workflows/build-and-prettify.yaml +187 -1
  2. package/.github/workflows/promote-js-recon.yml +116 -0
  3. package/.github/workflows/publish-js-recon.yml +7 -114
  4. package/.github/workflows/rules-smoke-test.yaml +79 -0
  5. package/CHANGELOG.md +46 -0
  6. package/CLAUDE.md +208 -14
  7. package/Dockerfile.release +29 -0
  8. package/README.md +18 -17
  9. package/build/analyze/engine/csMastSEngine.js +129 -0
  10. package/build/analyze/engine/csMastSEngine.js.map +1 -0
  11. package/build/analyze/engine/index.js +15 -0
  12. package/build/analyze/engine/index.js.map +1 -1
  13. package/build/analyze/helpers/engineHelpers/findDirectAssignment.js +2 -1
  14. package/build/analyze/helpers/engineHelpers/findDirectAssignment.js.map +1 -1
  15. package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js +2 -1
  16. package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js.map +1 -1
  17. package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js +2 -1
  18. package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js.map +1 -1
  19. package/build/analyze/helpers/engineHelpers/taintFlow.js +11 -2
  20. package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -1
  21. package/build/analyze/helpers/schemas.js +5 -1
  22. package/build/analyze/helpers/schemas.js.map +1 -1
  23. package/build/analyze/helpers/validate.js +3 -3
  24. package/build/analyze/helpers/validate.js.map +1 -1
  25. package/build/completion/index.js +432 -0
  26. package/build/completion/index.js.map +1 -0
  27. package/build/cs_mast/index.js +94 -3
  28. package/build/cs_mast/index.js.map +1 -1
  29. package/build/endpoints/next_js/client_jsFilesHref.js +2 -1
  30. package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
  31. package/build/endpoints/next_js/client_jsonParse.js +2 -1
  32. package/build/endpoints/next_js/client_jsonParse.js.map +1 -1
  33. package/build/endpoints/next_js/client_mappedJsonFile.js +2 -1
  34. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  35. package/build/endpoints/next_js/client_subsequentRequests.js +2 -1
  36. package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
  37. package/build/fingerprint/index.js +56 -33
  38. package/build/fingerprint/index.js.map +1 -1
  39. package/build/globalConfig.js +1 -1
  40. package/build/index.js +67 -6
  41. package/build/index.js.map +1 -1
  42. package/build/lazyLoad/angular/angular_getFromMainJs.js +2 -1
  43. package/build/lazyLoad/angular/angular_getFromMainJs.js.map +1 -1
  44. package/build/lazyLoad/downloadFilesUtil.js +6 -5
  45. package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
  46. package/build/lazyLoad/downloadLoadedJsUtil.js +56 -7
  47. package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -1
  48. package/build/lazyLoad/downloadQueue.js +9 -8
  49. package/build/lazyLoad/downloadQueue.js.map +1 -1
  50. package/build/lazyLoad/index.js +28 -1
  51. package/build/lazyLoad/index.js.map +1 -1
  52. package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js +36 -34
  53. package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js.map +1 -1
  54. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +63 -15
  55. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  56. package/build/lazyLoad/next_js/next_parseLayoutJs.js +80 -68
  57. package/build/lazyLoad/next_js/next_parseLayoutJs.js.map +1 -1
  58. package/build/lazyLoad/next_js/next_promiseResolve.js +22 -16
  59. package/build/lazyLoad/next_js/next_promiseResolve.js.map +1 -1
  60. package/build/lazyLoad/nuxt_js/nuxt_astParse.js +49 -47
  61. package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -1
  62. package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +3 -1
  63. package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js.map +1 -1
  64. package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +3 -2
  65. package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -1
  66. package/build/lazyLoad/react/react_followImports.js +12 -9
  67. package/build/lazyLoad/react/react_followImports.js.map +1 -1
  68. package/build/lazyLoad/react/react_webpackChunkPaths.js +175 -123
  69. package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -1
  70. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +3 -2
  71. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
  72. package/build/lazyLoad/techDetect/checkAngularJS.js +27 -6
  73. package/build/lazyLoad/techDetect/checkAngularJS.js.map +1 -1
  74. package/build/lazyLoad/techDetect/checkReact.js +8 -0
  75. package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
  76. package/build/lazyLoad/techDetect/index.js +23 -2
  77. package/build/lazyLoad/techDetect/index.js.map +1 -1
  78. package/build/lazyLoad/vue/vue_RuntimeJs.js +2 -1
  79. package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -1
  80. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +2 -1
  81. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
  82. package/build/lazyLoad/vue/vue_discoverJsFiles.js +22 -10
  83. package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
  84. package/build/lazyLoad/vue/vue_getClientSidePaths.js +2 -1
  85. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
  86. package/build/lazyLoad/vue/vue_jsImports.js +2 -1
  87. package/build/lazyLoad/vue/vue_jsImports.js.map +1 -1
  88. package/build/lazyLoad/vue/vue_viteMapDeps.js +62 -54
  89. package/build/lazyLoad/vue/vue_viteMapDeps.js.map +1 -1
  90. package/build/map/angular_js/getAngularConnections.js +1 -1
  91. package/build/map/angular_js/getAngularConnections.js.map +1 -1
  92. package/build/map/graphql/resolveGraphql.js +2 -1
  93. package/build/map/graphql/resolveGraphql.js.map +1 -1
  94. package/build/map/next_js/getExports.js +2 -1
  95. package/build/map/next_js/getExports.js.map +1 -1
  96. package/build/map/next_js/getFetchInstances.js +2 -1
  97. package/build/map/next_js/getFetchInstances.js.map +1 -1
  98. package/build/map/next_js/getTurbopackConnections.js +2 -1
  99. package/build/map/next_js/getTurbopackConnections.js.map +1 -1
  100. package/build/map/next_js/getWebpackConnections.js +2 -1
  101. package/build/map/next_js/getWebpackConnections.js.map +1 -1
  102. package/build/map/next_js/resolveAxios.js +2 -1
  103. package/build/map/next_js/resolveAxios.js.map +1 -1
  104. package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js +2 -1
  105. package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js.map +1 -1
  106. package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js +2 -1
  107. package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js.map +1 -1
  108. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +2 -1
  109. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
  110. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js +2 -1
  111. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
  112. package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js +2 -1
  113. package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js.map +1 -1
  114. package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js +2 -1
  115. package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js.map +1 -1
  116. package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js +2 -1
  117. package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js.map +1 -1
  118. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +2 -1
  119. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -1
  120. package/build/map/next_js/resolveAxiosHelpers/traceBody.js +2 -1
  121. package/build/map/next_js/resolveAxiosHelpers/traceBody.js.map +1 -1
  122. package/build/map/next_js/resolveFetch.js +2 -1
  123. package/build/map/next_js/resolveFetch.js.map +1 -1
  124. package/build/map/next_js/resolveNewRequest.js +2 -1
  125. package/build/map/next_js/resolveNewRequest.js.map +1 -1
  126. package/build/map/next_js/resolveServerActions.js +2 -1
  127. package/build/map/next_js/resolveServerActions.js.map +1 -1
  128. package/build/map/next_js/utils.js +2 -1
  129. package/build/map/next_js/utils.js.map +1 -1
  130. package/build/map/react_js/getReactConnections.js +5 -4
  131. package/build/map/react_js/getReactConnections.js.map +1 -1
  132. package/build/map/vue_js/crossFileResolver.js +3 -2
  133. package/build/map/vue_js/crossFileResolver.js.map +1 -1
  134. package/build/map/vue_js/getViteConnections.js +5 -4
  135. package/build/map/vue_js/getViteConnections.js.map +1 -1
  136. package/build/map/vue_js/taint_utils.js +2 -1
  137. package/build/map/vue_js/taint_utils.js.map +1 -1
  138. package/build/map/vue_js/vue_resolveFetch.js +3 -2
  139. package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
  140. package/build/map/vue_js/vue_resolveHttpClient.js +3 -2
  141. package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -1
  142. package/build/map/vue_js/vue_resolveXhr.js +3 -2
  143. package/build/map/vue_js/vue_resolveXhr.js.map +1 -1
  144. package/build/refactor/index.js +399 -60
  145. package/build/refactor/index.js.map +1 -1
  146. package/build/refactor/next/helpers.js +194 -13
  147. package/build/refactor/next/helpers.js.map +1 -1
  148. package/build/refactor/next/index.js +223 -36
  149. package/build/refactor/next/index.js.map +1 -1
  150. package/build/refactor/next/transform.js +905 -55
  151. package/build/refactor/next/transform.js.map +1 -1
  152. package/build/refactor/react/index.js +3 -3
  153. package/build/refactor/react/index.js.map +1 -1
  154. package/build/refactor/react/transform.js +2 -1
  155. package/build/refactor/react/transform.js.map +1 -1
  156. package/build/refactor/react/validator.js +2 -1
  157. package/build/refactor/react/validator.js.map +1 -1
  158. package/build/refactor/react-vite/index.js +39 -5
  159. package/build/refactor/react-vite/index.js.map +1 -1
  160. package/build/refactor/react-vite/vendor-analyze.js +3 -3
  161. package/build/refactor/react-vite/vendor-analyze.js.map +1 -1
  162. package/build/refactor/remote/config.js +17 -1
  163. package/build/refactor/remote/config.js.map +1 -1
  164. package/build/refactor/remote/hf-client.js +27 -2
  165. package/build/refactor/remote/hf-client.js.map +1 -1
  166. package/build/refactor/remote/version-detect.js +355 -0
  167. package/build/refactor/remote/version-detect.js.map +1 -0
  168. package/build/refactor/vue/index.js +176 -0
  169. package/build/refactor/vue/index.js.map +1 -0
  170. package/build/refactor/vue/vendor-analyze-vue.js +271 -0
  171. package/build/refactor/vue/vendor-analyze-vue.js.map +1 -0
  172. package/build/refactor/vue/vite.js +216 -0
  173. package/build/refactor/vue/vite.js.map +1 -0
  174. package/build/report/utility/genHtml.js +14 -3
  175. package/build/report/utility/genHtml.js.map +1 -1
  176. package/build/run/bundler-detect.js +140 -0
  177. package/build/run/bundler-detect.js.map +1 -0
  178. package/build/run/index.js +91 -5
  179. package/build/run/index.js.map +1 -1
  180. package/build/strings/index.js +6 -2
  181. package/build/strings/index.js.map +1 -1
  182. package/build/strings/trufflehog.js +71 -0
  183. package/build/strings/trufflehog.js.map +1 -0
  184. package/build/utility/makeReq.js +10 -9
  185. package/build/utility/makeReq.js.map +1 -1
  186. package/build/utility/postmanGenerator.js +2 -2
  187. package/build/utility/postmanGenerator.js.map +1 -1
  188. package/build/utility/puppeteerInstance.js +7 -1
  189. package/build/utility/puppeteerInstance.js.map +1 -1
  190. package/package.json +9 -5
  191. package/scripts/smoke-test.js +74 -0
@@ -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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"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Vue Vite refactor (`-t vue-vite`).
3
+ *
4
+ * Vue 3 + Vite produces a main index chunk (containing all of Vue core +
5
+ * vue-router + app utilities) and small lazy-loaded page chunks. The page
6
+ * chunks import a handful of minified Vue runtime functions from the index:
7
+ *
8
+ * import { _ as t, c as a, a as o, o as s } from "./index-Dcf91m-J.js"
9
+ *
10
+ * This module:
11
+ * 1. Identifies the main index chunk (contains __vccOpts)
12
+ * 2. Analyses it with analyzeVueIndexChunk() to map alias → canonical name
13
+ * 3. For each page chunk, rewrites the index import to canonical Vue imports
14
+ * 4. Applies cleanup passes (G: Babel helpers, H: unused import pruning)
15
+ * 5. Inlines _export_sfc as a local helper when used
16
+ */
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var _a, _b;
27
+ import chalk from "chalk";
28
+ import parser from "@babel/parser";
29
+ import _traverse from "@babel/traverse";
30
+ import _generate from "@babel/generator";
31
+ import * as t from "@babel/types";
32
+ import path from "path";
33
+ import { analyzeVueIndexChunk, VUE_PUBLIC_API } from "./vendor-analyze-vue.js";
34
+ import { applyModuleCleanupPasses } from "../react/transform.js";
35
+ const traverse = (_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse;
36
+ const generate = (_b = _generate.default) !== null && _b !== void 0 ? _b : _generate;
37
+ // _export_sfc helper — inlined when the page chunk uses it but it is not
38
+ // available in the public Vue API. This is the exact function that
39
+ // @vitejs/plugin-vue emits in every compiled SFC.
40
+ const EXPORT_SFC_HELPER = `
41
+ const _export_sfc = (sfc, props) => {
42
+ const target = sfc.__vccOpts || sfc;
43
+ for (const [key, val] of props) target[key] = val;
44
+ return target;
45
+ };`.trim();
46
+ // ---------------------------------------------------------------------------
47
+ // Chunk classification
48
+ // ---------------------------------------------------------------------------
49
+ function isMainIndexChunk(filename, code) {
50
+ // The main index chunk is the large one that contains __vccOpts.
51
+ // Page chunks are tiny (<5 kB) and only import from the index.
52
+ return code.includes("__vccOpts") && code.length > 5000;
53
+ }
54
+ function isPageChunk(filename, code) {
55
+ // Small chunk that starts with an import from the index file.
56
+ return code.length < 20000 && /^import\s*\{/.test(code.trim()) && code.includes("export");
57
+ }
58
+ // ---------------------------------------------------------------------------
59
+ // Import rewriting
60
+ // ---------------------------------------------------------------------------
61
+ /**
62
+ * Rewrites `import { _ as t, c as a, ... } from "./index-*.js"` in a page
63
+ * chunk to `import { createElementVNode as a, openBlock as s, ... } from "vue"`.
64
+ *
65
+ * Returns the transformed statements and a flag indicating whether the
66
+ * _export_sfc helper is needed.
67
+ */
68
+ function rewriteVueIndexImport(statements, vueExportMap, indexFilename) {
69
+ const indexBase = path.basename(indexFilename).replace(/\.js$/, "");
70
+ let needsExportSfc = false;
71
+ const exportSfcAliases = []; // local variable names that alias _export_sfc
72
+ const newStatements = statements.map((stmt) => {
73
+ if (!t.isImportDeclaration(stmt))
74
+ return stmt;
75
+ const src = stmt.source.value;
76
+ // Match if source looks like ./index-<hash>.js (or similar)
77
+ const srcBase = path.basename(src).replace(/\.js$/, "");
78
+ const isIndexImport = srcBase === indexBase || /^index-/.test(srcBase) || /^index$/.test(srcBase);
79
+ if (!isIndexImport)
80
+ return stmt;
81
+ // Map each specifier to its canonical Vue name.
82
+ const vueImports = [];
83
+ for (const spec of stmt.specifiers) {
84
+ if (!t.isImportSpecifier(spec))
85
+ continue;
86
+ const importedName = t.isIdentifier(spec.imported)
87
+ ? spec.imported.name
88
+ : spec.imported.value;
89
+ const localName = spec.local.name;
90
+ const canonical = vueExportMap.get(importedName);
91
+ if (!canonical) {
92
+ // Unknown export — keep importing from index with original name.
93
+ vueImports.push({ canonical: importedName, local: localName });
94
+ continue;
95
+ }
96
+ if (canonical === "_export_sfc") {
97
+ needsExportSfc = true;
98
+ // Record the local alias so we can emit `const <alias> = _export_sfc;`
99
+ if (localName !== "_export_sfc")
100
+ exportSfcAliases.push(localName);
101
+ }
102
+ else if (VUE_PUBLIC_API.has(canonical)) {
103
+ vueImports.push({ canonical, local: localName });
104
+ }
105
+ else {
106
+ // Not a public API — keep the import but from index.
107
+ vueImports.push({ canonical: importedName, local: localName });
108
+ }
109
+ }
110
+ // Build new import declaration from 'vue' for public API names.
111
+ const vueSpecifiers = vueImports
112
+ .filter(({ canonical }) => VUE_PUBLIC_API.has(canonical))
113
+ .map(({ canonical, local }) => t.importSpecifier(t.identifier(local), t.identifier(canonical)));
114
+ if (vueSpecifiers.length === 0) {
115
+ // All specifiers were _export_sfc — drop the import statement.
116
+ return null;
117
+ }
118
+ return t.importDeclaration(vueSpecifiers, t.stringLiteral("vue"));
119
+ });
120
+ return {
121
+ statements: newStatements.filter(Boolean),
122
+ needsExportSfc,
123
+ exportSfcAliases,
124
+ };
125
+ }
126
+ // ---------------------------------------------------------------------------
127
+ // Main refactor entry
128
+ // ---------------------------------------------------------------------------
129
+ /**
130
+ * Refactors all Vue Vite chunks.
131
+ *
132
+ * Input: `chunks` map from mapped.json (chunk id → Chunk).
133
+ * - One entry is the large main index chunk (contains all of Vue runtime).
134
+ * - Remaining entries are small page/component chunks.
135
+ *
136
+ * Output: map of chunk id → refactored ES module code.
137
+ *
138
+ * Page chunks have their index imports rewritten to canonical `vue` imports.
139
+ * The main index chunk is NOT included in the output (it is library/runtime code).
140
+ */
141
+ export function refactorVueVite(chunks) {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ var _a, _b, _c;
144
+ const results = {};
145
+ // Step 1: Find and analyse the main index chunk.
146
+ let vueExportMap = new Map();
147
+ let indexChunkId = null;
148
+ let indexFilename = "index";
149
+ for (const [id, chunk] of Object.entries(chunks)) {
150
+ const code = chunk.code.replace(/^\/\/ File Source:[^\n]*\n/, "");
151
+ if (isMainIndexChunk((_a = chunk.file) !== null && _a !== void 0 ? _a : id, code)) {
152
+ indexChunkId = id;
153
+ indexFilename = (_b = chunk.file) !== null && _b !== void 0 ? _b : id;
154
+ console.log(chalk.cyan(`[i] Analysing Vue index chunk: ${id}`));
155
+ vueExportMap = analyzeVueIndexChunk(code);
156
+ console.log(chalk.cyan(`[i] Mapped ${vueExportMap.size} Vue export aliases: `) +
157
+ Array.from(vueExportMap.entries())
158
+ .map(([a, c]) => `${a}→${c}`)
159
+ .join(", "));
160
+ break;
161
+ }
162
+ }
163
+ if (vueExportMap.size === 0) {
164
+ console.log(chalk.yellow("[~] No Vue index chunk found — processing all chunks as standalone"));
165
+ }
166
+ // Step 2: Process page chunks.
167
+ for (const [id, chunk] of Object.entries(chunks)) {
168
+ if (id === indexChunkId)
169
+ continue; // skip the main index bundle
170
+ const rawCode = chunk.code.replace(/^\/\/ File Source:[^\n]*\n/, "");
171
+ if (!rawCode.trim())
172
+ continue;
173
+ const filename = (_c = chunk.file) !== null && _c !== void 0 ? _c : id;
174
+ console.log(chalk.cyan(`[i] Processing Vue (vite) chunk: ${id}`));
175
+ let ast;
176
+ try {
177
+ ast = parser.parse(rawCode, {
178
+ sourceType: "module",
179
+ plugins: ["jsx"],
180
+ errorRecovery: true,
181
+ });
182
+ }
183
+ catch (_d) {
184
+ console.log(chalk.yellow(`[!] Failed to parse chunk ${id} — skipping`));
185
+ continue;
186
+ }
187
+ let stmts = ast.program.body;
188
+ // Step 2a: Rewrite the index import to canonical Vue imports.
189
+ const { statements: rewritten, needsExportSfc, exportSfcAliases, } = rewriteVueIndexImport(stmts, vueExportMap, indexFilename);
190
+ stmts = rewritten;
191
+ // Step 2b: Insert _export_sfc helper and aliases after all import declarations.
192
+ // Import statements must stay at the top of an ESM module.
193
+ if (needsExportSfc) {
194
+ const helperAst = parser.parse(EXPORT_SFC_HELPER, { sourceType: "module" });
195
+ const aliasDecls = exportSfcAliases.map((alias) => t.variableDeclaration("const", [t.variableDeclarator(t.identifier(alias), t.identifier("_export_sfc"))]));
196
+ // Split existing statements: imports first, then body.
197
+ const importStmts = stmts.filter((s) => t.isImportDeclaration(s));
198
+ const bodyStmts = stmts.filter((s) => !t.isImportDeclaration(s));
199
+ stmts = [...importStmts, ...helperAst.program.body, ...aliasDecls, ...bodyStmts];
200
+ }
201
+ // Step 2c: Apply shared cleanup passes (E: slicedToArray, G: Babel helpers).
202
+ // Pass F (JSX recovery) is harmless on Vue render functions and is included.
203
+ const cleanedStmts = applyModuleCleanupPasses(stmts);
204
+ // Step 2d: Generate code.
205
+ const fakeProgram = t.program(cleanedStmts, [], "module");
206
+ const { code: generated } = generate(fakeProgram, {
207
+ compact: false,
208
+ jsescOption: { minimal: true },
209
+ });
210
+ results[id] = generated;
211
+ }
212
+ return results;
213
+ });
214
+ }
215
+ export default refactorVueVite;
216
+ //# sourceMappingURL=vite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../../../src/refactor/vue/vite.ts"],"names":[],"mappings":"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"}
@@ -43,12 +43,23 @@ const getLocalDataTablesAssets = () => {
43
43
  const getLocalJqueryAsset = () => {
44
44
  try {
45
45
  const require = createRequire(import.meta.url);
46
- const jqPath = require.resolve("jquery/dist/jquery.min.js");
46
+ // Try the direct subpath first (jQuery <4); if that fails (jQuery 4+ restricts
47
+ // subpath exports), derive the path from the main entry.
48
+ let jqPath;
49
+ try {
50
+ jqPath = require.resolve("jquery/dist/jquery.min.js");
51
+ }
52
+ catch (_a) {
53
+ const mainPath = require.resolve("jquery");
54
+ jqPath = mainPath.replace(/jquery\.js$/, "jquery.min.js");
55
+ }
56
+ if (!fs.existsSync(jqPath))
57
+ throw new Error("jquery.min.js not found at " + jqPath);
47
58
  const js = fs.readFileSync(jqPath, "utf8");
48
59
  return js;
49
60
  }
50
- catch (e) {
51
- console.warn("[DataTables] Local jQuery not found; falling back to CDN", (e === null || e === void 0 ? void 0 : e.message) || e);
61
+ catch (_b) {
62
+ console.warn("[DataTables] Local jQuery not found; falling back to CDN");
52
63
  return null;
53
64
  }
54
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"genHtml.js","sourceRoot":"","sources":["../../../src/report/utility/genHtml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genHtml.js","sourceRoot":"","sources":["../../../src/report/utility/genHtml.ts"],"names":[],"mappings":"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"}