@shriyanss/js-recon 1.2.2 → 1.3.1-alpha.2

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 (152) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/build/analyze/engine/astEngine.js +65 -31
  3. package/build/analyze/engine/astEngine.js.map +1 -1
  4. package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js.map +1 -1
  5. package/build/analyze/helpers/engineHelpers/taintFlow.js +218 -0
  6. package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -0
  7. package/build/analyze/helpers/schemas.js +2 -0
  8. package/build/analyze/helpers/schemas.js.map +1 -1
  9. package/build/endpoints/next_js/client_jsFilesHref.js +4 -2
  10. package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
  11. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  12. package/build/endpoints/next_js/client_subsequentRequests.js +12 -4
  13. package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
  14. package/build/globalConfig.js +1 -1
  15. package/build/globalConfig.js.map +1 -1
  16. package/build/index.js +16 -2
  17. package/build/index.js.map +1 -1
  18. package/build/lazyLoad/downloadFilesUtil.js +74 -80
  19. package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
  20. package/build/lazyLoad/downloadLoadedJsUtil.js +1 -1
  21. package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -1
  22. package/build/lazyLoad/downloadQueue.js +186 -0
  23. package/build/lazyLoad/downloadQueue.js.map +1 -0
  24. package/build/lazyLoad/index.js +76 -89
  25. package/build/lazyLoad/index.js.map +1 -1
  26. package/build/lazyLoad/next_js/NextJsCrawler.js +109 -32
  27. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
  28. package/build/lazyLoad/next_js/next_GetJSScript.js +20 -3
  29. package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -1
  30. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +1 -1
  31. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  32. package/build/lazyLoad/next_js/next_SubsequentRequests.js +24 -4
  33. package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
  34. package/build/lazyLoad/next_js/next_bruteForceJsFiles.js +8 -3
  35. package/build/lazyLoad/next_js/next_bruteForceJsFiles.js.map +1 -1
  36. package/build/lazyLoad/next_js/next_getClientSidePaths.js +83 -0
  37. package/build/lazyLoad/next_js/next_getClientSidePaths.js.map +1 -0
  38. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +10 -1
  39. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
  40. package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -1
  41. package/build/lazyLoad/react/react_getScriptTags.js +29 -0
  42. package/build/lazyLoad/react/react_getScriptTags.js.map +1 -0
  43. package/build/lazyLoad/react/react_sourcemapUrls.js +44 -0
  44. package/build/lazyLoad/react/react_sourcemapUrls.js.map +1 -0
  45. package/build/lazyLoad/react/react_webpackChunkPaths.js +188 -0
  46. package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -0
  47. package/build/lazyLoad/techDetect/checkAngularJS.js +70 -0
  48. package/build/lazyLoad/techDetect/checkAngularJS.js.map +1 -0
  49. package/build/lazyLoad/techDetect/checkNextJS.js +45 -0
  50. package/build/lazyLoad/techDetect/checkNextJS.js.map +1 -0
  51. package/build/lazyLoad/techDetect/checkNuxtJS.js +39 -0
  52. package/build/lazyLoad/techDetect/checkNuxtJS.js.map +1 -0
  53. package/build/lazyLoad/techDetect/checkReact.js +55 -0
  54. package/build/lazyLoad/techDetect/checkReact.js.map +1 -0
  55. package/build/lazyLoad/techDetect/checkSvelte.js +69 -0
  56. package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -0
  57. package/build/lazyLoad/techDetect/checkVueJS.js +118 -0
  58. package/build/lazyLoad/techDetect/checkVueJS.js.map +1 -0
  59. package/build/lazyLoad/techDetect/index.js +29 -258
  60. package/build/lazyLoad/techDetect/index.js.map +1 -1
  61. package/build/lazyLoad/vue/vue_RuntimeJs.js +122 -54
  62. package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -1
  63. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +4 -0
  64. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
  65. package/build/lazyLoad/vue/vue_discoverJsFiles.js +82 -0
  66. package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -0
  67. package/build/lazyLoad/vue/vue_getClientSidePaths.js +149 -0
  68. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -0
  69. package/build/lazyLoad/vue/vue_jsImports.js +40 -34
  70. package/build/lazyLoad/vue/vue_jsImports.js.map +1 -1
  71. package/build/lazyLoad/vue/vue_pageSrc.js +60 -0
  72. package/build/lazyLoad/vue/vue_pageSrc.js.map +1 -0
  73. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +8 -0
  74. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -1
  75. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +136 -0
  76. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -0
  77. package/build/lazyLoad/vue/vue_severalJsFilesHome.js +5 -0
  78. package/build/lazyLoad/vue/vue_severalJsFilesHome.js.map +1 -1
  79. package/build/lazyLoad/vue/vue_stringJsFiles.js +142 -0
  80. package/build/lazyLoad/vue/vue_stringJsFiles.js.map +1 -0
  81. package/build/lazyLoad/vue/vue_viteMapDeps.js +89 -0
  82. package/build/lazyLoad/vue/vue_viteMapDeps.js.map +1 -0
  83. package/build/map/index.js +50 -0
  84. package/build/map/index.js.map +1 -1
  85. package/build/map/next_js/getExports.js +14 -6
  86. package/build/map/next_js/getExports.js.map +1 -1
  87. package/build/map/next_js/getFetchInstances.js +11 -5
  88. package/build/map/next_js/getFetchInstances.js.map +1 -1
  89. package/build/map/next_js/getTurbopackConnections.js +255 -0
  90. package/build/map/next_js/getTurbopackConnections.js.map +1 -0
  91. package/build/map/next_js/getWebpackConnections.js +3 -4
  92. package/build/map/next_js/getWebpackConnections.js.map +1 -1
  93. package/build/map/next_js/resolveAxios.js +24 -5
  94. package/build/map/next_js/resolveAxios.js.map +1 -1
  95. package/build/map/next_js/resolveAxiosHelpers/astNodeToJsonString.js +2 -2
  96. package/build/map/next_js/resolveAxiosHelpers/astNodeToJsonString.js.map +1 -1
  97. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +25 -15
  98. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
  99. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
  100. package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js +206 -0
  101. package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js.map +1 -0
  102. package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js +25 -8
  103. package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js.map +1 -1
  104. package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js +14 -6
  105. package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js.map +1 -1
  106. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +22 -10
  107. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -1
  108. package/build/map/next_js/resolveAxiosHelpers/traceBody.js +913 -0
  109. package/build/map/next_js/resolveAxiosHelpers/traceBody.js.map +1 -0
  110. package/build/map/next_js/resolveFetch.js +117 -4
  111. package/build/map/next_js/resolveFetch.js.map +1 -1
  112. package/build/map/next_js/resolveNewRequest.js +749 -0
  113. package/build/map/next_js/resolveNewRequest.js.map +1 -0
  114. package/build/map/next_js/utils.js +311 -49
  115. package/build/map/next_js/utils.js.map +1 -1
  116. package/build/map/vue_js/getViteConnections.js +293 -0
  117. package/build/map/vue_js/getViteConnections.js.map +1 -0
  118. package/build/map/vue_js/interactive.js +39 -0
  119. package/build/map/vue_js/interactive.js.map +1 -0
  120. package/build/map/vue_js/interactive_helpers/commandHandler.js +285 -0
  121. package/build/map/vue_js/interactive_helpers/commandHandler.js.map +1 -0
  122. package/build/map/vue_js/interactive_helpers/commandHelpers.js +39 -0
  123. package/build/map/vue_js/interactive_helpers/commandHelpers.js.map +1 -0
  124. package/build/map/vue_js/interactive_helpers/helpMenu.js +11 -0
  125. package/build/map/vue_js/interactive_helpers/helpMenu.js.map +1 -0
  126. package/build/map/vue_js/vue_resolveFetch.js +155 -0
  127. package/build/map/vue_js/vue_resolveFetch.js.map +1 -0
  128. package/build/mcp/cli.js +381 -0
  129. package/build/mcp/cli.js.map +1 -0
  130. package/build/mcp/commands.js +147 -0
  131. package/build/mcp/commands.js.map +1 -0
  132. package/build/mcp/config.js +68 -0
  133. package/build/mcp/config.js.map +1 -0
  134. package/build/mcp/index.js +29 -0
  135. package/build/mcp/index.js.map +1 -0
  136. package/build/mcp/providers.js +153 -0
  137. package/build/mcp/providers.js.map +1 -0
  138. package/build/mcp/tools.js +185 -0
  139. package/build/mcp/tools.js.map +1 -0
  140. package/build/run/index.js +40 -16
  141. package/build/run/index.js.map +1 -1
  142. package/build/strings/index.js +5 -1
  143. package/build/strings/index.js.map +1 -1
  144. package/build/utility/makeReq.js +90 -63
  145. package/build/utility/makeReq.js.map +1 -1
  146. package/build/utility/openapiGenerator.js +46 -2
  147. package/build/utility/openapiGenerator.js.map +1 -1
  148. package/build/utility/postmanGenerator.js +163 -0
  149. package/build/utility/postmanGenerator.js.map +1 -0
  150. package/build/utility/puppeteerInstance.js +5 -0
  151. package/build/utility/puppeteerInstance.js.map +1 -0
  152. package/package.json +11 -4
@@ -27,12 +27,15 @@ import svelte_stringAnalysisJSFiles from "./svelte/svelte_stringAnalysisJSFiles.
27
27
  // Angular
28
28
  import angular_getFromPageSource from "./angular/angular_getFromPageSource.js";
29
29
  import angular_getFromMainJs from "./angular/angular_getFromMainJs.js";
30
- import vue_singleJsFileOnHome from "./vue/vue_SingleJsFileOnHome.js";
31
- import vue_jsImports from "./vue/vue_jsImports.js";
32
- import vue_reconstructSourceMaps from "./vue/vue_reconstructSourceMaps.js";
33
- // generic
34
- import downloadFiles from "./downloadFilesUtil.js";
30
+ // Vue
31
+ import vue_discoverJsFiles from "./vue/vue_discoverJsFiles.js";
32
+ import vue_recursiveClientSidePathDownload from "./vue/vue_recursiveClientSidePathDownload.js";
33
+ // React
34
+ import react_getScriptTags from "./react/react_getScriptTags.js";
35
+ import react_webpackChunkPaths from "./react/react_webpackChunkPaths.js";
36
+ import react_sourcemapUrls from "./react/react_sourcemapUrls.js";
35
37
  import downloadLoadedJs from "./downloadLoadedJsUtil.js";
38
+ import { DownloadQueue } from "./downloadQueue.js";
36
39
  // for rebuilding source maps
37
40
  import { readdirSync, readFileSync, writeFileSync, mkdirSync } from "fs";
38
41
  import path from "path";
@@ -41,7 +44,6 @@ import { extractSources } from "./sourcemap.js";
41
44
  // import global vars
42
45
  import * as lazyLoadGlobals from "./globals.js";
43
46
  import * as globals from "../utility/globals.js";
44
- import vue_severalJsFilesHome from "./vue/vue_severalJsFilesHome.js";
45
47
  const getMapFilesRecursively = (dir) => {
46
48
  const entries = readdirSync(dir, { withFileTypes: true });
47
49
  const mapFiles = [];
@@ -66,8 +68,10 @@ const extractSourceMaps = (assetsDir, outputDir) => __awaiter(void 0, void 0, vo
66
68
  const mapFiles = getMapFilesRecursively(assetsDir);
67
69
  let counter = 0;
68
70
  for (const mapFile of mapFiles) {
69
- // read the file while skipping the first line
70
- const mapContent = readFileSync(mapFile, "utf-8").split("\n").slice(1).join("\n");
71
+ const raw = readFileSync(mapFile, "utf-8");
72
+ // Older runs prepended a `// File Source: ...` banner to .js.map files;
73
+ // current runs write pure JSON. Strip the leading banner if present.
74
+ const mapContent = raw.startsWith("//") ? raw.split("\n").slice(1).join("\n") : raw;
71
75
  const { files } = extractSources(mapContent);
72
76
  for (const file of files) {
73
77
  const outPath = join(outputDir, file.path);
@@ -92,7 +96,7 @@ const extractSourceMaps = (assetsDir, outputDir) => __awaiter(void 0, void 0, vo
92
96
  * @param {boolean} insecure If true, then disable SSL certificate verification
93
97
  * @returns {Promise<void>} A Promise that resolves when the download is complete
94
98
  */
95
- const lazyLoad = (url, output, strictScope, inputScope, threads, subsequentRequestsFlag, urlsFile, insecure, buildId, sourcemapDir, research, researchOutput, maxIterations) => __awaiter(void 0, void 0, void 0, function* () {
99
+ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subsequentRequestsFlag_1, urlsFile_1, insecure_1, buildId_1, sourcemapDir_1, research_1, researchOutput_1, maxIterations_1, ...args_1) => __awaiter(void 0, [url_1, output_1, strictScope_1, inputScope_1, threads_1, subsequentRequestsFlag_1, urlsFile_1, insecure_1, buildId_1, sourcemapDir_1, research_1, researchOutput_1, maxIterations_1, ...args_1], void 0, function* (url, output, strictScope, inputScope, threads, subsequentRequestsFlag, urlsFile, insecure, buildId, sourcemapDir, research, researchOutput, maxIterations, maxJsSizeMb = 2) {
96
100
  console.log(chalk.cyan("[i] Loading 'Lazy Load' module"));
97
101
  if (globals.getDisableSandbox()) {
98
102
  console.log(chalk.yellow("[!] Browser sandbox disabled"));
@@ -136,6 +140,7 @@ const lazyLoad = (url, output, strictScope, inputScope, threads, subsequentReque
136
140
  if (tech.name === "next") {
137
141
  console.log(chalk.green("[✓] Next.js detected"));
138
142
  console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
143
+ const queue = new DownloadQueue(output, threads);
139
144
  const crawler = new NextJsCrawler({
140
145
  url,
141
146
  output,
@@ -144,11 +149,11 @@ const lazyLoad = (url, output, strictScope, inputScope, threads, subsequentReque
144
149
  threads,
145
150
  research,
146
151
  maxIterations,
152
+ onUrlsDiscovered: (urls) => queue.push(urls),
147
153
  });
148
- const jsFilesToDownload = yield crawler.crawl();
149
- // dedupe the files
150
- const dedupedFiles = [...new Set(jsFilesToDownload)];
151
- yield downloadFiles(dedupedFiles, output);
154
+ yield crawler.crawl();
155
+ yield queue.drain();
156
+ queue.printSummary();
152
157
  if (buildId) {
153
158
  // get the buildId
154
159
  // the directory is the output <output>/<host.replace(":", "_")>/___subsequent_requests
@@ -171,98 +176,60 @@ const lazyLoad = (url, output, strictScope, inputScope, threads, subsequentReque
171
176
  else if (tech.name === "vue") {
172
177
  console.log(chalk.green("[✓] Vue.js detected"));
173
178
  console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
174
- let jsFilesToDownload = [];
175
- // according to the vibe-coded app with a few pages, there are
176
- // just a few files, like 2-3, but that's not the case in prod
177
- // okay, found something from real apps :/
178
- // maybe vibes aren't enough xD
179
- // method 1: through runtime.<hash>.js
180
- // for this, first get the contents of `/`, and find runtime.<hash>.js file
181
- /* ==========================
182
- * IMPORTANT: THE FOLLOWING MODULE IS INCOMPLETE
183
- * JUST NEED TO COMPLETE IT
184
- * DO NOT PERMANENTLY DELETE IT
185
- * ==========================
186
- */
187
- // const runtimeJsFiles = await vue_runtimeJs(url);
188
- // jsFilesToDownload.push(...runtimeJsFiles);
189
- // another method: this is when the application only loads a single JS file
190
- // everything is there right in that file
191
- // the following method was tested on an app running in dev mode
192
- // effectiveness in prod mode is unknown atm
193
- const jsFilesFromSingleJsFile = yield vue_singleJsFileOnHome(url);
194
- jsFilesToDownload.push(...jsFilesFromSingleJsFile);
195
- if (jsFilesFromSingleJsFile.length > 0) {
196
- console.log(chalk.green(`[✓] Found ${jsFilesFromSingleJsFile.length} files from the single JS file on home`));
197
- }
198
- // if there are more than one JS file on the homepage, the above one will not detect those. So, the following method is used
199
- const severalJsFilesHome = yield vue_severalJsFilesHome(url);
200
- jsFilesToDownload.push(...severalJsFilesHome);
201
- // now, get the import statements from the JS files
202
- const foundJsFilesFromImport = yield vue_jsImports(url, jsFilesToDownload);
203
- jsFilesToDownload.push(...foundJsFilesFromImport);
204
- if (foundJsFilesFromImport.length > 0) {
205
- console.log(chalk.green(`[✓] Found ${foundJsFilesFromImport.length} files from import statements`));
206
- }
207
- // check if those have sourcemaps
208
- const reconstructSourceMaps = yield vue_reconstructSourceMaps(url, jsFilesToDownload);
209
- jsFilesToDownload.push(...reconstructSourceMaps);
210
- if (reconstructSourceMaps.length > 0) {
211
- console.log(chalk.green(`[✓] Found ${reconstructSourceMaps.length} files from reconstructing source maps`));
212
- }
213
- // dedupe the list
214
- jsFilesToDownload = [...new Set(jsFilesToDownload)];
215
- // finally, download these
216
- yield downloadFiles(jsFilesToDownload, output);
179
+ const queue = new DownloadQueue(output, threads);
180
+ const onFilesDiscovered = (files) => queue.push(files);
181
+ // run the full discovery pipeline against the entry URL
182
+ const { clientSidePaths } = yield vue_discoverJsFiles(url, maxJsSizeMb, onFilesDiscovered);
183
+ // recurse the same pipeline through every client-side path we found
184
+ yield vue_recursiveClientSidePathDownload(clientSidePaths, threads, maxJsSizeMb, onFilesDiscovered);
185
+ yield queue.drain();
186
+ queue.printSummary();
217
187
  // extract the source maps
218
188
  yield extractSourceMaps(output, sourcemapDir);
219
189
  }
220
190
  else if (tech.name === "nuxt") {
221
191
  console.log(chalk.green("[✓] Nuxt.js detected"));
222
192
  console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
223
- let jsFilesToDownload = [];
193
+ const queue = new DownloadQueue(output, threads);
224
194
  // find the files from the page source
225
195
  const jsFilesFromPageSource = yield nuxt_getFromPageSource(url);
196
+ queue.push(jsFilesFromPageSource);
226
197
  const jsFilesFromStringAnalysis = yield nuxt_stringAnalysisJSFiles(url);
227
- jsFilesToDownload.push(...jsFilesFromPageSource);
228
- jsFilesToDownload.push(...jsFilesFromStringAnalysis);
229
- // dedupe the files
230
- jsFilesToDownload = [...new Set(jsFilesToDownload)];
198
+ queue.push(jsFilesFromStringAnalysis);
199
+ const firstBatch = [...new Set([...jsFilesFromPageSource, ...jsFilesFromStringAnalysis])];
231
200
  let jsFilesFromAST = [];
232
201
  console.log(chalk.cyan("[i] Analyzing functions in the files found"));
233
- for (const jsFile of jsFilesToDownload) {
202
+ for (const jsFile of firstBatch) {
234
203
  jsFilesFromAST.push(...(yield nuxt_astParse(jsFile)));
235
204
  }
236
- jsFilesToDownload.push(...jsFilesFromAST);
237
- jsFilesToDownload.push(...lazyLoadGlobals.getJsUrls());
238
- // dedupe the files
239
- jsFilesToDownload = [...new Set(jsFilesToDownload)];
240
- yield downloadFiles(jsFilesToDownload, output);
205
+ queue.push(jsFilesFromAST);
206
+ queue.push(lazyLoadGlobals.getJsUrls());
207
+ yield queue.drain();
208
+ queue.printSummary();
241
209
  }
242
210
  else if (tech.name === "svelte") {
243
211
  console.log(chalk.green("[✓] Svelte detected"));
244
212
  console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
245
- let jsFilesToDownload = [];
213
+ const queue = new DownloadQueue(output, threads);
246
214
  // find the files from the page source
247
215
  const jsFilesFromPageSource = yield svelte_getFromPageSource(url);
248
- jsFilesToDownload.push(...jsFilesFromPageSource);
216
+ queue.push(jsFilesFromPageSource);
249
217
  // analyze the strings now
250
218
  const jsFilesFromStringAnalysis = yield svelte_stringAnalysisJSFiles(url);
251
- jsFilesToDownload.push(...jsFilesFromStringAnalysis);
252
- // dedupe the files
253
- jsFilesToDownload = [...new Set(jsFilesToDownload)];
254
- yield downloadFiles(jsFilesToDownload, output);
219
+ queue.push(jsFilesFromStringAnalysis);
220
+ yield queue.drain();
221
+ queue.printSummary();
255
222
  }
256
223
  else if (tech.name === "angular") {
257
224
  console.log(chalk.green("[✓] Angular detected"));
258
225
  console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
259
- let jsFilesToDownload = [];
226
+ const queue = new DownloadQueue(output, threads);
260
227
  // find the files from the page source
261
228
  const jsFilesFromPageSource = yield angular_getFromPageSource(url);
262
- jsFilesToDownload.push(...jsFilesFromPageSource);
229
+ queue.push(jsFilesFromPageSource);
263
230
  // files using the main.js
264
231
  let mainJsUrl;
265
- for (const jsFile of jsFilesToDownload) {
232
+ for (const jsFile of jsFilesFromPageSource) {
266
233
  if (jsFile.match(/main[a-zA-Z0-9\-]*\.js/)) {
267
234
  mainJsUrl = jsFile;
268
235
  break;
@@ -270,21 +237,41 @@ const lazyLoad = (url, output, strictScope, inputScope, threads, subsequentReque
270
237
  }
271
238
  if (mainJsUrl) {
272
239
  const jsFilesFromMainJs = yield angular_getFromMainJs(mainJsUrl);
273
- jsFilesToDownload.push(...jsFilesFromMainJs);
240
+ queue.push(jsFilesFromMainJs);
274
241
  }
275
- // dedupe the files
276
- jsFilesToDownload = [...new Set(jsFilesToDownload)];
277
- yield downloadFiles(jsFilesToDownload, output);
242
+ yield queue.drain();
243
+ queue.printSummary();
278
244
  }
279
- else {
280
- console.log(chalk.red("[!] Framework not detected :("));
281
- console.log(chalk.magenta(CONFIG.notFoundMessage));
282
- console.log(chalk.yellow("[i] Trying to download loaded JS files"));
283
- const js_urls = yield downloadLoadedJs(url);
284
- if (js_urls && js_urls.length > 0) {
285
- console.log(chalk.green(`[✓] Found ${js_urls.length} JS chunks`));
286
- yield downloadFiles(js_urls, output);
287
- }
245
+ else if (tech.name === "react") {
246
+ console.log(chalk.green("[] React detected"));
247
+ console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
248
+ const queue = new DownloadQueue(output, threads);
249
+ // get the files from the page source
250
+ const jsFilesFromPageSource = yield react_getScriptTags(url, maxJsSizeMb);
251
+ queue.push(jsFilesFromPageSource);
252
+ // find the webpack chunk path builder function
253
+ const getWebpackChunkPaths = yield react_webpackChunkPaths(url, maxJsSizeMb, jsFilesFromPageSource);
254
+ queue.push(getWebpackChunkPaths);
255
+ // check existing JS files for inline sourcemap references
256
+ const allDiscovered = [...new Set([...jsFilesFromPageSource, ...getWebpackChunkPaths])];
257
+ const sourcemapUrls = yield react_sourcemapUrls(allDiscovered);
258
+ queue.push(sourcemapUrls);
259
+ yield queue.drain();
260
+ queue.printSummary();
261
+ extractSourceMaps(output, sourcemapDir);
262
+ }
263
+ }
264
+ else {
265
+ console.log(chalk.red("[!] Framework not detected :("));
266
+ console.log(chalk.magenta(CONFIG.notFoundMessage));
267
+ console.log(chalk.yellow("[i] Trying to download loaded JS files"));
268
+ const js_urls = yield downloadLoadedJs(url);
269
+ if (js_urls && js_urls.length > 0) {
270
+ console.log(chalk.green(`[✓] Found ${js_urls.length} JS chunks`));
271
+ const queue = new DownloadQueue(output, threads);
272
+ queue.push(js_urls);
273
+ yield queue.drain();
274
+ queue.printSummary();
288
275
  }
289
276
  }
290
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lazyLoad/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lazyLoad/index.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ import next_promiseResolve from "./next_promiseResolve.js";
17
17
  import next_parseLayoutJs from "./next_parseLayoutJs.js";
18
18
  import next_scriptTagsSubsequentRequests from "./next_scriptTagsSubsequentRequests.js";
19
19
  import next_bruteForceJsFiles from "./next_bruteForceJsFiles.js";
20
+ import next_getClientSidePaths from "./next_getClientSidePaths.js";
20
21
  import * as lazyLoadGlobals from "../globals.js";
21
22
  /**
22
23
  * Encapsulates the Next.js JS file discovery logic with recursive crawling.
@@ -34,6 +35,7 @@ class NextJsCrawler {
34
35
  this.threads = options.threads;
35
36
  this.research = options.research;
36
37
  this.MAX_ITERATIONS = options.maxIterations;
38
+ this.onUrlsDiscovered = options.onUrlsDiscovered;
37
39
  this.discoveredUrls = new Set();
38
40
  this.visitedPageUrls = new Set();
39
41
  this.techniqueEfficiencyMapping = {};
@@ -50,6 +52,22 @@ class NextJsCrawler {
50
52
  }
51
53
  return newUrls;
52
54
  }
55
+ /** Emit newly discovered downloadable assets to the onUrlsDiscovered callback. */
56
+ emitDownloadable(urls) {
57
+ if (!this.onUrlsDiscovered)
58
+ return;
59
+ const downloadable = urls.filter((u) => {
60
+ try {
61
+ const p = new URL(u).pathname;
62
+ return p.endsWith(".js") || p.endsWith(".js.map");
63
+ }
64
+ catch (_a) {
65
+ return false;
66
+ }
67
+ });
68
+ if (downloadable.length > 0)
69
+ this.onUrlsDiscovered(downloadable);
70
+ }
53
71
  /** Snapshot the current size so we can detect growth. */
54
72
  get size() {
55
73
  return this.discoveredUrls.size;
@@ -67,31 +85,40 @@ class NextJsCrawler {
67
85
  ...(this.techniqueEfficiencyMapping["next_getJSScript"] || []),
68
86
  ...jsFromScriptTag,
69
87
  ];
70
- this.registerUrls(jsFromScriptTag);
88
+ this.emitDownloadable(this.registerUrls(jsFromScriptTag));
71
89
  this.visitedPageUrls.add(this.url);
90
+ // 1b. Client-side paths from <a href> tags on the landing page.
91
+ // These are page URLs (not JS), so they'll be picked up by the
92
+ // recursivePass loop which visits any newly registered non-JS URL.
93
+ const pathsFromAnchors = yield next_getClientSidePaths(this.url);
94
+ this.techniqueEfficiencyMapping["next_getClientSidePaths"] = [
95
+ ...(this.techniqueEfficiencyMapping["next_getClientSidePaths"] || []),
96
+ ...pathsFromAnchors,
97
+ ];
98
+ this.emitDownloadable(this.registerUrls(pathsFromAnchors));
72
99
  // 2. Webpack runtime analysis (puppeteer – expensive, run once)
73
100
  const jsFromWebpack = yield next_GetLazyResourcesWebpackJs(this.url);
74
101
  this.techniqueEfficiencyMapping["next_GetLazyResourcesWebpackJs"] = jsFromWebpack;
75
102
  lazyLoadGlobals.pushToJsUrls(jsFromWebpack);
76
- this.registerUrls(jsFromWebpack);
103
+ this.emitDownloadable(this.registerUrls(jsFromWebpack));
77
104
  // 3. _buildManifest.js
78
105
  const jsFromBuildManifest = yield next_getLazyResourcesBuildManifestJs(this.url);
79
106
  this.techniqueEfficiencyMapping["next_getLazyResourcesBuildManifestJs"] = jsFromBuildManifest;
80
107
  lazyLoadGlobals.pushToJsUrls(jsFromBuildManifest);
81
- this.registerUrls(jsFromBuildManifest);
108
+ this.emitDownloadable(this.registerUrls(jsFromBuildManifest));
82
109
  // 4. Subsequent requests (RSC / script-tags on known endpoints)
83
110
  if (this.subsequentRequestsFlag) {
84
111
  const jsFromSubsequent = yield subsequentRequests(this.url, this.urlsFile, this.threads, this.output, lazyLoadGlobals.getJsUrls());
85
112
  this.techniqueEfficiencyMapping["subsequentRequests"] = [...jsFromSubsequent];
86
- this.registerUrls([...jsFromSubsequent]);
113
+ this.emitDownloadable(this.registerUrls([...jsFromSubsequent]));
87
114
  const jsFromScriptTagsSR = yield next_scriptTagsSubsequentRequests(this.url, this.urlsFile);
88
115
  this.techniqueEfficiencyMapping["next_scriptTagsSubsequentRequests"] = jsFromScriptTagsSR;
89
116
  lazyLoadGlobals.pushToJsUrls(jsFromScriptTagsSR);
90
- this.registerUrls(jsFromScriptTagsSR);
117
+ this.emitDownloadable(this.registerUrls(jsFromScriptTagsSR));
91
118
  }
92
119
  // Also pull in anything the globals accumulated
93
- this.registerUrls(lazyLoadGlobals.getJsUrls());
94
- this.registerUrls(lazyLoadGlobals.getJsonUrls());
120
+ this.emitDownloadable(this.registerUrls(lazyLoadGlobals.getJsUrls()));
121
+ this.emitDownloadable(this.registerUrls(lazyLoadGlobals.getJsonUrls()));
95
122
  });
96
123
  }
97
124
  // ── recursive discovery ──────────────────────────────────────────────
@@ -111,42 +138,82 @@ class NextJsCrawler {
111
138
  ...(this.techniqueEfficiencyMapping["next_promiseResolve"] || []),
112
139
  ...jsFromPromise,
113
140
  ];
114
- newInThisPass.push(...this.registerUrls(jsFromPromise));
141
+ const newFromPromise = this.registerUrls(jsFromPromise);
142
+ this.emitDownloadable(newFromPromise);
143
+ newInThisPass.push(...newFromPromise);
115
144
  // Layout.js parsing → discovers new client-side page paths → visits them
116
145
  const jsFromLayout = yield next_parseLayoutJs(this.url, jsUrls);
117
146
  this.techniqueEfficiencyMapping["next_parseLayoutJs"] = [
118
147
  ...(this.techniqueEfficiencyMapping["next_parseLayoutJs"] || []),
119
148
  ...jsFromLayout,
120
149
  ];
121
- newInThisPass.push(...this.registerUrls(jsFromLayout));
122
- // For every new page URL that parseLayoutJs may have visited,
123
- // also run getJSScript to pick up script tags we haven't seen.
124
- // We detect "page URLs" as non-.js URLs in the new set.
125
- for (const u of newInThisPass) {
150
+ const newFromLayout = this.registerUrls(jsFromLayout);
151
+ this.emitDownloadable(newFromLayout);
152
+ newInThisPass.push(...newFromLayout);
153
+ // Build a queue of unvisited page URLs to walk. Seed it with:
154
+ // - unvisited page URLs from the input batch (anchor-derived URLs
155
+ // registered by initialDiscovery, or pages from earlier passes
156
+ // that haven't been visited yet)
157
+ // - new page URLs discovered above (parseLayoutJs etc.)
158
+ // For every page URL visited we run script-tag extraction AND
159
+ // <a href> extraction, then enqueue any new page URLs that surfaces.
160
+ // visitedPageUrls breaks cycles.
161
+ const isPageUrl = (u) => {
126
162
  let parsed;
127
163
  try {
128
164
  parsed = new URL(u);
129
165
  }
130
166
  catch (_a) {
131
- // invalid URL, skip
132
- continue;
167
+ return false;
133
168
  }
134
- const isJsFile = parsed.pathname.endsWith(".js") || parsed.pathname.endsWith(".js.map");
135
- if (!isJsFile && !this.visitedPageUrls.has(u)) {
136
- this.visitedPageUrls.add(u);
137
- const extra = yield next_getJSScript(u);
138
- // If return value is invalid, log and crash
139
- if (!extra || !Array.isArray(extra)) {
140
- console.error(`[NextJsCrawler] Invalid return value from next_getJSScript for URL: ${u}`);
141
- console.error(`[NextJsCrawler] Returned value:`, extra);
142
- process.exit(1);
143
- }
144
- this.techniqueEfficiencyMapping["next_getJSScript"] = [
145
- ...(this.techniqueEfficiencyMapping["next_getJSScript"] || []),
146
- ...extra,
147
- ];
148
- newInThisPass.push(...this.registerUrls(extra));
169
+ return !parsed.pathname.endsWith(".js") && !parsed.pathname.endsWith(".js.map");
170
+ };
171
+ const pageQueue = [];
172
+ const enqueued = new Set();
173
+ const enqueueIfPage = (u) => {
174
+ if (this.visitedPageUrls.has(u) || enqueued.has(u))
175
+ return;
176
+ if (!isPageUrl(u))
177
+ return;
178
+ enqueued.add(u);
179
+ pageQueue.push(u);
180
+ };
181
+ for (const u of jsUrls)
182
+ enqueueIfPage(u);
183
+ for (const u of newInThisPass)
184
+ enqueueIfPage(u);
185
+ for (const u of pageQueue) {
186
+ if (this.visitedPageUrls.has(u))
187
+ continue;
188
+ this.visitedPageUrls.add(u);
189
+ const extra = yield next_getJSScript(u);
190
+ // If return value is invalid, log and crash
191
+ if (!extra || !Array.isArray(extra)) {
192
+ console.error(`[NextJsCrawler] Invalid return value from next_getJSScript for URL: ${u}`);
193
+ console.error(`[NextJsCrawler] Returned value:`, extra);
194
+ process.exit(1);
149
195
  }
196
+ this.techniqueEfficiencyMapping["next_getJSScript"] = [
197
+ ...(this.techniqueEfficiencyMapping["next_getJSScript"] || []),
198
+ ...extra,
199
+ ];
200
+ const newFromScripts = this.registerUrls(extra);
201
+ this.emitDownloadable(newFromScripts);
202
+ newInThisPass.push(...newFromScripts);
203
+ for (const x of newFromScripts)
204
+ enqueueIfPage(x);
205
+ // Harvest <a href> links from this page so we keep expanding
206
+ // the crawl frontier.
207
+ const morePaths = yield next_getClientSidePaths(u);
208
+ this.techniqueEfficiencyMapping["next_getClientSidePaths"] = [
209
+ ...(this.techniqueEfficiencyMapping["next_getClientSidePaths"] || []),
210
+ ...morePaths,
211
+ ];
212
+ const newFromAnchors = this.registerUrls(morePaths);
213
+ this.emitDownloadable(newFromAnchors);
214
+ newInThisPass.push(...newFromAnchors);
215
+ for (const x of newFromAnchors)
216
+ enqueueIfPage(x);
150
217
  }
151
218
  return newInThisPass;
152
219
  });
@@ -185,8 +252,18 @@ class NextJsCrawler {
185
252
  const allJsUrls = [...this.discoveredUrls].filter((u) => u.endsWith(".js") || u.endsWith(".js.map"));
186
253
  const jsFromBrute = yield next_bruteForceJsFiles(allJsUrls);
187
254
  this.techniqueEfficiencyMapping["next_bruteForceJsFiles"] = jsFromBrute;
188
- this.registerUrls(jsFromBrute);
189
- return [...this.discoveredUrls];
255
+ this.emitDownloadable(this.registerUrls(jsFromBrute));
256
+ // Only return downloadable assets. Anchor-derived page URLs live in
257
+ // discoveredUrls to drive the crawl, but must not reach downloadFiles.
258
+ return [...this.discoveredUrls].filter((u) => {
259
+ try {
260
+ const p = new URL(u).pathname;
261
+ return p.endsWith(".js") || p.endsWith(".js.map");
262
+ }
263
+ catch (_a) {
264
+ return false;
265
+ }
266
+ });
190
267
  });
191
268
  }
192
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NextJsCrawler.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/NextJsCrawler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NextJsCrawler.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/NextJsCrawler.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ // lazyLoad/nextGetJSScript.js
11
+ import chalk from "chalk";
10
12
  import { URL } from "url";
11
13
  import * as cheerio from "cheerio";
12
14
  import makeRequest from "../../utility/makeReq.js";
13
15
  import { getJsUrls } from "../globals.js";
16
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
14
17
  /**
15
18
  * Scrapes all lazy-loaded JavaScript file URLs from the provided Next.js page.
16
19
  *
@@ -22,10 +25,24 @@ import { getJsUrls } from "../globals.js";
22
25
  * @returns {Promise<string[]>} - A promise that resolves to an array of absolute URLs
23
26
  * pointing to JavaScript files found in the page.
24
27
  */
28
+ const MAX_FETCH_ATTEMPTS = 5;
25
29
  const next_getJSScript = (url) => __awaiter(void 0, void 0, void 0, function* () {
26
30
  const toReturn = [];
27
- // get the page source
28
- const res = yield makeRequest(url, {});
31
+ // get the page source — bounded retry so an unreachable host can't hang the crawler
32
+ let res = null;
33
+ for (let attempt = 1; attempt <= MAX_FETCH_ATTEMPTS; attempt++) {
34
+ res = yield makeRequest(url, {});
35
+ if (res)
36
+ break;
37
+ if (attempt < MAX_FETCH_ATTEMPTS) {
38
+ console.log(chalk.yellow(`[!] Request to ${url} failed, retrying (${attempt}/${MAX_FETCH_ATTEMPTS})...`));
39
+ yield sleep(1000);
40
+ }
41
+ }
42
+ if (!res) {
43
+ console.log(chalk.red(`[!] Giving up on ${url} after ${MAX_FETCH_ATTEMPTS} attempts`));
44
+ return toReturn;
45
+ }
29
46
  const pageSource = yield res.text();
30
47
  // cheerio to parse the page source
31
48
  const $ = cheerio.load(pageSource);
@@ -73,7 +90,7 @@ const next_getJSScript = (url) => __awaiter(void 0, void 0, void 0, function* ()
73
90
  // if the script tag is inline, it could contain static JS URL
74
91
  // to get these, simply regex from the JS script
75
92
  const js_script = $(scriptTag).html();
76
- const matches = js_script.match(/static\/chunks\/[a-zA-Z0-9_\-]+\.js/g);
93
+ const matches = js_script === null || js_script === void 0 ? void 0 : js_script.match(/static\/chunks\/[a-zA-Z0-9_\-~.]+\.js/g);
77
94
  if (matches) {
78
95
  const uniqueMatches = [...new Set(matches)];
79
96
  for (const match of uniqueMatches) {
@@ -1 +1 @@
1
- {"version":3,"file":"next_GetJSScript.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_GetJSScript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next_GetJSScript.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_GetJSScript.ts"],"names":[],"mappings":"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"}