@shriyanss/js-recon 1.2.2-alpha.1 → 1.2.2-alpha.11
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/CHANGELOG.md +128 -0
- package/build/endpoints/index.js +1 -0
- package/build/endpoints/index.js.map +1 -1
- package/build/globalConfig.js +2 -1
- package/build/globalConfig.js.map +1 -1
- package/build/index.js +7 -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 +7 -4
- package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
- package/build/lazyLoad/index.js +201 -12
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetJSScript.js +2 -3
- package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js +32 -23
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_SubsequentRequests.js +54 -4
- package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
- package/build/lazyLoad/next_js/next_bruteForceJsFiles.js +32 -0
- package/build/lazyLoad/next_js/next_bruteForceJsFiles.js.map +1 -0
- package/build/lazyLoad/next_js/next_buildId.js +9 -1
- package/build/lazyLoad/next_js/next_buildId.js.map +1 -1
- package/build/lazyLoad/next_js/next_parseLayoutJs.js +116 -0
- package/build/lazyLoad/next_js/next_parseLayoutJs.js.map +1 -0
- package/build/lazyLoad/next_js/next_promiseResolve.js +76 -0
- package/build/lazyLoad/next_js/next_promiseResolve.js.map +1 -0
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +34 -0
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -0
- package/build/lazyLoad/sourcemap.js +188 -0
- package/build/lazyLoad/sourcemap.js.map +1 -0
- package/build/lazyLoad/techDetect/index.js +117 -3
- package/build/lazyLoad/techDetect/index.js.map +1 -1
- package/build/lazyLoad/vue/vue_RuntimeJs.js +101 -0
- package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -0
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +98 -0
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -0
- package/build/lazyLoad/vue/vue_jsImports.js +70 -0
- package/build/lazyLoad/vue/vue_jsImports.js.map +1 -0
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +56 -0
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -0
- package/build/lazyLoad/vue/vue_severalJsFilesHome.js +52 -0
- package/build/lazyLoad/vue/vue_severalJsFilesHome.js.map +1 -0
- package/build/lazyLoad/vue/vue_sourcemapExtract.js +166 -0
- package/build/lazyLoad/vue/vue_sourcemapExtract.js.map +1 -0
- package/build/map/next_js/getAxiosInstances.js +1 -1
- package/build/map/next_js/getAxiosInstances.js.map +1 -1
- package/build/map/next_js/getWebpackConnections.js +1 -1
- package/build/map/next_js/getWebpackConnections.js.map +1 -1
- package/build/map/next_js/interactive_helpers/commandHelpers.js +1 -1
- package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
- package/build/map/next_js/resolveAxios.js +61 -17
- package/build/map/next_js/resolveAxios.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js +48 -0
- package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js.map +1 -0
- package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js +8 -8
- package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +302 -0
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -0
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js +48 -8
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js +261 -0
- package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js.map +1 -0
- package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js +10 -3
- package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js +113 -0
- package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js.map +1 -0
- package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js +274 -0
- package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js.map +1 -0
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +506 -0
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -0
- package/build/map/next_js/resolveFetch.js +243 -4
- package/build/map/next_js/resolveFetch.js.map +1 -1
- package/build/map/next_js/utils.js +867 -11
- package/build/map/next_js/utils.js.map +1 -1
- package/build/run/index.js +12 -7
- package/build/run/index.js.map +1 -1
- package/build/utility/globals.js.map +1 -1
- package/build/utility/makeReq.js +159 -91
- package/build/utility/makeReq.js.map +1 -1
- package/package.json +7 -7
|
@@ -55,7 +55,7 @@ const checkNextJS = ($) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
55
55
|
* - evidence: A string with the evidence of the detection, or an empty string
|
|
56
56
|
* if Vue.js was not detected.
|
|
57
57
|
*/
|
|
58
|
-
const checkVueJS = (
|
|
58
|
+
const checkVueJS = ($, url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
59
|
let detected = false;
|
|
60
60
|
let evidence = "";
|
|
61
61
|
$("*").each((_, el) => {
|
|
@@ -67,9 +67,55 @@ const checkVueJS = ($) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
67
67
|
detected = true;
|
|
68
68
|
evidence = `${tag} :: ${attrName}`;
|
|
69
69
|
}
|
|
70
|
+
else if (attrName.startsWith("data-vue-")) {
|
|
71
|
+
detected = true;
|
|
72
|
+
evidence = `${tag} :: ${attrName}`;
|
|
73
|
+
}
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
76
|
});
|
|
77
|
+
if (detected) {
|
|
78
|
+
return { detected, evidence };
|
|
79
|
+
}
|
|
80
|
+
// now, iterate through all the script tags, and find something like `app.js`
|
|
81
|
+
let appJsURL;
|
|
82
|
+
$("script").each((_, el) => {
|
|
83
|
+
const tag = $(el).get(0).tagName;
|
|
84
|
+
const attribs = el.attribs;
|
|
85
|
+
if (attribs) {
|
|
86
|
+
for (const [attrName, attrValue] of Object.entries(attribs)) {
|
|
87
|
+
if (attrName === "src") {
|
|
88
|
+
// @ts-ignore
|
|
89
|
+
if (attrValue.includes("app.js")) {
|
|
90
|
+
// get the URL of the app.js file
|
|
91
|
+
// @ts-ignore
|
|
92
|
+
if (attrValue.startsWith("/")) {
|
|
93
|
+
// @ts-ignore
|
|
94
|
+
appJsURL = new URL(attrValue, url).href;
|
|
95
|
+
// @ts-ignore
|
|
96
|
+
}
|
|
97
|
+
else if (attrValue.startsWith("http")) {
|
|
98
|
+
// @ts-ignore
|
|
99
|
+
appJsURL = attrValue;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// @ts-ignore
|
|
103
|
+
appJsURL = new URL(attrValue, url).href;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
if (appJsURL) {
|
|
111
|
+
const appJsContent = yield makeRequest(appJsURL).then((res) => res.text());
|
|
112
|
+
if (appJsContent) {
|
|
113
|
+
if (appJsContent.includes("Vue.component(")) {
|
|
114
|
+
detected = true;
|
|
115
|
+
evidence = `${appJsURL} :: Vue.component()`;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
73
119
|
return { detected, evidence };
|
|
74
120
|
});
|
|
75
121
|
/**
|
|
@@ -160,6 +206,64 @@ const checkSvelte = ($) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
160
206
|
});
|
|
161
207
|
return { detected, evidence };
|
|
162
208
|
});
|
|
209
|
+
const checkAngularJS = ($, url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
210
|
+
let detected = false;
|
|
211
|
+
let evidence = "";
|
|
212
|
+
// to detect angular js, first check if it has something like `main-*.js` or `main.js` in script src
|
|
213
|
+
let hasMainJs = false;
|
|
214
|
+
let mainJsURL = undefined;
|
|
215
|
+
$("script").each((_, el) => {
|
|
216
|
+
const tag = $(el).get(0).tagName;
|
|
217
|
+
const attribs = el.attribs;
|
|
218
|
+
if (attribs) {
|
|
219
|
+
for (const [attrName, attrValue] of Object.entries(attribs)) {
|
|
220
|
+
if (attrName === "src") {
|
|
221
|
+
// @ts-ignore
|
|
222
|
+
if (attrValue.includes("main-")) {
|
|
223
|
+
hasMainJs = true;
|
|
224
|
+
// if the url starts with `main-...`, then build the full url
|
|
225
|
+
if (!attrValue.startsWith("http")) {
|
|
226
|
+
mainJsURL = new URL(attrValue, url).href;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
mainJsURL = attrValue;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
// now, get the contents of the main.js file
|
|
237
|
+
if (hasMainJs) {
|
|
238
|
+
const mainJsRes = yield makeRequest(mainJsURL, {});
|
|
239
|
+
const mainJsBody = yield mainJsRes.text();
|
|
240
|
+
// check if the traces of angular js are present
|
|
241
|
+
// using regex for this, as this is simple and fast
|
|
242
|
+
// check: isAngularZone(), "isAngularZone", this.ngZone
|
|
243
|
+
// if lazyload enabled, need to check routerlink: `["routerLink",`
|
|
244
|
+
const isAngularZoneRegex = /isAngularZone\(\)/;
|
|
245
|
+
const isAngularZoneRegex2 = /"isAngularZone"/;
|
|
246
|
+
const ngZoneRegex = /this\.ngZone/;
|
|
247
|
+
const routerLinkRegex = /"routerLink"/;
|
|
248
|
+
if (isAngularZoneRegex.test(mainJsBody)) {
|
|
249
|
+
detected = true;
|
|
250
|
+
evidence = "isAngularZone()";
|
|
251
|
+
}
|
|
252
|
+
else if (isAngularZoneRegex2.test(mainJsBody)) {
|
|
253
|
+
detected = true;
|
|
254
|
+
evidence = '"isAngularZone"';
|
|
255
|
+
}
|
|
256
|
+
else if (ngZoneRegex.test(mainJsBody)) {
|
|
257
|
+
detected = true;
|
|
258
|
+
evidence = "this.ngZone";
|
|
259
|
+
}
|
|
260
|
+
else if (routerLinkRegex.test(mainJsBody)) {
|
|
261
|
+
detected = true;
|
|
262
|
+
evidence = "routerLink";
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return { detected, evidence };
|
|
266
|
+
});
|
|
163
267
|
/**
|
|
164
268
|
* Detects the front-end framework used in a webpage.
|
|
165
269
|
* It does this by iterating through all HTML tags and checking if any attribute name starts with "data-v-".
|
|
@@ -204,14 +308,19 @@ const frameworkDetect = (url) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
204
308
|
// const pageSource = await res.text();
|
|
205
309
|
// cheerio to parse the page source
|
|
206
310
|
const $ = cheerio.load(pageSource);
|
|
311
|
+
// there are two checks
|
|
312
|
+
// one is directly on the response the tool gets by making request with fetch ($)
|
|
313
|
+
// and the second one is by opening the page in browser, loading content, and then analyzing the page content ($res)
|
|
207
314
|
// check all technologies one by one
|
|
208
315
|
const result_checkNextJS = yield checkNextJS($);
|
|
209
|
-
const result_checkVueJS = yield checkVueJS(
|
|
316
|
+
const result_checkVueJS = yield checkVueJS($, url);
|
|
210
317
|
const result_checkSvelte = yield checkSvelte($);
|
|
318
|
+
const result_checkAngular = yield checkAngularJS($, url);
|
|
211
319
|
// now, also check with the res response
|
|
212
320
|
let result_checkNextJS_res = { detected: false, evidence: "" };
|
|
213
321
|
let result_checkVueJS_res = { detected: false, evidence: "" };
|
|
214
322
|
let result_checkSvelte_res = { detected: false, evidence: "" };
|
|
323
|
+
let result_checkAngularJS_res = { detected: false, evidence: "" };
|
|
215
324
|
let $res;
|
|
216
325
|
// if network error was caused, then return
|
|
217
326
|
if (res === null) {
|
|
@@ -221,8 +330,9 @@ const frameworkDetect = (url) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
221
330
|
const resBody = yield res.text();
|
|
222
331
|
$res = cheerio.load(resBody);
|
|
223
332
|
result_checkNextJS_res = yield checkNextJS($res);
|
|
224
|
-
result_checkVueJS_res = yield checkVueJS($res);
|
|
333
|
+
result_checkVueJS_res = yield checkVueJS($res, url);
|
|
225
334
|
result_checkSvelte_res = yield checkSvelte($res);
|
|
335
|
+
result_checkAngularJS_res = yield checkAngularJS($res, url);
|
|
226
336
|
}
|
|
227
337
|
if (result_checkNextJS.detected === true || result_checkNextJS_res.detected === true) {
|
|
228
338
|
const evidence = result_checkNextJS.evidence !== "" ? result_checkNextJS.evidence : result_checkNextJS_res.evidence;
|
|
@@ -244,6 +354,10 @@ const frameworkDetect = (url) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
244
354
|
const evidence = result_checkSvelte.evidence !== "" ? result_checkSvelte.evidence : result_checkSvelte_res.evidence;
|
|
245
355
|
return { name: "svelte", evidence };
|
|
246
356
|
}
|
|
357
|
+
else if (result_checkAngular.detected === true || result_checkAngularJS_res.detected === true) {
|
|
358
|
+
const evidence = result_checkAngular.evidence !== "" ? result_checkAngular.evidence : result_checkAngularJS_res.evidence;
|
|
359
|
+
return { name: "angular", evidence };
|
|
360
|
+
}
|
|
247
361
|
return null;
|
|
248
362
|
});
|
|
249
363
|
export default frameworkDetect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lazyLoad/techDetect/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,WAAW,MAAM,0BAA0B,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,CAAO,CAAC,EAAE,EAAE;IAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,+EAA+E;IAC/E,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEjC,sCAAsC;QACtC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,GAAG,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,QAAQ,GAAG,IAAI,CAAC;gBAChB,QAAQ,GAAG,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;YAClC,CAAC;iBAAM,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9C,QAAQ,GAAG,IAAI,CAAC;gBAChB,QAAQ,GAAG,GAAG,GAAG,OAAO,MAAM,EAAE,CAAC;YACrC,CAAC;iBAAM,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxD,QAAQ,GAAG,IAAI,CAAC;gBAChB,QAAQ,GAAG,GAAG,GAAG,OAAO,WAAW,EAAE,CAAC;YAC1C,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC,CAAA,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CAAO,CAAC,EAAE,EAAE;IAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBACjC,QAAQ,GAAG,IAAI,CAAC;oBAChB,QAAQ,GAAG,GAAG,GAAG,OAAO,QAAQ,EAAE,CAAC;gBACvC,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC,CAAA,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,GAAG,CAAO,CAAqB,EAAE,EAAE;IAChD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,kFAAkF;IAClF,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAClB,aAAa;QACb,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjC,aAAa;QACb,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBAC5C,aAAa;oBACb,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC/B,QAAQ,GAAG,IAAI,CAAC;wBAChB,QAAQ,GAAG,GAAG,QAAQ,OAAO,SAAS,EAAE,CAAC;oBAC7C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC,CAAA,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,CAAO,CAAC,EAAE,EAAE;IAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,iFAAiF;IACjF,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBACvB,aAAa;oBACb,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBAChC,QAAQ,GAAG,IAAI,CAAC;wBAChB,QAAQ,GAAG,GAAG,QAAQ,OAAO,SAAS,EAAE,CAAC;oBAC7C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACpB,aAAa;oBACb,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBAChC,QAAQ,GAAG,IAAI,CAAC;wBAChB,QAAQ,GAAG,GAAG,QAAQ,OAAO,SAAS,EAAE,CAAC;oBAC7C,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,IAAI,QAAQ,KAAK,uBAAuB,EAAE,CAAC;oBACvC,QAAQ,GAAG,IAAI,CAAC;oBAChB,QAAQ,GAAG,GAAG,QAAQ,OAAO,SAAS,EAAE,CAAC;gBAC7C,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC,CAAA,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,eAAe,GAAG,CAAO,GAAW,EAAE,EAAE;IAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAE7D,sBAAsB;IACtB,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEvC,qCAAqC;IACrC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;QACnC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;KAC5F,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACjB,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,uDAAuD;QACvD,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1D,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iFAAiF,CAAC,CAAC,CAAC;IACjH,CAAC;YAAS,CAAC;QACP,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,2CAA2C;IAC3C,YAAY;IACZ,IAAI;IAEJ,uCAAuC;IAEvC,mCAAmC;IACnC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEnC,oCAAoC;IACpC,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;IAEhD,wCAAwC;IACxC,IAAI,sBAAsB,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC/D,IAAI,qBAAqB,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC9D,IAAI,sBAAsB,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC/D,IAAI,IAAI,CAAC;IACT,2CAA2C;IAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,sBAAsB,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACjD,qBAAqB,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/C,sBAAsB,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,kBAAkB,CAAC,QAAQ,KAAK,IAAI,IAAI,sBAAsB,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACnF,MAAM,QAAQ,GACV,kBAAkB,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC;QACvG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACtC,CAAC;SAAM,IAAI,iBAAiB,CAAC,QAAQ,KAAK,IAAI,IAAI,qBAAqB,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC3F,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,sBAAsB,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,kBAAkB,CAAC,QAAQ,KAAK,IAAI,IAAI,sBAAsB,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACnF,MAAM,QAAQ,GACV,kBAAkB,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC;YACvG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,QAAQ,GACV,iBAAiB,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC;QACpG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;SAAM,IAAI,kBAAkB,CAAC,QAAQ,KAAK,IAAI,IAAI,sBAAsB,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC1F,MAAM,QAAQ,GACV,kBAAkB,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC;QACvG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lazyLoad/techDetect/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ==============================================
|
|
3
|
+
* ==============================================
|
|
4
|
+
* ==============================================
|
|
5
|
+
*
|
|
6
|
+
* !!!INCOMPLETE MODULE!!!
|
|
7
|
+
*
|
|
8
|
+
* WILL RETURN BLANK LIST
|
|
9
|
+
*
|
|
10
|
+
* ==============================================
|
|
11
|
+
* ==============================================
|
|
12
|
+
* ==============================================
|
|
13
|
+
*/
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
import makeRequest from "../../utility/makeReq.js";
|
|
24
|
+
import * as cheerio from "cheerio";
|
|
25
|
+
import * as parser from "@babel/parser";
|
|
26
|
+
import _traverse from "@babel/traverse";
|
|
27
|
+
const traverse = _traverse.default;
|
|
28
|
+
const vue_runtimeJs = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
let discovered_urls = [];
|
|
30
|
+
const rootHtml = yield makeRequest(url).then((res) => res.text());
|
|
31
|
+
let runtimeJsUrl;
|
|
32
|
+
// iterate through the HTML, and find all script tags.
|
|
33
|
+
// from those, find the one that has runtime.<hash>.js
|
|
34
|
+
// DEBUG: base64 decode the HTML
|
|
35
|
+
const $ = cheerio.load(rootHtml);
|
|
36
|
+
// const $ = cheerio.load(Buffer.from(rootHtml, "base64").toString("utf-8"));
|
|
37
|
+
$("script").each((_, el) => {
|
|
38
|
+
const tag = $(el).get(0).tagName;
|
|
39
|
+
const attribs = el.attribs;
|
|
40
|
+
if (attribs) {
|
|
41
|
+
for (const [attrName, attrValue] of Object.entries(attribs)) {
|
|
42
|
+
if (attrName === "src") {
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
if (attrValue.match(/runtime\..+\.js/)) {
|
|
45
|
+
// @ts-ignore
|
|
46
|
+
runtimeJsUrl = attrValue;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
if (runtimeJsUrl) {
|
|
53
|
+
// if it starts with HTTP, then great. else, construct using path.join
|
|
54
|
+
if (!runtimeJsUrl.startsWith("http")) {
|
|
55
|
+
runtimeJsUrl = new URL(runtimeJsUrl, url).href;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// now, get the contents of the runtime.<hash>.js file
|
|
59
|
+
const runtimeJsContent = yield makeRequest(runtimeJsUrl).then((res) => res.text());
|
|
60
|
+
// ast parser goes brrrr
|
|
61
|
+
const ast = parser.parse(runtimeJsContent, {
|
|
62
|
+
sourceType: "unambiguous",
|
|
63
|
+
plugins: ["jsx", "typescript"],
|
|
64
|
+
errorRecovery: true,
|
|
65
|
+
});
|
|
66
|
+
// now, traverse the ast, and find the right spot
|
|
67
|
+
// Looking for: script.src = function(e) { ... }(e)
|
|
68
|
+
let scriptSrcAssignment = null;
|
|
69
|
+
traverse(ast, {
|
|
70
|
+
AssignmentExpression(path) {
|
|
71
|
+
const { left, right } = path.node;
|
|
72
|
+
// Check if left side is `script.src`
|
|
73
|
+
if (left.type === "MemberExpression" &&
|
|
74
|
+
left.object.type === "Identifier" &&
|
|
75
|
+
left.object.name === "script" &&
|
|
76
|
+
left.property.type === "Identifier" &&
|
|
77
|
+
left.property.name === "src") {
|
|
78
|
+
// Check if right side is a CallExpression (IIFE pattern)
|
|
79
|
+
// i.e., function(e) { ... }(e)
|
|
80
|
+
if (right.type === "CallExpression" && right.callee.type === "FunctionExpression") {
|
|
81
|
+
// Found the pattern! Extract the function body
|
|
82
|
+
const funcExpr = right.callee;
|
|
83
|
+
// Get the source code for this node
|
|
84
|
+
const start = path.node.start;
|
|
85
|
+
const end = path.node.end;
|
|
86
|
+
if (start !== null && end !== null) {
|
|
87
|
+
const sourceCode = runtimeJsContent.slice(start, end);
|
|
88
|
+
console.log("Found script.src assignment:", sourceCode);
|
|
89
|
+
scriptSrcAssignment = path.node;
|
|
90
|
+
// TODO: Process the function body to extract chunk mappings
|
|
91
|
+
// The function typically contains object mappings for chunk names and hashes
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
// TODO: Add the rest of the logic from the code
|
|
98
|
+
return discovered_urls;
|
|
99
|
+
});
|
|
100
|
+
export default vue_runtimeJs;
|
|
101
|
+
//# sourceMappingURL=vue_RuntimeJs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue_RuntimeJs.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_RuntimeJs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import makeRequest from "../../utility/makeReq.js";
|
|
11
|
+
import parser from "@babel/parser";
|
|
12
|
+
import _traverse from "@babel/traverse";
|
|
13
|
+
import * as cheerio from "cheerio";
|
|
14
|
+
import chalk from "chalk";
|
|
15
|
+
const traverse = _traverse.default;
|
|
16
|
+
const vue_singleJsFileOnHome = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
+
let jsFilesFound = [];
|
|
18
|
+
// first, get the home page content
|
|
19
|
+
const req = yield makeRequest(url, {});
|
|
20
|
+
const homePageContent = yield req.text();
|
|
21
|
+
// load the home page content into cheerio
|
|
22
|
+
const $ = cheerio.load(homePageContent);
|
|
23
|
+
// go through the home page HTML, and find the
|
|
24
|
+
// count of <script> tags that loads external JS
|
|
25
|
+
let externalScriptTagCount = 0;
|
|
26
|
+
let jsUrl = "";
|
|
27
|
+
$("script").each((_, el) => {
|
|
28
|
+
if ($(el).attr("src")) {
|
|
29
|
+
externalScriptTagCount++;
|
|
30
|
+
jsUrl = $(el).attr("src");
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
// if the count is 1, then it's a single JS file
|
|
34
|
+
if (externalScriptTagCount !== 1) {
|
|
35
|
+
return jsFilesFound;
|
|
36
|
+
}
|
|
37
|
+
// if the count is 1, then it's a single JS file
|
|
38
|
+
console.log(chalk.green("[✓] Single JS file detected"));
|
|
39
|
+
// add that JS file to the list
|
|
40
|
+
jsFilesFound.push(new URL(jsUrl, url).href);
|
|
41
|
+
// print the warning
|
|
42
|
+
console.log(chalk.yellow("[!] This method is MEMORY INTENSIVE. Underpowered devices may freeze"));
|
|
43
|
+
// resolve the URL
|
|
44
|
+
if (jsUrl.startsWith("/") || jsUrl.startsWith("./") || jsUrl.startsWith("../")) {
|
|
45
|
+
jsUrl = new URL(jsUrl, url).href;
|
|
46
|
+
}
|
|
47
|
+
// get the contents of that JS file
|
|
48
|
+
const jsReq = yield makeRequest(jsUrl);
|
|
49
|
+
const jsContent = yield jsReq.text();
|
|
50
|
+
// parse the JS file
|
|
51
|
+
const ast = parser.parse(jsContent, {
|
|
52
|
+
sourceType: "unambiguous",
|
|
53
|
+
plugins: ["jsx", "typescript"],
|
|
54
|
+
errorRecovery: true,
|
|
55
|
+
});
|
|
56
|
+
// traverse the AST
|
|
57
|
+
let initialFoundJsPaths = [];
|
|
58
|
+
traverse(ast, {
|
|
59
|
+
ArrayExpression(path) {
|
|
60
|
+
const elements = path.node.elements;
|
|
61
|
+
if (!elements)
|
|
62
|
+
return;
|
|
63
|
+
const currentJsFiles = [];
|
|
64
|
+
let hasJs = false;
|
|
65
|
+
let isPureJsCssList = true;
|
|
66
|
+
for (const element of elements) {
|
|
67
|
+
// element can be null in sparse arrays
|
|
68
|
+
if (!element || element.type !== "StringLiteral") {
|
|
69
|
+
isPureJsCssList = false;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
const value = element.value;
|
|
73
|
+
if (value.endsWith(".js")) {
|
|
74
|
+
hasJs = true;
|
|
75
|
+
currentJsFiles.push(value);
|
|
76
|
+
}
|
|
77
|
+
else if (!value.endsWith(".css")) {
|
|
78
|
+
// If it's not .js and not .css, it's not the list we're looking for
|
|
79
|
+
isPureJsCssList = false;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (isPureJsCssList && hasJs) {
|
|
84
|
+
initialFoundJsPaths.push(...currentJsFiles);
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
// now that paths are found, iterate through those, and construct the full URLs
|
|
89
|
+
for (const path of initialFoundJsPaths) {
|
|
90
|
+
if (!path.endsWith(".js"))
|
|
91
|
+
continue;
|
|
92
|
+
const fullUrl = new URL(path, url).href;
|
|
93
|
+
jsFilesFound.push(fullUrl);
|
|
94
|
+
}
|
|
95
|
+
return jsFilesFound;
|
|
96
|
+
});
|
|
97
|
+
export default vue_singleJsFileOnHome;
|
|
98
|
+
//# sourceMappingURL=vue_SingleJsFileOnHome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue_SingleJsFileOnHome.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_SingleJsFileOnHome.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import makeRequest from "../../utility/makeReq.js";
|
|
11
|
+
import parser from "@babel/parser";
|
|
12
|
+
import _traverse from "@babel/traverse";
|
|
13
|
+
import chalk from "chalk";
|
|
14
|
+
const traverse = _traverse.default;
|
|
15
|
+
const parseJsFile = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
let foundUrls = [];
|
|
17
|
+
const req = yield makeRequest(url);
|
|
18
|
+
const reqText = yield req.text();
|
|
19
|
+
const ast = parser.parse(reqText, {
|
|
20
|
+
sourceType: "module",
|
|
21
|
+
plugins: ["importAssertions"],
|
|
22
|
+
});
|
|
23
|
+
// get all the import statements
|
|
24
|
+
traverse(ast, {
|
|
25
|
+
ImportDeclaration(path) {
|
|
26
|
+
const source = path.node.source.value;
|
|
27
|
+
if (source.startsWith("./")) {
|
|
28
|
+
if (!foundUrls.includes(new URL(source, url).href)) {
|
|
29
|
+
foundUrls.push(new URL(source, url).href);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else if (source.startsWith("../")) {
|
|
33
|
+
if (!foundUrls.includes(new URL(source, url).href)) {
|
|
34
|
+
foundUrls.push(new URL(source, url).href);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// DEBUG
|
|
39
|
+
console.log(chalk.red(`Found import statement but can't resolve it: ${source} - on ${url}`));
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
return foundUrls;
|
|
44
|
+
});
|
|
45
|
+
const vue_jsImports = (url, foundJsFiles) => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
|
+
let foundUrls = [];
|
|
47
|
+
let crawledUrls = [];
|
|
48
|
+
// iterate through URLs, and get the contents of those
|
|
49
|
+
for (const jsfile of foundJsFiles) {
|
|
50
|
+
const foundUrlsParsed = yield parseJsFile(jsfile);
|
|
51
|
+
foundUrls.push(...foundUrlsParsed);
|
|
52
|
+
if (!crawledUrls.includes(jsfile)) {
|
|
53
|
+
crawledUrls.push(jsfile);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// continue crawling until no new URLs are found
|
|
57
|
+
while (foundUrls.some((url) => !crawledUrls.includes(url))) {
|
|
58
|
+
// iterate through foundUrls
|
|
59
|
+
for (const url of foundUrls) {
|
|
60
|
+
if (!crawledUrls.includes(url)) {
|
|
61
|
+
crawledUrls.push(url);
|
|
62
|
+
const foundUrlsParsed = yield parseJsFile(url);
|
|
63
|
+
foundUrls.push(...foundUrlsParsed);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return foundUrls;
|
|
68
|
+
});
|
|
69
|
+
export default vue_jsImports;
|
|
70
|
+
//# sourceMappingURL=vue_jsImports.js.map
|
|
@@ -0,0 +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;AAE1B,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;AAEnC,MAAM,WAAW,GAAG,CAAO,GAAW,EAAE,EAAE;IACtC,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAEjC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE;QAC9B,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAChC,CAAC,CAAC;IAEH,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,EAAE,CAAC;gBAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC;iBAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC9C,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,QAAQ;gBACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gDAAgD,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;YACjG,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA,CAAC;AAEF,MAAM,aAAa,GAAG,CAAO,GAAW,EAAE,YAAsB,EAAE,EAAE;IAChE,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAa,EAAE,CAAC;IAE/B,sDAAsD;IACtD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QAClD,SAAS,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,gDAAgD;IAChD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACzD,4BAA4B;QAC5B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC/C,SAAS,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;YACvC,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import makeRequest from "../../utility/makeReq.js";
|
|
11
|
+
import chalk from "chalk";
|
|
12
|
+
const vue_reconstructSourceMaps = (url, jsFilesToDownload) => __awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
// get the contents of first file, and check if it has the sourceMappingURL
|
|
14
|
+
let sourceMapUrls = [];
|
|
15
|
+
// guard against empty input
|
|
16
|
+
if (jsFilesToDownload.length === 0) {
|
|
17
|
+
return sourceMapUrls;
|
|
18
|
+
}
|
|
19
|
+
const req = yield makeRequest(jsFilesToDownload[0]);
|
|
20
|
+
const content = yield req.text();
|
|
21
|
+
// check if it has the sourceMappingURL
|
|
22
|
+
if (!(content.includes("sourceMappingURL=") || content.includes("sourceMappingURL ="))) {
|
|
23
|
+
return sourceMapUrls;
|
|
24
|
+
}
|
|
25
|
+
console.log(chalk.green("[✓] Found sourceMappingURL"));
|
|
26
|
+
// now that one file has this, iterate through all the files, and reconstruct the source maps
|
|
27
|
+
for (const jsFile of jsFilesToDownload) {
|
|
28
|
+
const req = yield makeRequest(jsFile);
|
|
29
|
+
const content = yield req.text();
|
|
30
|
+
// get the sourceMappingURL
|
|
31
|
+
let sourceMappingURL_reg = content.match(/sourceMappingURL=([^"]+)/);
|
|
32
|
+
if (sourceMappingURL_reg) {
|
|
33
|
+
// strip the newline, and assign to a new var
|
|
34
|
+
const sourceMappingURL = sourceMappingURL_reg[1].replace(/\n/g, "");
|
|
35
|
+
// reconstruct the URL
|
|
36
|
+
let reconstructedUrl = "";
|
|
37
|
+
if (sourceMappingURL.startsWith("/")) {
|
|
38
|
+
reconstructedUrl = new URL(jsFile).origin + sourceMappingURL;
|
|
39
|
+
}
|
|
40
|
+
else if (sourceMappingURL.startsWith("./")) {
|
|
41
|
+
reconstructedUrl = new URL(sourceMappingURL, jsFile).href;
|
|
42
|
+
}
|
|
43
|
+
else if (sourceMappingURL.startsWith("http")) {
|
|
44
|
+
reconstructedUrl = sourceMappingURL;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
reconstructedUrl = new URL(sourceMappingURL, jsFile).href;
|
|
48
|
+
}
|
|
49
|
+
// now that we've got the mapping URL, just push it to the array
|
|
50
|
+
sourceMapUrls.push(reconstructedUrl);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return sourceMapUrls;
|
|
54
|
+
});
|
|
55
|
+
export default vue_reconstructSourceMaps;
|
|
56
|
+
//# sourceMappingURL=vue_reconstructSourceMaps.js.map
|
|
@@ -0,0 +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;AAE1B,MAAM,yBAAyB,GAAG,CAAO,GAAW,EAAE,iBAA2B,EAAE,EAAE;IACjF,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,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,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QACtC,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;IAED,OAAO,aAAa,CAAC;AACzB,CAAC,CAAA,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import makeRequest from "../../utility/makeReq.js";
|
|
11
|
+
import * as cheerio from "cheerio";
|
|
12
|
+
const vue_severalJsFilesHome = (url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
let jsFilesToReturn = [];
|
|
14
|
+
// get the contents of the homepage
|
|
15
|
+
const homepageReq = yield makeRequest(url);
|
|
16
|
+
const homepageContent = yield homepageReq.text();
|
|
17
|
+
// parse it with cheerio
|
|
18
|
+
const $ = cheerio.load(homepageContent);
|
|
19
|
+
// find all the script tag urls
|
|
20
|
+
const scriptTags = $("script");
|
|
21
|
+
// iterate through those, and find the ones that aren't CDN URLs, like the relative or absolute paths
|
|
22
|
+
let jsPaths = [];
|
|
23
|
+
for (const tag of scriptTags) {
|
|
24
|
+
const src = $(tag).attr("src");
|
|
25
|
+
if (src && !src.startsWith("http")) {
|
|
26
|
+
jsPaths.push(src);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// if length is 1, return
|
|
30
|
+
if (jsPaths.length === 1) {
|
|
31
|
+
return jsFilesToReturn;
|
|
32
|
+
}
|
|
33
|
+
// apart from script tags, also go through the <link> tags, check if the `href` attr of those end with `.js`, and if so, push it to the list of the JS paths
|
|
34
|
+
const linkTags = $("link");
|
|
35
|
+
for (const tag of linkTags) {
|
|
36
|
+
const src = $(tag).attr("href");
|
|
37
|
+
if (src && !src.startsWith("http") && src.endsWith(".js")) {
|
|
38
|
+
jsPaths.push(src);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// now that there are files, go through those and get the full path of those
|
|
42
|
+
let fullJsUrls = [];
|
|
43
|
+
for (const path of jsPaths) {
|
|
44
|
+
const fullUrl = new URL(path, url).href;
|
|
45
|
+
fullJsUrls.push(fullUrl);
|
|
46
|
+
}
|
|
47
|
+
// push these to the list of the JS files to return
|
|
48
|
+
jsFilesToReturn.push(...fullJsUrls);
|
|
49
|
+
return jsFilesToReturn;
|
|
50
|
+
});
|
|
51
|
+
export default vue_severalJsFilesHome;
|
|
52
|
+
//# sourceMappingURL=vue_severalJsFilesHome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue_severalJsFilesHome.js","sourceRoot":"","sources":["../../../src/lazyLoad/vue/vue_severalJsFilesHome.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,MAAM,sBAAsB,GAAG,CAAO,GAAW,EAAqB,EAAE;IACpE,IAAI,eAAe,GAAa,EAAE,CAAC;IAEnC,mCAAmC;IACnC,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;IAEjD,wBAAwB;IACxB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAExC,+BAA+B;IAC/B,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE/B,qGAAqG;IACrG,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED,4JAA4J;IAC5J,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,mDAAmD;IACnD,eAAe,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAEpC,OAAO,eAAe,CAAC;AAC3B,CAAC,CAAA,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|