@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
@@ -7,12 +7,132 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ var _a;
10
11
  import makeRequest from "../../utility/makeReq.js";
11
12
  import chalk from "chalk";
12
13
  import _traverse from "@babel/traverse";
13
14
  import parser from "@babel/parser";
14
15
  import execFunc from "../../utility/runSandboxed.js";
15
- const traverse = _traverse.default;
16
+ const traverse = ((_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse);
17
+ /**
18
+ * Pure parser: extracts `[chunkId, chunkName]` entries from webpack's
19
+ * FunctionExpression object-map pattern:
20
+ * function(e) { return ({123: "name", ...}[e] || e) + ".js"; }
21
+ * Returns entries from the first qualifying object map (≥ 3 numeric-keyed string entries).
22
+ */
23
+ export const extractObjectMapChunkEntries = (jsContent) => {
24
+ const result = [];
25
+ let ast;
26
+ try {
27
+ ast = parser.parse(jsContent, {
28
+ sourceType: "unambiguous",
29
+ plugins: ["jsx", "typescript"],
30
+ errorRecovery: true,
31
+ });
32
+ }
33
+ catch (_a) {
34
+ return result;
35
+ }
36
+ traverse(ast, {
37
+ FunctionExpression(path) {
38
+ var _a, _b;
39
+ const start = (_a = path.node.start) !== null && _a !== void 0 ? _a : 0;
40
+ const end = (_b = path.node.end) !== null && _b !== void 0 ? _b : jsContent.length;
41
+ const source = jsContent.slice(start, end);
42
+ if (!source.match(/\|\|\s*e/) || !source.includes('".js"'))
43
+ return;
44
+ path.traverse({
45
+ ObjectExpression(objPath) {
46
+ const props = objPath.node.properties;
47
+ if (props.length < 3)
48
+ return;
49
+ const entries = [];
50
+ for (const prop of props) {
51
+ if (prop.type !== "ObjectProperty")
52
+ continue;
53
+ const key = prop.key;
54
+ const value = prop.value;
55
+ if (value.type !== "StringLiteral")
56
+ continue;
57
+ let keyNum = null;
58
+ if (key.type === "NumericLiteral")
59
+ keyNum = key.value;
60
+ else if (key.type === "StringLiteral" && /^\d+$/.test(key.value))
61
+ keyNum = parseInt(key.value);
62
+ else if (key.type === "Identifier" && /^\d+$/.test(key.name))
63
+ keyNum = parseInt(key.name);
64
+ if (keyNum === null)
65
+ continue;
66
+ entries.push([keyNum, value.value]);
67
+ }
68
+ if (entries.length >= 3) {
69
+ result.push(...entries);
70
+ objPath.stop();
71
+ path.stop();
72
+ }
73
+ },
74
+ });
75
+ },
76
+ });
77
+ return result;
78
+ };
79
+ /**
80
+ * Pure parser: extracts chunk filenames from webpack's ArrowFunctionExpression
81
+ * if-chain pattern:
82
+ * (e) => { if (123 === e) return "name.js"; if (456 === e) return "other.js"; ... }
83
+ * Returns filenames only when there are at least 3 qualifying if-statements.
84
+ */
85
+ export const extractIfChainChunkFilenames = (jsContent) => {
86
+ const result = [];
87
+ let ast;
88
+ try {
89
+ ast = parser.parse(jsContent, {
90
+ sourceType: "unambiguous",
91
+ plugins: ["jsx", "typescript"],
92
+ errorRecovery: true,
93
+ });
94
+ }
95
+ catch (_a) {
96
+ return result;
97
+ }
98
+ traverse(ast, {
99
+ ArrowFunctionExpression(path) {
100
+ var _a, _b;
101
+ const body = path.node.body;
102
+ if (body.type !== "BlockStatement")
103
+ return;
104
+ // skip expression-body arrows (handled by execFunc path)
105
+ const start = (_a = path.node.start) !== null && _a !== void 0 ? _a : 0;
106
+ const end = (_b = path.node.end) !== null && _b !== void 0 ? _b : jsContent.length;
107
+ const source = jsContent.slice(start, end);
108
+ if (source.match(/"\.js".{0,15}$/))
109
+ return;
110
+ const filenames = [];
111
+ for (const stmt of body.body) {
112
+ if (stmt.type !== "IfStatement")
113
+ continue;
114
+ const test = stmt.test;
115
+ if (test.type !== "BinaryExpression" || test.operator !== "===")
116
+ continue;
117
+ const { left, right } = test;
118
+ const isNumericEqParam = (left.type === "NumericLiteral" && right.type === "Identifier") ||
119
+ (right.type === "NumericLiteral" && left.type === "Identifier");
120
+ if (!isNumericEqParam)
121
+ continue;
122
+ const consequent = stmt.consequent;
123
+ if (consequent.type !== "ReturnStatement" || !consequent.argument)
124
+ continue;
125
+ const arg = consequent.argument;
126
+ if (arg.type !== "StringLiteral" || !arg.value.endsWith(".js"))
127
+ continue;
128
+ filenames.push(arg.value);
129
+ }
130
+ if (filenames.length >= 3)
131
+ result.push(...filenames);
132
+ },
133
+ });
134
+ return result;
135
+ };
16
136
  // url param kept for API consistency with other react_* functions
17
137
  const react_webpackChunkPaths = (_url, maxJsSizeMb, jsFiles) => __awaiter(void 0, void 0, void 0, function* () {
18
138
  let toReturn = [];
@@ -21,7 +141,6 @@ const react_webpackChunkPaths = (_url, maxJsSizeMb, jsFiles) => __awaiter(void 0
21
141
  const req = yield makeRequest(jsFile);
22
142
  if (!req || req.status !== 200)
23
143
  continue;
24
- // check content-length before downloading body
25
144
  const contentLength = req.headers.get("content-length");
26
145
  if (contentLength && parseInt(contentLength) > maxJsSizeMb * 1024 * 1024) {
27
146
  console.error(chalk.yellow(`[!] Skipping ${jsFile} (too large)`));
@@ -32,143 +151,76 @@ const react_webpackChunkPaths = (_url, maxJsSizeMb, jsFiles) => __awaiter(void 0
32
151
  console.error(chalk.yellow(`[!] Skipping ${jsFile} (too large)`));
33
152
  continue;
34
153
  }
154
+ // pattern 3: FunctionExpression with object map
155
+ const objectMapEntries = extractObjectMapChunkEntries(jsContent);
156
+ if (objectMapEntries.length > 0) {
157
+ console.log(chalk.green(`[✓] Found webpack object-map chunk path builder in ${jsFile}`));
158
+ for (const [, chunkName] of objectMapEntries) {
159
+ try {
160
+ const finalUrl = new URL("../" + chunkName + ".js", jsFile).href;
161
+ toReturn.push(finalUrl);
162
+ }
163
+ catch (_a) {
164
+ // skip filenames that fail URL resolution
165
+ }
166
+ }
167
+ }
168
+ // pattern 2: ArrowFunctionExpression if-chain
169
+ const ifChainFilenames = extractIfChainChunkFilenames(jsContent);
170
+ if (ifChainFilenames.length > 0) {
171
+ console.log(chalk.green(`[✓] Found webpack if-chain chunk path builder in ${jsFile}`));
172
+ for (const filename of ifChainFilenames) {
173
+ try {
174
+ const output = filename.startsWith("/") ||
175
+ filename.startsWith("http") ||
176
+ filename.startsWith("./") ||
177
+ filename.startsWith("../")
178
+ ? filename
179
+ : "../" + filename;
180
+ const finalUrl = new URL(output, jsFile).href;
181
+ toReturn.push(finalUrl);
182
+ }
183
+ catch (_b) {
184
+ // skip filenames that fail URL resolution
185
+ }
186
+ }
187
+ }
188
+ // pattern 1: ArrowFunctionExpression expression body via execFunc
35
189
  const ast = parser.parse(jsContent, {
36
190
  sourceType: "unambiguous",
37
191
  plugins: ["jsx", "typescript"],
38
192
  errorRecovery: true,
39
193
  });
40
- // find arrow functions that look like webpack chunk path builders:
41
- // pattern 1: x.x = (e) => "prefix/" + ({...}[e] || e) + "." + {...}[e] + ".js"
42
- // pattern 2: x.x = (e) => { if (N === e) return "file.js"; ... }
43
- // pattern 3: x.x = function(e) { return ({N: "name", ...}[e] || e) + ".js"; }
44
194
  traverse(ast, {
45
- FunctionExpression(path) {
46
- var _a, _b;
47
- const start = (_a = path.node.start) !== null && _a !== void 0 ? _a : 0;
48
- const end = (_b = path.node.end) !== null && _b !== void 0 ? _b : jsContent.length;
49
- const source = jsContent.slice(start, end);
50
- if (!source.match(/\|\|\s*e/) || !source.includes('".js"'))
51
- return;
52
- const chunkMap = [];
53
- path.traverse({
54
- ObjectExpression(objPath) {
55
- const props = objPath.node.properties;
56
- if (props.length < 3)
57
- return;
58
- const entries = [];
59
- for (const prop of props) {
60
- if (prop.type !== "ObjectProperty")
61
- continue;
62
- const key = prop.key;
63
- const value = prop.value;
64
- if (value.type !== "StringLiteral")
65
- continue;
66
- let keyNum = null;
67
- if (key.type === "NumericLiteral")
68
- keyNum = key.value;
69
- else if (key.type === "StringLiteral" && /^\d+$/.test(key.value))
70
- keyNum = parseInt(key.value);
71
- else if (key.type === "Identifier" && /^\d+$/.test(key.name))
72
- keyNum = parseInt(key.name);
73
- if (keyNum === null)
74
- continue;
75
- entries.push([keyNum, value.value]);
76
- }
77
- if (entries.length >= 3) {
78
- chunkMap.push(...entries);
79
- objPath.stop();
80
- }
81
- },
82
- });
83
- if (chunkMap.length === 0)
84
- return;
85
- console.log(chalk.green(`[✓] Found webpack object-map chunk path builder in ${jsFile}`));
86
- console.log(chalk.yellow(source.slice(0, 200) + (source.length > 200 ? "..." : "")));
87
- for (const [, chunkName] of chunkMap) {
88
- try {
89
- const output = "../" + chunkName + ".js";
90
- const finalUrl = new URL(output, jsFile).href;
91
- toReturn.push(finalUrl);
92
- }
93
- catch (_c) {
94
- // skip filenames that fail URL resolution
95
- }
96
- }
97
- },
98
195
  ArrowFunctionExpression(path) {
99
196
  var _a, _b;
100
197
  const start = (_a = path.node.start) !== null && _a !== void 0 ? _a : 0;
101
198
  const end = (_b = path.node.end) !== null && _b !== void 0 ? _b : jsContent.length;
102
199
  const source = jsContent.slice(start, end);
103
- if (source.match(/"\.js".{0,15}$/)) {
104
- // pattern 1: expression body returning computed path
105
- console.log(chalk.green(`[✓] Found webpack chunk path builder in ${jsFile}`));
106
- console.log(chalk.yellow(source.slice(0, 200) + (source.length > 200 ? "..." : "")));
107
- const urlBuilderFunc = `(() => (${source}))()`;
108
- const integers = source.match(/\d+/g);
109
- if (!integers)
110
- return;
111
- for (const i of integers) {
112
- try {
113
- let output = execFunc(urlBuilderFunc, parseInt(i));
114
- if (typeof output !== "string" || output.includes("undefined"))
115
- continue;
116
- if (!(output.startsWith("/") ||
117
- output.startsWith("http") ||
118
- output.startsWith("./") ||
119
- output.startsWith("../"))) {
120
- output = "../" + output;
121
- }
122
- const finalUrl = new URL(output, jsFile).href;
123
- toReturn.push(finalUrl);
124
- }
125
- catch (_c) {
126
- // skip integers that cause errors in sandboxed execution
127
- }
128
- }
129
- return;
130
- }
131
- // pattern 2: block body with if-chain of literal filename returns
132
- const body = path.node.body;
133
- if (body.type !== "BlockStatement")
200
+ if (!source.match(/"\.js".{0,15}$/))
134
201
  return;
135
- const filenames = [];
136
- for (const stmt of body.body) {
137
- if (stmt.type !== "IfStatement")
138
- continue;
139
- const test = stmt.test;
140
- if (test.type !== "BinaryExpression" || test.operator !== "===")
141
- continue;
142
- const { left, right } = test;
143
- const isNumericEqParam = (left.type === "NumericLiteral" && right.type === "Identifier") ||
144
- (right.type === "NumericLiteral" && left.type === "Identifier");
145
- if (!isNumericEqParam)
146
- continue;
147
- const consequent = stmt.consequent;
148
- if (consequent.type !== "ReturnStatement" || !consequent.argument)
149
- continue;
150
- const arg = consequent.argument;
151
- if (arg.type !== "StringLiteral" || !arg.value.endsWith(".js"))
152
- continue;
153
- filenames.push(arg.value);
154
- }
155
- if (filenames.length < 3)
156
- return;
157
- console.log(chalk.green(`[✓] Found webpack if-chain chunk path builder in ${jsFile}`));
202
+ console.log(chalk.green(`[✓] Found webpack chunk path builder in ${jsFile}`));
158
203
  console.log(chalk.yellow(source.slice(0, 200) + (source.length > 200 ? "..." : "")));
159
- for (const filename of filenames) {
204
+ const urlBuilderFunc = `(() => (${source}))()`;
205
+ const integers = source.match(/\d+/g);
206
+ if (!integers)
207
+ return;
208
+ for (const i of integers) {
160
209
  try {
161
- const output = filename.startsWith("/") ||
162
- filename.startsWith("http") ||
163
- filename.startsWith("./") ||
164
- filename.startsWith("../")
165
- ? filename
166
- : "../" + filename;
210
+ let output = execFunc(urlBuilderFunc, parseInt(i));
211
+ if (typeof output !== "string" || output.includes("undefined"))
212
+ continue;
213
+ if (!(output.startsWith("/") ||
214
+ output.startsWith("http") ||
215
+ output.startsWith("./") ||
216
+ output.startsWith("../"))) {
217
+ output = "../" + output;
218
+ }
167
219
  const finalUrl = new URL(output, jsFile).href;
168
220
  toReturn.push(finalUrl);
169
221
  }
170
- catch (_d) {
171
- // skip filenames that fail URL resolution
222
+ catch (_c) {
223
+ // skip integers that cause errors in sandboxed execution
172
224
  }
173
225
  }
174
226
  },
@@ -181,7 +233,7 @@ const react_webpackChunkPaths = (_url, maxJsSizeMb, jsFiles) => __awaiter(void 0
181
233
  if (toReturn.length > 0) {
182
234
  console.log(chalk.green(`[✓] Found ${toReturn.length} webpack chunk JS files`));
183
235
  }
184
- toReturn = [...new Set(toReturn)]; // dedupe the files
236
+ toReturn = [...new Set(toReturn)];
185
237
  return toReturn;
186
238
  });
187
239
  export default react_webpackChunkPaths;
@@ -1 +1 @@
1
- {"version":3,"file":"react_webpackChunkPaths.js","sourceRoot":"","sources":["../../../src/lazyLoad/react/react_webpackChunkPaths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react_webpackChunkPaths.js","sourceRoot":"","sources":["../../../src/lazyLoad/react/react_webpackChunkPaths.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ var _a;
10
11
  import chalk from "chalk";
11
12
  import makeRequest from "../../utility/makeReq.js";
12
13
  import { getJsUrls, pushToJsUrls } from "../globals.js";
@@ -14,7 +15,7 @@ import resolvePath from "../../utility/resolvePath.js";
14
15
  // for parsing
15
16
  import parser from "@babel/parser";
16
17
  import _traverse from "@babel/traverse";
17
- const traverse = _traverse.default;
18
+ const traverse = ((_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse);
18
19
  let analyzedFiles = [];
19
20
  let filesFound = [];
20
21
  let mapFilesFound = [];
@@ -26,7 +27,7 @@ let mapFilesFound = [];
26
27
  * @returns {Promise<FoundJsFiles>} - A promise that resolves to an object containing
27
28
  * all the strings that end with ".js".
28
29
  */
29
- const parseJSFileContent = (content) => __awaiter(void 0, void 0, void 0, function* () {
30
+ export const parseJSFileContent = (content) => __awaiter(void 0, void 0, void 0, function* () {
30
31
  try {
31
32
  const ast = parser.parse(content, {
32
33
  sourceType: "module",
@@ -1 +1 @@
1
- {"version":3,"file":"svelte_stringAnalysisJSFiles.js","sourceRoot":"","sources":["../../../src/lazyLoad/svelte/svelte_stringAnalysisJSFiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"svelte_stringAnalysisJSFiles.js","sourceRoot":"","sources":["../../../src/lazyLoad/svelte/svelte_stringAnalysisJSFiles.ts"],"names":[],"mappings":"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"}
@@ -11,19 +11,40 @@ import makeRequest from "../../utility/makeReq.js";
11
11
  const checkAngularJS = ($, url) => __awaiter(void 0, void 0, void 0, function* () {
12
12
  let detected = false;
13
13
  let evidence = "";
14
- // to detect angular js, first check if it has something like `main-*.js` or `main.js` in script src
14
+ // Fast path: HTML-level Angular signals that require no extra network request.
15
+ // data-beasties-container is added by Angular's Beasties SSR/prerendering package.
16
+ if ($("html[data-beasties-container]").length > 0) {
17
+ return { detected: true, evidence: "data-beasties-container" };
18
+ }
19
+ // ng-version is set by the Angular runtime on the root component element after
20
+ // bootstrapping. Present only in the Puppeteer-rendered DOM, not raw static HTML.
21
+ const ngVersionEl = $("[ng-version]");
22
+ if (ngVersionEl.length > 0) {
23
+ const ver = ngVersionEl.attr("ng-version");
24
+ return { detected: true, evidence: `ng-version="${ver}"` };
25
+ }
26
+ // Angular view encapsulation adds _nghost-* attributes to host elements.
27
+ // This is reliable for rendered pages (Puppeteer) but absent in raw HTML.
28
+ const ngHostEl = $("[class]").filter((_, el) => {
29
+ const cls = $(el).attr("class") || "";
30
+ return /_nghost-/.test(cls);
31
+ });
32
+ if (ngHostEl.length > 0) {
33
+ return { detected: true, evidence: "_nghost-* view encapsulation attribute" };
34
+ }
35
+ // Second pass: look for main.js or main-HASH.js in script src and check its content
36
+ // for Angular runtime patterns. Matches both production (hashed) and development builds.
15
37
  let hasMainJs = false;
16
38
  let mainJsURL = undefined;
17
39
  $("script").each((_, el) => {
18
- const tag = $(el).get(0).tagName;
19
40
  const attribs = el.attribs;
20
41
  if (attribs) {
21
42
  for (const [attrName, attrValue] of Object.entries(attribs)) {
22
43
  if (attrName === "src") {
23
44
  // @ts-ignore
24
- if (attrValue.includes("main-")) {
45
+ // Match main.js (dev builds) and main-HASH.js (production builds)
46
+ if (/(?:^|\/)main(-[a-zA-Z0-9]+)?\.js(\?.*)?$/.test(attrValue)) {
25
47
  hasMainJs = true;
26
- // if the url starts with `main-...`, then build the full url
27
48
  if (!attrValue.startsWith("http")) {
28
49
  mainJsURL = new URL(attrValue, url).href;
29
50
  }
@@ -41,11 +62,11 @@ const checkAngularJS = ($, url) => __awaiter(void 0, void 0, void 0, function* (
41
62
  const mainJsBody = yield mainJsRes.text();
42
63
  // check if the traces of angular js are present
43
64
  // using regex for this, as this is simple and fast
44
- // check: isAngularZone(), "isAngularZone", this.ngZone
45
- // if lazyload enabled, need to check routerlink: `["routerLink",`
65
+ // Zone.js patterns (present in Zone.js-based Angular apps)
46
66
  const isAngularZoneRegex = /isAngularZone\(\)/;
47
67
  const isAngularZoneRegex2 = /"isAngularZone"/;
48
68
  const ngZoneRegex = /this\.ngZone/;
69
+ // Angular router pattern
49
70
  const routerLinkRegex = /"routerLink"/;
50
71
  if (isAngularZoneRegex.test(mainJsBody)) {
51
72
  detected = true;
@@ -1 +1 @@
1
- {"version":3,"file":"checkAngularJS.js","sourceRoot":"","sources":["../../../src/lazyLoad/techDetect/checkAngularJS.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD,MAAM,cAAc,GAAG,CAAO,CAAqB,EAAE,GAAW,EAAE,EAAE;IAChE,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,oGAAoG;IACpG,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,SAAS,GAAuB,SAAS,CAAC;IAC9C,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;oBACrB,aAAa;oBACb,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC9B,SAAS,GAAG,IAAI,CAAC;wBAEjB,6DAA6D;wBAC7D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;4BAChC,SAAS,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC7C,CAAC;6BAAM,CAAC;4BACJ,SAAS,GAAG,SAAS,CAAC;wBAC1B,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAE1C,gDAAgD;QAChD,mDAAmD;QAEnD,uDAAuD;QACvD,kEAAkE;QAClE,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;QAC/C,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;QAC9C,MAAM,WAAW,GAAG,cAAc,CAAC;QACnC,MAAM,eAAe,GAAG,cAAc,CAAC;QAEvC,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,iBAAiB,CAAC;QACjC,CAAC;aAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,iBAAiB,CAAC;QACjC,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,aAAa,CAAC;QAC7B,CAAC;aAAM,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,YAAY,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC,CAAA,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"checkAngularJS.js","sourceRoot":"","sources":["../../../src/lazyLoad/techDetect/checkAngularJS.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,10 @@ const REACT_MARKERS = [
14
14
  "react-jsx-runtime.production",
15
15
  "react-dom.production",
16
16
  "__reactRouterVersion",
17
+ // Vite React plugin dev-mode HMR runtime — present in the inline <script> block
18
+ // that @vitejs/plugin-react / plugin-react-swc injects into every dev-served page.
19
+ "@react-refresh",
20
+ "injectIntoGlobalHook",
17
21
  ];
18
22
  const matchesReact = (body) => {
19
23
  for (const marker of REACT_MARKERS) {
@@ -36,6 +40,10 @@ const fetchAndCheck = (src, url) => __awaiter(void 0, void 0, void 0, function*
36
40
  if (/react/i.test(filename)) {
37
41
  return `React-named file referenced: ${src}`;
38
42
  }
43
+ // Fast path: Vite React plugin dev-mode HMR endpoint (/@react-refresh)
44
+ if (resolvedUrl.includes("/@react-refresh")) {
45
+ return `Vite React dev HMR endpoint referenced: ${src}`;
46
+ }
39
47
  const res = yield makeRequest(resolvedUrl, {});
40
48
  if (!res)
41
49
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"checkReact.js","sourceRoot":"","sources":["../../../src/lazyLoad/techDetect/checkReact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkReact.js","sourceRoot":"","sources":["../../../src/lazyLoad/techDetect/checkReact.ts"],"names":[],"mappings":"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"}
@@ -62,19 +62,36 @@ const frameworkDetect = (url) => __awaiter(void 0, void 0, void 0, function* ()
62
62
  });
63
63
  const page = yield browser.newPage();
64
64
  page.setDefaultNavigationTimeout(30000);
65
+ const cdp = yield page.createCDPSession();
66
+ yield cdp.send("Page.setDownloadBehavior", { behavior: "deny" });
65
67
  // Intercept all requests so framework-specific URL patterns (e.g. /_nuxt/, /_next/)
66
68
  // can be used as a detection signal even when they don't appear in parsed HTML.
67
69
  yield page.setRequestInterception(true);
68
70
  page.on("request", (req) => {
69
71
  interceptedUrls.push(req.url());
70
- req.continue().catch(() => { });
72
+ // Abort non-http/s schemes (mailto:, data:, etc.) — continue() throws for them.
73
+ if (/^https?:\/\//i.test(req.url())) {
74
+ req.continue().catch(() => { });
75
+ }
76
+ else {
77
+ req.abort().catch(() => { });
78
+ }
71
79
  });
72
80
  try {
73
81
  yield page.goto(url, {
74
82
  waitUntil: "load",
75
83
  timeout: 30000,
76
84
  });
77
- // Give client-side frameworks (and bot-challenge redirects) a brief window to settle
85
+ // If no framework URL was intercepted yet, we may have landed on a
86
+ // bot-challenge page (e.g. Vercel's challenge.v2.min.js) that fires
87
+ // its own load event before JS-redirecting to the real app. Wait for
88
+ // that redirect navigation; on sites with no redirect this times out
89
+ // quickly and we continue with what we have.
90
+ const hasFrameworkSignal = interceptedUrls.some((u) => u.includes("/_next/") || u.includes("/_nuxt/") || u.includes("/_app/immutable/"));
91
+ if (!hasFrameworkSignal) {
92
+ yield page.waitForNavigation({ waitUntil: "load", timeout: 5000 }).catch(() => { });
93
+ }
94
+ // Give client-side frameworks a brief window to settle
78
95
  yield new Promise((resolve) => setTimeout(resolve, 2000));
79
96
  pageSource = yield page.content();
80
97
  }
@@ -161,6 +178,10 @@ const frameworkDetect = (url) => __awaiter(void 0, void 0, void 0, function* ()
161
178
  if (interceptedUrl.includes("/_app/immutable/")) {
162
179
  return { name: "svelte", evidence: `intercepted request: ${interceptedUrl}` };
163
180
  }
181
+ // Vite React plugin dev-mode HMR runtime — requested by every Vite/React dev server.
182
+ if (interceptedUrl.includes("/@react-refresh")) {
183
+ return { name: "react", evidence: `intercepted request: ${interceptedUrl}` };
184
+ }
164
185
  }
165
186
  return null;
166
187
  });