@shriyanss/js-recon 1.2.2-alpha.8 → 1.3.1-alpha.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 (121) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/build/analyze/engine/astEngine.js +32 -26
  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/schemas.js +1 -0
  6. package/build/analyze/helpers/schemas.js.map +1 -1
  7. package/build/endpoints/next_js/client_jsFilesHref.js +4 -2
  8. package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
  9. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  10. package/build/endpoints/next_js/client_subsequentRequests.js +12 -4
  11. package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
  12. package/build/globalConfig.js +1 -1
  13. package/build/index.js +22 -2
  14. package/build/index.js.map +1 -1
  15. package/build/lazyLoad/downloadFilesUtil.js +74 -80
  16. package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
  17. package/build/lazyLoad/downloadLoadedJsUtil.js +1 -1
  18. package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -1
  19. package/build/lazyLoad/globals.js +32 -1
  20. package/build/lazyLoad/globals.js.map +1 -1
  21. package/build/lazyLoad/index.js +53 -128
  22. package/build/lazyLoad/index.js.map +1 -1
  23. package/build/lazyLoad/next_js/NextJsCrawler.js +248 -0
  24. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -0
  25. package/build/lazyLoad/next_js/next_GetJSScript.js +9 -8
  26. package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -1
  27. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +1 -1
  28. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  29. package/build/lazyLoad/next_js/next_SubsequentRequests.js +4 -2
  30. package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
  31. package/build/lazyLoad/next_js/next_bruteForceJsFiles.js +8 -3
  32. package/build/lazyLoad/next_js/next_bruteForceJsFiles.js.map +1 -1
  33. package/build/lazyLoad/next_js/next_getClientSidePaths.js +83 -0
  34. package/build/lazyLoad/next_js/next_getClientSidePaths.js.map +1 -0
  35. package/build/lazyLoad/next_js/next_promiseResolve.js +54 -45
  36. package/build/lazyLoad/next_js/next_promiseResolve.js.map +1 -1
  37. package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -1
  38. package/build/lazyLoad/react/react_getScriptTags.js +29 -0
  39. package/build/lazyLoad/react/react_getScriptTags.js.map +1 -0
  40. package/build/lazyLoad/react/react_sourcemapUrls.js +44 -0
  41. package/build/lazyLoad/react/react_sourcemapUrls.js.map +1 -0
  42. package/build/lazyLoad/react/react_webpackChunkPaths.js +188 -0
  43. package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -0
  44. package/build/lazyLoad/techDetect/checkAngularJS.js +70 -0
  45. package/build/lazyLoad/techDetect/checkAngularJS.js.map +1 -0
  46. package/build/lazyLoad/techDetect/checkNextJS.js +45 -0
  47. package/build/lazyLoad/techDetect/checkNextJS.js.map +1 -0
  48. package/build/lazyLoad/techDetect/checkNuxtJS.js +39 -0
  49. package/build/lazyLoad/techDetect/checkNuxtJS.js.map +1 -0
  50. package/build/lazyLoad/techDetect/checkReact.js +44 -0
  51. package/build/lazyLoad/techDetect/checkReact.js.map +1 -0
  52. package/build/lazyLoad/techDetect/checkSvelte.js +69 -0
  53. package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -0
  54. package/build/lazyLoad/techDetect/checkVueJS.js +118 -0
  55. package/build/lazyLoad/techDetect/checkVueJS.js.map +1 -0
  56. package/build/lazyLoad/techDetect/index.js +14 -254
  57. package/build/lazyLoad/techDetect/index.js.map +1 -1
  58. package/build/lazyLoad/vue/vue_RuntimeJs.js +122 -54
  59. package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -1
  60. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +6 -0
  61. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
  62. package/build/lazyLoad/vue/vue_discoverJsFiles.js +68 -0
  63. package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -0
  64. package/build/lazyLoad/vue/vue_getClientSidePaths.js +122 -0
  65. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -0
  66. package/build/lazyLoad/vue/vue_jsImports.js +40 -29
  67. package/build/lazyLoad/vue/vue_jsImports.js.map +1 -1
  68. package/build/lazyLoad/vue/vue_pageSrc.js +60 -0
  69. package/build/lazyLoad/vue/vue_pageSrc.js.map +1 -0
  70. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +8 -0
  71. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -1
  72. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +136 -0
  73. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -0
  74. package/build/lazyLoad/vue/vue_severalJsFilesHome.js +57 -0
  75. package/build/lazyLoad/vue/vue_severalJsFilesHome.js.map +1 -0
  76. package/build/lazyLoad/vue/vue_viteMapDeps.js +89 -0
  77. package/build/lazyLoad/vue/vue_viteMapDeps.js.map +1 -0
  78. package/build/map/index.js +19 -0
  79. package/build/map/index.js.map +1 -1
  80. package/build/map/next_js/getExports.js +3 -1
  81. package/build/map/next_js/getExports.js.map +1 -1
  82. package/build/map/next_js/getTurbopackConnections.js +255 -0
  83. package/build/map/next_js/getTurbopackConnections.js.map +1 -0
  84. package/build/map/next_js/getWebpackConnections.js +3 -4
  85. package/build/map/next_js/getWebpackConnections.js.map +1 -1
  86. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +14 -10
  87. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
  88. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
  89. package/build/map/next_js/resolveFetch.js +2 -1
  90. package/build/map/next_js/resolveFetch.js.map +1 -1
  91. package/build/map/next_js/utils.js.map +1 -1
  92. package/build/map/vue_js/getViteConnections.js +293 -0
  93. package/build/map/vue_js/getViteConnections.js.map +1 -0
  94. package/build/map/vue_js/interactive.js +39 -0
  95. package/build/map/vue_js/interactive.js.map +1 -0
  96. package/build/map/vue_js/interactive_helpers/commandHandler.js +285 -0
  97. package/build/map/vue_js/interactive_helpers/commandHandler.js.map +1 -0
  98. package/build/map/vue_js/interactive_helpers/commandHelpers.js +39 -0
  99. package/build/map/vue_js/interactive_helpers/commandHelpers.js.map +1 -0
  100. package/build/map/vue_js/interactive_helpers/helpMenu.js +11 -0
  101. package/build/map/vue_js/interactive_helpers/helpMenu.js.map +1 -0
  102. package/build/mcp/cli.js +381 -0
  103. package/build/mcp/cli.js.map +1 -0
  104. package/build/mcp/commands.js +147 -0
  105. package/build/mcp/commands.js.map +1 -0
  106. package/build/mcp/config.js +68 -0
  107. package/build/mcp/config.js.map +1 -0
  108. package/build/mcp/index.js +29 -0
  109. package/build/mcp/index.js.map +1 -0
  110. package/build/mcp/providers.js +153 -0
  111. package/build/mcp/providers.js.map +1 -0
  112. package/build/mcp/tools.js +185 -0
  113. package/build/mcp/tools.js.map +1 -0
  114. package/build/run/index.js +35 -16
  115. package/build/run/index.js.map +1 -1
  116. package/build/utility/makeReq.js +25 -55
  117. package/build/utility/makeReq.js.map +1 -1
  118. package/build/utility/puppeteerInstance.js +5 -0
  119. package/build/utility/puppeteerInstance.js.map +1 -0
  120. package/contributing/nextjs.md +410 -0
  121. package/package.json +11 -4
@@ -25,103 +25,97 @@ import { getScope, getMaxReqQueue } from "./globals.js"; // Import scope and max
25
25
  * @param {string} output - The directory where the downloaded JS chunks should be written.
26
26
  * @returns {Promise<void>} - Resolves once all eligible files have been downloaded and saved.
27
27
  */
28
+ // Files larger than this skip Prettier — minified bundles gain nothing from formatting
29
+ // and Prettier's internal AST for a 2 MB file can consume hundreds of MB.
30
+ const PRETTIER_SIZE_LIMIT = 500 * 1024; // 500 KB
28
31
  const downloadFiles = (urls, output) => __awaiter(void 0, void 0, void 0, function* () {
29
32
  console.log(chalk.cyan(`[i] Attempting to download ${urls.length} JS chunks`));
30
33
  fs.mkdirSync(output, { recursive: true });
31
- // to store ignored JS domain
32
- let ignoredJSFiles = [];
33
- let ignoredJSDomains = [];
34
+ const ignoredJSFiles = [];
35
+ const ignoredJSDomains = [];
34
36
  let download_count = 0;
35
- let queue = 0;
36
- const downloadPromises = urls.map((url) => __awaiter(void 0, void 0, void 0, function* () {
37
+ let cursor = 0;
38
+ const concurrency = Math.max(1, getMaxReqQueue());
39
+ const processOne = (url) => __awaiter(void 0, void 0, void 0, function* () {
40
+ var _a, _b;
37
41
  try {
38
- yield new Promise((resolve) => setTimeout(resolve, Math.random() * 4950 + 50));
39
- if (url.match(/(\.js|\.json|\.js\.map)/)) {
40
- // get the directory of the url
41
- const { host, directory } = getURLDirectory(url);
42
- // check scope of file. Only if in scope, download it
43
- if (!getScope().includes("*")) {
44
- if (!getScope().includes(host)) {
45
- ignoredJSFiles.push(url);
46
- if (!ignoredJSDomains.includes(host)) {
47
- ignoredJSDomains.push(host);
48
- }
49
- return;
50
- }
42
+ if (!url.match(/(\.js|\.json|\.js\.map)/)) {
43
+ console.log(chalk.yellow(`[i] Ignored ${url}`));
44
+ return;
45
+ }
46
+ const { host, directory } = getURLDirectory(url);
47
+ if (!getScope().includes("*") && !getScope().includes(host)) {
48
+ ignoredJSFiles.push(url);
49
+ if (!ignoredJSDomains.includes(host)) {
50
+ ignoredJSDomains.push(host);
51
51
  }
52
- // make the directory inside the output folder
53
- const childDir = path.join(output, host, directory);
54
- fs.mkdirSync(childDir, { recursive: true });
55
- let res;
56
- try {
57
- // Wait until there is an available slot in the request queue
58
- while (queue >= getMaxReqQueue()) {
59
- yield new Promise((resolve) => setTimeout(resolve, Math.random() * 250 + 50));
52
+ return;
53
+ }
54
+ const childDir = path.join(output, host, directory);
55
+ fs.mkdirSync(childDir, { recursive: true });
56
+ let res;
57
+ try {
58
+ res = yield makeRequest(url, {});
59
+ }
60
+ catch (err) {
61
+ console.error(chalk.red(`[!] Failed to download: ${url}`));
62
+ return;
63
+ }
64
+ if (!res) {
65
+ console.error(chalk.red(`[!] Failed to download: ${url}`));
66
+ return;
67
+ }
68
+ const rawText = yield res.text();
69
+ const file = url.match(/\.json/) ? rawText : `// File Source: ${url}\n${rawText}`;
70
+ let filename;
71
+ try {
72
+ filename = (_b = (_a = url
73
+ .split("/")
74
+ .pop()) === null || _a === void 0 ? void 0 : _a.match(/[a-zA-Z0-9\.\-_]+\.js(on)?(\.map)?/)) === null || _b === void 0 ? void 0 : _b[0];
75
+ }
76
+ catch (_c) {
77
+ for (const chunk of url.split("/")) {
78
+ if (chunk.match(/\.js(on)?$/)) {
79
+ filename = chunk;
80
+ break;
60
81
  }
61
- queue++; // acquire a slot in the queue
62
- res = yield makeRequest(url, {});
63
- }
64
- catch (err) {
65
- console.error(chalk.red(`[!] Failed to download: ${url}`));
66
82
  }
67
- finally {
68
- queue--;
69
- }
70
- // only push it if the file is a JS file
71
- let file;
72
- if (!url.match(/\.json/)) {
73
- file = `// File Source: ${url}\n${yield res.text()}`;
83
+ }
84
+ if (!filename) {
85
+ console.warn(chalk.yellow(`[!] Could not determine filename for URL: ${url}. Skipping.`));
86
+ return;
87
+ }
88
+ const filePath = path.join(childDir, filename);
89
+ try {
90
+ if (url.match(/\.json/) || url.match(/\.js\.map/)) {
91
+ const formatted = file.length <= PRETTIER_SIZE_LIMIT ? yield prettier.format(file, { parser: "json" }) : file;
92
+ fs.writeFileSync(filePath, formatted);
74
93
  }
75
94
  else {
76
- file = yield res.text();
95
+ const formatted = file.length <= PRETTIER_SIZE_LIMIT ? yield prettier.format(file, { parser: "babel" }) : file;
96
+ fs.writeFileSync(filePath, formatted);
77
97
  }
78
- let filename;
79
- try {
80
- filename = url
81
- .split("/")
82
- .pop()
83
- .match(/[a-zA-Z0-9\.\-_]+\.js(on)?(\.map)?/)[0];
84
- }
85
- catch (err) {
86
- // split the URL into multiple chunks. then iterate
87
- // through it, and find whatever matches with JS or JSON ext
88
- const chunks = url.split("/");
89
- for (const chunk of chunks) {
90
- if (chunk.match(/\.js(on)?$/)) {
91
- filename = chunk;
92
- break;
93
- }
94
- }
95
- }
96
- if (!filename) {
97
- // Handle cases where filename might not be found
98
- console.warn(chalk.yellow(`[!] Could not determine filename for URL: ${url}. Skipping.`));
99
- return;
100
- }
101
- const filePath = path.join(childDir, filename);
102
- try {
103
- // if it's json, then use different parser
104
- if (url.match(/\.json/) || url.match(/\.js\.map/)) {
105
- fs.writeFileSync(filePath, yield prettier.format(file, { parser: "json" }));
106
- }
107
- else {
108
- fs.writeFileSync(filePath, yield prettier.format(file, { parser: "babel" }));
109
- }
110
- }
111
- catch (err) {
112
- console.error(chalk.red(`[!] Failed to write file: ${filePath}`));
113
- }
114
- download_count++;
115
98
  }
116
- else {
117
- console.log(chalk.yellow(`[i] Ignored ${url}`));
99
+ catch (_d) {
100
+ console.error(chalk.red(`[!] Failed to write file: ${filePath}`));
118
101
  }
102
+ download_count++;
119
103
  }
120
104
  catch (err) {
121
105
  console.error(chalk.red(`[!] Failed to download: ${url} : ${err}`));
122
106
  }
123
- }));
124
- yield Promise.all(downloadPromises);
107
+ });
108
+ // Worker pool: each worker processes one file end-to-end before taking the next.
109
+ // This bounds peak memory to (concurrency × largest_file) rather than all files at once.
110
+ const worker = () => __awaiter(void 0, void 0, void 0, function* () {
111
+ while (true) {
112
+ const idx = cursor++;
113
+ if (idx >= urls.length)
114
+ break;
115
+ yield processOne(urls[idx]);
116
+ }
117
+ });
118
+ yield Promise.all(Array.from({ length: concurrency }, () => worker()));
125
119
  if (ignoredJSFiles.length > 0) {
126
120
  console.log(chalk.yellow(`[i] Ignored ${ignoredJSFiles.length} JS files across ${ignoredJSDomains.length} domain(s) - ${ignoredJSDomains.join(", ")}`));
127
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"downloadFilesUtil.js","sourceRoot":"","sources":["../../src/lazyLoad/downloadFilesUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"downloadFilesUtil.js","sourceRoot":"","sources":["../../src/lazyLoad/downloadFilesUtil.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import chalk from "chalk";
11
- import puppeteer from "puppeteer";
12
11
  import * as globalsUtil from "../utility/globals.js";
12
+ import puppeteer from "../utility/puppeteerInstance.js";
13
13
  /**
14
14
  * Downloads all the lazy loaded JS files from a given URL.
15
15
  * @param {string} url - The URL of the webpage to fetch and parse.
@@ -1 +1 @@
1
- {"version":3,"file":"downloadLoadedJsUtil.js","sourceRoot":"","sources":["../../src/lazyLoad/downloadLoadedJsUtil.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AAErD;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAO,GAAG,EAAE,EAAE;IACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,gCAAgC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;KAC5F,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,aAAa,GAAG,EAAE,CAAC,CAAC,2CAA2C;IACnE,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,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC,CAAA,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAEtB,OAAO,aAAa,CAAC;AACzB,CAAC,CAAA,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"downloadLoadedJsUtil.js","sourceRoot":"","sources":["../../src/lazyLoad/downloadLoadedJsUtil.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,OAAO,SAAS,MAAM,iCAAiC,CAAC;AAExD;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAO,GAAG,EAAE,EAAE;IACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,gCAAgC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;KAC5F,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,aAAa,GAAG,EAAE,CAAC,CAAC,2CAA2C;IACnE,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,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC,CAAA,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAEtB,OAAO,aAAa,CAAC;AACzB,CAAC,CAAA,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -6,6 +6,8 @@ let js_urls = [];
6
6
  let json_urls = [];
7
7
  /** Maximum number of concurrent requests allowed */
8
8
  let max_req_queue;
9
+ /** List of URLs which has been crawled */
10
+ let crawled_urls = [];
9
11
  /**
10
12
  * Gets the current scope configuration.
11
13
  * @returns Array of domains in scope
@@ -41,7 +43,14 @@ export const clearJsUrls = () => {
41
43
  * @param url - JavaScript URL to add
42
44
  */
43
45
  export const pushToJsUrls = (url) => {
44
- js_urls.push(url);
46
+ if (Array.isArray(url)) {
47
+ js_urls.push(...url);
48
+ }
49
+ else {
50
+ js_urls.push(url);
51
+ }
52
+ // Remove duplicates
53
+ js_urls = [...new Set(js_urls)];
45
54
  };
46
55
  /**
47
56
  * Gets the current array of JSON URLs.
@@ -73,4 +82,26 @@ export const getMaxReqQueue = () => max_req_queue;
73
82
  export const setMaxReqQueue = (newMax) => {
74
83
  max_req_queue = newMax;
75
84
  };
85
+ /**
86
+ * Checks if a URL is already in the crawled URLs list.
87
+ * @param url - URL to check
88
+ * @returns True if URL is already crawled, false otherwise
89
+ */
90
+ export const presentInCrawledUrls = (url) => {
91
+ return crawled_urls.includes(url);
92
+ };
93
+ /**
94
+ * Adds a URL to the crawled URLs list if it's not already present.
95
+ * @param url - URL to add to crawled list
96
+ */
97
+ export const addCrawledUrl = (url) => {
98
+ if (Array.isArray(url)) {
99
+ crawled_urls.push(...url);
100
+ }
101
+ else {
102
+ if (!presentInCrawledUrls(url)) {
103
+ crawled_urls.push(url);
104
+ }
105
+ }
106
+ };
76
107
  //# sourceMappingURL=globals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/lazyLoad/globals.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,IAAI,KAAK,GAAa,EAAE,CAAC;AACzB,qEAAqE;AACrE,IAAI,OAAO,GAAa,EAAE,CAAC;AAC3B,+DAA+D;AAC/D,IAAI,SAAS,GAAa,EAAE,CAAC;AAC7B,oDAAoD;AACpD,IAAI,aAAqB,CAAC;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAa,EAAE,CAAC,KAAK,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAkB,EAAQ,EAAE;IACjD,KAAK,GAAG,QAAQ,CAAC;AACrB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAQ,EAAE;IAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAa,EAAE,CAAC,OAAO,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAS,EAAE;IAClC,OAAO,GAAG,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAQ,EAAE;IAC9C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAa,EAAE,CAAC,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE;IACpC,SAAS,GAAG,EAAE,CAAC;AACnB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAQ,EAAE;IAChD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE,CAAC,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAQ,EAAE;IACnD,aAAa,GAAG,MAAM,CAAC;AAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/lazyLoad/globals.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,IAAI,KAAK,GAAa,EAAE,CAAC;AACzB,qEAAqE;AACrE,IAAI,OAAO,GAAa,EAAE,CAAC;AAC3B,+DAA+D;AAC/D,IAAI,SAAS,GAAa,EAAE,CAAC;AAC7B,oDAAoD;AACpD,IAAI,aAAqB,CAAC;AAC1B,0CAA0C;AAC1C,IAAI,YAAY,GAAa,EAAE,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAa,EAAE,CAAC,KAAK,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAkB,EAAQ,EAAE;IACjD,KAAK,GAAG,QAAQ,CAAC;AACrB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAQ,EAAE;IAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAa,EAAE,CAAC,OAAO,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAS,EAAE;IAClC,OAAO,GAAG,EAAE,CAAC;AACjB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAsB,EAAQ,EAAE;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,oBAAoB;IACpB,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAa,EAAE,CAAC,SAAS,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAS,EAAE;IACpC,SAAS,GAAG,EAAE,CAAC;AACnB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAQ,EAAE;IAChD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE,CAAC,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAQ,EAAE;IACnD,aAAa,GAAG,MAAM,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAW,EAAE;IACzD,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAsB,EAAQ,EAAE;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;AACL,CAAC,CAAC"}
@@ -15,14 +15,8 @@ import _traverse from "@babel/traverse";
15
15
  const traverse = _traverse.default;
16
16
  import { URL } from "url";
17
17
  // Next.js
18
- import subsequentRequests from "./next_js/next_SubsequentRequests.js";
19
- import next_getJSScript from "./next_js/next_GetJSScript.js";
20
- import next_GetLazyResourcesWebpackJs from "./next_js/next_GetLazyResourcesWebpackJs.js";
21
- import next_getLazyResourcesBuildManifestJs from "./next_js/next_GetLazyResourcesBuildManifestJs.js";
18
+ import NextJsCrawler from "./next_js/NextJsCrawler.js";
22
19
  import { next_buildId_RSC } from "./next_js/next_buildId.js";
23
- import next_promiseResolve from "./next_js/next_promiseResolve.js";
24
- import next_parseLayoutJs from "./next_js/next_parseLayoutJs.js";
25
- import next_scriptTagsSubsequentRequests from "./next_js/next_scriptTagsSubsequentRequests.js";
26
20
  // Nuxt.js
27
21
  import nuxt_getFromPageSource from "./nuxt_js/nuxt_getFromPageSource.js";
28
22
  import nuxt_stringAnalysisJSFiles from "./nuxt_js/nuxt_stringAnalysisJSFiles.js";
@@ -33,9 +27,13 @@ import svelte_stringAnalysisJSFiles from "./svelte/svelte_stringAnalysisJSFiles.
33
27
  // Angular
34
28
  import angular_getFromPageSource from "./angular/angular_getFromPageSource.js";
35
29
  import angular_getFromMainJs from "./angular/angular_getFromMainJs.js";
36
- import vue_singleJsFileOnHome from "./vue/vue_SingleJsFileOnHome.js";
37
- import vue_jsImports from "./vue/vue_jsImports.js";
38
- import vue_reconstructSourceMaps from "./vue/vue_reconstructSourceMaps.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";
39
37
  // generic
40
38
  import downloadFiles from "./downloadFilesUtil.js";
41
39
  import downloadLoadedJs from "./downloadLoadedJsUtil.js";
@@ -47,7 +45,6 @@ import { extractSources } from "./sourcemap.js";
47
45
  // import global vars
48
46
  import * as lazyLoadGlobals from "./globals.js";
49
47
  import * as globals from "../utility/globals.js";
50
- import next_bruteForceJsFiles from "./next_js/next_bruteForceJsFiles.js";
51
48
  const getMapFilesRecursively = (dir) => {
52
49
  const entries = readdirSync(dir, { withFileTypes: true });
53
50
  const mapFiles = [];
@@ -82,7 +79,9 @@ const extractSourceMaps = (assetsDir, outputDir) => __awaiter(void 0, void 0, vo
82
79
  counter++;
83
80
  }
84
81
  }
85
- console.log(chalk.green(`[✓] Found ${counter} files from source maps - written to ${outputDir}`));
82
+ if (counter !== 0) {
83
+ console.log(chalk.green(`[✓] Found ${counter} files from source maps - written to ${outputDir}`));
84
+ }
86
85
  });
87
86
  /**
88
87
  * Downloads the required JavaScript files for a given URL
@@ -96,7 +95,7 @@ const extractSourceMaps = (assetsDir, outputDir) => __awaiter(void 0, void 0, vo
96
95
  * @param {boolean} insecure If true, then disable SSL certificate verification
97
96
  * @returns {Promise<void>} A Promise that resolves when the download is complete
98
97
  */
99
- const lazyLoad = (url, output, strictScope, inputScope, threads, subsequentRequestsFlag, urlsFile, insecure, buildId, sourcemapDir) => __awaiter(void 0, void 0, void 0, function* () {
98
+ 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) {
100
99
  console.log(chalk.cyan("[i] Loading 'Lazy Load' module"));
101
100
  if (globals.getDisableSandbox()) {
102
101
  console.log(chalk.yellow("[!] Browser sandbox disabled"));
@@ -140,84 +139,19 @@ const lazyLoad = (url, output, strictScope, inputScope, threads, subsequentReque
140
139
  if (tech.name === "next") {
141
140
  console.log(chalk.green("[✓] Next.js detected"));
142
141
  console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
143
- // find the JS files from script of the webpage
144
- const jsFilesFromScriptTag = yield next_getJSScript(url);
145
- // get lazy resources
146
- const lazyResourcesFromWebpack = yield next_GetLazyResourcesWebpackJs(url);
147
- const lazyResourcesFromBuildManifest = yield next_getLazyResourcesBuildManifestJs(url);
148
- let lazyResourcesFromSubsequentRequests;
149
- let scriptTagsSubsequentRequests;
150
- if (subsequentRequestsFlag) {
151
- // get JS files from subsequent requests
152
- lazyResourcesFromSubsequentRequests = yield subsequentRequests(url, urlsFile, threads, output, lazyLoadGlobals.getJsUrls() // Pass the global js_urls
153
- );
154
- // another run for to get the HTML from client side paths
155
- // and parse the script tags
156
- scriptTagsSubsequentRequests = yield next_scriptTagsSubsequentRequests(url, urlsFile);
157
- }
158
- // download the resources
159
- // but combine them first
160
- let jsFilesToDownload = [
161
- ...(jsFilesFromScriptTag || []),
162
- ...(lazyResourcesFromWebpack || []),
163
- ...(lazyResourcesFromBuildManifest || []),
164
- ...(lazyResourcesFromSubsequentRequests || []),
165
- ...(scriptTagsSubsequentRequests || []),
166
- ];
167
- // Ensure js_urls from globals are included if next_getJSScript or next_getLazyResources populated it.
168
- // This is because those functions now push to the global js_urls via setters.
169
- // The return values of next_getJSScript and next_getLazyResources might be the same array instance
170
- // or a new one depending on their implementation, so explicitly get the global one here.
171
- jsFilesToDownload.push(...lazyLoadGlobals.getJsUrls());
172
- // also, download the JSON files, so push those as well into this list
173
- jsFilesToDownload.push(...lazyLoadGlobals.getJsonUrls());
174
- // dedupe the files
175
- jsFilesToDownload = [...new Set(jsFilesToDownload)];
176
- // JS files are also loaded like:
177
- // e.v((t) =>
178
- // Promise.all(
179
- // [
180
- // "static/chunks/8c89748310820503.js",
181
- // "static/chunks/cc50acdcbae71ebc.js",
182
- // "static/chunks/bedf897aaa1cca78.js",
183
- // ].map((t) => e.l(t)),
184
- // ).then(() => t(58485)),
185
- // );
186
- // this behavior was found in my own site, which uses turbopack instead of webpack
187
- // so, to resolve everything, we need to go through all the files' content
188
- // and AST search for this pattern
189
- const jsFilesFrom_next_promiseResolve = yield next_promiseResolve(jsFilesToDownload);
190
- jsFilesToDownload.push(...jsFilesFrom_next_promiseResolve);
191
- // another method found during research:
192
- // when an app is built with turbopack, the .js.map files are present, but unlike webpack,
193
- // they aren't present on the bottom of the file
194
- // so, the way to find them is to just append `.map` on found JS files and bruteforce them
195
- const jsFilesSourcemaps = yield next_bruteForceJsFiles(jsFilesToDownload);
196
- jsFilesToDownload.push(...jsFilesSourcemaps);
197
- // layout.*.js contains some UI builder elements
198
- // parsing those gives us some client-side paths
199
- // for example, the following code snippet is extracted, and returns a valid client side-path:
200
- // (0, r.jsx)("div", {
201
- // className: "border-b border-gray-600 pb-2",
202
- // children: (0, r.jsxs)(l(), {
203
- // href: "/profile/".concat(t.auth.username),
204
- // className: "flex flex-row space-x-2 items-center",
205
- // onClick: () => a(!1),
206
- // children: [
207
- // (0, r.jsx)(er.A, { size: "20" }),
208
- // (0, r.jsx)("p", { children: "Profile" }),
209
- // ],
210
- // }),
211
- // }),
212
- // it is often nested in element names `children`, which is mostly an array
213
- // e.g.
214
- // children: [..., (0, r.jsx)("div", {...}), ....]
215
- // so, we need to parse this to find such patterns
216
- const layoutJsFiles = yield next_parseLayoutJs(url, jsFilesToDownload);
217
- jsFilesToDownload.push(...layoutJsFiles);
142
+ const crawler = new NextJsCrawler({
143
+ url,
144
+ output,
145
+ subsequentRequestsFlag,
146
+ urlsFile,
147
+ threads,
148
+ research,
149
+ maxIterations,
150
+ });
151
+ const jsFilesToDownload = yield crawler.crawl();
218
152
  // dedupe the files
219
- jsFilesToDownload = [...new Set(jsFilesToDownload)];
220
- yield downloadFiles(jsFilesToDownload, output);
153
+ const dedupedFiles = [...new Set(jsFilesToDownload)];
154
+ yield downloadFiles(dedupedFiles, output);
221
155
  if (buildId) {
222
156
  // get the buildId
223
157
  // the directory is the output <output>/<host.replace(":", "_")>/___subsequent_requests
@@ -228,50 +162,23 @@ const lazyLoad = (url, output, strictScope, inputScope, threads, subsequentReque
228
162
  fs.writeFileSync(path.join(output, new URL(url).host.replace(":", "_") + "/BUILD_ID"), buildId);
229
163
  }
230
164
  }
165
+ // if the research mode is enabled, then write the technique efficiency to a file
166
+ if (research) {
167
+ // prettify the JSON and write
168
+ fs.writeFileSync(researchOutput, JSON.stringify(crawler.techniqueEfficiencyMapping, null, 4));
169
+ console.log(chalk.green("[✓] Research mode enabled. Technique efficiency written to " + researchOutput));
170
+ }
231
171
  // extract the source maps
232
172
  yield extractSourceMaps(output, sourcemapDir);
233
173
  }
234
174
  else if (tech.name === "vue") {
235
175
  console.log(chalk.green("[✓] Vue.js detected"));
236
176
  console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
237
- let jsFilesToDownload = [];
238
- // according to the vibe-coded app with a few pages, there are
239
- // just a few files, like 2-3, but that's not the case in prod
240
- // okay, found something from real apps :/
241
- // maybe vibes aren't enough xD
242
- // method 1: through runtime.<hash>.js
243
- // for this, first get the contents of `/`, and find runtime.<hash>.js file
244
- /* ==========================
245
- * IMPORTANT: THE FOLLOWING MODULE IS INCOMPLETE
246
- * JUST NEED TO COMPLETE IT
247
- * DO NOT PERMANENTLY DELETE IT
248
- * ==========================
249
- */
250
- // const runtimeJsFiles = await vue_runtimeJs(url);
251
- // jsFilesToDownload.push(...runtimeJsFiles);
252
- // another method: this is when the application only loads a single JS file
253
- // everything is there right in that file
254
- // the following method was tested on an app running in dev mode
255
- // effectiveness in prod mode is unknown atm
256
- const jsFilesFromSingleJsFile = yield vue_singleJsFileOnHome(url);
257
- jsFilesToDownload.push(...jsFilesFromSingleJsFile);
258
- if (jsFilesFromSingleJsFile.length > 0) {
259
- console.log(chalk.green(`[✓] Found ${jsFilesFromSingleJsFile.length} files from the single JS file on home`));
260
- }
261
- // now, get the import statements from the JS files
262
- const foundJsFilesFromImport = yield vue_jsImports(url, jsFilesToDownload);
263
- jsFilesToDownload.push(...foundJsFilesFromImport);
264
- if (foundJsFilesFromImport.length > 0) {
265
- console.log(chalk.green(`[✓] Found ${foundJsFilesFromImport.length} files from import statements`));
266
- }
267
- // check if those have sourcemaps
268
- const reconstructSourceMaps = yield vue_reconstructSourceMaps(url, jsFilesToDownload);
269
- jsFilesToDownload.push(...reconstructSourceMaps);
270
- if (reconstructSourceMaps.length > 0) {
271
- console.log(chalk.green(`[✓] Found ${reconstructSourceMaps.length} files from reconstructing source maps`));
272
- }
273
- // dedupe the list
274
- jsFilesToDownload = [...new Set(jsFilesToDownload)];
177
+ // run the full discovery pipeline against the entry URL
178
+ const { jsFiles, clientSidePaths } = yield vue_discoverJsFiles(url, maxJsSizeMb);
179
+ // recurse the same pipeline through every client-side path we found
180
+ const recursivelyDiscovered = yield vue_recursiveClientSidePathDownload(clientSidePaths, threads, maxJsSizeMb);
181
+ const jsFilesToDownload = [...new Set([...jsFiles, ...recursivelyDiscovered])];
275
182
  // finally, download these
276
183
  yield downloadFiles(jsFilesToDownload, output);
277
184
  // extract the source maps
@@ -336,6 +243,24 @@ const lazyLoad = (url, output, strictScope, inputScope, threads, subsequentReque
336
243
  jsFilesToDownload = [...new Set(jsFilesToDownload)];
337
244
  yield downloadFiles(jsFilesToDownload, output);
338
245
  }
246
+ else if (tech.name === "react") {
247
+ console.log(chalk.green("[✓] React detected"));
248
+ console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
249
+ let jsFilesToDownload = [];
250
+ // get the files from the page source
251
+ const jsFilesFromPageSource = yield react_getScriptTags(url, maxJsSizeMb);
252
+ jsFilesToDownload.push(...jsFilesFromPageSource);
253
+ // find the webpack chunk path builder function
254
+ const getWebpackChunkPaths = yield react_webpackChunkPaths(url, maxJsSizeMb, jsFilesToDownload);
255
+ jsFilesToDownload.push(...getWebpackChunkPaths);
256
+ // check existing JS files for inline sourcemap references
257
+ const sourcemapUrls = yield react_sourcemapUrls(jsFilesToDownload);
258
+ jsFilesToDownload.push(...sourcemapUrls);
259
+ // dedupe the files
260
+ jsFilesToDownload = [...new Set(jsFilesToDownload)];
261
+ yield downloadFiles(jsFilesToDownload, output);
262
+ extractSourceMaps(output, sourcemapDir);
263
+ }
339
264
  else {
340
265
  console.log(chalk.red("[!] Framework not detected :("));
341
266
  console.log(chalk.magenta(CONFIG.notFoundMessage));
@@ -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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"}