@shriyanss/js-recon 1.2.1 → 1.2.2-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/workflows/build-and-prettify.yaml +3 -0
- package/CHANGELOG.md +24 -0
- package/build/analyze/engine/astEngine.js +11 -0
- package/build/analyze/engine/astEngine.js.map +1 -1
- package/build/analyze/engine/index.js +13 -0
- package/build/analyze/engine/index.js.map +1 -1
- package/build/analyze/engine/requestEngine.js +11 -0
- package/build/analyze/engine/requestEngine.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/findDirectAssignment.js +10 -0
- package/build/analyze/helpers/engineHelpers/findDirectAssignment.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js +4 -1
- package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js +9 -4
- package/build/analyze/helpers/engineHelpers/resolveFunctionIdentifier.js.map +1 -1
- package/build/analyze/helpers/initRules.js +20 -0
- package/build/analyze/helpers/initRules.js.map +1 -1
- package/build/analyze/helpers/outputHelper.js +6 -0
- package/build/analyze/helpers/outputHelper.js.map +1 -1
- package/build/analyze/helpers/validate.js +9 -0
- package/build/analyze/helpers/validate.js.map +1 -1
- package/build/analyze/index.js +21 -0
- package/build/analyze/index.js.map +1 -1
- package/build/api_gateway/checkFeasibility.js +9 -0
- package/build/api_gateway/checkFeasibility.js.map +1 -1
- package/build/api_gateway/checkFireWallBlocking.js +9 -0
- package/build/api_gateway/checkFireWallBlocking.js.map +1 -1
- package/build/api_gateway/genReq.js +6 -0
- package/build/api_gateway/genReq.js.map +1 -1
- package/build/api_gateway/index.js +17 -0
- package/build/api_gateway/index.js.map +1 -1
- package/build/endpoints/gen_report/gen_json.js +8 -0
- package/build/endpoints/gen_report/gen_json.js.map +1 -1
- package/build/endpoints/gen_report/utility/iterate_n_store.js +18 -0
- package/build/endpoints/gen_report/utility/iterate_n_store.js.map +1 -1
- package/build/endpoints/index.js +18 -0
- package/build/endpoints/index.js.map +1 -1
- package/build/endpoints/next_js/client_jsFilesHref.js +10 -0
- package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
- package/build/endpoints/next_js/client_jsonParse.js +10 -0
- package/build/endpoints/next_js/client_jsonParse.js.map +1 -1
- package/build/endpoints/next_js/client_mappedJsonFile.js +6 -0
- package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
- package/build/endpoints/next_js/client_subsequentRequests.js +7 -0
- package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
- package/build/globalConfig.js +1 -1
- package/build/globalConfig.js.map +1 -1
- package/build/index.js +30 -1
- package/build/index.js.map +1 -1
- package/build/lazyLoad/angular/angular_getFromMainJs.js +55 -0
- package/build/lazyLoad/angular/angular_getFromMainJs.js.map +1 -0
- package/build/lazyLoad/angular/angular_getFromPageSource.js +43 -0
- package/build/lazyLoad/angular/angular_getFromPageSource.js.map +1 -0
- package/build/lazyLoad/downloadFilesUtil.js +9 -7
- package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
- package/build/lazyLoad/downloadLoadedJsUtil.js +3 -10
- package/build/lazyLoad/downloadLoadedJsUtil.js.map +1 -1
- package/build/lazyLoad/globals.js +49 -1
- package/build/lazyLoad/globals.js.map +1 -1
- package/build/lazyLoad/index.js +61 -27
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetJSScript.js +7 -4
- package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js +11 -0
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +15 -10
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_SubsequentRequests.js +6 -8
- package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
- package/build/lazyLoad/next_js/next_buildId.js +47 -0
- package/build/lazyLoad/next_js/next_buildId.js.map +1 -0
- package/build/lazyLoad/next_js/next_globals.js +8 -0
- package/build/lazyLoad/next_js/next_globals.js.map +1 -0
- package/build/lazyLoad/nuxt_js/nuxt_astParse.js +12 -0
- package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +8 -0
- package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +13 -0
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js +8 -0
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +13 -0
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/techDetect/index.js +95 -12
- package/build/lazyLoad/techDetect/index.js.map +1 -1
- package/build/map/index.js +18 -0
- package/build/map/index.js.map +1 -1
- package/build/map/next_js/getAxiosInstances.js +12 -0
- package/build/map/next_js/getAxiosInstances.js.map +1 -1
- package/build/map/next_js/getExports.js +5 -0
- package/build/map/next_js/getExports.js.map +1 -1
- package/build/map/next_js/getFetchInstances.js +28 -0
- package/build/map/next_js/getFetchInstances.js.map +1 -1
- package/build/map/next_js/getWebpackConnections.js +7 -0
- package/build/map/next_js/getWebpackConnections.js.map +1 -1
- package/build/map/next_js/interactive.js +5 -0
- package/build/map/next_js/interactive.js.map +1 -1
- package/build/map/next_js/interactive_helpers/commandHandler.js +6 -0
- package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -1
- package/build/map/next_js/interactive_helpers/commandHelpers.js +34 -0
- package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
- package/build/map/next_js/interactive_helpers/keybindings.js +7 -0
- package/build/map/next_js/interactive_helpers/keybindings.js.map +1 -1
- package/build/map/next_js/interactive_helpers/printer.js +7 -1
- package/build/map/next_js/interactive_helpers/printer.js.map +1 -1
- package/build/map/next_js/interactive_helpers/ui.js +9 -0
- package/build/map/next_js/interactive_helpers/ui.js.map +1 -1
- package/build/map/next_js/resolveAxios.js +10 -0
- package/build/map/next_js/resolveAxios.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/astNodeToJsonString.js +12 -0
- package/build/map/next_js/resolveAxiosHelpers/astNodeToJsonString.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js +8 -0
- package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js +8 -0
- package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js +18 -0
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js +15 -0
- package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js.map +1 -1
- package/build/map/next_js/resolveFetch.js +5 -0
- package/build/map/next_js/resolveFetch.js.map +1 -1
- package/build/map/next_js/utils.js +29 -2
- package/build/map/next_js/utils.js.map +1 -1
- package/build/refactor/index.js +13 -0
- package/build/refactor/index.js.map +1 -1
- package/build/refactor/next/index.js +12 -0
- package/build/refactor/next/index.js.map +1 -1
- package/build/report/index.js +15 -0
- package/build/report/index.js.map +1 -1
- package/build/report/utility/dataTables/genDataTablesPage.js +48 -2
- package/build/report/utility/dataTables/genDataTablesPage.js.map +1 -1
- package/build/report/utility/genHtml.js +29 -2
- package/build/report/utility/genHtml.js.map +1 -1
- package/build/report/utility/initReportDb.js +25 -0
- package/build/report/utility/initReportDb.js.map +1 -1
- package/build/report/utility/markdownGen/addAnalyze.js +8 -0
- package/build/report/utility/markdownGen/addAnalyze.js.map +1 -1
- package/build/report/utility/markdownGen/addMappedJson.js +8 -0
- package/build/report/utility/markdownGen/addMappedJson.js.map +1 -1
- package/build/report/utility/populateDb/populateAnalysisFindings.js +8 -0
- package/build/report/utility/populateDb/populateAnalysisFindings.js.map +1 -1
- package/build/report/utility/populateDb/populateEndpoints.js +8 -0
- package/build/report/utility/populateDb/populateEndpoints.js.map +1 -1
- package/build/report/utility/populateDb/populateMappedJson.js +8 -0
- package/build/report/utility/populateDb/populateMappedJson.js.map +1 -1
- package/build/report/utility/populateDb/populateMappedOpenapi.js +8 -0
- package/build/report/utility/populateDb/populateMappedOpenapi.js.map +1 -1
- package/build/run/index.js +41 -3
- package/build/run/index.js.map +1 -1
- package/build/strings/index.js +5 -6
- package/build/strings/index.js.map +1 -1
- package/build/strings/openapi.js +8 -0
- package/build/strings/openapi.js.map +1 -1
- package/build/strings/permutate.js +7 -0
- package/build/strings/permutate.js.map +1 -1
- package/build/strings/secrets.js +13 -0
- package/build/strings/secrets.js.map +1 -1
- package/build/utility/ai.js +33 -5
- package/build/utility/ai.js.map +1 -1
- package/build/utility/configureSandbox.js +14 -0
- package/build/utility/configureSandbox.js.map +1 -0
- package/build/utility/globals.js +177 -7
- package/build/utility/globals.js.map +1 -1
- package/build/utility/makeReq.js +69 -21
- package/build/utility/makeReq.js.map +1 -1
- package/build/utility/openapiGenerator.js +15 -7
- package/build/utility/openapiGenerator.js.map +1 -1
- package/build/utility/replaceUrlPlaceholders.js +15 -0
- package/build/utility/replaceUrlPlaceholders.js.map +1 -1
- package/build/utility/resolvePath.js +15 -15
- package/build/utility/runSandboxed.js +20 -0
- package/build/utility/runSandboxed.js.map +1 -1
- package/build/utility/urlUtils.js +7 -6
- package/build/utility/urlUtils.js.map +1 -1
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/utility/globals.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/utility/globals.ts"],"names":[],"mappings":"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"}
|
package/build/utility/makeReq.js
CHANGED
|
@@ -7,6 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
11
|
+
var t = {};
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
15
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
16
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
17
|
+
t[p[i]] = s[p[i]];
|
|
18
|
+
}
|
|
19
|
+
return t;
|
|
20
|
+
};
|
|
10
21
|
import chalk from "chalk";
|
|
11
22
|
import puppeteer from "puppeteer";
|
|
12
23
|
import * as globals from "./globals.js";
|
|
@@ -70,6 +81,20 @@ const UAs = [
|
|
|
70
81
|
"Chrome/Android: Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Mobile Safari/537.36",
|
|
71
82
|
"Firefox/Android: Mozilla/5.0 (Android 11; Mobile; rv:68.0) Gecko/68.0 Firefox/84.0",
|
|
72
83
|
];
|
|
84
|
+
/**
|
|
85
|
+
* Reads response data from cache for future requests.
|
|
86
|
+
*
|
|
87
|
+
* If the cache file exists, and the given URL is present in the cache,
|
|
88
|
+
* it checks if the response contains the specific request headers. If it does,
|
|
89
|
+
* it builds a Response object with the cached data and returns it.
|
|
90
|
+
*
|
|
91
|
+
* If the response does not contain the request headers, or if the cache file
|
|
92
|
+
* does not exist, or if the URL is not present in the cache, it returns null.
|
|
93
|
+
*
|
|
94
|
+
* @param url - The URL to read the cache for
|
|
95
|
+
* @param headers - Request headers that were used
|
|
96
|
+
* @returns A Promise that resolves to a Response object if the cache is found, or null if not
|
|
97
|
+
*/
|
|
73
98
|
const readCache = (url, headers) => __awaiter(void 0, void 0, void 0, function* () {
|
|
74
99
|
// first, check if the file exists or not
|
|
75
100
|
if (!fs.existsSync(globals.getRespCacheFile())) {
|
|
@@ -102,6 +127,17 @@ const readCache = (url, headers) => __awaiter(void 0, void 0, void 0, function*
|
|
|
102
127
|
// console.log("cache not found for ", url);
|
|
103
128
|
return null;
|
|
104
129
|
});
|
|
130
|
+
/**
|
|
131
|
+
* Writes response data to cache for future requests.
|
|
132
|
+
*
|
|
133
|
+
* Stores response body, status, and headers in cache file, handling special
|
|
134
|
+
* cases like RSC (React Server Components) headers separately.
|
|
135
|
+
*
|
|
136
|
+
* @param url - The URL to cache the response for
|
|
137
|
+
* @param headers - Request headers that were used
|
|
138
|
+
* @param response - The Response object to cache
|
|
139
|
+
* @returns Promise that resolves when caching is complete
|
|
140
|
+
*/
|
|
105
141
|
const writeCache = (url, headers, response) => __awaiter(void 0, void 0, void 0, function* () {
|
|
106
142
|
// clone the response
|
|
107
143
|
const clonedResponse = response.clone();
|
|
@@ -139,18 +175,35 @@ const writeCache = (url, headers, response) => __awaiter(void 0, void 0, void 0,
|
|
|
139
175
|
fs.writeFileSync(globals.getRespCacheFile(), JSON.stringify(cache));
|
|
140
176
|
// console.log("wrote cache for ", url);
|
|
141
177
|
});
|
|
178
|
+
/**
|
|
179
|
+
* Makes a GET request to the given URL and returns the response.
|
|
180
|
+
*
|
|
181
|
+
* If caching is enabled, it will first check if the response is cached.
|
|
182
|
+
* If it is, it will return the cached response. If not, it will make the request
|
|
183
|
+
* using the given options, and cache the response before returning it.
|
|
184
|
+
*
|
|
185
|
+
* If the request fails, it will retry up to 10 times with 0.5s of sleep in between.
|
|
186
|
+
* If all retries fail, it will return null.
|
|
187
|
+
*
|
|
188
|
+
* @param url - The URL to request
|
|
189
|
+
* @param args - Request options
|
|
190
|
+
* @returns A Promise that resolves to a Response, or null if all retries fail
|
|
191
|
+
*/
|
|
142
192
|
const makeRequest = (url, args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
193
|
+
const _a = args || {}, { timeout } = _a, restArgs = __rest(_a, ["timeout"]);
|
|
194
|
+
const requestOptions = restArgs;
|
|
195
|
+
const requestTimeout = timeout || globals.getRequestTimeout();
|
|
143
196
|
// if cache is enabled, read the cache and return if cache is present. else, continue
|
|
144
197
|
if (!globals.getDisableCache()) {
|
|
145
|
-
const cachedResponse = yield readCache(url,
|
|
198
|
+
const cachedResponse = yield readCache(url, requestOptions.headers || {});
|
|
146
199
|
if (cachedResponse !== null) {
|
|
147
200
|
return cachedResponse;
|
|
148
201
|
}
|
|
149
202
|
}
|
|
150
203
|
if (globals.useApiGateway) {
|
|
151
204
|
let get_headers;
|
|
152
|
-
if (
|
|
153
|
-
get_headers =
|
|
205
|
+
if (requestOptions && requestOptions.headers) {
|
|
206
|
+
get_headers = requestOptions.headers;
|
|
154
207
|
}
|
|
155
208
|
else {
|
|
156
209
|
get_headers = {
|
|
@@ -174,31 +227,22 @@ const makeRequest = (url, args) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
174
227
|
return response;
|
|
175
228
|
}
|
|
176
229
|
else {
|
|
177
|
-
if (args === undefined || Object.keys(args).length === 0) {
|
|
178
|
-
args = {
|
|
179
|
-
headers: {
|
|
180
|
-
"User-Agent": UAs[Math.floor(Math.random() * UAs.length)],
|
|
181
|
-
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
|
|
182
|
-
"Accept-Language": "en-US,en;q=0.9",
|
|
183
|
-
"Sec-Fetch-Site": "same-origin",
|
|
184
|
-
"Sec-Fetch-Mode": "cors",
|
|
185
|
-
"Sec-Fetch-Dest": "empty",
|
|
186
|
-
Referer: url,
|
|
187
|
-
Origin: url,
|
|
188
|
-
},
|
|
189
|
-
};
|
|
190
|
-
}
|
|
191
230
|
let res;
|
|
192
231
|
let counter = 0;
|
|
193
232
|
while (true) {
|
|
233
|
+
const controller = new AbortController();
|
|
234
|
+
const timeoutId = setTimeout(() => controller.abort(), requestTimeout);
|
|
235
|
+
const currentRequestOptions = Object.assign(Object.assign({}, requestOptions), { signal: controller.signal });
|
|
194
236
|
try {
|
|
195
237
|
EventEmitter.defaultMaxListeners = 20;
|
|
196
|
-
res = yield fetch(url,
|
|
238
|
+
res = yield fetch(url, currentRequestOptions);
|
|
239
|
+
clearTimeout(timeoutId);
|
|
197
240
|
if (res) {
|
|
198
241
|
break;
|
|
199
242
|
}
|
|
200
243
|
}
|
|
201
244
|
catch (err) {
|
|
245
|
+
clearTimeout(timeoutId);
|
|
202
246
|
counter++;
|
|
203
247
|
// BUG: https://github.com/nodejs/node/issues/47246
|
|
204
248
|
// if the header content is too large, it will throw an error like
|
|
@@ -209,6 +253,10 @@ const makeRequest = (url, args) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
209
253
|
console.log(chalk.yellow(`[!] The tool detected a header overflow. Please increase the limit by setting environment variable \`NODE_OPTIONS="--max-http-header-size=99999999"\`. If the error still persists, please try again with a higher limit.`));
|
|
210
254
|
process.exit(21);
|
|
211
255
|
}
|
|
256
|
+
if (err.name === "AbortError") {
|
|
257
|
+
console.log(chalk.red(`[!] Request to ${url} timed out after ${requestTimeout}ms`));
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
212
260
|
if (counter > 10) {
|
|
213
261
|
console.log(chalk.red(`[!] Failed to fetch ${url} : ${err}`));
|
|
214
262
|
return null;
|
|
@@ -228,7 +276,7 @@ const makeRequest = (url, args) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
228
276
|
// if it is, load it in a headless browser
|
|
229
277
|
const browser = yield puppeteer.launch({
|
|
230
278
|
headless: true,
|
|
231
|
-
args:
|
|
279
|
+
args: globals.getDisableSandbox() ? ["--no-sandbox", "--disable-setuid-sandbox"] : [],
|
|
232
280
|
});
|
|
233
281
|
const page = yield browser.newPage();
|
|
234
282
|
yield page.goto(url);
|
|
@@ -246,7 +294,7 @@ const makeRequest = (url, args) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
246
294
|
// if it is, load it in a headless browser
|
|
247
295
|
const browser = yield puppeteer.launch({
|
|
248
296
|
headless: true,
|
|
249
|
-
args:
|
|
297
|
+
args: globals.getDisableSandbox() ? ["--no-sandbox", "--disable-setuid-sandbox"] : [],
|
|
250
298
|
});
|
|
251
299
|
const page = yield browser.newPage();
|
|
252
300
|
yield page.goto(url);
|
|
@@ -262,7 +310,7 @@ const makeRequest = (url, args) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
262
310
|
// if cache is enabled, write the response to the cache
|
|
263
311
|
if (!globals.getDisableCache()) {
|
|
264
312
|
const resToCache = preservedRes.clone();
|
|
265
|
-
yield writeCache(url,
|
|
313
|
+
yield writeCache(url, requestOptions.headers || {}, resToCache);
|
|
266
314
|
}
|
|
267
315
|
return preservedRes2;
|
|
268
316
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeReq.js","sourceRoot":"","sources":["../../src/utility/makeReq.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"makeReq.js","sourceRoot":"","sources":["../../src/utility/makeReq.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import * as globalsUtil from "./globals.js";
|
|
2
2
|
import replacePlaceholders from "./replaceUrlPlaceholders.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* `OpenapiOutputItem` objects.
|
|
4
|
+
* Returns the OpenAPI type string corresponding to the given value.
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
6
|
+
* If the value is null, returns "string" as OpenAPI 3.0 doesn't have a 'null' type.
|
|
7
|
+
* If the value is an array, returns "array".
|
|
8
|
+
* If the value is a primitive type (string, number, boolean), returns the corresponding OpenAPI type.
|
|
9
|
+
* If the value is an object, returns "object".
|
|
10
|
+
* For other types, returns "string" as a fallback.
|
|
11
|
+
* @param value - The value to determine the OpenAPI type for
|
|
12
|
+
* @returns The OpenAPI type string corresponding to the given value
|
|
12
13
|
*/
|
|
13
14
|
export const getOpenApiType = (value) => {
|
|
14
15
|
if (value === null) {
|
|
@@ -23,6 +24,13 @@ export const getOpenApiType = (value) => {
|
|
|
23
24
|
}
|
|
24
25
|
return "string"; // Fallback for other types
|
|
25
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* Generates an OpenAPI v3 spec based on the given OpenAPI output items.
|
|
29
|
+
*
|
|
30
|
+
* @param items - The OpenAPI output items to generate the spec from
|
|
31
|
+
* @param chunks - The chunks of API endpoints that the items belong to
|
|
32
|
+
* @returns The generated OpenAPI v3 spec
|
|
33
|
+
*/
|
|
26
34
|
export const generateOpenapiV3Spec = (items, chunks) => {
|
|
27
35
|
const spec = {
|
|
28
36
|
openapi: "3.0.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapiGenerator.js","sourceRoot":"","sources":["../../src/utility/openapiGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAkE9D
|
|
1
|
+
{"version":3,"file":"openapiGenerator.js","sourceRoot":"","sources":["../../src/utility/openapiGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replaces all placeholders in a URL with their corresponding OpenAPI placeholder.
|
|
3
|
+
*
|
|
4
|
+
* Currently, supports the following placeholders:
|
|
5
|
+
* - `[MemberExpression -> <member_expression>]`
|
|
6
|
+
* - `[var <variable_name>]`
|
|
7
|
+
* - `[unresolved member expression]`
|
|
8
|
+
* - `[unresolved: <variable_name>]`
|
|
9
|
+
*
|
|
10
|
+
* The placeholders are replaced with the following OpenAPI placeholders:
|
|
11
|
+
* - `{<member_expression>}`
|
|
12
|
+
* - `{<variable_name>}`
|
|
13
|
+
* - `{unres_mem_exp_<appearance_count_like_1_and_2_in_case_found_multiple_times>}`
|
|
14
|
+
* - `{<variable_name>}`
|
|
15
|
+
*/
|
|
1
16
|
const replacePlaceholders = (url) => {
|
|
2
17
|
// match it against multiple regexes and replace with the right placeholder as per the openapi spec
|
|
3
18
|
// first for member expression
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replaceUrlPlaceholders.js","sourceRoot":"","sources":["../../src/utility/replaceUrlPlaceholders.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE;IAChD,mGAAmG;IAEnG,8BAA8B;IAC9B,MAAM,qBAAqB,GAAG,gCAAgC,CAAC;IAC/D,MAAM,uBAAuB,GAAG,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACpE,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;QAC1C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,gBAAgB,CAAC;IAClC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,uDAAuD;IACvD,mGAAmG;IACnG,MAAM,+BAA+B,GAAG,mCAAmC,CAAC;IAC5E,MAAM,iCAAiC,GAAG,GAAG,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IACxF,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,iCAAiC,EAAE,CAAC;QACpD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,GAAG,eAAe,GAAG,GAAG,CAAC,CAAC;QACvE,eAAe,EAAE,CAAC;IACtB,CAAC;IAED,yCAAyC;IACzC,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACjD,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACpC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"replaceUrlPlaceholders.js","sourceRoot":"","sources":["../../src/utility/replaceUrlPlaceholders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAU,EAAE;IAChD,mGAAmG;IAEnG,8BAA8B;IAC9B,MAAM,qBAAqB,GAAG,gCAAgC,CAAC;IAC/D,MAAM,uBAAuB,GAAG,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACpE,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;QAC1C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,gBAAgB,CAAC;IAClC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,uDAAuD;IACvD,mGAAmG;IACnG,MAAM,+BAA+B,GAAG,mCAAmC,CAAC;IAC5E,MAAM,iCAAiC,GAAG,GAAG,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;IACxF,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,iCAAiC,EAAE,CAAC;QACpD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,GAAG,eAAe,GAAG,GAAG,CAAC,CAAC;QACvE,eAAe,EAAE,CAAC;IACtB,CAAC;IAED,yCAAyC;IACzC,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACjD,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACpC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Resolves a
|
|
2
|
+
* Resolves a relative path with a given base URL.
|
|
3
3
|
*
|
|
4
|
-
* The
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
4
|
+
* The behavior of the URL constructor is used to handle various cases of path resolution.
|
|
5
|
+
* If the base URL does not end with a '/', its last path segment is typically treated as a "file",
|
|
6
|
+
* and relative paths are resolved from the "directory" containing that "file".
|
|
7
|
+
* Examples:
|
|
8
|
+
* - url='https://site.com/something', path='./main.js' => 'https://site.com/main.js'
|
|
9
|
+
* (Base for resolution becomes 'https://site.com/')
|
|
10
|
+
* - url='https://site.com/something/', path='./main.js' => 'https://site.com/something/main.js'
|
|
11
|
+
* (Base for resolution is 'https://site.com/something/')
|
|
12
|
+
* - url='https://site.com/something/other', path='../main.js' => 'https://site.com/main.js'
|
|
13
|
+
* (Base for resolution becomes 'https://site.com/something/', then '../' navigates up)
|
|
14
14
|
*
|
|
15
|
-
* @param {string} url - The base URL
|
|
16
|
-
* @param {string} path - The path to
|
|
17
|
-
* @returns {
|
|
18
|
-
* @throws
|
|
15
|
+
* @param {string} url - The base URL for resolving the relative path
|
|
16
|
+
* @param {string} path - The relative path to be resolved
|
|
17
|
+
* @returns {string} The resolved absolute URL
|
|
18
|
+
* @throws {Error} If an error occurs while resolving the path
|
|
19
19
|
*/
|
|
20
20
|
const resolvePath = (url, path) => {
|
|
21
21
|
try {
|
|
@@ -7,6 +7,26 @@ lockdown();
|
|
|
7
7
|
* @param {any} param - The parameter to pass to the function.
|
|
8
8
|
* @returns {any} The result of the function execution.
|
|
9
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* Executes a given function in a sandboxed environment.
|
|
12
|
+
*
|
|
13
|
+
* This function takes a string of code that represents a function, and
|
|
14
|
+
* executes it in a sandboxed environment. It also takes a parameter
|
|
15
|
+
* that is passed to the function when it is executed.
|
|
16
|
+
*
|
|
17
|
+
* The sandboxed environment is created using the vm module's
|
|
18
|
+
* Compartment class. This class is used to create a new global
|
|
19
|
+
* environment that is isolated from the current global environment.
|
|
20
|
+
*
|
|
21
|
+
* The function that is passed as a string is wrapped in a self-invoking
|
|
22
|
+
* anonymous function, and then evaluated in the sandboxed environment.
|
|
23
|
+
* The parameter that is passed to the function is then passed to the evaluated
|
|
24
|
+
* function, and the result of the function execution is returned.
|
|
25
|
+
*
|
|
26
|
+
* @param {string} code - The code to execute. This should represent a function.
|
|
27
|
+
* @param {any} param - The parameter to pass to the function.
|
|
28
|
+
* @returns {any} The result of the function execution.
|
|
29
|
+
*/
|
|
10
30
|
const execFunc = (code, param) => {
|
|
11
31
|
const c = new Compartment({
|
|
12
32
|
console,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runSandboxed.js","sourceRoot":"","sources":["../../src/utility/runSandboxed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC;AAEb,gDAAgD;AAChD,QAAQ,EAAE,CAAC;AAEX;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IAC7B,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC;QACtB,OAAO;KACV,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;OACjB,IAAI;GACR,CAAC;IACA,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAE3B,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"runSandboxed.js","sourceRoot":"","sources":["../../src/utility/runSandboxed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC;AAEb,gDAAgD;AAChD,QAAQ,EAAE,CAAC;AAEX;;;;;GAKG;AACH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;IAC7B,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC;QACtB,OAAO;KACV,CAAC,CAAC;IACH,MAAM,WAAW,GAAG;OACjB,IAAI;GACR,CAAC;IACA,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAE3B,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
2
|
+
* Given a URL, returns an object with the host and directory
|
|
3
|
+
* of the URL. The directory is the path of the URL after the
|
|
4
|
+
* host, and the filename is removed if it ends with a file extension.
|
|
5
|
+
* For example, given "https://vercel.com/static/js/main.js", it will return
|
|
6
|
+
* an object with host "vercel.com" and directory "/static/js".
|
|
7
|
+
* @param {string} url - The URL to parse.
|
|
8
|
+
* @returns {Object} An object with the host and directory of the URL.
|
|
8
9
|
*/
|
|
9
10
|
const getURLDirectory = (url) => {
|
|
10
11
|
const u = new URL(url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlUtils.js","sourceRoot":"","sources":["../../src/utility/urlUtils.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"urlUtils.js","sourceRoot":"","sources":["../../src/utility/urlUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE;IACpC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAE5B,sFAAsF;IACtF,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IAE1D,OAAO;QACH,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,yCAAyC;QACzE,SAAS,EAAE,GAAG,EAAE,qBAAqB;KACxC,CAAC;AACN,CAAC,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shriyanss/js-recon",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2-alpha.2",
|
|
4
4
|
"description": "JS Recon Tool",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -57,7 +57,9 @@
|
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/better-sqlite3": "^7.6.13",
|
|
59
59
|
"@types/blessed": "^0.1.25",
|
|
60
|
+
"@types/node": "^24.5.2",
|
|
60
61
|
"ts-node": "^10.9.2",
|
|
61
|
-
"tsconfig-paths": "^4.2.0"
|
|
62
|
+
"tsconfig-paths": "^4.2.0",
|
|
63
|
+
"typescript": "^5.9.2"
|
|
62
64
|
}
|
|
63
65
|
}
|