@js-recon/js-recon 1.4.2 → 1.4.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.
- package/.github/workflows/build-and-prettify.yaml +6 -6
- package/.github/workflows/rules-smoke-test.yaml +2 -2
- package/CHANGELOG.md +30 -0
- package/Dockerfile +13 -2
- package/Dockerfile.release +12 -2
- package/Dockerfile.w-rules +0 -1
- package/README.md +52 -0
- package/build/analyze/helpers/initRules.js +34 -16
- package/build/analyze/helpers/initRules.js.map +1 -1
- package/build/completion/index.js +44 -3
- package/build/completion/index.js.map +1 -1
- package/build/config/applicationConfig.js +493 -0
- package/build/config/applicationConfig.js.map +1 -0
- package/build/fingerprint/index.js +8 -19
- package/build/fingerprint/index.js.map +1 -1
- package/build/globalConfig.js +1 -1
- package/build/index.js +62 -9
- package/build/index.js.map +1 -1
- package/build/lazyLoad/downloadFilesUtil.js +40 -32
- package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
- package/build/lazyLoad/downloadQueue.js +150 -50
- package/build/lazyLoad/downloadQueue.js.map +1 -1
- package/build/lazyLoad/downloadResponse.js +112 -0
- package/build/lazyLoad/downloadResponse.js.map +1 -0
- package/build/lazyLoad/globals.js +4 -0
- package/build/lazyLoad/globals.js.map +1 -1
- package/build/lazyLoad/index.js +188 -115
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/next_js/NextJsCrawler.js +3 -2
- package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +8 -9
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_SubsequentRequests.js +93 -93
- package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
- package/build/lazyLoad/outputPath.js +92 -0
- package/build/lazyLoad/outputPath.js.map +1 -0
- package/build/lazyLoad/react/react_followImports.js +15 -5
- package/build/lazyLoad/react/react_followImports.js.map +1 -1
- package/build/lazyLoad/react/react_getScriptTags.js +11 -6
- package/build/lazyLoad/react/react_getScriptTags.js.map +1 -1
- package/build/lazyLoad/react/react_sourcemapUrls.js +3 -2
- package/build/lazyLoad/react/react_sourcemapUrls.js.map +1 -1
- package/build/lazyLoad/react/react_webpackChunkPaths.js +2 -1
- package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -1
- package/build/lazyLoad/techDetect/index.js +93 -59
- package/build/lazyLoad/techDetect/index.js.map +1 -1
- package/build/lazyLoad/vue/vue_RuntimeJs.js +20 -15
- package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -1
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +8 -3
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
- package/build/lazyLoad/vue/vue_discoverJsFiles.js +10 -9
- package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js +69 -45
- package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
- package/build/lazyLoad/vue/vue_jsImports.js +3 -2
- package/build/lazyLoad/vue/vue_jsImports.js.map +1 -1
- package/build/lazyLoad/vue/vue_pageSrc.js +2 -1
- package/build/lazyLoad/vue/vue_pageSrc.js.map +1 -1
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +4 -3
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -1
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +9 -20
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
- package/build/lazyLoad/vue/vue_severalJsFilesHome.js +2 -1
- package/build/lazyLoad/vue/vue_severalJsFilesHome.js.map +1 -1
- package/build/lazyLoad/vue/vue_stringJsFiles.js +28 -25
- package/build/lazyLoad/vue/vue_stringJsFiles.js.map +1 -1
- package/build/lazyLoad/vue/vue_viteMapDeps.js +8 -2
- package/build/lazyLoad/vue/vue_viteMapDeps.js.map +1 -1
- package/build/proxy/checkFeasibility.js +8 -4
- package/build/proxy/checkFeasibility.js.map +1 -1
- package/build/proxy/checkFireWallBlocking.js +23 -13
- package/build/proxy/checkFireWallBlocking.js.map +1 -1
- package/build/proxy/detectBlockedResponse.js +203 -0
- package/build/proxy/detectBlockedResponse.js.map +1 -0
- package/build/proxy/genReq.js +434 -127
- package/build/proxy/genReq.js.map +1 -1
- package/build/proxy/oxylabsFallback.js +110 -0
- package/build/proxy/oxylabsFallback.js.map +1 -0
- package/build/proxy/proxyFeasibilityRequest.js +11 -9
- package/build/proxy/proxyFeasibilityRequest.js.map +1 -1
- package/build/run/cancellableStep.js +27 -0
- package/build/run/cancellableStep.js.map +1 -0
- package/build/run/index.js +80 -85
- package/build/run/index.js.map +1 -1
- package/build/run/outputDirectory.js +377 -0
- package/build/run/outputDirectory.js.map +1 -0
- package/build/sourcemaps/index.js +109 -23
- package/build/sourcemaps/index.js.map +1 -1
- package/build/strings/index.js +12 -5
- package/build/strings/index.js.map +1 -1
- package/build/utility/downloadProgress.js +99 -0
- package/build/utility/downloadProgress.js.map +1 -0
- package/build/utility/makeReq.js +490 -257
- package/build/utility/makeReq.js.map +1 -1
- package/build/utility/progressLog.js +64 -4
- package/build/utility/progressLog.js.map +1 -1
- package/build/utility/targetInputs.js +177 -0
- package/build/utility/targetInputs.js.map +1 -0
- package/build/utility/urlUtils.js +37 -1
- package/build/utility/urlUtils.js.map +1 -1
- package/config.dist.yaml +251 -0
- package/docker-entrypoint.sh +16 -0
- package/package.json +2 -2
package/build/lazyLoad/index.js
CHANGED
|
@@ -50,6 +50,11 @@ import { extractSourceMaps } from "../sourcemaps/index.js";
|
|
|
50
50
|
import * as lazyLoadGlobals from "./globals.js";
|
|
51
51
|
import * as globals from "../utility/globals.js";
|
|
52
52
|
import { shouldRunMethod } from "./methodFilter.js";
|
|
53
|
+
import DownloadProgress from "../utility/downloadProgress.js";
|
|
54
|
+
import { progressLog, progressWarn } from "../utility/progressLog.js";
|
|
55
|
+
import { resolveHostOutputDirectory } from "./outputPath.js";
|
|
56
|
+
import { withRequestSignal } from "../utility/makeReq.js";
|
|
57
|
+
import { resolveTargetInputs } from "../utility/targetInputs.js";
|
|
53
58
|
/**
|
|
54
59
|
* Downloads the required JavaScript files for a given URL
|
|
55
60
|
* @param {string} url The URL to download the JS files from
|
|
@@ -62,10 +67,37 @@ import { shouldRunMethod } from "./methodFilter.js";
|
|
|
62
67
|
* @param {boolean} insecure If true, then disable SSL certificate verification
|
|
63
68
|
* @returns {Promise<void>} A Promise that resolves when the download is complete
|
|
64
69
|
*/
|
|
65
|
-
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, hardTimeoutMs = 30 * 60 * 1000, maxPageVisits = 200, includeMethods = [], excludeMethods = [], detectionTimeoutMs = 30 * 1000) {
|
|
70
|
+
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, hardTimeoutMs = 30 * 60 * 1000, maxPageVisits = 200, includeMethods = [], excludeMethods = [], detectionTimeoutMs = 30 * 1000, cancellationSignal, isBatch = false) {
|
|
71
|
+
const resolvedTargets = resolveTargetInputs(url);
|
|
66
72
|
// Hoisted so the timeout handler can stop discovery and drain downloads.
|
|
67
73
|
let activeCrawler = null;
|
|
68
74
|
let activeQueue = null;
|
|
75
|
+
let activeDownloadProgress = null;
|
|
76
|
+
let activeDetectionController = null;
|
|
77
|
+
let hardTimeoutReached = false;
|
|
78
|
+
const workController = new AbortController();
|
|
79
|
+
const requestCancellation = () => {
|
|
80
|
+
hardTimeoutReached = true;
|
|
81
|
+
workController.abort();
|
|
82
|
+
activeDetectionController === null || activeDetectionController === void 0 ? void 0 : activeDetectionController.abort();
|
|
83
|
+
activeCrawler === null || activeCrawler === void 0 ? void 0 : activeCrawler.stop();
|
|
84
|
+
activeDownloadProgress === null || activeDownloadProgress === void 0 ? void 0 : activeDownloadProgress.stop();
|
|
85
|
+
activeDownloadProgress = null;
|
|
86
|
+
};
|
|
87
|
+
const enqueue = (queue, urls) => {
|
|
88
|
+
if (!hardTimeoutReached)
|
|
89
|
+
queue.push(urls);
|
|
90
|
+
};
|
|
91
|
+
const handleExternalCancellation = () => requestCancellation();
|
|
92
|
+
const cleanupActiveWork = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
93
|
+
activeDownloadProgress === null || activeDownloadProgress === void 0 ? void 0 : activeDownloadProgress.stop();
|
|
94
|
+
activeDownloadProgress = null;
|
|
95
|
+
if (hardTimeoutReached)
|
|
96
|
+
yield (activeQueue === null || activeQueue === void 0 ? void 0 : activeQueue.drain().catch(() => undefined));
|
|
97
|
+
});
|
|
98
|
+
cancellationSignal === null || cancellationSignal === void 0 ? void 0 : cancellationSignal.addEventListener("abort", handleExternalCancellation, { once: true });
|
|
99
|
+
if (cancellationSignal === null || cancellationSignal === void 0 ? void 0 : cancellationSignal.aborted)
|
|
100
|
+
requestCancellation();
|
|
69
101
|
const work = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
70
102
|
console.log(chalk.cyan("[i] Loading 'Lazy Load' module"));
|
|
71
103
|
if (globals.getDisableSandbox()) {
|
|
@@ -82,52 +114,51 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
82
114
|
fs.writeFileSync(globals.getRespCacheFile(), "{}");
|
|
83
115
|
}
|
|
84
116
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
urls = fs.readFileSync(url, "utf8").split("\n");
|
|
89
|
-
// remove the empty lines
|
|
90
|
-
urls = urls.filter((url) => url.trim() !== "");
|
|
91
|
-
}
|
|
92
|
-
else if (url.match(/https?:\/\/[a-zA-Z0-9\-_\.:]+/)) {
|
|
93
|
-
urls = [url];
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
console.error(chalk.red("[!] Invalid URL or file path"));
|
|
97
|
-
process.exit(3);
|
|
98
|
-
}
|
|
99
|
-
for (const url of urls) {
|
|
117
|
+
for (const url of resolvedTargets.targets) {
|
|
118
|
+
if (hardTimeoutReached)
|
|
119
|
+
break;
|
|
100
120
|
console.log(chalk.cyan(`[i] Processing ${url}`));
|
|
121
|
+
lazyLoadGlobals.clearJsUrls();
|
|
122
|
+
lazyLoadGlobals.clearJsonUrls();
|
|
123
|
+
lazyLoadGlobals.clearCrawledUrls();
|
|
101
124
|
if (strictScope) {
|
|
102
|
-
lazyLoadGlobals.
|
|
125
|
+
lazyLoadGlobals.setScope([new URL(url).host]);
|
|
103
126
|
}
|
|
104
127
|
else {
|
|
105
|
-
lazyLoadGlobals.setScope(inputScope);
|
|
128
|
+
lazyLoadGlobals.setScope([...inputScope]);
|
|
106
129
|
}
|
|
107
130
|
lazyLoadGlobals.setMaxReqQueue(threads);
|
|
131
|
+
globals.setTech("");
|
|
108
132
|
let tech;
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
133
|
+
const detectionController = new AbortController();
|
|
134
|
+
activeDetectionController = detectionController;
|
|
135
|
+
let detectionTimedOut = false;
|
|
136
|
+
const detectionTimeoutHandle = detectionTimeoutMs > 0
|
|
137
|
+
? setTimeout(() => {
|
|
138
|
+
detectionTimedOut = true;
|
|
139
|
+
detectionController.abort();
|
|
140
|
+
}, detectionTimeoutMs)
|
|
141
|
+
: undefined;
|
|
142
|
+
try {
|
|
143
|
+
tech = yield frameworkDetect(url, detectionController.signal);
|
|
121
144
|
}
|
|
122
|
-
|
|
123
|
-
|
|
145
|
+
finally {
|
|
146
|
+
if (detectionTimeoutHandle !== undefined)
|
|
147
|
+
clearTimeout(detectionTimeoutHandle);
|
|
148
|
+
if (activeDetectionController === detectionController)
|
|
149
|
+
activeDetectionController = null;
|
|
124
150
|
}
|
|
151
|
+
if (detectionTimedOut) {
|
|
152
|
+
console.error(chalk.yellow(`[!] Framework detection timed out after ${detectionTimeoutMs}ms; treating as not detected`));
|
|
153
|
+
}
|
|
154
|
+
if (hardTimeoutReached)
|
|
155
|
+
break;
|
|
125
156
|
globals.setTech(tech ? tech.name : "");
|
|
126
157
|
if (tech) {
|
|
127
158
|
if (tech.name === "next") {
|
|
128
159
|
console.log(chalk.green("[✓] Next.js detected"));
|
|
129
160
|
console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
|
|
130
|
-
activeQueue = new DownloadQueue(output, threads);
|
|
161
|
+
activeQueue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
131
162
|
const crawler = new NextJsCrawler({
|
|
132
163
|
url,
|
|
133
164
|
output,
|
|
@@ -137,24 +168,36 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
137
168
|
research,
|
|
138
169
|
maxIterations,
|
|
139
170
|
maxPageVisits,
|
|
140
|
-
onUrlsDiscovered: (urls) => activeQueue
|
|
171
|
+
onUrlsDiscovered: (urls) => enqueue(activeQueue, urls),
|
|
141
172
|
includeMethods,
|
|
142
173
|
excludeMethods,
|
|
174
|
+
isBatch,
|
|
143
175
|
});
|
|
144
176
|
activeCrawler = crawler;
|
|
145
|
-
|
|
146
|
-
|
|
177
|
+
try {
|
|
178
|
+
yield crawler.crawl();
|
|
179
|
+
}
|
|
180
|
+
finally {
|
|
181
|
+
activeCrawler = null; // done — prevent timeout handler from calling stop()
|
|
182
|
+
}
|
|
183
|
+
if (hardTimeoutReached)
|
|
184
|
+
return;
|
|
147
185
|
yield activeQueue.drain();
|
|
186
|
+
if (hardTimeoutReached)
|
|
187
|
+
return;
|
|
148
188
|
activeQueue.printSummary();
|
|
149
189
|
activeQueue = null;
|
|
150
190
|
if (buildId) {
|
|
151
191
|
// get the buildId
|
|
152
192
|
// the directory is the output <output>/<host.replace(":", "_")>/___subsequent_requests
|
|
153
|
-
const
|
|
193
|
+
const targetOutputDir = resolveHostOutputDirectory(output, new URL(url).host, isBatch);
|
|
194
|
+
const buildId = yield next_buildId_RSC(path.join(targetOutputDir, "___subsequent_requests"));
|
|
195
|
+
if (hardTimeoutReached)
|
|
196
|
+
return;
|
|
154
197
|
if (buildId) {
|
|
155
198
|
console.log(chalk.cyan("[+] Found buildId: " + buildId));
|
|
156
199
|
// now, write it to a file
|
|
157
|
-
fs.writeFileSync(path.join(
|
|
200
|
+
fs.writeFileSync(path.join(targetOutputDir, "BUILD_ID"), buildId);
|
|
158
201
|
}
|
|
159
202
|
}
|
|
160
203
|
// if the research mode is enabled, then write the technique efficiency to a file
|
|
@@ -169,14 +212,20 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
169
212
|
else if (tech.name === "vue") {
|
|
170
213
|
console.log(chalk.green("[✓] Vue.js detected"));
|
|
171
214
|
console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
|
|
172
|
-
activeQueue = new DownloadQueue(output, threads);
|
|
215
|
+
activeQueue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
173
216
|
const queue = activeQueue;
|
|
174
|
-
const onFilesDiscovered = (files) => queue
|
|
217
|
+
const onFilesDiscovered = (files) => enqueue(queue, files);
|
|
175
218
|
// run the full discovery pipeline against the entry URL
|
|
176
219
|
const { clientSidePaths } = yield vue_discoverJsFiles(url, maxJsSizeMb, onFilesDiscovered, includeMethods, excludeMethods, threads);
|
|
220
|
+
if (hardTimeoutReached)
|
|
221
|
+
return;
|
|
177
222
|
// recurse the same pipeline through every client-side path we found
|
|
178
223
|
yield vue_recursiveClientSidePathDownload(clientSidePaths, threads, maxJsSizeMb, onFilesDiscovered, includeMethods, excludeMethods);
|
|
224
|
+
if (hardTimeoutReached)
|
|
225
|
+
return;
|
|
179
226
|
yield queue.drain();
|
|
227
|
+
if (hardTimeoutReached)
|
|
228
|
+
return;
|
|
180
229
|
queue.printSummary();
|
|
181
230
|
// extract the source maps
|
|
182
231
|
yield extractSourceMaps(output, join(output, sourcemapDir));
|
|
@@ -184,17 +233,17 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
184
233
|
else if (tech.name === "nuxt") {
|
|
185
234
|
console.log(chalk.green("[✓] Nuxt.js detected"));
|
|
186
235
|
console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
|
|
187
|
-
const queue = new DownloadQueue(output, threads);
|
|
236
|
+
const queue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
188
237
|
activeQueue = queue;
|
|
189
238
|
// find the files from the page source
|
|
190
239
|
const jsFilesFromPageSource = shouldRunMethod("nuxt_getFromPageSource", includeMethods, excludeMethods)
|
|
191
240
|
? yield nuxt_getFromPageSource(url)
|
|
192
241
|
: [];
|
|
193
|
-
queue
|
|
242
|
+
enqueue(queue, jsFilesFromPageSource);
|
|
194
243
|
const jsFilesFromStringAnalysis = shouldRunMethod("nuxt_stringAnalysisJSFiles", includeMethods, excludeMethods)
|
|
195
244
|
? yield nuxt_stringAnalysisJSFiles(url, threads)
|
|
196
245
|
: [];
|
|
197
|
-
queue
|
|
246
|
+
enqueue(queue, jsFilesFromStringAnalysis);
|
|
198
247
|
const firstBatch = [...new Set([...jsFilesFromPageSource, ...jsFilesFromStringAnalysis])];
|
|
199
248
|
let jsFilesFromAST = [];
|
|
200
249
|
if (shouldRunMethod("nuxt_astParse", includeMethods, excludeMethods)) {
|
|
@@ -203,25 +252,27 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
203
252
|
jsFilesFromAST.push(...(yield nuxt_astParse(jsFile)));
|
|
204
253
|
}
|
|
205
254
|
}
|
|
206
|
-
queue
|
|
207
|
-
queue
|
|
255
|
+
enqueue(queue, jsFilesFromAST);
|
|
256
|
+
enqueue(queue, lazyLoadGlobals.getJsUrls());
|
|
208
257
|
const buildsManifestFiles = shouldRunMethod("nuxt_getBuildsManifest", includeMethods, excludeMethods)
|
|
209
258
|
? yield nuxt_getBuildsManifest(url)
|
|
210
259
|
: [];
|
|
211
|
-
queue
|
|
260
|
+
enqueue(queue, buildsManifestFiles);
|
|
212
261
|
yield queue.drain();
|
|
262
|
+
if (hardTimeoutReached)
|
|
263
|
+
return;
|
|
213
264
|
queue.printSummary();
|
|
214
265
|
}
|
|
215
266
|
else if (tech.name === "svelte") {
|
|
216
267
|
console.log(chalk.green("[✓] Svelte detected"));
|
|
217
268
|
console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
|
|
218
|
-
const queue = new DownloadQueue(output, threads);
|
|
269
|
+
const queue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
219
270
|
activeQueue = queue;
|
|
220
271
|
// find the files from the page source
|
|
221
272
|
const jsFilesFromPageSource = shouldRunMethod("svelte_getFromPageSource", includeMethods, excludeMethods)
|
|
222
273
|
? yield svelte_getFromPageSource(url)
|
|
223
274
|
: [];
|
|
224
|
-
queue
|
|
275
|
+
enqueue(queue, jsFilesFromPageSource);
|
|
225
276
|
// probe /<appDir>/version.json — SvelteKit serves this for the `updated` store
|
|
226
277
|
// but never references it from HTML or JS, so it is invisible to all other steps
|
|
227
278
|
const appDir = (() => {
|
|
@@ -239,7 +290,7 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
239
290
|
? yield svelte_getVersionJson(url, appDir)
|
|
240
291
|
: [];
|
|
241
292
|
if (versionJsonFiles.length > 0) {
|
|
242
|
-
queue
|
|
293
|
+
enqueue(queue, versionJsonFiles);
|
|
243
294
|
}
|
|
244
295
|
// analyze the strings now
|
|
245
296
|
let jsFilesFromStringAnalysis = [];
|
|
@@ -248,9 +299,9 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
248
299
|
const result = yield svelte_stringAnalysisJSFiles(url, threads);
|
|
249
300
|
jsFilesFromStringAnalysis = result.jsFiles;
|
|
250
301
|
mapFilesFromStringAnalysis = result.mapFiles;
|
|
251
|
-
queue
|
|
302
|
+
enqueue(queue, jsFilesFromStringAnalysis);
|
|
252
303
|
if (mapFilesFromStringAnalysis.length > 0) {
|
|
253
|
-
queue
|
|
304
|
+
enqueue(queue, mapFilesFromStringAnalysis);
|
|
254
305
|
}
|
|
255
306
|
}
|
|
256
307
|
// recursively follow ESM static imports (import ... from "./chunk.js")
|
|
@@ -261,13 +312,13 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
261
312
|
if (newFiles.length === 0)
|
|
262
313
|
break;
|
|
263
314
|
console.log(chalk.green(`[✓] Discovered ${newFiles.length} more JS file(s) via imports`));
|
|
264
|
-
queue
|
|
315
|
+
enqueue(queue, newFiles);
|
|
265
316
|
toFollow = newFiles;
|
|
266
317
|
}
|
|
267
318
|
// crawl same-origin HTML pages found via <a href> and <link href>,
|
|
268
319
|
// running the full JS-discovery pipeline on each
|
|
269
320
|
const jsFilesFromPageCrawl = shouldRunMethod("svelte_recursivePageCrawl", includeMethods, excludeMethods)
|
|
270
|
-
? yield svelte_recursivePageCrawl(url, maxJsSizeMb, (files) => queue
|
|
321
|
+
? yield svelte_recursivePageCrawl(url, maxJsSizeMb, (files) => enqueue(queue, files))
|
|
271
322
|
: [];
|
|
272
323
|
// Svelte/Astro apps use client-side routing — the home page rarely has
|
|
273
324
|
// <a href> links in its server-rendered HTML. Scan downloaded JS for
|
|
@@ -278,31 +329,33 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
278
329
|
? yield svelte_discoverPagesFromJs(url, threads)
|
|
279
330
|
: [];
|
|
280
331
|
if (jsFilesFromPathScan.length > 0) {
|
|
281
|
-
queue
|
|
332
|
+
enqueue(queue, jsFilesFromPathScan);
|
|
282
333
|
}
|
|
283
334
|
// run string analysis once more to catch JS files discovered during page crawl
|
|
284
335
|
if ((jsFilesFromPageCrawl.length > 0 || jsFilesFromPathScan.length > 0) &&
|
|
285
336
|
shouldRunMethod("svelte_stringAnalysisJSFiles", includeMethods, excludeMethods)) {
|
|
286
337
|
const { jsFiles: jsFilesFromStringAnalysis2, mapFiles: mapFilesFromStringAnalysis2 } = yield svelte_stringAnalysisJSFiles(url, threads);
|
|
287
|
-
queue
|
|
338
|
+
enqueue(queue, jsFilesFromStringAnalysis2);
|
|
288
339
|
if (mapFilesFromStringAnalysis2.length > 0) {
|
|
289
|
-
queue
|
|
340
|
+
enqueue(queue, mapFilesFromStringAnalysis2);
|
|
290
341
|
}
|
|
291
342
|
}
|
|
292
343
|
yield queue.drain();
|
|
344
|
+
if (hardTimeoutReached)
|
|
345
|
+
return;
|
|
293
346
|
queue.printSummary();
|
|
294
347
|
yield extractSourceMaps(output, join(output, sourcemapDir));
|
|
295
348
|
}
|
|
296
349
|
else if (tech.name === "angular") {
|
|
297
350
|
console.log(chalk.green("[✓] Angular detected"));
|
|
298
351
|
console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
|
|
299
|
-
const queue = new DownloadQueue(output, threads);
|
|
352
|
+
const queue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
300
353
|
activeQueue = queue;
|
|
301
354
|
// find the files from the page source
|
|
302
355
|
const jsFilesFromPageSource = shouldRunMethod("angular_getFromPageSource", includeMethods, excludeMethods)
|
|
303
356
|
? yield angular_getFromPageSource(url)
|
|
304
357
|
: [];
|
|
305
|
-
queue
|
|
358
|
+
enqueue(queue, jsFilesFromPageSource);
|
|
306
359
|
// files using the main.js
|
|
307
360
|
if (shouldRunMethod("angular_getFromMainJs", includeMethods, excludeMethods)) {
|
|
308
361
|
let mainJsUrl;
|
|
@@ -314,54 +367,77 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
314
367
|
}
|
|
315
368
|
if (mainJsUrl) {
|
|
316
369
|
const jsFilesFromMainJs = yield angular_getFromMainJs(mainJsUrl);
|
|
317
|
-
queue
|
|
370
|
+
enqueue(queue, jsFilesFromMainJs);
|
|
318
371
|
// recursively follow chunk-to-chunk imports beyond the first hop
|
|
319
372
|
if (shouldRunMethod("angular_recursiveChunkImports", includeMethods, excludeMethods)) {
|
|
320
373
|
const transitiveChunks = yield angular_recursiveChunkImports(jsFilesFromMainJs, threads);
|
|
321
|
-
queue
|
|
374
|
+
enqueue(queue, transitiveChunks);
|
|
322
375
|
}
|
|
323
376
|
}
|
|
324
377
|
}
|
|
325
378
|
yield queue.drain();
|
|
379
|
+
if (hardTimeoutReached)
|
|
380
|
+
return;
|
|
326
381
|
queue.printSummary();
|
|
327
382
|
}
|
|
328
383
|
else if (tech.name === "react") {
|
|
329
384
|
console.log(chalk.green("[✓] React detected"));
|
|
330
385
|
console.log(chalk.yellow(`Evidence: ${tech.evidence}`));
|
|
331
|
-
const queue = new DownloadQueue(output, threads
|
|
386
|
+
const queue = new DownloadQueue(output, threads, {
|
|
387
|
+
compactOutput: true,
|
|
388
|
+
onProgress: (progress) => activeDownloadProgress === null || activeDownloadProgress === void 0 ? void 0 : activeDownloadProgress.update(progress),
|
|
389
|
+
alreadyBatchTargetRoot: isBatch,
|
|
390
|
+
});
|
|
332
391
|
activeQueue = queue;
|
|
333
392
|
// Seed: <script src> tags + <link rel="modulepreload"> (Vite vendor chunks)
|
|
334
393
|
const jsFilesFromPageSource = shouldRunMethod("react_getScriptTags", includeMethods, excludeMethods)
|
|
335
|
-
? yield react_getScriptTags(url, maxJsSizeMb, output)
|
|
394
|
+
? yield react_getScriptTags(url, maxJsSizeMb, output, isBatch)
|
|
336
395
|
: [];
|
|
337
|
-
|
|
396
|
+
if (hardTimeoutReached)
|
|
397
|
+
return;
|
|
398
|
+
enqueue(queue, jsFilesFromPageSource);
|
|
338
399
|
// webpack-style chunk path builders (CRA / custom webpack configs)
|
|
339
400
|
const webpackChunkPaths = shouldRunMethod("react_webpackChunkPaths", includeMethods, excludeMethods)
|
|
340
401
|
? yield react_webpackChunkPaths(url, maxJsSizeMb, jsFilesFromPageSource, threads)
|
|
341
402
|
: [];
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
403
|
+
if (hardTimeoutReached)
|
|
404
|
+
return;
|
|
405
|
+
activeDownloadProgress = new DownloadProgress();
|
|
406
|
+
activeDownloadProgress.update(queue.progress);
|
|
407
|
+
try {
|
|
408
|
+
enqueue(queue, webpackChunkPaths);
|
|
409
|
+
// Recursively follow ESM imports and Vite __vite_mapDeps references.
|
|
410
|
+
// visited starts empty so the seed files are fetched and parsed in the first round.
|
|
411
|
+
const visited = new Set();
|
|
412
|
+
if (shouldRunMethod("react_followImports", includeMethods, excludeMethods)) {
|
|
413
|
+
let toFollow = [...new Set([...jsFilesFromPageSource, ...webpackChunkPaths])];
|
|
414
|
+
while (toFollow.length > 0 && !hardTimeoutReached) {
|
|
415
|
+
const newFiles = yield react_followImports(toFollow, maxJsSizeMb, url, visited, threads, true);
|
|
416
|
+
if (hardTimeoutReached)
|
|
417
|
+
break;
|
|
418
|
+
if (newFiles.length === 0)
|
|
419
|
+
break;
|
|
420
|
+
progressLog(chalk.green(`[✓] Discovered ${newFiles.length} more JS file(s) via imports`));
|
|
421
|
+
enqueue(queue, newFiles);
|
|
422
|
+
toFollow = newFiles;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
// Sourcemaps for everything discovered
|
|
426
|
+
if (!hardTimeoutReached &&
|
|
427
|
+
shouldRunMethod("react_sourcemapUrls", includeMethods, excludeMethods)) {
|
|
428
|
+
const sourcemapUrls = yield react_sourcemapUrls([...visited], threads);
|
|
429
|
+
enqueue(queue, sourcemapUrls);
|
|
355
430
|
}
|
|
431
|
+
yield queue.drain();
|
|
356
432
|
}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
queue.push(sourcemapUrls);
|
|
433
|
+
finally {
|
|
434
|
+
activeDownloadProgress === null || activeDownloadProgress === void 0 ? void 0 : activeDownloadProgress.stop();
|
|
435
|
+
activeDownloadProgress = null;
|
|
361
436
|
}
|
|
362
|
-
|
|
437
|
+
if (hardTimeoutReached)
|
|
438
|
+
return;
|
|
363
439
|
queue.printSummary();
|
|
364
|
-
extractSourceMaps(output, join(output, sourcemapDir));
|
|
440
|
+
yield extractSourceMaps(output, join(output, sourcemapDir));
|
|
365
441
|
}
|
|
366
442
|
}
|
|
367
443
|
else {
|
|
@@ -369,6 +445,8 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
369
445
|
console.log(chalk.magenta(CONFIG.notFoundMessage));
|
|
370
446
|
console.log(chalk.yellow("[i] Trying to download loaded JS files"));
|
|
371
447
|
const js_urls = yield downloadLoadedJs(url);
|
|
448
|
+
if (hardTimeoutReached)
|
|
449
|
+
return;
|
|
372
450
|
if (js_urls && js_urls.length > 0) {
|
|
373
451
|
console.log(chalk.green(`[✓] Found ${js_urls.length} JS chunks`));
|
|
374
452
|
// Second-chance tech detection: scan downloaded URL paths for
|
|
@@ -397,47 +475,42 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
397
475
|
console.log(chalk.green(`[✓] Detected ${secondChanceTech} from downloaded file paths (evidence: ${secondChanceEvidence})`));
|
|
398
476
|
globals.setTech(secondChanceTech);
|
|
399
477
|
}
|
|
400
|
-
const queue = new DownloadQueue(output, threads);
|
|
401
|
-
queue
|
|
478
|
+
const queue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
479
|
+
enqueue(queue, js_urls);
|
|
402
480
|
yield queue.drain();
|
|
481
|
+
if (hardTimeoutReached)
|
|
482
|
+
return;
|
|
403
483
|
queue.printSummary();
|
|
404
484
|
}
|
|
405
485
|
}
|
|
406
486
|
}
|
|
407
487
|
});
|
|
408
488
|
if (hardTimeoutMs === 0) {
|
|
409
|
-
|
|
410
|
-
|
|
489
|
+
try {
|
|
490
|
+
yield withRequestSignal(workController.signal, work);
|
|
491
|
+
return;
|
|
492
|
+
}
|
|
493
|
+
finally {
|
|
494
|
+
cancellationSignal === null || cancellationSignal === void 0 ? void 0 : cancellationSignal.removeEventListener("abort", handleExternalCancellation);
|
|
495
|
+
yield cleanupActiveWork();
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
const timeoutHandle = setTimeout(() => {
|
|
499
|
+
requestCancellation();
|
|
500
|
+
const timeoutLabel = hardTimeoutMs >= 60000 ? `${hardTimeoutMs / 60000} min` : `${hardTimeoutMs}ms`;
|
|
501
|
+
progressWarn(chalk.yellow(`[!] Lazyload hard timeout reached (${timeoutLabel}). Stopping discovery and waiting for in-flight work...`));
|
|
502
|
+
}, hardTimeoutMs);
|
|
503
|
+
try {
|
|
504
|
+
// Never return while work() can still mutate files, globals, or terminal
|
|
505
|
+
// state. The timeout requests cooperative cancellation, then this await
|
|
506
|
+
// provides the lifecycle boundary for all in-flight framework work.
|
|
507
|
+
yield withRequestSignal(workController.signal, work);
|
|
508
|
+
}
|
|
509
|
+
finally {
|
|
510
|
+
clearTimeout(timeoutHandle);
|
|
511
|
+
cancellationSignal === null || cancellationSignal === void 0 ? void 0 : cancellationSignal.removeEventListener("abort", handleExternalCancellation);
|
|
512
|
+
yield cleanupActiveWork();
|
|
411
513
|
}
|
|
412
|
-
let timeoutHandle;
|
|
413
|
-
yield Promise.race([
|
|
414
|
-
work().finally(() => {
|
|
415
|
-
// work() finished before the timeout — cancel the timer so it never
|
|
416
|
-
// fires orphaned and doesn't hold the event loop open.
|
|
417
|
-
if (timeoutHandle !== undefined)
|
|
418
|
-
clearTimeout(timeoutHandle);
|
|
419
|
-
}),
|
|
420
|
-
new Promise((resolve) => {
|
|
421
|
-
timeoutHandle = setTimeout(() => {
|
|
422
|
-
console.error(chalk.yellow(`[!] Lazyload hard timeout reached (${hardTimeoutMs / 60000} min). Draining discovered files before moving on...`));
|
|
423
|
-
// Signal the crawler to stop at its next iteration boundary.
|
|
424
|
-
activeCrawler === null || activeCrawler === void 0 ? void 0 : activeCrawler.stop();
|
|
425
|
-
const q = activeQueue;
|
|
426
|
-
if (q) {
|
|
427
|
-
// Wait for already-queued downloads to finish, then move on.
|
|
428
|
-
q.drain()
|
|
429
|
-
.then(() => {
|
|
430
|
-
q.printSummary();
|
|
431
|
-
resolve();
|
|
432
|
-
})
|
|
433
|
-
.catch(() => resolve());
|
|
434
|
-
}
|
|
435
|
-
else {
|
|
436
|
-
resolve();
|
|
437
|
-
}
|
|
438
|
-
}, hardTimeoutMs);
|
|
439
|
-
}),
|
|
440
|
-
]);
|
|
441
514
|
});
|
|
442
515
|
export default lazyLoad;
|
|
443
516
|
//# sourceMappingURL=index.js.map
|
|
@@ -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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"}
|
|
@@ -29,7 +29,7 @@ import { shouldRunMethod } from "../methodFilter.js";
|
|
|
29
29
|
*/
|
|
30
30
|
class NextJsCrawler {
|
|
31
31
|
constructor(options) {
|
|
32
|
-
var _a, _b, _c;
|
|
32
|
+
var _a, _b, _c, _d;
|
|
33
33
|
/** Total HTML pages visited across all recursive passes. */
|
|
34
34
|
this.totalPagesVisited = 0;
|
|
35
35
|
/** Set to true by stop() to abort the crawl loop gracefully. */
|
|
@@ -49,6 +49,7 @@ class NextJsCrawler {
|
|
|
49
49
|
this.onUrlsDiscovered = options.onUrlsDiscovered;
|
|
50
50
|
this.includeMethods = (_b = options.includeMethods) !== null && _b !== void 0 ? _b : [];
|
|
51
51
|
this.excludeMethods = (_c = options.excludeMethods) !== null && _c !== void 0 ? _c : [];
|
|
52
|
+
this.isBatch = (_d = options.isBatch) !== null && _d !== void 0 ? _d : false;
|
|
52
53
|
this.discoveredUrls = new Set();
|
|
53
54
|
this.pageScriptFingerprints = new Map();
|
|
54
55
|
this.techniqueEfficiencyMapping = {};
|
|
@@ -157,7 +158,7 @@ class NextJsCrawler {
|
|
|
157
158
|
// 4. Subsequent requests (RSC / script-tags on known endpoints)
|
|
158
159
|
if (this.subsequentRequestsFlag) {
|
|
159
160
|
if (shouldRunMethod("next_SubsequentRequests", inc, exc)) {
|
|
160
|
-
const jsFromSubsequent = yield subsequentRequests(this.url, this.urlsFile, this.threads, this.output, lazyLoadGlobals.getJsUrls());
|
|
161
|
+
const jsFromSubsequent = yield subsequentRequests(this.url, this.urlsFile, this.threads, this.output, lazyLoadGlobals.getJsUrls(), this.isBatch);
|
|
161
162
|
this.techniqueEfficiencyMapping["subsequentRequests"] = [...jsFromSubsequent];
|
|
162
163
|
this.emitDownloadable(this.registerUrls([...jsFromSubsequent]));
|
|
163
164
|
}
|