@shriyanss/js-recon 1.3.1-alpha.3 → 1.3.1-alpha.4

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 (136) 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 +76 -0
  4. package/CLAUDE.md +100 -11
  5. package/README.md +2 -0
  6. package/build/analyze/engine/astEngine.js +57 -29
  7. package/build/analyze/engine/astEngine.js.map +1 -1
  8. package/build/analyze/engine/index.js.map +1 -1
  9. package/build/analyze/helpers/engineHelpers/taintFlow.js +32 -0
  10. package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -1
  11. package/build/analyze/helpers/initRules.js +9 -0
  12. package/build/analyze/helpers/initRules.js.map +1 -1
  13. package/build/analyze/helpers/schemas.js +5 -1
  14. package/build/analyze/helpers/schemas.js.map +1 -1
  15. package/build/analyze/index.js +7 -2
  16. package/build/analyze/index.js.map +1 -1
  17. package/build/endpoints/next_js/client_mappedJsonFile.js +12 -5
  18. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  19. package/build/fingerprint/index.js +123 -0
  20. package/build/fingerprint/index.js.map +1 -0
  21. package/build/globalConfig.js +1 -1
  22. package/build/index.js +51 -4
  23. package/build/index.js.map +1 -1
  24. package/build/lazyLoad/downloadQueue.js +9 -8
  25. package/build/lazyLoad/downloadQueue.js.map +1 -1
  26. package/build/lazyLoad/index.js +260 -163
  27. package/build/lazyLoad/index.js.map +1 -1
  28. package/build/lazyLoad/next_js/NextJsCrawler.js +58 -16
  29. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
  30. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +149 -139
  31. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  32. package/build/lazyLoad/next_js/next_SubsequentRequests.js +25 -4
  33. package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
  34. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +13 -5
  35. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
  36. package/build/lazyLoad/react/react_followImports.js +105 -0
  37. package/build/lazyLoad/react/react_followImports.js.map +1 -0
  38. package/build/lazyLoad/react/react_getScriptTags.js +28 -5
  39. package/build/lazyLoad/react/react_getScriptTags.js.map +1 -1
  40. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js +162 -0
  41. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js.map +1 -0
  42. package/build/lazyLoad/svelte/svelte_getFromPageSource.js +15 -0
  43. package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
  44. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js +180 -0
  45. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js.map +1 -0
  46. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +15 -1
  47. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
  48. package/build/lazyLoad/techDetect/checkReact.js +67 -36
  49. package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
  50. package/build/lazyLoad/techDetect/checkSvelte.js +35 -35
  51. package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
  52. package/build/lazyLoad/techDetect/index.js +10 -6
  53. package/build/lazyLoad/techDetect/index.js.map +1 -1
  54. package/build/lazyLoad/vue/vue_getClientSidePaths.js +6 -0
  55. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
  56. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +6 -0
  57. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
  58. package/build/lazyLoad/vue/vue_stringJsFiles.js +6 -0
  59. package/build/lazyLoad/vue/vue_stringJsFiles.js.map +1 -1
  60. package/build/map/graphql/resolveGraphql.js +296 -0
  61. package/build/map/graphql/resolveGraphql.js.map +1 -0
  62. package/build/map/index.js +93 -1
  63. package/build/map/index.js.map +1 -1
  64. package/build/map/next_js/interactive_helpers/commandHandler.js +4 -0
  65. package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -1
  66. package/build/map/next_js/interactive_helpers/commandHelpers.js +28 -0
  67. package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
  68. package/build/map/next_js/interactive_helpers/helpMenu.js +1 -1
  69. package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -1
  70. package/build/map/next_js/resolveServerActions.js +449 -0
  71. package/build/map/next_js/resolveServerActions.js.map +1 -0
  72. package/build/map/next_js/utils.js +1 -0
  73. package/build/map/next_js/utils.js.map +1 -1
  74. package/build/map/react_js/getReactConnections.js +298 -0
  75. package/build/map/react_js/getReactConnections.js.map +1 -0
  76. package/build/map/react_js/interactive.js +4 -0
  77. package/build/map/react_js/interactive.js.map +1 -0
  78. package/build/map/react_js/react_resolveFetch.js +6 -0
  79. package/build/map/react_js/react_resolveFetch.js.map +1 -0
  80. package/build/map/svelte_js/interactive.js +58 -0
  81. package/build/map/svelte_js/interactive.js.map +1 -0
  82. package/build/map/svelte_js/interactive_helpers/commandHandler.js +4 -0
  83. package/build/map/svelte_js/interactive_helpers/commandHandler.js.map +1 -0
  84. package/build/map/vue_js/bodyResolver.js +477 -0
  85. package/build/map/vue_js/bodyResolver.js.map +1 -0
  86. package/build/map/vue_js/crossFileResolver.js +438 -0
  87. package/build/map/vue_js/crossFileResolver.js.map +1 -0
  88. package/build/map/vue_js/getViteConnections.js +150 -129
  89. package/build/map/vue_js/getViteConnections.js.map +1 -1
  90. package/build/map/vue_js/taint_utils.js +621 -0
  91. package/build/map/vue_js/taint_utils.js.map +1 -0
  92. package/build/map/vue_js/vue_resolveFetch.js +79 -392
  93. package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
  94. package/build/map/vue_js/vue_resolveHttpClient.js +733 -0
  95. package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -0
  96. package/build/map/vue_js/vue_resolveXhr.js +279 -0
  97. package/build/map/vue_js/vue_resolveXhr.js.map +1 -0
  98. package/build/mcp/chatOneShot.js +101 -0
  99. package/build/mcp/chatOneShot.js.map +1 -0
  100. package/build/mcp/claudeCodeCreds.js +150 -0
  101. package/build/mcp/claudeCodeCreds.js.map +1 -0
  102. package/build/mcp/cli.js +140 -149
  103. package/build/mcp/cli.js.map +1 -1
  104. package/build/mcp/commands.js +80 -0
  105. package/build/mcp/commands.js.map +1 -1
  106. package/build/mcp/index.js +30 -9
  107. package/build/mcp/index.js.map +1 -1
  108. package/build/mcp/intent.js +204 -0
  109. package/build/mcp/intent.js.map +1 -0
  110. package/build/mcp/jobs.js +199 -0
  111. package/build/mcp/jobs.js.map +1 -0
  112. package/build/mcp/mcpServer.js +241 -0
  113. package/build/mcp/mcpServer.js.map +1 -0
  114. package/build/mcp/providers.js +18 -1
  115. package/build/mcp/providers.js.map +1 -1
  116. package/build/mcp/skills.js +115 -0
  117. package/build/mcp/skills.js.map +1 -0
  118. package/build/refactor/index.js +6 -0
  119. package/build/refactor/index.js.map +1 -1
  120. package/build/refactor/react/index.js +636 -0
  121. package/build/refactor/react/index.js.map +1 -0
  122. package/build/run/index.js +260 -60
  123. package/build/run/index.js.map +1 -1
  124. package/build/run/interruptHandler.js +93 -0
  125. package/build/run/interruptHandler.js.map +1 -0
  126. package/build/utility/globals.js +29 -0
  127. package/build/utility/globals.js.map +1 -1
  128. package/build/utility/makeReq.js +14 -2
  129. package/build/utility/makeReq.js.map +1 -1
  130. package/build/utility/openapiGenerator.js +46 -14
  131. package/build/utility/openapiGenerator.js.map +1 -1
  132. package/build/utility/postmanGenerator.js +62 -13
  133. package/build/utility/postmanGenerator.js.map +1 -1
  134. package/build/utility/progressLog.js +50 -0
  135. package/build/utility/progressLog.js.map +1 -0
  136. package/package.json +7 -4
@@ -14,6 +14,7 @@ import path from "path";
14
14
  import { getURLDirectory } from "../../utility/urlUtils.js";
15
15
  import makeRequest from "../../utility/makeReq.js";
16
16
  import * as cheerio from "cheerio";
17
+ import { setActiveBarLogger, computeBarSize, watchBarResize } from "../../utility/progressLog.js";
17
18
  let queue = 0;
18
19
  let max_queue;
19
20
  /**
@@ -53,16 +54,34 @@ const subsequentRequests = (url, urlsFile, threads, output, js_urls) => __awaite
53
54
  let endpoints = JSON.parse(fs.readFileSync(urlsFile, "utf8")).paths;
54
55
  // add `/` to endpoints
55
56
  endpoints.push("/");
56
- const progressBar = new cliProgress.SingleBar({
57
+ // Deduplicate by path — same path with different query params counts once
58
+ const seenPaths = new Set();
59
+ endpoints = endpoints.filter((endpoint) => {
60
+ let pathname;
61
+ try {
62
+ pathname = new URL(endpoint, url).pathname;
63
+ }
64
+ catch (_a) {
65
+ pathname = endpoint;
66
+ }
67
+ if (seenPaths.has(pathname))
68
+ return false;
69
+ seenPaths.add(pathname);
70
+ return true;
71
+ });
72
+ const multiBar = new cliProgress.MultiBar({
57
73
  format: chalk.cyan("[i] Fetching JS files from subsequent requests ") +
58
74
  "[{bar}] {percentage}% | {value}/{total} | {phase}",
59
75
  barCompleteChar: "█",
60
76
  barIncompleteChar: "░",
77
+ barsize: computeBarSize(73),
61
78
  hideCursor: false,
62
79
  clearOnComplete: false,
63
80
  stopOnComplete: false,
64
81
  }, cliProgress.Presets.shades_classic);
65
- progressBar.start(endpoints.length * 2, 0, { phase: "RSC" });
82
+ const progressBar = multiBar.create(endpoints.length * 2, 0, { phase: "RSC" });
83
+ const stopBarWatcher = watchBarResize(progressBar, 73);
84
+ setActiveBarLogger(multiBar);
66
85
  let js_contents = {};
67
86
  // make requests to all of them with the special header
68
87
  const reqPromises = endpoints.map((endpoint) => __awaiter(void 0, void 0, void 0, function* () {
@@ -115,7 +134,7 @@ const subsequentRequests = (url, urlsFile, threads, output, js_urls) => __awaite
115
134
  }
116
135
  catch (e) {
117
136
  queue--;
118
- console.log(chalk.red(`[!] Error fetching ${reqUrl}: ${e}`));
137
+ multiBar.log(chalk.red(`[!] Error fetching ${reqUrl}: ${e}\n`));
119
138
  }
120
139
  progressBar.increment(1, { phase: "RSC" });
121
140
  }));
@@ -156,7 +175,9 @@ const subsequentRequests = (url, urlsFile, threads, output, js_urls) => __awaite
156
175
  });
157
176
  progressBar.increment(1, { phase: "HTML" });
158
177
  }
159
- progressBar.stop();
178
+ multiBar.stop();
179
+ stopBarWatcher();
180
+ setActiveBarLogger(null);
160
181
  // build the full URL from path
161
182
  jsFilesFromPageHtml = jsFilesFromPageHtml.map((file) => {
162
183
  // go through existing JS URLs found
@@ -1 +1 @@
1
- {"version":3,"file":"next_SubsequentRequests.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_SubsequentRequests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"next_SubsequentRequests.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_SubsequentRequests.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,13 @@ const next_scriptTagsSubsequentRequests = (url, endpointsFile) => __awaiter(void
14
14
  console.log(chalk.cyan("[i] Getting JS files from subsequent requests (script tags)"));
15
15
  let endpoints = JSON.parse(fs.readFileSync(endpointsFile, "utf8")).paths;
16
16
  endpoints.push("/");
17
+ // Content-entropy dedup: fetch each endpoint, compute a fingerprint from its
18
+ // script tags, and skip variants whose fingerprint has already been seen.
19
+ // This handles same-path URLs with different query params — if they load the
20
+ // same scripts they are treated as identical; if they load different scripts
21
+ // they are both included.
22
+ const seenFingerprints = new Set();
17
23
  let jsUrls = [];
18
- // TODO: when you get a page, you can also search for anchor tags. If you find any additional
19
- // pages, you can go through them as well. this will give you a lot more JS files
20
- // go through all endpoints, and parse them
21
24
  for (const endpoint of endpoints) {
22
25
  // skip anything that isn't a valid relative path or absolute URL
23
26
  if (!/^(\/|https?:\/\/)/.test(endpoint))
@@ -29,8 +32,13 @@ const next_scriptTagsSubsequentRequests = (url, endpointsFile) => __awaiter(void
29
32
  catch (_a) {
30
33
  continue;
31
34
  }
32
- const jsUrlsFromEndpoint = yield next_getJSScript(reqUrl);
33
- jsUrls.push(...jsUrlsFromEndpoint);
35
+ const scripts = yield next_getJSScript(reqUrl);
36
+ const fp = [...new Set(scripts)].sort().join(",");
37
+ if (fp && seenFingerprints.has(fp))
38
+ continue;
39
+ if (fp)
40
+ seenFingerprints.add(fp);
41
+ jsUrls.push(...scripts);
34
42
  }
35
43
  // dedupe
36
44
  jsUrls = [...new Set(jsUrls)];
@@ -1 +1 @@
1
- {"version":3,"file":"next_scriptTagsSubsequentRequests.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_scriptTagsSubsequentRequests.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,iCAAiC,GAAG,CAAO,GAAW,EAAE,aAAqB,EAAE,EAAE;IACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;IAEvF,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpB,IAAI,MAAM,GAAa,EAAE,CAAC;IAE1B,6FAA6F;IAC7F,iFAAiF;IAEjF,2CAA2C;IAC3C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,iEAAiE;QACjE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QAElD,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QAAC,WAAM,CAAC;YACL,SAAS;QACb,CAAC;QACD,MAAM,kBAAkB,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;IACvC,CAAC;IAED,SAAS;IACT,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,MAAM,kDAAkD,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,eAAe,iCAAiC,CAAC"}
1
+ {"version":3,"file":"next_scriptTagsSubsequentRequests.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_scriptTagsSubsequentRequests.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,iCAAiC,GAAG,CAAO,GAAW,EAAE,aAAqB,EAAE,EAAE;IACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;IAEvF,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpB,6EAA6E;IAC7E,0EAA0E;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,0BAA0B;IAC1B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,IAAI,MAAM,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,iEAAiE;QACjE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS;QAElD,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACD,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QACzC,CAAC;QAAC,WAAM,CAAC;YACL,SAAS;QACb,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAC7C,IAAI,EAAE;YAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS;IACT,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,MAAM,kDAAkD,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,eAAe,iCAAiC,CAAC"}
@@ -0,0 +1,105 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import makeRequest from "../../utility/makeReq.js";
11
+ import chalk from "chalk";
12
+ /**
13
+ * Extracts all JS file references from the content of a JS file:
14
+ * - Static ESM imports: import ... from "./chunk.js" / import "./chunk.js"
15
+ * - Dynamic imports: import("./chunk.js")
16
+ * - Vite __vite_mapDeps: the flat asset array in the initialiser
17
+ */
18
+ const extractImports = (content, fileUrl, baseUrl) => {
19
+ const found = [];
20
+ // Static imports: from "..." and import "..."
21
+ for (const m of content.matchAll(/\bfrom\s*["']([^"']+\.js)["']/g)) {
22
+ try {
23
+ found.push(new URL(m[1], fileUrl).href);
24
+ }
25
+ catch (_a) {
26
+ /* skip */
27
+ }
28
+ }
29
+ for (const m of content.matchAll(/\bimport\s*["']([^"']+\.js)["']/g)) {
30
+ try {
31
+ found.push(new URL(m[1], fileUrl).href);
32
+ }
33
+ catch (_b) {
34
+ /* skip */
35
+ }
36
+ }
37
+ // Dynamic imports: import("...")
38
+ for (const m of content.matchAll(/\bimport\s*\(\s*["']([^"']+\.js)["']\s*\)/g)) {
39
+ try {
40
+ found.push(new URL(m[1], fileUrl).href);
41
+ }
42
+ catch (_c) {
43
+ /* skip */
44
+ }
45
+ }
46
+ // Vite __vite_mapDeps initialiser: m.f=["assets/chunk1.js","assets/chunk2.js",...]
47
+ const mapDepsMatch = content.match(/m\.f\s*=\s*(\[[^\]]+\])/);
48
+ if (mapDepsMatch) {
49
+ try {
50
+ const arr = JSON.parse(mapDepsMatch[1]);
51
+ for (const p of arr) {
52
+ try {
53
+ // Vite asset paths are relative to the origin root
54
+ const resolved = new URL(p.startsWith("/") ? p : "/" + p, baseUrl).href;
55
+ found.push(resolved);
56
+ }
57
+ catch (_d) {
58
+ /* skip */
59
+ }
60
+ }
61
+ }
62
+ catch (_e) {
63
+ /* malformed JSON — ignore */
64
+ }
65
+ }
66
+ return found;
67
+ };
68
+ /**
69
+ * Fetches each JS file in `jsFiles` (skipping already-visited ones), extracts every
70
+ * import reference, and returns the set of newly-discovered URLs.
71
+ *
72
+ * `visited` is mutated in place: callers should pass the same Set across iterations
73
+ * so the recursion terminates once no new files are found.
74
+ */
75
+ const react_followImports = (jsFiles, maxJsSizeMb, baseUrl, visited) => __awaiter(void 0, void 0, void 0, function* () {
76
+ const discovered = [];
77
+ for (const jsFile of jsFiles) {
78
+ if (visited.has(jsFile))
79
+ continue;
80
+ visited.add(jsFile);
81
+ try {
82
+ const req = yield makeRequest(jsFile);
83
+ if (!req || req.status !== 200)
84
+ continue;
85
+ const contentLength = req.headers.get("content-length");
86
+ if (contentLength && parseInt(contentLength) > maxJsSizeMb * 1024 * 1024) {
87
+ console.log(chalk.yellow(`[!] Skipping ${jsFile} (too large)`));
88
+ continue;
89
+ }
90
+ const content = yield req.text();
91
+ if (content.length > maxJsSizeMb * 1024 * 1024) {
92
+ console.log(chalk.yellow(`[!] Skipping ${jsFile} (too large)`));
93
+ continue;
94
+ }
95
+ discovered.push(...extractImports(content, jsFile, baseUrl));
96
+ }
97
+ catch (err) {
98
+ console.log(chalk.yellow(`[!] Could not follow imports in ${jsFile}: ${err}`));
99
+ }
100
+ }
101
+ // Return only URLs not yet in visited (deduplicated)
102
+ return [...new Set(discovered)].filter((u) => !visited.has(u));
103
+ });
104
+ export default react_followImports;
105
+ //# sourceMappingURL=react_followImports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react_followImports.js","sourceRoot":"","sources":["../../../src/lazyLoad/react/react_followImports.ts"],"names":[],"mappings":"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"}
@@ -9,20 +9,43 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import makeRequest from "../../utility/makeReq.js";
11
11
  import * as cheerio from "cheerio";
12
- const react_getScriptTags = (url, maxJsSizeMb) => __awaiter(void 0, void 0, void 0, function* () {
12
+ import fs from "fs";
13
+ import path from "path";
14
+ import chalk from "chalk";
15
+ const react_getScriptTags = (url, maxJsSizeMb, outputDir) => __awaiter(void 0, void 0, void 0, function* () {
13
16
  let toReturn = [];
14
- // get the page source
15
17
  const req = yield makeRequest(url);
16
18
  const pageSource = yield req.text();
17
- // iterate through the page source and get the script tags
18
19
  const $ = cheerio.load(pageSource);
19
- $("script").each((i, elem) => {
20
+ const host = new URL(url).host.replace(":", "_");
21
+ let inlineIndex = 0;
22
+ $("script").each((_, elem) => {
20
23
  const src = $(elem).attr("src");
21
24
  if (src) {
22
25
  toReturn.push(new URL(src, url).href);
23
26
  }
27
+ else if (outputDir) {
28
+ // Inline script — save to disk so downstream modules can analyze it
29
+ const content = $(elem).text().trim();
30
+ if (!content)
31
+ return;
32
+ const hostDir = path.join(outputDir, host);
33
+ fs.mkdirSync(hostDir, { recursive: true });
34
+ const filename = `inline-${inlineIndex++}.js`;
35
+ const filePath = path.join(hostDir, filename);
36
+ fs.writeFileSync(filePath, `// File Source: ${url} (inline script #${inlineIndex - 1})\n${content}`);
37
+ console.log(chalk.green(`[✓] Saved inline script to ${filePath}`));
38
+ }
39
+ });
40
+ // Vite splits React and other vendor code into chunks referenced via modulepreload links,
41
+ // not script tags. Include them as seeds so import-following picks them up.
42
+ $("link[rel='modulepreload']").each((_, elem) => {
43
+ const href = $(elem).attr("href");
44
+ if (href) {
45
+ toReturn.push(new URL(href, url).href);
46
+ }
24
47
  });
25
- toReturn = [...new Set(toReturn)]; // dedupe the files
48
+ toReturn = [...new Set(toReturn)];
26
49
  return toReturn;
27
50
  });
28
51
  export default react_getScriptTags;
@@ -1 +1 @@
1
- {"version":3,"file":"react_getScriptTags.js","sourceRoot":"","sources":["../../../src/lazyLoad/react/react_getScriptTags.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,MAAM,mBAAmB,GAAG,CAAO,GAAW,EAAE,WAAmB,EAAqB,EAAE;IACtF,IAAI,QAAQ,GAAa,EAAE,CAAC;IAE5B,sBAAsB;IACtB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAEpC,0DAA0D;IAC1D,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,GAAG,EAAE,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB;IACtD,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAA,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"react_getScriptTags.js","sourceRoot":"","sources":["../../../src/lazyLoad/react/react_getScriptTags.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,mBAAmB,GAAG,CAAO,GAAW,EAAE,WAAmB,EAAE,SAAkB,EAAqB,EAAE;IAC1G,IAAI,QAAQ,GAAa,EAAE,CAAC;IAE5B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAEpC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,GAAG,EAAE,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACnB,oEAAoE;YACpE,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC3C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,UAAU,WAAW,EAAE,KAAK,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,oBAAoB,WAAW,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;YACrG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,0FAA0F;IAC1F,4EAA4E;IAC5E,CAAC,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,IAAI,EAAE,CAAC;YACP,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAA,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,162 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import chalk from "chalk";
11
+ import * as cheerio from "cheerio";
12
+ import makeRequest from "../../utility/makeReq.js";
13
+ import resolvePath from "../../utility/resolvePath.js";
14
+ import { getJsUrls, pushToJsUrls } from "../globals.js";
15
+ import { URL } from "url";
16
+ const ASSET_EXTENSIONS = [".js", ".css", ".json", ".png", ".svg", ".woff", ".woff2", ".ico", ".jpg", ".gif"];
17
+ const SKIP_PREFIXES = ["/_astro/", "/_next/", "/__"];
18
+ /**
19
+ * Extracts path-like strings from a JS file's raw text content that look like
20
+ * same-origin page routes (start with "/" and don't end with ".js"/".css"/etc).
21
+ * Also detects template literal path prefixes like `/post/${...}` → `/post/1`
22
+ * by substituting a test ID ("1") for the first dynamic segment.
23
+ */
24
+ const extractPagePaths = (content) => {
25
+ const paths = new Set();
26
+ // Static string literals: "/admin", '/debug', etc.
27
+ const STATIC_RE = /["'](\/[a-zA-Z0-9_\-/]+)["']/g;
28
+ let m;
29
+ while ((m = STATIC_RE.exec(content)) !== null) {
30
+ const p = m[1];
31
+ if (ASSET_EXTENSIONS.some((e) => p.endsWith(e)))
32
+ continue;
33
+ if (SKIP_PREFIXES.some((pre) => p.startsWith(pre)))
34
+ continue;
35
+ if (p.split("/").length > 5)
36
+ continue;
37
+ paths.add(p);
38
+ }
39
+ // Template literal path prefixes: `/post/${...}` → try `/post/1`
40
+ // Matches backtick template literals starting with "/" that have at least one ${} segment
41
+ const TEMPLATE_RE = /`(\/[a-zA-Z0-9_\-/]+)\$\{[^`}]+\}(?:\/[a-zA-Z0-9_\-]*)*`/g;
42
+ while ((m = TEMPLATE_RE.exec(content)) !== null) {
43
+ const prefix = m[1]; // e.g. "/post/"
44
+ if (SKIP_PREFIXES.some((pre) => prefix.startsWith(pre)))
45
+ continue;
46
+ // Strip trailing slash before appending test ID
47
+ const base = prefix.endsWith("/") ? prefix.slice(0, -1) : prefix;
48
+ const testUrl = `${base}/1`;
49
+ if (testUrl.split("/").length <= 5)
50
+ paths.add(testUrl);
51
+ }
52
+ return [...paths];
53
+ };
54
+ /**
55
+ * Extracts JS file references from an HTML page's Astro island elements,
56
+ * <script src>, and <link rel="modulepreload"> tags.
57
+ */
58
+ const extractJsFromHtml = (pageUrl, html) => __awaiter(void 0, void 0, void 0, function* () {
59
+ const $ = cheerio.load(html);
60
+ const jsFiles = [];
61
+ for (const el of $("link").toArray()) {
62
+ const rel = $(el).attr("rel");
63
+ if (rel === "modulepreload") {
64
+ const href = $(el).attr("href");
65
+ if (href)
66
+ jsFiles.push(href.startsWith("http") ? href : yield resolvePath(pageUrl, href));
67
+ }
68
+ }
69
+ for (const el of $("script").toArray()) {
70
+ const src = $(el).attr("src");
71
+ if (src)
72
+ jsFiles.push(src.startsWith("http") ? src : yield resolvePath(pageUrl, src));
73
+ }
74
+ for (const el of $("astro-island").toArray()) {
75
+ for (const attr of ["component-url", "renderer-url"]) {
76
+ const value = $(el).attr(attr);
77
+ if (value)
78
+ jsFiles.push(value.startsWith("http") ? value : yield resolvePath(pageUrl, value));
79
+ }
80
+ }
81
+ return jsFiles;
82
+ });
83
+ const MAX_ROUNDS = 5;
84
+ /**
85
+ * Iteratively scans all JS URLs in the global registry for embedded page path
86
+ * strings, visits each discovered page to extract Astro island component-url /
87
+ * script-src / modulepreload references, and repeats until no new URLs are found.
88
+ *
89
+ * This fills the gap left by Svelte/Astro client-side routers that don't emit
90
+ * <a href> links in server-rendered HTML — instead route paths live as string
91
+ * literals inside the compiled JS bundles.
92
+ *
93
+ * @param entryUrl - The target's base URL (used to build absolute page URLs)
94
+ * @returns Array of all newly discovered JS file URLs across all rounds
95
+ */
96
+ const svelte_discoverPagesFromJs = (entryUrl) => __awaiter(void 0, void 0, void 0, function* () {
97
+ var _a;
98
+ const origin = new URL(entryUrl).origin;
99
+ const allDiscovered = [];
100
+ const visitedPaths = new Set();
101
+ const scannedJsUrls = new Set();
102
+ for (let round = 0; round < MAX_ROUNDS; round++) {
103
+ const currentJsUrls = getJsUrls().filter((u) => !scannedJsUrls.has(u));
104
+ if (currentJsUrls.length === 0)
105
+ break;
106
+ // Collect candidate page paths from all unscanned JS URLs
107
+ const candidatePaths = new Set();
108
+ for (const jsUrl of currentJsUrls) {
109
+ scannedJsUrls.add(jsUrl);
110
+ try {
111
+ const res = yield makeRequest(jsUrl, {});
112
+ if (!res)
113
+ continue;
114
+ const content = yield res.text();
115
+ for (const p of extractPagePaths(content)) {
116
+ candidatePaths.add(p);
117
+ }
118
+ }
119
+ catch (_b) {
120
+ continue;
121
+ }
122
+ }
123
+ // Filter to only unvisited paths
124
+ const newPaths = [...candidatePaths].filter((p) => !visitedPaths.has(p));
125
+ if (newPaths.length === 0)
126
+ break;
127
+ console.log(chalk.cyan(`[i] Found ${newPaths.length} candidate page path(s) in JS — visiting to discover more chunks`));
128
+ let foundThisRound = 0;
129
+ for (const pagePath of newPaths) {
130
+ visitedPaths.add(pagePath);
131
+ const pageUrl = `${origin}${pagePath}`;
132
+ try {
133
+ const res = yield makeRequest(pageUrl, {});
134
+ if (!res)
135
+ continue;
136
+ const contentType = (_a = res.headers.get("content-type")) !== null && _a !== void 0 ? _a : "";
137
+ if (!contentType.includes("text/html"))
138
+ continue;
139
+ const html = yield res.text();
140
+ const jsFromPage = yield extractJsFromHtml(pageUrl, html);
141
+ for (const jsUrl of jsFromPage) {
142
+ if (!getJsUrls().includes(jsUrl)) {
143
+ pushToJsUrls(jsUrl);
144
+ allDiscovered.push(jsUrl);
145
+ foundThisRound++;
146
+ }
147
+ }
148
+ if (jsFromPage.length > 0) {
149
+ console.log(chalk.green(`[✓] ${pageUrl}: found ${jsFromPage.length} JS file(s)`));
150
+ }
151
+ }
152
+ catch (_c) {
153
+ // page not found or network error — skip
154
+ }
155
+ }
156
+ if (foundThisRound === 0)
157
+ break;
158
+ }
159
+ return allDiscovered;
160
+ });
161
+ export default svelte_discoverPagesFromJs;
162
+ //# sourceMappingURL=svelte_discoverPagesFromJs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svelte_discoverPagesFromJs.js","sourceRoot":"","sources":["../../../src/lazyLoad/svelte/svelte_discoverPagesFromJs.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,21 @@ const svelte_getFromPageSource = (url) => __awaiter(void 0, void 0, void 0, func
56
56
  }
57
57
  }
58
58
  }
59
+ // parse astro-island component-url and renderer-url attributes (Astro island hydration)
60
+ const astroIslands = $("astro-island");
61
+ for (const island of astroIslands) {
62
+ for (const attr of ["component-url", "renderer-url"]) {
63
+ const value = $(island).attr(attr);
64
+ if (value) {
65
+ if (value.startsWith("http")) {
66
+ foundUrls.push(value);
67
+ }
68
+ else {
69
+ foundUrls.push(yield resolvePath(url, value));
70
+ }
71
+ }
72
+ }
73
+ }
59
74
  if (foundUrls.length === 0) {
60
75
  console.log(chalk.red("[!] No JS files found from the page source"));
61
76
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"svelte_getFromPageSource.js","sourceRoot":"","sources":["../../../src/lazyLoad/svelte/svelte_getFromPageSource.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG,CAAO,GAAG,EAAE,EAAE;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACrD,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAErC,mCAAmC;IACnC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7B,qBAAqB;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAE3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,QAAQ,EAAE,CAAC;gBACX,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACJ,SAAS,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC/B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACJ,SAAS,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACrE,OAAO,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,SAAS,CAAC,MAAM,gCAAgC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,sDAAsD;IACtD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,SAAS,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,SAAS;QACb,CAAC;QACD,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA,CAAC;AACF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"svelte_getFromPageSource.js","sourceRoot":"","sources":["../../../src/lazyLoad/svelte/svelte_getFromPageSource.ts"],"names":[],"mappings":"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"}