@js-recon/js-recon 1.4.1-beta.2 → 1.4.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/.claude-sync/hooks/post-merge +4 -0
- package/.claude-sync/merge-agentic.sh +77 -0
- package/.github/workflows/promote-js-recon.yml +33 -3
- package/CHANGELOG.md +21 -0
- package/build/globalConfig.js +1 -1
- package/build/globalConfig.js.map +1 -1
- package/build/index.js +6 -3
- package/build/index.js.map +1 -1
- package/build/lazyLoad/angular/angular_getFromMainJs.js +11 -29
- package/build/lazyLoad/angular/angular_getFromMainJs.js.map +1 -1
- package/build/lazyLoad/angular/angular_recursiveChunkImports.js +104 -0
- package/build/lazyLoad/angular/angular_recursiveChunkImports.js.map +1 -0
- package/build/lazyLoad/index.js +33 -11
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/methodFilter.js +1 -1
- package/build/lazyLoad/methodFilter.js.map +1 -1
- package/build/lazyLoad/next_js/NextJsCrawler.js +5 -5
- package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +9 -8
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_bruteForceJsFiles.js +4 -3
- package/build/lazyLoad/next_js/next_bruteForceJsFiles.js.map +1 -1
- package/build/lazyLoad/next_js/next_parseLayoutJs.js +31 -31
- package/build/lazyLoad/next_js/next_parseLayoutJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_promiseResolve.js +4 -3
- package/build/lazyLoad/next_js/next_promiseResolve.js.map +1 -1
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +7 -8
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +6 -7
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/react/react_followImports.js +9 -8
- package/build/lazyLoad/react/react_followImports.js.map +1 -1
- package/build/lazyLoad/react/react_sourcemapUrls.js +5 -11
- package/build/lazyLoad/react/react_sourcemapUrls.js.map +1 -1
- package/build/lazyLoad/react/react_webpackChunkPaths.js +7 -6
- package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js +13 -12
- package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +6 -7
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/techDetect/checkReact.js +13 -0
- package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
- package/build/lazyLoad/techDetect/checkVueJS.js +7 -0
- package/build/lazyLoad/techDetect/checkVueJS.js.map +1 -1
- package/build/lazyLoad/vue/vue_discoverJsFiles.js +6 -6
- package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js +8 -7
- package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
- package/build/lazyLoad/vue/vue_jsImports.js +16 -16
- package/build/lazyLoad/vue/vue_jsImports.js.map +1 -1
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +5 -4
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -1
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +8 -1
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
- package/build/lazyLoad/vue/vue_stringJsFiles.js +15 -8
- package/build/lazyLoad/vue/vue_stringJsFiles.js.map +1 -1
- package/build/lazyLoad/vue/vue_viteMapDeps.js +6 -5
- package/build/lazyLoad/vue/vue_viteMapDeps.js.map +1 -1
- package/build/proxy/checkFeasibility.js +69 -17
- package/build/proxy/checkFeasibility.js.map +1 -1
- package/build/proxy/genReq.js +0 -7
- package/build/proxy/genReq.js.map +1 -1
- package/build/proxy/index.js +26 -2
- package/build/proxy/index.js.map +1 -1
- package/build/proxy/proxyFeasibilityRequest.js +30 -0
- package/build/proxy/proxyFeasibilityRequest.js.map +1 -0
- package/build/refactor/index.js +23 -28
- package/build/refactor/index.js.map +1 -1
- package/build/run/index.js +54 -5
- package/build/run/index.js.map +1 -1
- package/build/utility/concurrency.js +35 -0
- package/build/utility/concurrency.js.map +1 -0
- package/build/utility/makeReq.js +6 -0
- package/build/utility/makeReq.js.map +1 -1
- package/package.json +6 -3
- package/patches/puppeteer-extra-plugin-user-data-dir+2.4.1.patch +31 -0
|
@@ -30,7 +30,7 @@ import { shouldRunMethod } from "../methodFilter.js";
|
|
|
30
30
|
* caller can start downloading them immediately rather than waiting for the
|
|
31
31
|
* full pipeline to finish.
|
|
32
32
|
*/
|
|
33
|
-
const vue_discoverJsFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0, function* (url, maxJsSizeMb = 2, onFilesDiscovered, includeMethods = [], excludeMethods = []) {
|
|
33
|
+
const vue_discoverJsFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0, function* (url, maxJsSizeMb = 2, onFilesDiscovered, includeMethods = [], excludeMethods = [], threads = 1) {
|
|
34
34
|
let jsFiles = [];
|
|
35
35
|
const inc = includeMethods;
|
|
36
36
|
const exc = excludeMethods;
|
|
@@ -67,7 +67,7 @@ const vue_discoverJsFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...a
|
|
|
67
67
|
// scan page-loaded JS files for Vite's __vite__mapDeps chunk manifest
|
|
68
68
|
if (shouldRunMethod("vue_viteMapDeps", inc, exc)) {
|
|
69
69
|
const beforeViteMapDeps = new Set(jsFiles.map(normalize));
|
|
70
|
-
const fromViteMapDeps = yield vue_viteMapDeps(jsFiles, maxJsSizeMb);
|
|
70
|
+
const fromViteMapDeps = yield vue_viteMapDeps(jsFiles, maxJsSizeMb, threads);
|
|
71
71
|
emit(fromViteMapDeps);
|
|
72
72
|
const newViteMapDeps = countNew(fromViteMapDeps, beforeViteMapDeps);
|
|
73
73
|
if (newViteMapDeps > 0) {
|
|
@@ -77,7 +77,7 @@ const vue_discoverJsFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...a
|
|
|
77
77
|
// walk the import graph of everything found so far
|
|
78
78
|
if (shouldRunMethod("vue_jsImports", inc, exc)) {
|
|
79
79
|
const beforeJsImports = new Set(jsFiles.map(normalize));
|
|
80
|
-
const fromImports = yield vue_jsImports(url, jsFiles, maxJsSizeMb);
|
|
80
|
+
const fromImports = yield vue_jsImports(url, jsFiles, maxJsSizeMb, threads);
|
|
81
81
|
emit(fromImports);
|
|
82
82
|
const newJsImports = countNew(fromImports, beforeJsImports);
|
|
83
83
|
if (newJsImports > 0) {
|
|
@@ -87,7 +87,7 @@ const vue_discoverJsFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...a
|
|
|
87
87
|
// scan string literals inside known JS files for .js references
|
|
88
88
|
if (shouldRunMethod("vue_stringJsFiles", inc, exc)) {
|
|
89
89
|
const beforeStringRefs = new Set(jsFiles.map(normalize));
|
|
90
|
-
const fromStringRefs = yield vue_stringJsFiles(jsFiles, maxJsSizeMb);
|
|
90
|
+
const fromStringRefs = yield vue_stringJsFiles(jsFiles, maxJsSizeMb, threads);
|
|
91
91
|
emit(fromStringRefs);
|
|
92
92
|
const newStringRefs = countNew(fromStringRefs, beforeStringRefs);
|
|
93
93
|
if (newStringRefs > 0) {
|
|
@@ -97,7 +97,7 @@ const vue_discoverJsFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...a
|
|
|
97
97
|
// reconstruct sourceMappingURL references
|
|
98
98
|
if (shouldRunMethod("vue_reconstructSourceMaps", inc, exc)) {
|
|
99
99
|
const beforeSourceMaps = new Set(jsFiles.map(normalize));
|
|
100
|
-
const fromSourceMaps = yield vue_reconstructSourceMaps(url, jsFiles);
|
|
100
|
+
const fromSourceMaps = yield vue_reconstructSourceMaps(url, jsFiles, threads);
|
|
101
101
|
emit(fromSourceMaps);
|
|
102
102
|
const newSourceMaps = countNew(fromSourceMaps, beforeSourceMaps);
|
|
103
103
|
if (newSourceMaps > 0) {
|
|
@@ -108,7 +108,7 @@ const vue_discoverJsFiles = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...a
|
|
|
108
108
|
// surface client-side paths so the caller can recurse into them
|
|
109
109
|
let clientSidePaths = [];
|
|
110
110
|
if (shouldRunMethod("vue_getClientSidePaths", inc, exc)) {
|
|
111
|
-
clientSidePaths = yield vue_getClientSidePaths(url, jsFiles, maxJsSizeMb);
|
|
111
|
+
clientSidePaths = yield vue_getClientSidePaths(url, jsFiles, maxJsSizeMb, threads);
|
|
112
112
|
}
|
|
113
113
|
return { jsFiles, clientSidePaths: [...new Set(clientSidePaths)] };
|
|
114
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue_discoverJsFiles.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_discoverJsFiles.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AACvE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AACnD,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAOrD;;;;;;;;;;;GAWG;AACH,MAAM,mBAAmB,GAAG,
|
|
1
|
+
{"version":3,"file":"vue_discoverJsFiles.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_discoverJsFiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,9 @@ import cliProgress from "cli-progress";
|
|
|
15
15
|
import parser from "@babel/parser";
|
|
16
16
|
import t from "@babel/types";
|
|
17
17
|
import { setActiveBarLogger, computeBarSize, watchBarResize } from "../../utility/progressLog.js";
|
|
18
|
+
import { runWithConcurrency } from "../../utility/concurrency.js";
|
|
18
19
|
const traverse = ((_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse);
|
|
19
|
-
const vue_getClientSidePaths = (url_1, jsFiles_1, ...args_1) => __awaiter(void 0, [url_1, jsFiles_1, ...args_1], void 0, function* (url, jsFiles, maxJsSizeMb = 2) {
|
|
20
|
+
const vue_getClientSidePaths = (url_1, jsFiles_1, ...args_1) => __awaiter(void 0, [url_1, jsFiles_1, ...args_1], void 0, function* (url, jsFiles, maxJsSizeMb = 2, threads = 1) {
|
|
20
21
|
const MAX_JS_SIZE_BYTES = maxJsSizeMb * 1024 * 1024;
|
|
21
22
|
let toReturn = [];
|
|
22
23
|
const baseOrigin = new URL(url).origin;
|
|
@@ -36,26 +37,26 @@ const vue_getClientSidePaths = (url_1, jsFiles_1, ...args_1) => __awaiter(void 0
|
|
|
36
37
|
const stopBarWatcher = watchBarResize(bar, 86);
|
|
37
38
|
setActiveBarLogger({ log: (s) => process.stdout.write("\r\x1b[K" + s) });
|
|
38
39
|
// iterate through all those
|
|
39
|
-
|
|
40
|
+
yield runWithConcurrency(jsFiles, threads, (jsFile) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
41
|
if (!jsFile.endsWith(".js")) {
|
|
41
42
|
processed++;
|
|
42
43
|
skipped++;
|
|
43
44
|
bar.update(processed, { paths: toReturn.length, skipped });
|
|
44
|
-
|
|
45
|
+
return;
|
|
45
46
|
}
|
|
46
47
|
const req = yield makeRequest(jsFile);
|
|
47
48
|
if (req == null) {
|
|
48
49
|
processed++;
|
|
49
50
|
skipped++;
|
|
50
51
|
bar.update(processed, { paths: toReturn.length, skipped });
|
|
51
|
-
|
|
52
|
+
return;
|
|
52
53
|
}
|
|
53
54
|
const jsContent = yield req.text();
|
|
54
55
|
if (jsContent.length > MAX_JS_SIZE_BYTES) {
|
|
55
56
|
processed++;
|
|
56
57
|
skipped++;
|
|
57
58
|
bar.update(processed, { paths: toReturn.length, skipped });
|
|
58
|
-
|
|
59
|
+
return;
|
|
59
60
|
}
|
|
60
61
|
// load in ast
|
|
61
62
|
let ast;
|
|
@@ -70,7 +71,7 @@ const vue_getClientSidePaths = (url_1, jsFiles_1, ...args_1) => __awaiter(void 0
|
|
|
70
71
|
processed++;
|
|
71
72
|
skipped++;
|
|
72
73
|
bar.update(processed, { paths: toReturn.length, skipped });
|
|
73
|
-
|
|
74
|
+
return;
|
|
74
75
|
}
|
|
75
76
|
const jsFileOrigin = new URL(jsFile).origin;
|
|
76
77
|
const pathsBefore = toReturn.length;
|
|
@@ -143,7 +144,7 @@ const vue_getClientSidePaths = (url_1, jsFiles_1, ...args_1) => __awaiter(void 0
|
|
|
143
144
|
if (toReturn.length === pathsBefore)
|
|
144
145
|
skipped++;
|
|
145
146
|
bar.update(processed, { paths: toReturn.length, skipped });
|
|
146
|
-
}
|
|
147
|
+
}));
|
|
147
148
|
bar.stop();
|
|
148
149
|
stopBarWatcher();
|
|
149
150
|
setActiveBarLogger(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue_getClientSidePaths.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_getClientSidePaths.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,CAAC,MAAM,cAAc,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"vue_getClientSidePaths.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_getClientSidePaths.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import makeRequest from "../../utility/makeReq.js";
|
|
|
12
12
|
import parser from "@babel/parser";
|
|
13
13
|
import _traverse from "@babel/traverse";
|
|
14
14
|
import chalk from "chalk";
|
|
15
|
+
import { runWithConcurrency } from "../../utility/concurrency.js";
|
|
15
16
|
const traverse = ((_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse);
|
|
16
17
|
const parseJsFile = (url, maxJsSizeMb) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
18
|
const MAX_JS_SIZE_BYTES = maxJsSizeMb * 1024 * 1024;
|
|
@@ -49,27 +50,26 @@ const parseJsFile = (url, maxJsSizeMb) => __awaiter(void 0, void 0, void 0, func
|
|
|
49
50
|
});
|
|
50
51
|
return foundUrls;
|
|
51
52
|
});
|
|
52
|
-
const vue_jsImports = (url_1, foundJsFiles_1, ...args_1) => __awaiter(void 0, [url_1, foundJsFiles_1, ...args_1], void 0, function* (url, foundJsFiles, maxJsSizeMb = 2) {
|
|
53
|
+
const vue_jsImports = (url_1, foundJsFiles_1, ...args_1) => __awaiter(void 0, [url_1, foundJsFiles_1, ...args_1], void 0, function* (url, foundJsFiles, maxJsSizeMb = 2, threads = 1) {
|
|
53
54
|
const allDiscoveredUrls = new Set();
|
|
54
55
|
const crawledUrls = new Set(foundJsFiles);
|
|
55
|
-
|
|
56
|
+
yield runWithConcurrency(foundJsFiles, threads, (jsfile) => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
57
|
const discovered = yield parseJsFile(jsfile, maxJsSizeMb);
|
|
57
58
|
for (const u of discovered)
|
|
58
59
|
allDiscoveredUrls.add(u);
|
|
59
|
-
}
|
|
60
|
-
// crawl newly found URLs until no uncrawled ones remain
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
for (const u of
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
60
|
+
}));
|
|
61
|
+
// crawl newly found URLs until no uncrawled ones remain, one round of
|
|
62
|
+
// concurrent fetches at a time
|
|
63
|
+
let toCrawl = [...allDiscoveredUrls].filter((u) => !crawledUrls.has(u));
|
|
64
|
+
while (toCrawl.length > 0) {
|
|
65
|
+
for (const u of toCrawl)
|
|
66
|
+
crawledUrls.add(u);
|
|
67
|
+
yield runWithConcurrency(toCrawl, threads, (u) => __awaiter(void 0, void 0, void 0, function* () {
|
|
68
|
+
const discovered = yield parseJsFile(u, maxJsSizeMb);
|
|
69
|
+
for (const newU of discovered)
|
|
70
|
+
allDiscoveredUrls.add(newU);
|
|
71
|
+
}));
|
|
72
|
+
toCrawl = [...allDiscoveredUrls].filter((u) => !crawledUrls.has(u));
|
|
73
73
|
}
|
|
74
74
|
return [...allDiscoveredUrls];
|
|
75
75
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue_jsImports.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_jsImports.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"vue_jsImports.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_jsImports.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,QAAQ,GAAG,CAAC,MAAA,SAAS,CAAC,OAAO,mCAAI,SAAS,CAA6B,CAAC;AAE9E,MAAM,WAAW,GAAG,CAAO,GAAW,EAAE,WAAmB,EAAE,EAAE;IAC3D,MAAM,iBAAiB,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAEjC,IAAI,OAAO,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;YACxB,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,CAAC,kBAAkB,CAAC;SAChC,CAAC,CAAC;IACP,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,gCAAgC;IAChC,QAAQ,CAAC,GAAG,EAAE;QACV,iBAAiB,CAAC,IAAI;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAEtC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChF,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gDAAgD,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;YACnG,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA,CAAC;AAEF,MAAM,aAAa,GAAG,mCAA0F,EAAE,0EAArF,GAAW,EAAE,YAAsB,EAAE,cAAsB,CAAC,EAAE,UAAkB,CAAC;IAC1G,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,YAAY,CAAC,CAAC;IAElD,MAAM,kBAAkB,CAAC,YAAY,EAAE,OAAO,EAAE,CAAO,MAAM,EAAE,EAAE;QAC7D,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1D,KAAK,MAAM,CAAC,IAAI,UAAU;YAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAA,CAAC,CAAC;IAEH,sEAAsE;IACtE,+BAA+B;IAC/B,IAAI,OAAO,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,CAAO,CAAC,EAAE,EAAE;YACnD,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,UAAU;gBAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC,CAAA,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC;AAClC,CAAC,CAAA,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -9,7 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import makeRequest from "../../utility/makeReq.js";
|
|
11
11
|
import chalk from "chalk";
|
|
12
|
-
|
|
12
|
+
import { runWithConcurrency } from "../../utility/concurrency.js";
|
|
13
|
+
const vue_reconstructSourceMaps = (url_1, jsFilesToDownload_1, ...args_1) => __awaiter(void 0, [url_1, jsFilesToDownload_1, ...args_1], void 0, function* (url, jsFilesToDownload, threads = 1) {
|
|
13
14
|
// get the contents of first file, and check if it has the sourceMappingURL
|
|
14
15
|
let sourceMapUrls = [];
|
|
15
16
|
// guard against empty input
|
|
@@ -28,11 +29,11 @@ const vue_reconstructSourceMaps = (url, jsFilesToDownload) => __awaiter(void 0,
|
|
|
28
29
|
}
|
|
29
30
|
console.log(chalk.green("[✓] Found sourceMappingURL"));
|
|
30
31
|
// now that one file has this, iterate through all the files, and reconstruct the source maps
|
|
31
|
-
|
|
32
|
+
yield runWithConcurrency(jsFilesToDownload, threads, (jsFile) => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
33
|
const req = yield makeRequest(jsFile);
|
|
33
34
|
if (req == null) {
|
|
34
35
|
console.error(chalk.red(`Failed to fetch ${jsFile}`));
|
|
35
|
-
|
|
36
|
+
return;
|
|
36
37
|
}
|
|
37
38
|
const content = yield req.text();
|
|
38
39
|
// get the sourceMappingURL
|
|
@@ -57,7 +58,7 @@ const vue_reconstructSourceMaps = (url, jsFilesToDownload) => __awaiter(void 0,
|
|
|
57
58
|
// now that we've got the mapping URL, just push it to the array
|
|
58
59
|
sourceMapUrls.push(reconstructedUrl);
|
|
59
60
|
}
|
|
60
|
-
}
|
|
61
|
+
}));
|
|
61
62
|
return sourceMapUrls;
|
|
62
63
|
});
|
|
63
64
|
export default vue_reconstructSourceMaps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue_reconstructSourceMaps.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_reconstructSourceMaps.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"vue_reconstructSourceMaps.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_reconstructSourceMaps.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,yBAAyB,GAAG,wCAAsE,EAAE,+EAAjE,GAAW,EAAE,iBAA2B,EAAE,UAAkB,CAAC;IAClG,2EAA2E;IAE3E,IAAI,aAAa,GAAa,EAAE,CAAC;IACjC,4BAA4B;IAC5B,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAEjC,uCAAuC;IACvC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEvD,6FAA6F;IAC7F,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAO,MAAM,EAAE,EAAE;QAClE,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC,CAAC;YACtD,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAEjC,2BAA2B;QAC3B,IAAI,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACrE,IAAI,oBAAoB,EAAE,CAAC;YACvB,6CAA6C;YAC7C,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAEpE,sBAAsB;YACtB,IAAI,gBAAgB,GAAW,EAAE,CAAC;YAClC,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,gBAAgB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,gBAAgB,CAAC;YACjE,CAAC;iBAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,gBAAgB,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;YAC9D,CAAC;iBAAM,IAAI,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,gBAAgB,GAAG,gBAAgB,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACJ,gBAAgB,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;YAC9D,CAAC;YAED,gEAAgE;YAChE,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;IACL,CAAC,CAAA,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACzB,CAAC,CAAA,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -77,11 +77,18 @@ const vue_recursiveClientSidePathDownload = (clientSidePaths_1, ...args_1) => __
|
|
|
77
77
|
const errors = [];
|
|
78
78
|
let cursor = 0;
|
|
79
79
|
const workerCount = Math.max(1, Math.min(threads, batch.length));
|
|
80
|
+
// `threads` is meant to be a global concurrency budget. Each concurrent page worker
|
|
81
|
+
// here runs its own `vue_discoverJsFiles` with further internal concurrent discovery
|
|
82
|
+
// loops, so passing the full `threads` value down would multiply out to
|
|
83
|
+
// workerCount * threads concurrent requests. Give nested discovery a budget of one
|
|
84
|
+
// whenever more than one page is being crawled concurrently, keeping the total
|
|
85
|
+
// in-flight request count bounded by `threads`.
|
|
86
|
+
const nestedThreads = workerCount > 1 ? 1 : threads;
|
|
80
87
|
const worker = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
81
88
|
while (cursor < batch.length) {
|
|
82
89
|
const path = batch[cursor++];
|
|
83
90
|
try {
|
|
84
|
-
const { jsFiles, clientSidePaths: newPaths } = yield vue_discoverJsFiles(path, maxJsSizeMb, onFilesDiscovered, includeMethods, excludeMethods);
|
|
91
|
+
const { jsFiles, clientSidePaths: newPaths } = yield vue_discoverJsFiles(path, maxJsSizeMb, onFilesDiscovered, includeMethods, excludeMethods, nestedThreads);
|
|
85
92
|
for (const file of jsFiles) {
|
|
86
93
|
allJsFiles.add(file);
|
|
87
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue_recursiveClientSidePathDownload.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_recursiveClientSidePathDownload.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"vue_recursiveClientSidePathDownload.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_recursiveClientSidePathDownload.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import makeRequest from "../../utility/makeReq.js";
|
|
|
13
13
|
import { setActiveBarLogger, computeBarSize, watchBarResize } from "../../utility/progressLog.js";
|
|
14
14
|
import parser from "@babel/parser";
|
|
15
15
|
import { extractStrings } from "../../strings/index.js";
|
|
16
|
+
import { runWithConcurrency } from "../../utility/concurrency.js";
|
|
16
17
|
/**
|
|
17
18
|
* Resolves a .js string found in a bundle to an absolute URL.
|
|
18
19
|
*
|
|
@@ -105,7 +106,7 @@ const fetchAndExtractJsStrings = (url, maxJsSizeMb) => __awaiter(void 0, void 0,
|
|
|
105
106
|
* known JS file for references that end in `.js` and resolving them against
|
|
106
107
|
* the file's own URL.
|
|
107
108
|
*/
|
|
108
|
-
const vue_stringJsFiles = (knownJsFiles_1, ...args_1) => __awaiter(void 0, [knownJsFiles_1, ...args_1], void 0, function* (knownJsFiles, maxJsSizeMb = 2) {
|
|
109
|
+
const vue_stringJsFiles = (knownJsFiles_1, ...args_1) => __awaiter(void 0, [knownJsFiles_1, ...args_1], void 0, function* (knownJsFiles, maxJsSizeMb = 2, threads = 1) {
|
|
109
110
|
const allFound = new Set();
|
|
110
111
|
const crawled = new Set(knownJsFiles);
|
|
111
112
|
const bar = new cliProgress.SingleBar({
|
|
@@ -119,25 +120,31 @@ const vue_stringJsFiles = (knownJsFiles_1, ...args_1) => __awaiter(void 0, [know
|
|
|
119
120
|
stopOnComplete: false,
|
|
120
121
|
}, cliProgress.Presets.shades_classic);
|
|
121
122
|
let processed = 0;
|
|
122
|
-
|
|
123
|
-
bar.start(
|
|
123
|
+
let totalKnown = knownJsFiles.length;
|
|
124
|
+
bar.start(totalKnown, 0, { refs: 0 });
|
|
124
125
|
const stopBarWatcher = watchBarResize(bar, 72);
|
|
125
126
|
setActiveBarLogger({ log: (s) => process.stdout.write("\r\x1b[K" + s) });
|
|
126
|
-
const processFile = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
127
|
+
const processFile = (url, newFiles) => __awaiter(void 0, void 0, void 0, function* () {
|
|
127
128
|
const discovered = yield fetchAndExtractJsStrings(url, maxJsSizeMb);
|
|
128
129
|
for (const u of discovered) {
|
|
129
130
|
allFound.add(u);
|
|
130
131
|
if (!crawled.has(u)) {
|
|
131
132
|
crawled.add(u);
|
|
132
|
-
|
|
133
|
-
|
|
133
|
+
newFiles.push(u);
|
|
134
|
+
totalKnown++;
|
|
135
|
+
bar.setTotal(totalKnown);
|
|
134
136
|
}
|
|
135
137
|
}
|
|
136
138
|
processed++;
|
|
137
139
|
bar.update(processed, { refs: allFound.size });
|
|
138
140
|
});
|
|
139
|
-
|
|
140
|
-
|
|
141
|
+
// Fixpoint discovery, processed in rounds: each round's batch is fetched
|
|
142
|
+
// concurrently, and any newly-discovered files seed the next round.
|
|
143
|
+
let currentBatch = [...knownJsFiles];
|
|
144
|
+
while (currentBatch.length > 0) {
|
|
145
|
+
const newFiles = [];
|
|
146
|
+
yield runWithConcurrency(currentBatch, threads, (url) => processFile(url, newFiles));
|
|
147
|
+
currentBatch = newFiles;
|
|
141
148
|
}
|
|
142
149
|
bar.stop();
|
|
143
150
|
stopBarWatcher();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue_stringJsFiles.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_stringJsFiles.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAClG,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"vue_stringJsFiles.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_stringJsFiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import parser from "@babel/parser";
|
|
|
13
13
|
import _traverse from "@babel/traverse";
|
|
14
14
|
import chalk from "chalk";
|
|
15
15
|
import t from "@babel/types";
|
|
16
|
+
import { runWithConcurrency } from "../../utility/concurrency.js";
|
|
16
17
|
const traverse = ((_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse);
|
|
17
18
|
/**
|
|
18
19
|
* Pure parser: given the text content of a JS file and the URL it was fetched
|
|
@@ -73,24 +74,24 @@ export const extractViteMapDepsChunks = (content, jsUrl) => {
|
|
|
73
74
|
* Scans fetched JS files for Vite's __vite__mapDeps chunk manifest and returns
|
|
74
75
|
* all the discovered chunk URLs resolved against the JS file they were found in.
|
|
75
76
|
*/
|
|
76
|
-
const vue_viteMapDeps = (jsFiles_1, ...args_1) => __awaiter(void 0, [jsFiles_1, ...args_1], void 0, function* (jsFiles, maxJsSizeMb = 2) {
|
|
77
|
+
const vue_viteMapDeps = (jsFiles_1, ...args_1) => __awaiter(void 0, [jsFiles_1, ...args_1], void 0, function* (jsFiles, maxJsSizeMb = 2, threads = 1) {
|
|
77
78
|
const MAX_JS_SIZE_BYTES = maxJsSizeMb * 1024 * 1024;
|
|
78
79
|
const discovered = new Set();
|
|
79
80
|
const jsUrls = jsFiles.filter((f) => f.endsWith(".js"));
|
|
80
|
-
|
|
81
|
+
yield runWithConcurrency(jsUrls, threads, (jsUrl) => __awaiter(void 0, void 0, void 0, function* () {
|
|
81
82
|
const req = yield makeRequest(jsUrl);
|
|
82
83
|
if (!req)
|
|
83
|
-
|
|
84
|
+
return;
|
|
84
85
|
const content = yield req.text();
|
|
85
86
|
if (content.length > MAX_JS_SIZE_BYTES)
|
|
86
|
-
|
|
87
|
+
return;
|
|
87
88
|
const chunks = extractViteMapDepsChunks(content, jsUrl);
|
|
88
89
|
if (chunks.length > 0) {
|
|
89
90
|
console.log(chalk.green(`[✓] Found ${chunks.length} chunks from __vite__mapDeps in ${jsUrl}`));
|
|
90
91
|
for (const u of chunks)
|
|
91
92
|
discovered.add(u);
|
|
92
93
|
}
|
|
93
|
-
}
|
|
94
|
+
}));
|
|
94
95
|
return [...discovered];
|
|
95
96
|
});
|
|
96
97
|
export default vue_viteMapDeps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue_viteMapDeps.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_viteMapDeps.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,CAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"vue_viteMapDeps.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_viteMapDeps.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,31 +7,83 @@ 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 { get } from "./genReq.js";
|
|
11
10
|
import chalk from "chalk";
|
|
12
11
|
import checkFireWallBlocking from "./checkFireWallBlocking.js";
|
|
12
|
+
import { proxyFeasibilityRequest } from "./proxyFeasibilityRequest.js";
|
|
13
|
+
/** Number of requests sent through the proxy method before concluding it reliably bypasses the firewall. */
|
|
14
|
+
const PROXY_CHECK_REQUESTS = 10;
|
|
13
15
|
/**
|
|
14
|
-
*
|
|
16
|
+
* Decides the `--feasibility` outcome from the two detection stages.
|
|
15
17
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
+
* - No firewall without a proxy: a proxy isn't needed for this target (exit 27).
|
|
19
|
+
* - Firewall present without a proxy, and still present with the proxy: the proxy couldn't
|
|
20
|
+
* bypass it (exit 28).
|
|
21
|
+
* - Firewall present without a proxy, but not present with the proxy: the proxy works (exit 0).
|
|
18
22
|
*
|
|
19
|
-
* @param
|
|
20
|
-
* @
|
|
23
|
+
* @param blockedWithoutProxy - Whether the firewall was detected on the direct (no-proxy) request.
|
|
24
|
+
* @param blockedWithProxy - Whether the firewall was detected while routed through the proxy.
|
|
25
|
+
* @returns The exit code and message to print for this outcome.
|
|
21
26
|
*/
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
export const determineFeasibilityOutcome = (blockedWithoutProxy, blockedWithProxy) => {
|
|
28
|
+
if (!blockedWithoutProxy) {
|
|
29
|
+
return {
|
|
30
|
+
code: 27,
|
|
31
|
+
message: "[i] No firewall detected without a proxy. A proxy is not needed for this target.",
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (blockedWithProxy) {
|
|
35
|
+
return {
|
|
36
|
+
code: 28,
|
|
37
|
+
message: "[!] Firewall still detected while using the proxy. This proxy method could not bypass it.",
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
code: 0,
|
|
42
|
+
message: "[✓] Firewall detected without a proxy, but not detected when using the proxy. Please use a proxy for this target.",
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Probes whether a proxy is needed and able to bypass a firewall/WAF in front of a target.
|
|
47
|
+
*
|
|
48
|
+
* Requests the target directly first. If no firewall is detected, a proxy isn't needed. If a
|
|
49
|
+
* firewall is detected, retries through the resolved proxy method to see whether it's bypassed.
|
|
50
|
+
* Does not print or exit — callers decide what to do with the outcome (`checkFeasibility` below
|
|
51
|
+
* exits with its code for the CLI; `run`'s `--proxy-waf-fallback` uses it to decide whether to use
|
|
52
|
+
* the proxy or skip the target).
|
|
53
|
+
*
|
|
54
|
+
* @param resolved - The resolved proxy config (method + its fields) to test.
|
|
55
|
+
* @param url - The target URL to test.
|
|
56
|
+
* @returns The feasibility outcome.
|
|
57
|
+
*/
|
|
58
|
+
export const probeFeasibility = (resolved, url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
+
console.log(chalk.cyan(`[i] Checking feasibility of the "${resolved.method}" proxy method with ${url}`));
|
|
60
|
+
const directBody = yield (yield fetch(url)).text();
|
|
61
|
+
const blockedWithoutProxy = yield checkFireWallBlocking(directBody);
|
|
62
|
+
let blockedWithProxy = false;
|
|
63
|
+
if (blockedWithoutProxy) {
|
|
64
|
+
for (let i = 0; i < PROXY_CHECK_REQUESTS; i++) {
|
|
65
|
+
const body = yield proxyFeasibilityRequest(resolved, url);
|
|
66
|
+
if (yield checkFireWallBlocking(body)) {
|
|
67
|
+
blockedWithProxy = true;
|
|
68
|
+
break;
|
|
32
69
|
}
|
|
33
70
|
}
|
|
34
|
-
|
|
71
|
+
}
|
|
72
|
+
return determineFeasibilityOutcome(blockedWithoutProxy, blockedWithProxy);
|
|
73
|
+
});
|
|
74
|
+
/**
|
|
75
|
+
* Checks the feasibility of using a proxy to bypass a firewall/WAF in front of a target, prints the
|
|
76
|
+
* result, and exits with the outcome's code. Thin CLI wrapper around `probeFeasibility`.
|
|
77
|
+
*
|
|
78
|
+
* @param resolved - The resolved proxy config (method + its fields) to test.
|
|
79
|
+
* @param url - The target URL to test.
|
|
80
|
+
* @returns Promise that resolves when the feasibility check is complete.
|
|
81
|
+
*/
|
|
82
|
+
const checkFeasibility = (resolved, url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
83
|
+
try {
|
|
84
|
+
const outcome = yield probeFeasibility(resolved, url);
|
|
85
|
+
console.log(outcome.code === 0 ? chalk.green(outcome.message) : chalk.magenta(outcome.message));
|
|
86
|
+
process.exit(outcome.code);
|
|
35
87
|
}
|
|
36
88
|
catch (error) {
|
|
37
89
|
console.error(chalk.red(`[!] An error occured in feasibility check: ${error}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkFeasibility.js","sourceRoot":"","sources":["../../src/proxy/checkFeasibility.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"checkFeasibility.js","sourceRoot":"","sources":["../../src/proxy/checkFeasibility.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,4GAA4G;AAC5G,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAOhC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,mBAA4B,EAC5B,gBAAyB,EACP,EAAE;IACpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvB,OAAO;YACH,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,kFAAkF;SAC9F,CAAC;IACN,CAAC;IACD,IAAI,gBAAgB,EAAE,CAAC;QACnB,OAAO;YACH,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,2FAA2F;SACvG,CAAC;IACN,CAAC;IACD,OAAO;QACH,IAAI,EAAE,CAAC;QACP,OAAO,EACH,mHAAmH;KAC1H,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAO,QAA6B,EAAE,GAAW,EAA+B,EAAE;IAC9G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,QAAQ,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;IACzG,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,mBAAmB,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAEpE,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,mBAAmB,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC1D,IAAI,MAAM,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,gBAAgB,GAAG,IAAI,CAAC;gBACxB,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,2BAA2B,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;AAC9E,CAAC,CAAA,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,CAAO,QAA6B,EAAE,GAAW,EAAiB,EAAE;IACzF,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAChG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,KAAK,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
package/build/proxy/genReq.js
CHANGED
|
@@ -14,7 +14,6 @@ PutIntegrationResponseCommand, PutMethodResponseCommand, TestInvokeMethodCommand
|
|
|
14
14
|
import md5 from "md5";
|
|
15
15
|
import chalk from "chalk";
|
|
16
16
|
import * as globals from "../utility/globals.js";
|
|
17
|
-
import checkFireWallBlocking from "./checkFireWallBlocking.js";
|
|
18
17
|
import { readAwsGatewayMap } from "./awsConfig.js";
|
|
19
18
|
/**
|
|
20
19
|
* Utility function to pause execution for a specified duration.
|
|
@@ -161,8 +160,6 @@ const get = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0,
|
|
|
161
160
|
const testInvokeMethodResponse = yield client.send(testInvokeMethodQuery);
|
|
162
161
|
yield sleep(100);
|
|
163
162
|
const body = yield testInvokeMethodResponse.body;
|
|
164
|
-
// check if any firewall is there in the way
|
|
165
|
-
const isFireWallBlocking = yield checkFireWallBlocking(body);
|
|
166
163
|
// delete the resource
|
|
167
164
|
const deleteResourceCommand = new DeleteResourceCommand({
|
|
168
165
|
restApiId: config[apiGateway].id,
|
|
@@ -174,10 +171,6 @@ const get = (url_1, ...args_1) => __awaiter(void 0, [url_1, ...args_1], void 0,
|
|
|
174
171
|
catch (err) {
|
|
175
172
|
console.error(chalk.red(`[!] Error when sending delete resource command to AWS: ${err}`));
|
|
176
173
|
}
|
|
177
|
-
if (isFireWallBlocking) {
|
|
178
|
-
console.error(chalk.magenta("[!] Please try again without API Gateway"));
|
|
179
|
-
process.exit(18);
|
|
180
|
-
}
|
|
181
174
|
return body;
|
|
182
175
|
// create a new stage
|
|
183
176
|
// dynamicStageName = `prod-${Date.now()}-${Math.random().toString(36).substring(2, 7)}`;
|