@shriyanss/js-recon 1.3.1-alpha.3 → 1.3.1-beta.1

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 (138) hide show
  1. package/.github/workflows/build-and-prettify.yaml +15 -1
  2. package/.github/workflows/publish-js-recon.yml +13 -1
  3. package/CHANGELOG.md +84 -0
  4. package/CLAUDE.md +104 -11
  5. package/Dockerfile +16 -2
  6. package/README.md +4 -0
  7. package/build/analyze/engine/astEngine.js +57 -29
  8. package/build/analyze/engine/astEngine.js.map +1 -1
  9. package/build/analyze/engine/index.js.map +1 -1
  10. package/build/analyze/helpers/engineHelpers/taintFlow.js +32 -0
  11. package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -1
  12. package/build/analyze/helpers/initRules.js +9 -0
  13. package/build/analyze/helpers/initRules.js.map +1 -1
  14. package/build/analyze/helpers/schemas.js +5 -1
  15. package/build/analyze/helpers/schemas.js.map +1 -1
  16. package/build/analyze/index.js +7 -2
  17. package/build/analyze/index.js.map +1 -1
  18. package/build/endpoints/next_js/client_mappedJsonFile.js +12 -5
  19. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  20. package/build/fingerprint/index.js +123 -0
  21. package/build/fingerprint/index.js.map +1 -0
  22. package/build/globalConfig.js +1 -1
  23. package/build/globalConfig.js.map +1 -1
  24. package/build/index.js +51 -4
  25. package/build/index.js.map +1 -1
  26. package/build/lazyLoad/downloadQueue.js +9 -8
  27. package/build/lazyLoad/downloadQueue.js.map +1 -1
  28. package/build/lazyLoad/index.js +260 -163
  29. package/build/lazyLoad/index.js.map +1 -1
  30. package/build/lazyLoad/next_js/NextJsCrawler.js +58 -16
  31. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
  32. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +149 -139
  33. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  34. package/build/lazyLoad/next_js/next_SubsequentRequests.js +25 -4
  35. package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
  36. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +13 -5
  37. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
  38. package/build/lazyLoad/react/react_followImports.js +105 -0
  39. package/build/lazyLoad/react/react_followImports.js.map +1 -0
  40. package/build/lazyLoad/react/react_getScriptTags.js +28 -5
  41. package/build/lazyLoad/react/react_getScriptTags.js.map +1 -1
  42. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js +162 -0
  43. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js.map +1 -0
  44. package/build/lazyLoad/svelte/svelte_getFromPageSource.js +15 -0
  45. package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
  46. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js +180 -0
  47. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js.map +1 -0
  48. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +15 -1
  49. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
  50. package/build/lazyLoad/techDetect/checkReact.js +67 -36
  51. package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
  52. package/build/lazyLoad/techDetect/checkSvelte.js +35 -35
  53. package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
  54. package/build/lazyLoad/techDetect/index.js +10 -6
  55. package/build/lazyLoad/techDetect/index.js.map +1 -1
  56. package/build/lazyLoad/vue/vue_getClientSidePaths.js +6 -0
  57. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
  58. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +6 -0
  59. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
  60. package/build/lazyLoad/vue/vue_stringJsFiles.js +6 -0
  61. package/build/lazyLoad/vue/vue_stringJsFiles.js.map +1 -1
  62. package/build/map/graphql/resolveGraphql.js +296 -0
  63. package/build/map/graphql/resolveGraphql.js.map +1 -0
  64. package/build/map/index.js +93 -1
  65. package/build/map/index.js.map +1 -1
  66. package/build/map/next_js/interactive_helpers/commandHandler.js +4 -0
  67. package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -1
  68. package/build/map/next_js/interactive_helpers/commandHelpers.js +28 -0
  69. package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
  70. package/build/map/next_js/interactive_helpers/helpMenu.js +1 -1
  71. package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -1
  72. package/build/map/next_js/resolveServerActions.js +449 -0
  73. package/build/map/next_js/resolveServerActions.js.map +1 -0
  74. package/build/map/next_js/utils.js +1 -0
  75. package/build/map/next_js/utils.js.map +1 -1
  76. package/build/map/react_js/getReactConnections.js +298 -0
  77. package/build/map/react_js/getReactConnections.js.map +1 -0
  78. package/build/map/react_js/interactive.js +4 -0
  79. package/build/map/react_js/interactive.js.map +1 -0
  80. package/build/map/react_js/react_resolveFetch.js +6 -0
  81. package/build/map/react_js/react_resolveFetch.js.map +1 -0
  82. package/build/map/svelte_js/interactive.js +58 -0
  83. package/build/map/svelte_js/interactive.js.map +1 -0
  84. package/build/map/svelte_js/interactive_helpers/commandHandler.js +4 -0
  85. package/build/map/svelte_js/interactive_helpers/commandHandler.js.map +1 -0
  86. package/build/map/vue_js/bodyResolver.js +477 -0
  87. package/build/map/vue_js/bodyResolver.js.map +1 -0
  88. package/build/map/vue_js/crossFileResolver.js +438 -0
  89. package/build/map/vue_js/crossFileResolver.js.map +1 -0
  90. package/build/map/vue_js/getViteConnections.js +150 -129
  91. package/build/map/vue_js/getViteConnections.js.map +1 -1
  92. package/build/map/vue_js/taint_utils.js +621 -0
  93. package/build/map/vue_js/taint_utils.js.map +1 -0
  94. package/build/map/vue_js/vue_resolveFetch.js +79 -392
  95. package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
  96. package/build/map/vue_js/vue_resolveHttpClient.js +733 -0
  97. package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -0
  98. package/build/map/vue_js/vue_resolveXhr.js +279 -0
  99. package/build/map/vue_js/vue_resolveXhr.js.map +1 -0
  100. package/build/mcp/chatOneShot.js +101 -0
  101. package/build/mcp/chatOneShot.js.map +1 -0
  102. package/build/mcp/claudeCodeCreds.js +150 -0
  103. package/build/mcp/claudeCodeCreds.js.map +1 -0
  104. package/build/mcp/cli.js +140 -149
  105. package/build/mcp/cli.js.map +1 -1
  106. package/build/mcp/commands.js +80 -0
  107. package/build/mcp/commands.js.map +1 -1
  108. package/build/mcp/index.js +30 -9
  109. package/build/mcp/index.js.map +1 -1
  110. package/build/mcp/intent.js +204 -0
  111. package/build/mcp/intent.js.map +1 -0
  112. package/build/mcp/jobs.js +199 -0
  113. package/build/mcp/jobs.js.map +1 -0
  114. package/build/mcp/mcpServer.js +241 -0
  115. package/build/mcp/mcpServer.js.map +1 -0
  116. package/build/mcp/providers.js +18 -1
  117. package/build/mcp/providers.js.map +1 -1
  118. package/build/mcp/skills.js +115 -0
  119. package/build/mcp/skills.js.map +1 -0
  120. package/build/refactor/index.js +6 -0
  121. package/build/refactor/index.js.map +1 -1
  122. package/build/refactor/react/index.js +636 -0
  123. package/build/refactor/react/index.js.map +1 -0
  124. package/build/run/index.js +260 -60
  125. package/build/run/index.js.map +1 -1
  126. package/build/run/interruptHandler.js +93 -0
  127. package/build/run/interruptHandler.js.map +1 -0
  128. package/build/utility/globals.js +29 -0
  129. package/build/utility/globals.js.map +1 -1
  130. package/build/utility/makeReq.js +14 -2
  131. package/build/utility/makeReq.js.map +1 -1
  132. package/build/utility/openapiGenerator.js +46 -14
  133. package/build/utility/openapiGenerator.js.map +1 -1
  134. package/build/utility/postmanGenerator.js +62 -13
  135. package/build/utility/postmanGenerator.js.map +1 -1
  136. package/build/utility/progressLog.js +50 -0
  137. package/build/utility/progressLog.js.map +1 -0
  138. package/package.json +12 -9
@@ -28,6 +28,8 @@ import * as lazyLoadGlobals from "../globals.js";
28
28
  */
29
29
  class NextJsCrawler {
30
30
  constructor(options) {
31
+ /** Set to true by stop() to abort the crawl loop gracefully. */
32
+ this.stopped = false;
31
33
  this.url = options.url;
32
34
  this.output = options.output;
33
35
  this.subsequentRequestsFlag = options.subsequentRequestsFlag;
@@ -37,10 +39,31 @@ class NextJsCrawler {
37
39
  this.MAX_ITERATIONS = options.maxIterations;
38
40
  this.onUrlsDiscovered = options.onUrlsDiscovered;
39
41
  this.discoveredUrls = new Set();
40
- this.visitedPageUrls = new Set();
42
+ this.pageScriptFingerprints = new Map();
41
43
  this.techniqueEfficiencyMapping = {};
42
44
  }
43
45
  // ── helpers ──────────────────────────────────────────────────────────
46
+ /**
47
+ * Normalizes a page URL to origin+pathname, stripping query and fragment.
48
+ * Used as the key for pageScriptFingerprints.
49
+ */
50
+ normalizePageUrl(u) {
51
+ try {
52
+ const parsed = new URL(u);
53
+ return parsed.origin + parsed.pathname;
54
+ }
55
+ catch (_a) {
56
+ return u;
57
+ }
58
+ }
59
+ /** Produces a stable fingerprint for a set of script URLs. */
60
+ scriptFingerprint(scripts) {
61
+ return [...new Set(scripts)].sort().join(",");
62
+ }
63
+ /** Signal the crawl loop to stop after the current iteration. */
64
+ stop() {
65
+ this.stopped = true;
66
+ }
44
67
  /** Register newly found URLs and return only the ones that are truly new. */
45
68
  registerUrls(urls) {
46
69
  const newUrls = [];
@@ -86,7 +109,10 @@ class NextJsCrawler {
86
109
  ...jsFromScriptTag,
87
110
  ];
88
111
  this.emitDownloadable(this.registerUrls(jsFromScriptTag));
89
- this.visitedPageUrls.add(this.url);
112
+ // Record the landing page's script fingerprint so the recursive loop
113
+ // never re-probes it.
114
+ const landingNorm = this.normalizePageUrl(this.url);
115
+ this.pageScriptFingerprints.set(landingNorm, new Set([this.scriptFingerprint(jsFromScriptTag)]));
90
116
  // 1b. Client-side paths from <a href> tags on the landing page.
91
117
  // These are page URLs (not JS), so they'll be picked up by the
92
118
  // recursivePass loop which visits any newly registered non-JS URL.
@@ -169,10 +195,10 @@ class NextJsCrawler {
169
195
  return !parsed.pathname.endsWith(".js") && !parsed.pathname.endsWith(".js.map");
170
196
  };
171
197
  const pageQueue = [];
172
- const enqueued = new Set();
198
+ const enqueued = new Set(); // tracks full URLs to avoid duplicate entries per pass
173
199
  const enqueueIfPage = (u) => {
174
- if (this.visitedPageUrls.has(u) || enqueued.has(u))
175
- return;
200
+ if (enqueued.has(u))
201
+ return; // exact URL already queued this pass
176
202
  if (!isPageUrl(u))
177
203
  return;
178
204
  enqueued.add(u);
@@ -183,16 +209,27 @@ class NextJsCrawler {
183
209
  for (const u of newInThisPass)
184
210
  enqueueIfPage(u);
185
211
  for (const u of pageQueue) {
186
- if (this.visitedPageUrls.has(u))
187
- continue;
188
- this.visitedPageUrls.add(u);
212
+ if (this.stopped)
213
+ break; // honour stop() at each iteration boundary
214
+ const normalized = this.normalizePageUrl(u);
215
+ // Fetch scripts first — used for both fingerprinting and URL registration.
189
216
  const extra = yield next_getJSScript(u);
190
- // If return value is invalid, log and crash
191
217
  if (!extra || !Array.isArray(extra)) {
192
218
  console.error(`[NextJsCrawler] Invalid return value from next_getJSScript for URL: ${u}`);
193
219
  console.error(`[NextJsCrawler] Returned value:`, extra);
194
220
  process.exit(1);
195
221
  }
222
+ // Content-entropy dedup: skip this variant if its script set matches
223
+ // a fingerprint already recorded for this pathname.
224
+ const fp = this.scriptFingerprint(extra);
225
+ const knownFPs = this.pageScriptFingerprints.get(normalized);
226
+ if (knownFPs === null || knownFPs === void 0 ? void 0 : knownFPs.has(fp))
227
+ continue;
228
+ // New content for this pathname — record fingerprint and process.
229
+ if (!this.pageScriptFingerprints.has(normalized)) {
230
+ this.pageScriptFingerprints.set(normalized, new Set());
231
+ }
232
+ this.pageScriptFingerprints.get(normalized).add(fp);
196
233
  this.techniqueEfficiencyMapping["next_getJSScript"] = [
197
234
  ...(this.techniqueEfficiencyMapping["next_getJSScript"] || []),
198
235
  ...extra,
@@ -232,7 +269,7 @@ class NextJsCrawler {
232
269
  // Phase 2 – recursive lightweight passes
233
270
  let currentBatch = [...this.discoveredUrls];
234
271
  let iteration = 0;
235
- while (iteration < this.MAX_ITERATIONS) {
272
+ while (iteration < this.MAX_ITERATIONS && !this.stopped) {
236
273
  iteration++;
237
274
  const sizeBefore = this.size;
238
275
  console.log(chalk.cyan(`[i] Recursive crawl pass ${iteration} – ${sizeBefore} URLs known`));
@@ -245,14 +282,19 @@ class NextJsCrawler {
245
282
  // Next pass only analyses the newly found URLs
246
283
  currentBatch = newUrls;
247
284
  }
248
- if (iteration >= this.MAX_ITERATIONS) {
285
+ if (this.stopped) {
286
+ console.log(chalk.yellow(`[!] Crawler stopped — downloading all discovered files`));
287
+ }
288
+ else if (iteration >= this.MAX_ITERATIONS) {
249
289
  console.log(chalk.yellow(`[!] Reached max recursive crawl iterations (${this.MAX_ITERATIONS})`));
250
290
  }
251
- // Phase 3 – brute-force .map files on the final set
252
- const allJsUrls = [...this.discoveredUrls].filter((u) => u.endsWith(".js") || u.endsWith(".js.map"));
253
- const jsFromBrute = yield next_bruteForceJsFiles(allJsUrls);
254
- this.techniqueEfficiencyMapping["next_bruteForceJsFiles"] = jsFromBrute;
255
- this.emitDownloadable(this.registerUrls(jsFromBrute));
291
+ // Phase 3 – brute-force .map files on the final set (skip if stopped by timeout)
292
+ if (!this.stopped) {
293
+ const allJsUrls = [...this.discoveredUrls].filter((u) => u.endsWith(".js") || u.endsWith(".js.map"));
294
+ const jsFromBrute = yield next_bruteForceJsFiles(allJsUrls);
295
+ this.techniqueEfficiencyMapping["next_bruteForceJsFiles"] = jsFromBrute;
296
+ this.emitDownloadable(this.registerUrls(jsFromBrute));
297
+ }
256
298
  // Only return downloadable assets. Anchor-derived page URLs live in
257
299
  // discoveredUrls to drive the crawl, but must not reach downloadFiles.
258
300
  return [...this.discoveredUrls].filter((u) => {
@@ -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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"}
@@ -13,24 +13,28 @@ import parser from "@babel/parser";
13
13
  import _traverse from "@babel/traverse";
14
14
  const traverse = _traverse.default;
15
15
  import inquirer from "inquirer";
16
- import CONFIG from "../../globalConfig.js";
16
+ import cliProgress from "cli-progress";
17
17
  import makeRequest from "../../utility/makeReq.js";
18
18
  import execFunc from "../../utility/runSandboxed.js";
19
- import { getJsonUrls, getJsUrls, pushToJsonUrls, pushToJsUrls } from "../globals.js"; // Import js_urls functions
19
+ import { getJsonUrls, getJsUrls, pushToJsonUrls, pushToJsUrls } from "../globals.js";
20
20
  import * as globals from "../../utility/globals.js";
21
+ import { setActiveBarLogger, computeBarSize, watchBarResize } from "../../utility/progressLog.js";
21
22
  /**
22
- * Finds all the lazy loaded JS files from a given URL using a Next.js
23
- * specific approach. It works by first parsing the HTML of the page
24
- * and then extracting all the JS files from it. Then it parses the
25
- * contents of each JS file and extracts all the functions from it.
26
- * Then it iterates through the functions and finds out which one
27
- * ends with `.js`. It then asks the user if this is the correct
28
- * function, and if so, it proceeds to use the function to fetch
29
- * all the lazy loaded JS files.
23
+ * Discovers lazy-loaded JS chunk URLs by scanning ALL JS files loaded during the
24
+ * initial page visit, not just webpack-named files.
30
25
  *
31
- * @param {string} url - The URL of the webpage to fetch and parse.
32
- * @returns {Promise<string[]>} - A promise that resolves to an array of absolute URLs pointing to
33
- * JavaScript files found in the page, or an empty array when no files are discovered.
26
+ * Workflow:
27
+ * 1. Load the page via Puppeteer to capture every network JS request.
28
+ * 2. Scan each discovered JS file for functions that end in `".js"` the
29
+ * signature of a webpack chunk URL builder (e.g. __webpack_require__.u).
30
+ * A progress bar shows how many files have been checked.
31
+ * 3. For each matched function, show the source and ask the user to approve or
32
+ * deny execution. If the `--yes` / `-y` flag is set, auto-approve.
33
+ * 4. Execute approved functions with every integer found in their source and
34
+ * collect the resulting chunk paths as absolute URLs.
35
+ *
36
+ * @param {string} url - The URL of the page to crawl.
37
+ * @returns {Promise<string[]>} Deduplicated absolute URLs of discovered JS chunks.
34
38
  */
35
39
  const next_GetLazyResourcesWebpackJs = (url) => __awaiter(void 0, void 0, void 0, function* () {
36
40
  const browser = yield puppeteer.launch({
@@ -40,15 +44,12 @@ const next_GetLazyResourcesWebpackJs = (url) => __awaiter(void 0, void 0, void 0
40
44
  const page = yield browser.newPage();
41
45
  yield page.setRequestInterception(true);
42
46
  page.on("request", (request) => __awaiter(void 0, void 0, void 0, function* () {
43
- // get the request url
44
- const req_url = request.url(); // Renamed to avoid conflict with outer 'url'
45
- // see if the request is a JS file, and is a get request
47
+ const req_url = request.url();
46
48
  if (request.method() === "GET" && req_url.match(/https?:\/\/[a-z0-9:\._\-]+\/.+\.js\??.*/)) {
47
49
  if (!getJsUrls().includes(req_url)) {
48
50
  pushToJsUrls(req_url);
49
51
  }
50
52
  }
51
- // check if the request is a JSON file with a get request
52
53
  if (request.method() === "GET" && req_url.match(/https?:\/\/[\d\w\.\-]+\/.+\.json\??.*$/)) {
53
54
  if (!getJsonUrls().includes(req_url)) {
54
55
  pushToJsonUrls(req_url);
@@ -59,154 +60,163 @@ const next_GetLazyResourcesWebpackJs = (url) => __awaiter(void 0, void 0, void 0
59
60
  try {
60
61
  yield page.goto(url, { waitUntil: "networkidle0" });
61
62
  }
62
- catch (err) {
63
+ catch (_a) {
63
64
  console.log(chalk.yellow("[!] Timeout reached for page load. Continuing with the current state"));
64
65
  }
65
66
  yield browser.close();
66
- let webpack_js = "";
67
- // iterate through JS files
68
- for (const js_url of getJsUrls()) {
69
- // match for webpack js file
70
- if (js_url.match(/\/webpack.*\.js/)) {
71
- console.log(chalk.green(`[✓] Found webpack JS file at ${js_url}`));
72
- webpack_js = js_url;
73
- }
74
- }
75
- if (!webpack_js) {
76
- console.log(chalk.red("[!] No webpack JS file found"));
77
- console.log(chalk.magenta(CONFIG.notFoundMessage));
67
+ const jsUrls = getJsUrls();
68
+ if (jsUrls.length === 0) {
69
+ console.log(chalk.yellow("[!] No JS files discovered during page load"));
78
70
  return [];
79
71
  }
80
- // parse the webpack JS file
81
- const res = yield makeRequest(webpack_js, {});
82
- const webpack_js_source = yield res.text();
83
- // parse it with @babel/*
84
- const ast = parser.parse(webpack_js_source, {
85
- sourceType: "unambiguous",
86
- plugins: ["jsx", "typescript"],
87
- errorRecovery: true,
88
- });
89
- const functions = [];
90
- traverse(ast, {
91
- FunctionDeclaration(path) {
92
- var _a;
93
- functions.push({
94
- name: ((_a = path.node.id) === null || _a === void 0 ? void 0 : _a.name) || "(anonymous)",
95
- type: "FunctionDeclaration",
96
- source: webpack_js_source.slice(path.node.start, path.node.end),
97
- });
98
- },
99
- FunctionExpression(path) {
100
- var _a;
101
- functions.push({
102
- name: ((_a = path.parent.id) === null || _a === void 0 ? void 0 : _a.name) || "(anonymous)",
103
- type: "FunctionExpression",
104
- source: webpack_js_source.slice(path.node.start, path.node.end),
105
- });
106
- },
107
- ArrowFunctionExpression(path) {
108
- var _a;
109
- functions.push({
110
- name: ((_a = path.parent.id) === null || _a === void 0 ? void 0 : _a.name) || "(anonymous)",
111
- type: "ArrowFunctionExpression",
112
- source: webpack_js_source.slice(path.node.start, path.node.end),
113
- });
114
- },
115
- ObjectMethod(path) {
116
- functions.push({
117
- name: path.node.key.name,
118
- type: "ObjectMethod",
119
- source: webpack_js_source.slice(path.node.start, path.node.end),
120
- });
121
- },
122
- ClassMethod(path) {
123
- functions.push({
124
- name: path.node.key.name,
125
- type: "ClassMethod",
126
- source: webpack_js_source.slice(path.node.start, path.node.end),
72
+ console.log(chalk.cyan(`[i] Scanning ${jsUrls.length} JS file(s) for chunk URL builders`));
73
+ // ── progress bar ──────────────────────────────────────────────────────
74
+ const FORMAT = ` ${chalk.cyan("Scanning")} [{bar}] {percentage}% | {value}/{total}`;
75
+ const overhead = 42;
76
+ const bar = new cliProgress.SingleBar({
77
+ format: FORMAT,
78
+ barsize: computeBarSize(overhead),
79
+ hideCursor: true,
80
+ clearOnComplete: true,
81
+ }, cliProgress.Presets.shades_classic);
82
+ bar.start(jsUrls.length, 0);
83
+ setActiveBarLogger(bar);
84
+ const stopResize = watchBarResize(bar, overhead);
85
+ const matched = [];
86
+ let processed = 0;
87
+ for (const jsUrl of jsUrls) {
88
+ try {
89
+ const res = yield makeRequest(jsUrl, {});
90
+ if (!res || res.status !== 200) {
91
+ processed++;
92
+ bar.update(processed);
93
+ continue;
94
+ }
95
+ const jsContent = yield res.text();
96
+ // Fast path: skip files that cannot possibly contain the pattern
97
+ if (!jsContent.includes('".js"')) {
98
+ processed++;
99
+ bar.update(processed);
100
+ continue;
101
+ }
102
+ let ast;
103
+ try {
104
+ ast = parser.parse(jsContent, {
105
+ sourceType: "unambiguous",
106
+ plugins: ["jsx", "typescript"],
107
+ errorRecovery: true,
108
+ });
109
+ }
110
+ catch (_b) {
111
+ processed++;
112
+ bar.update(processed);
113
+ continue;
114
+ }
115
+ traverse(ast, {
116
+ FunctionDeclaration(p) {
117
+ var _a, _b;
118
+ const start = (_a = p.node.start) !== null && _a !== void 0 ? _a : 0;
119
+ const end = (_b = p.node.end) !== null && _b !== void 0 ? _b : jsContent.length;
120
+ const source = jsContent.slice(start, end);
121
+ if (source.match(/"\.js".{0,15}$/))
122
+ matched.push({ source, jsUrl });
123
+ },
124
+ FunctionExpression(p) {
125
+ var _a, _b;
126
+ const start = (_a = p.node.start) !== null && _a !== void 0 ? _a : 0;
127
+ const end = (_b = p.node.end) !== null && _b !== void 0 ? _b : jsContent.length;
128
+ const source = jsContent.slice(start, end);
129
+ if (source.match(/"\.js".{0,15}$/))
130
+ matched.push({ source, jsUrl });
131
+ },
132
+ ArrowFunctionExpression(p) {
133
+ var _a, _b;
134
+ const start = (_a = p.node.start) !== null && _a !== void 0 ? _a : 0;
135
+ const end = (_b = p.node.end) !== null && _b !== void 0 ? _b : jsContent.length;
136
+ const source = jsContent.slice(start, end);
137
+ if (source.match(/"\.js".{0,15}$/))
138
+ matched.push({ source, jsUrl });
139
+ },
140
+ ObjectMethod(p) {
141
+ var _a, _b;
142
+ const start = (_a = p.node.start) !== null && _a !== void 0 ? _a : 0;
143
+ const end = (_b = p.node.end) !== null && _b !== void 0 ? _b : jsContent.length;
144
+ const source = jsContent.slice(start, end);
145
+ if (source.match(/"\.js".{0,15}$/))
146
+ matched.push({ source, jsUrl });
147
+ },
148
+ ClassMethod(p) {
149
+ var _a, _b;
150
+ const start = (_a = p.node.start) !== null && _a !== void 0 ? _a : 0;
151
+ const end = (_b = p.node.end) !== null && _b !== void 0 ? _b : jsContent.length;
152
+ const source = jsContent.slice(start, end);
153
+ if (source.match(/"\.js".{0,15}$/))
154
+ matched.push({ source, jsUrl });
155
+ },
127
156
  });
128
- },
129
- });
130
- let user_verified = false;
131
- // method 1
132
- // iterate through the functions, and find out which one ends with `".js"`
133
- let final_Func;
134
- for (const func of functions) {
135
- if (func.source.match(/"\.js".{0,15}$/)) {
136
- console.log(chalk.green(`[✓] Found JS chunk having the following source`));
137
- console.log(chalk.yellow(func.source));
138
- final_Func = func.source;
139
157
  }
158
+ catch (_c) {
159
+ // skip files with fetch/parse errors
160
+ }
161
+ processed++;
162
+ bar.update(processed);
140
163
  }
141
- if (!final_Func) {
142
- // Added check if final_Func was not found
143
- console.log(chalk.red("[!] No suitable function found in webpack JS for lazy loading."));
164
+ bar.stop();
165
+ setActiveBarLogger(null);
166
+ stopResize();
167
+ if (matched.length === 0) {
168
+ console.log(chalk.yellow("[!] No chunk URL builder functions found in discovered JS files"));
144
169
  return [];
145
170
  }
146
- // ask through input if this is the right thing
147
- if (!globals.getYes()) {
148
- const askCorrectFuncConfirmation = () => __awaiter(void 0, void 0, void 0, function* () {
171
+ console.log(chalk.green(`[✓] Found ${matched.length} chunk URL builder function(s)`));
172
+ // ── user approval and execution ───────────────────────────────────────
173
+ const chunkUrls = [];
174
+ for (const { source, jsUrl } of matched) {
175
+ console.log(chalk.green(`[✓] Found chunk URL builder in ${jsUrl}`));
176
+ console.log(chalk.yellow(source));
177
+ let approved;
178
+ if (globals.getYes()) {
179
+ approved = true;
180
+ }
181
+ else {
149
182
  const { confirmed } = yield inquirer.prompt([
150
183
  {
151
184
  type: "confirm",
152
185
  name: "confirmed",
153
- message: "Is this the correct function?",
186
+ message: "Execute this function to enumerate chunk URLs?",
154
187
  default: true,
155
188
  },
156
189
  ]);
157
- return confirmed;
158
- });
159
- user_verified = yield askCorrectFuncConfirmation();
160
- if (user_verified === true) {
161
- console.log(chalk.cyan("[i] Proceeding with the selected function to fetch files"));
190
+ approved = confirmed;
162
191
  }
163
- else {
164
- console.log(chalk.red("[!] Not executing function."));
165
- return [];
192
+ if (!approved) {
193
+ console.log(chalk.red("[!] Skipping function."));
194
+ continue;
166
195
  }
167
- }
168
- const urlBuilderFunc = `(() => (${final_Func}))()`;
169
- const js_paths = [];
170
- try {
171
- // rather than fuzzing, grep the integers from the func code
172
- const integers = final_Func.match(/\d+/g);
173
- if (integers) {
174
- // Check if integers were found
175
- // iterate through all integers, and get the output
196
+ console.log(chalk.cyan("[i] Executing function to enumerate chunk URLs"));
197
+ const urlBuilderFunc = `(() => (${source}))()`;
198
+ const integers = source.match(/\d+/g);
199
+ if (!integers)
200
+ continue;
201
+ const baseDir = jsUrl.split("/").slice(0, -2).join("/");
202
+ try {
176
203
  for (const i of integers) {
177
204
  const output = execFunc(urlBuilderFunc, parseInt(i));
178
- if (output.includes("undefined")) {
205
+ if (typeof output !== "string" || output.includes("undefined"))
179
206
  continue;
180
- }
181
- else {
182
- js_paths.push(output);
183
- }
207
+ const fullUrl = new URL(output, baseDir).href;
208
+ chunkUrls.push(fullUrl);
184
209
  }
185
210
  }
211
+ catch (err) {
212
+ console.error(chalk.red("Unsafe or invalid code:", err.message));
213
+ }
186
214
  }
187
- catch (err) {
188
- console.error(chalk.red("Unsafe or invalid code:", err.message));
189
- return [];
190
- }
191
- if (js_paths.length > 0) {
192
- console.log(chalk.green(`[✓] Found ${js_paths.length} JS chunks`));
193
- }
194
- // build final URL
195
- const final_urls = [];
196
- for (let i = 0; i < js_paths.length; i++) {
197
- // following is a broken logic
198
- // get the directory of webpack file
199
- // const webpack_dir = webpack_js.split("/").slice(0, -1).join("/");
200
- // // replace the filename from the js path
201
- // const js_path_dir = js_paths[i].replace(/\/[a-zA-Z0-9\.]+\.js.*$/, "");
202
- // const final_url = webpack_dir.replace(js_path_dir, js_paths[i]);
203
- // final_urls.push(final_url);
204
- // logic that works:
205
- const webpack_dir = webpack_js.split("/").slice(0, -2).join("/");
206
- const js_path_dir = new URL(js_paths[i], webpack_dir).href;
207
- final_urls.push(js_path_dir);
215
+ const unique = [...new Set(chunkUrls)];
216
+ if (unique.length > 0) {
217
+ console.log(chalk.green(`[] Found ${unique.length} JS chunk URL(s)`));
208
218
  }
209
- return final_urls;
219
+ return unique;
210
220
  });
211
221
  export default next_GetLazyResourcesWebpackJs;
212
222
  //# sourceMappingURL=next_GetLazyResourcesWebpackJs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"next_GetLazyResourcesWebpackJs.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,oCAAoC,CAAC;AAC3D,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;AACnC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC,CAAC,2BAA2B;AACjH,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAQpD;;;;;;;;;;;;;GAaG;AACH,MAAM,8BAA8B,GAAG,CAAO,GAAW,EAAqB,EAAE;IAC5E,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;KACxF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAO,OAAO,EAAE,EAAE;QACjC,sBAAsB;QACtB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,6CAA6C;QAE5E,wDAAwD;QACxD,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,EAAE,CAAC;YACzF,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,yDAAyD;QACzD,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,EAAE,CAAC;YACxF,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,cAAc,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QACD,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sEAAsE,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAEtB,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,2BAA2B;IAC3B,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,EAAE,CAAC;QAC/B,4BAA4B;QAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC,CAAC;YACnE,UAAU,GAAG,MAAM,CAAC;QACxB,CAAC;IACL,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,4BAA4B;IAC5B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAE3C,yBAAyB;IACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;QACxC,UAAU,EAAE,aAAa;QACzB,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;QAC9B,aAAa,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAwB,EAAE,CAAC;IAE1C,QAAQ,CAAC,GAAG,EAAE;QACV,mBAAmB,CAAC,IAAI;;YACpB,SAAS,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,EAAE,0CAAE,IAAI,KAAI,aAAa;gBACzC,IAAI,EAAE,qBAAqB;gBAC3B,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aAClE,CAAC,CAAC;QACP,CAAC;QACD,kBAAkB,CAAC,IAAI;;YACnB,SAAS,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,CAAA,MAAC,IAAI,CAAC,MAAc,CAAC,EAAE,0CAAE,IAAI,KAAI,aAAa;gBACpD,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aAClE,CAAC,CAAC;QACP,CAAC;QACD,uBAAuB,CAAC,IAAI;;YACxB,SAAS,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,CAAA,MAAC,IAAI,CAAC,MAAc,CAAC,EAAE,0CAAE,IAAI,KAAI,aAAa;gBACpD,IAAI,EAAE,yBAAyB;gBAC/B,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aAClE,CAAC,CAAC;QACP,CAAC;QACD,YAAY,CAAC,IAAI;YACb,SAAS,CAAC,IAAI,CAAC;gBACX,IAAI,EAAG,IAAI,CAAC,IAAI,CAAC,GAAW,CAAC,IAAI;gBACjC,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aAClE,CAAC,CAAC;QACP,CAAC;QACD,WAAW,CAAC,IAAI;YACZ,SAAS,CAAC,IAAI,CAAC;gBACX,IAAI,EAAG,IAAI,CAAC,IAAI,CAAC,GAAW,CAAC,IAAI;gBACjC,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aAClE,CAAC,CAAC;QACP,CAAC;KACJ,CAAC,CAAC;IAEH,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,WAAW;IACX,0EAA0E;IAE1E,IAAI,UAA8B,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACvC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,0CAA0C;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;QACzF,OAAO,EAAE,CAAC;IACd,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,MAAM,0BAA0B,GAAG,GAAS,EAAE;YAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBACxC;oBACI,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,+BAA+B;oBACxC,OAAO,EAAE,IAAI;iBAChB;aACJ,CAAC,CAAC;YACH,OAAO,SAAS,CAAC;QACrB,CAAC,CAAA,CAAC;QAEF,aAAa,GAAG,MAAM,0BAA0B,EAAE,CAAC;QACnD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACtD,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,UAAU,MAAM,CAAC;IAEnD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC;QACD,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACX,+BAA+B;YAC/B,mDAAmD;YACnD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/B,SAAS;gBACb,CAAC;qBAAM,CAAC;oBACJ,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1B,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,8BAA8B;QAE9B,oCAAoC;QACpC,oEAAoE;QACpE,2CAA2C;QAC3C,0EAA0E;QAC1E,mEAAmE;QACnE,8BAA8B;QAE9B,oBAAoB;QACpB,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC;QAC3D,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC,CAAA,CAAC;AAEF,eAAe,8BAA8B,CAAC"}
1
+ {"version":3,"file":"next_GetLazyResourcesWebpackJs.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.ts"],"names":[],"mappings":"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"}