@shriyanss/js-recon 1.3.1-alpha.1 → 1.3.1-alpha.3
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/pr_checker.yml +9 -8
- package/CHANGELOG.md +47 -0
- package/CLAUDE.md +136 -0
- package/build/analyze/engine/astEngine.js +34 -6
- package/build/analyze/engine/astEngine.js.map +1 -1
- package/build/analyze/engine/index.js +2 -2
- package/build/analyze/engine/index.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/taintFlow.js +218 -0
- package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -0
- package/build/analyze/helpers/schemas.js +3 -1
- package/build/analyze/helpers/schemas.js.map +1 -1
- package/build/analyze/helpers/validate.js +49 -9
- package/build/analyze/helpers/validate.js.map +1 -1
- package/build/analyze/index.js +3 -2
- package/build/analyze/index.js.map +1 -1
- package/build/globalConfig.js +1 -1
- package/build/index.js +21 -1
- package/build/index.js.map +1 -1
- package/build/lazyLoad/downloadFilesUtil.js +3 -3
- package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
- package/build/lazyLoad/downloadQueue.js +190 -0
- package/build/lazyLoad/downloadQueue.js.map +1 -0
- package/build/lazyLoad/index.js +57 -55
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/next_js/NextJsCrawler.js +34 -11
- package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetJSScript.js +24 -3
- package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -1
- package/build/lazyLoad/next_js/next_SubsequentRequests.js +20 -2
- package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +10 -1
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
- package/build/lazyLoad/techDetect/checkReact.js +13 -2
- package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
- package/build/lazyLoad/techDetect/index.js +37 -24
- package/build/lazyLoad/techDetect/index.js.map +1 -1
- package/build/lazyLoad/vue/vue_discoverJsFiles.js +25 -11
- package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js +31 -4
- package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +3 -3
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
- package/build/lazyLoad/vue/vue_stringJsFiles.js +142 -0
- package/build/lazyLoad/vue/vue_stringJsFiles.js.map +1 -0
- package/build/load/index.js +316 -0
- package/build/load/index.js.map +1 -0
- package/build/map/index.js +42 -5
- package/build/map/index.js.map +1 -1
- package/build/map/next_js/getExports.js +11 -5
- package/build/map/next_js/getExports.js.map +1 -1
- package/build/map/next_js/getFetchInstances.js +11 -5
- package/build/map/next_js/getFetchInstances.js.map +1 -1
- package/build/map/next_js/interactive.js +30 -0
- package/build/map/next_js/interactive.js.map +1 -1
- package/build/map/next_js/interactive_helpers/commandHandler.js +22 -0
- package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -1
- package/build/map/next_js/interactive_helpers/esqueryGen.js +370 -0
- package/build/map/next_js/interactive_helpers/esqueryGen.js.map +1 -0
- package/build/map/next_js/interactive_helpers/helpMenu.js +1 -0
- package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -1
- package/build/map/next_js/interactive_helpers/inputPatch.js +207 -0
- package/build/map/next_js/interactive_helpers/inputPatch.js.map +1 -0
- package/build/map/next_js/interactive_helpers/ui.js +0 -1
- package/build/map/next_js/interactive_helpers/ui.js.map +1 -1
- package/build/map/next_js/resolveAxios.js +24 -5
- package/build/map/next_js/resolveAxios.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/astNodeToJsonString.js +2 -2
- package/build/map/next_js/resolveAxiosHelpers/astNodeToJsonString.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +11 -5
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js +206 -0
- package/build/map/next_js/resolveAxiosHelpers/interceptorHeaders.js.map +1 -0
- package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js +25 -8
- package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js +14 -6
- package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +22 -10
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/traceBody.js +913 -0
- package/build/map/next_js/resolveAxiosHelpers/traceBody.js.map +1 -0
- package/build/map/next_js/resolveFetch.js +115 -3
- package/build/map/next_js/resolveFetch.js.map +1 -1
- package/build/map/next_js/resolveNewRequest.js +749 -0
- package/build/map/next_js/resolveNewRequest.js.map +1 -0
- package/build/map/next_js/utils.js +397 -49
- package/build/map/next_js/utils.js.map +1 -1
- package/build/map/vue_js/getViteConnections.js +27 -3
- package/build/map/vue_js/getViteConnections.js.map +1 -1
- package/build/map/vue_js/interactive.js +28 -0
- package/build/map/vue_js/interactive.js.map +1 -1
- package/build/map/vue_js/interactive_helpers/commandHandler.js +22 -0
- package/build/map/vue_js/interactive_helpers/commandHandler.js.map +1 -1
- package/build/map/vue_js/interactive_helpers/helpMenu.js +1 -0
- package/build/map/vue_js/interactive_helpers/helpMenu.js.map +1 -1
- package/build/map/vue_js/vue_resolveFetch.js +722 -0
- package/build/map/vue_js/vue_resolveFetch.js.map +1 -0
- package/build/report/utility/populateDb/populateAnalysisFindings.js +1 -1
- package/build/report/utility/populateDb/populateAnalysisFindings.js.map +1 -1
- package/build/run/index.js +27 -5
- package/build/run/index.js.map +1 -1
- package/build/strings/index.js +5 -1
- package/build/strings/index.js.map +1 -1
- package/build/utility/globals.js +9 -0
- package/build/utility/globals.js.map +1 -1
- package/build/utility/makeReq.js +90 -11
- package/build/utility/makeReq.js.map +1 -1
- package/build/utility/openapiGenerator.js +60 -4
- package/build/utility/openapiGenerator.js.map +1 -1
- package/build/utility/postmanGenerator.js +167 -0
- package/build/utility/postmanGenerator.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,316 @@
|
|
|
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
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
11
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
12
|
+
var m = o[Symbol.asyncIterator], i;
|
|
13
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
14
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
15
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
16
|
+
};
|
|
17
|
+
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
18
|
+
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
19
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
20
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
21
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
22
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
23
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
24
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
25
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
26
|
+
function fulfill(value) { resume("next", value); }
|
|
27
|
+
function reject(value) { resume("throw", value); }
|
|
28
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
29
|
+
};
|
|
30
|
+
import fs from "fs";
|
|
31
|
+
import chalk from "chalk";
|
|
32
|
+
import { URL } from "url";
|
|
33
|
+
import zlib from "zlib";
|
|
34
|
+
import * as globals from "../utility/globals.js";
|
|
35
|
+
const DEFAULT_PORTS = { "http:": 80, "https:": 443 };
|
|
36
|
+
function streamCaidoEntries(filePath, rawFilter) {
|
|
37
|
+
return __asyncGenerator(this, arguments, function* streamCaidoEntries_1() {
|
|
38
|
+
var _a, e_1, _b, _c;
|
|
39
|
+
const stream = fs.createReadStream(filePath, { encoding: "utf8", highWaterMark: 1024 * 1024 });
|
|
40
|
+
let depth = 0;
|
|
41
|
+
let inString = false;
|
|
42
|
+
let escape = false;
|
|
43
|
+
let started = false;
|
|
44
|
+
let inObject = false;
|
|
45
|
+
let pending = [];
|
|
46
|
+
let startIdx = -1;
|
|
47
|
+
try {
|
|
48
|
+
for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield __await(stream_1.next()), _a = stream_1_1.done, !_a; _d = true) {
|
|
49
|
+
_c = stream_1_1.value;
|
|
50
|
+
_d = false;
|
|
51
|
+
const chunk = _c;
|
|
52
|
+
const buf = chunk;
|
|
53
|
+
for (let i = 0; i < buf.length; i++) {
|
|
54
|
+
const c = buf[i];
|
|
55
|
+
if (!started) {
|
|
56
|
+
if (c === "[")
|
|
57
|
+
started = true;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (!inObject) {
|
|
61
|
+
if (c === "{") {
|
|
62
|
+
inObject = true;
|
|
63
|
+
depth = 1;
|
|
64
|
+
startIdx = i;
|
|
65
|
+
}
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (inString) {
|
|
69
|
+
if (escape)
|
|
70
|
+
escape = false;
|
|
71
|
+
else if (c === "\\")
|
|
72
|
+
escape = true;
|
|
73
|
+
else if (c === '"')
|
|
74
|
+
inString = false;
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
if (c === '"') {
|
|
78
|
+
inString = true;
|
|
79
|
+
}
|
|
80
|
+
else if (c === "{") {
|
|
81
|
+
depth++;
|
|
82
|
+
}
|
|
83
|
+
else if (c === "}") {
|
|
84
|
+
depth--;
|
|
85
|
+
if (depth === 0) {
|
|
86
|
+
pending.push(buf.slice(startIdx, i + 1));
|
|
87
|
+
const objStr = pending.length === 1 ? pending[0] : pending.join("");
|
|
88
|
+
pending = [];
|
|
89
|
+
inObject = false;
|
|
90
|
+
startIdx = -1;
|
|
91
|
+
if (rawFilter(objStr)) {
|
|
92
|
+
try {
|
|
93
|
+
yield yield __await(JSON.parse(objStr));
|
|
94
|
+
}
|
|
95
|
+
catch (_e) {
|
|
96
|
+
// skip malformed object
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (inObject && startIdx !== -1) {
|
|
103
|
+
pending.push(buf.slice(startIdx));
|
|
104
|
+
startIdx = 0;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
109
|
+
finally {
|
|
110
|
+
try {
|
|
111
|
+
if (!_d && !_a && (_b = stream_1.return)) yield __await(_b.call(stream_1));
|
|
112
|
+
}
|
|
113
|
+
finally { if (e_1) throw e_1.error; }
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
function splitHttpMessage(raw) {
|
|
118
|
+
const sep = Buffer.from("\r\n\r\n");
|
|
119
|
+
const idx = raw.indexOf(sep);
|
|
120
|
+
if (idx === -1) {
|
|
121
|
+
const lfSep = Buffer.from("\n\n");
|
|
122
|
+
const idx2 = raw.indexOf(lfSep);
|
|
123
|
+
if (idx2 === -1)
|
|
124
|
+
return null;
|
|
125
|
+
return { headerText: raw.slice(0, idx2).toString("utf8"), body: raw.slice(idx2 + 2) };
|
|
126
|
+
}
|
|
127
|
+
return { headerText: raw.slice(0, idx).toString("utf8"), body: raw.slice(idx + 4) };
|
|
128
|
+
}
|
|
129
|
+
function parseHeaders(headerText) {
|
|
130
|
+
const lines = headerText.split(/\r?\n/);
|
|
131
|
+
const firstLine = lines.shift() || "";
|
|
132
|
+
const headers = {};
|
|
133
|
+
for (const line of lines) {
|
|
134
|
+
if (!line)
|
|
135
|
+
continue;
|
|
136
|
+
const colon = line.indexOf(":");
|
|
137
|
+
if (colon === -1)
|
|
138
|
+
continue;
|
|
139
|
+
const key = line.slice(0, colon).trim();
|
|
140
|
+
const value = line.slice(colon + 1).trim();
|
|
141
|
+
if (!key)
|
|
142
|
+
continue;
|
|
143
|
+
headers[key] = value;
|
|
144
|
+
}
|
|
145
|
+
return { firstLine, headers };
|
|
146
|
+
}
|
|
147
|
+
function decodeBody(body, headers) {
|
|
148
|
+
var _a, _b;
|
|
149
|
+
const enc = (_b = (_a = Object.entries(headers)
|
|
150
|
+
.find(([k]) => k.toLowerCase() === "content-encoding")) === null || _a === void 0 ? void 0 : _a[1]) === null || _b === void 0 ? void 0 : _b.toLowerCase();
|
|
151
|
+
if (!enc)
|
|
152
|
+
return body;
|
|
153
|
+
try {
|
|
154
|
+
if (enc.includes("gzip"))
|
|
155
|
+
return zlib.gunzipSync(body);
|
|
156
|
+
if (enc.includes("br"))
|
|
157
|
+
return zlib.brotliDecompressSync(body);
|
|
158
|
+
if (enc.includes("deflate")) {
|
|
159
|
+
try {
|
|
160
|
+
return zlib.inflateSync(body);
|
|
161
|
+
}
|
|
162
|
+
catch (_c) {
|
|
163
|
+
return zlib.inflateRawSync(body);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (enc.includes("zstd") && zlib.zstdDecompressSync) {
|
|
167
|
+
return zlib.zstdDecompressSync(body);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch (_d) {
|
|
171
|
+
// fall through and return raw body
|
|
172
|
+
}
|
|
173
|
+
return body;
|
|
174
|
+
}
|
|
175
|
+
function buildUrlVariants(entry) {
|
|
176
|
+
const scheme = entry.is_tls ? "https:" : "http:";
|
|
177
|
+
const defaultPort = DEFAULT_PORTS[scheme];
|
|
178
|
+
const hasNonDefaultPort = entry.port && entry.port !== defaultPort;
|
|
179
|
+
const hostWithPort = hasNonDefaultPort ? `${entry.host}:${entry.port}` : entry.host;
|
|
180
|
+
const hostNoPort = entry.host;
|
|
181
|
+
const path = entry.path || "/";
|
|
182
|
+
const query = entry.query ? `?${entry.query}` : "";
|
|
183
|
+
const variants = new Set();
|
|
184
|
+
variants.add(`${scheme}//${hostWithPort}${path}${query}`);
|
|
185
|
+
if (hasNonDefaultPort) {
|
|
186
|
+
variants.add(`${scheme}//${hostNoPort}${path}${query}`);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
variants.add(`${scheme}//${entry.host}:${entry.port}${path}${query}`);
|
|
190
|
+
}
|
|
191
|
+
if (path === "/" && !query) {
|
|
192
|
+
variants.add(`${scheme}//${hostWithPort}`);
|
|
193
|
+
if (hasNonDefaultPort)
|
|
194
|
+
variants.add(`${scheme}//${hostNoPort}`);
|
|
195
|
+
}
|
|
196
|
+
return Array.from(variants);
|
|
197
|
+
}
|
|
198
|
+
const load = (caidoFile, targetUrl) => __awaiter(void 0, void 0, void 0, function* () {
|
|
199
|
+
var _a, e_2, _b, _c;
|
|
200
|
+
console.log(chalk.cyan("[i] Loading 'Load' module"));
|
|
201
|
+
if (!fs.existsSync(caidoFile)) {
|
|
202
|
+
console.log(chalk.red(`[!] Caido file not found: ${caidoFile}`));
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
let targetHost;
|
|
206
|
+
let targetPort;
|
|
207
|
+
let targetScheme;
|
|
208
|
+
try {
|
|
209
|
+
const u = new URL(targetUrl);
|
|
210
|
+
targetHost = u.hostname;
|
|
211
|
+
targetScheme = u.protocol;
|
|
212
|
+
targetPort = u.port ? parseInt(u.port, 10) : DEFAULT_PORTS[u.protocol];
|
|
213
|
+
}
|
|
214
|
+
catch (_d) {
|
|
215
|
+
console.log(chalk.red(`[!] Invalid target URL: ${targetUrl}`));
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
const cacheFile = globals.getRespCacheFile();
|
|
219
|
+
let cache = {};
|
|
220
|
+
if (fs.existsSync(cacheFile)) {
|
|
221
|
+
try {
|
|
222
|
+
cache = JSON.parse(fs.readFileSync(cacheFile, "utf-8"));
|
|
223
|
+
}
|
|
224
|
+
catch (_e) {
|
|
225
|
+
cache = {};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
console.log(chalk.cyan(`[i] Filtering Caido entries for ${targetScheme}//${targetHost}:${targetPort} → ${cacheFile}`));
|
|
229
|
+
let scanned = 0;
|
|
230
|
+
let matched = 0;
|
|
231
|
+
let stored = 0;
|
|
232
|
+
const hostNeedle = `"host":"${targetHost}"`;
|
|
233
|
+
const rawFilter = (raw) => raw.includes(hostNeedle);
|
|
234
|
+
try {
|
|
235
|
+
for (var _f = true, _g = __asyncValues(streamCaidoEntries(caidoFile, rawFilter)), _h; _h = yield _g.next(), _a = _h.done, !_a; _f = true) {
|
|
236
|
+
_c = _h.value;
|
|
237
|
+
_f = false;
|
|
238
|
+
const entry = _c;
|
|
239
|
+
scanned++;
|
|
240
|
+
if (scanned % 5000 === 0) {
|
|
241
|
+
process.stdout.write(chalk.dim(`\r[i] Scanned ${scanned} entries (matched ${matched})`));
|
|
242
|
+
}
|
|
243
|
+
if (!entry || !entry.host)
|
|
244
|
+
continue;
|
|
245
|
+
if (entry.host !== targetHost)
|
|
246
|
+
continue;
|
|
247
|
+
if (entry.port !== targetPort)
|
|
248
|
+
continue;
|
|
249
|
+
const entryScheme = entry.is_tls ? "https:" : "http:";
|
|
250
|
+
if (entryScheme !== targetScheme)
|
|
251
|
+
continue;
|
|
252
|
+
if (!entry.response)
|
|
253
|
+
continue;
|
|
254
|
+
matched++;
|
|
255
|
+
let respRaw;
|
|
256
|
+
let reqRaw;
|
|
257
|
+
try {
|
|
258
|
+
respRaw = Buffer.from(entry.response.raw, "base64");
|
|
259
|
+
reqRaw = Buffer.from(entry.raw, "base64");
|
|
260
|
+
}
|
|
261
|
+
catch (_j) {
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
const respParts = splitHttpMessage(respRaw);
|
|
265
|
+
if (!respParts)
|
|
266
|
+
continue;
|
|
267
|
+
const reqParts = splitHttpMessage(reqRaw);
|
|
268
|
+
const respParsed = parseHeaders(respParts.headerText);
|
|
269
|
+
const reqHeaders = reqParts ? parseHeaders(reqParts.headerText).headers : {};
|
|
270
|
+
const decodedBody = decodeBody(respParts.body, respParsed.headers);
|
|
271
|
+
const bodyB64 = decodedBody.toString("base64");
|
|
272
|
+
const respHeaders = {};
|
|
273
|
+
for (const [k, v] of Object.entries(respParsed.headers)) {
|
|
274
|
+
const lk = k.toLowerCase();
|
|
275
|
+
if (lk === "content-length" || lk === "content-encoding" || lk === "transfer-encoding")
|
|
276
|
+
continue;
|
|
277
|
+
respHeaders[k] = v;
|
|
278
|
+
}
|
|
279
|
+
const status = entry.response.status_code || parseInt(respParsed.firstLine.split(/\s+/)[1] || "200", 10);
|
|
280
|
+
const isRsc = Object.keys(reqHeaders).some((h) => h.toUpperCase() === "RSC");
|
|
281
|
+
const entryKey = isRsc ? "rsc" : "normal";
|
|
282
|
+
for (const url of buildUrlVariants(entry)) {
|
|
283
|
+
if (!cache[url])
|
|
284
|
+
cache[url] = {};
|
|
285
|
+
cache[url][entryKey] = {
|
|
286
|
+
req_headers: reqHeaders,
|
|
287
|
+
status,
|
|
288
|
+
body_b64: bodyB64,
|
|
289
|
+
resp_headers: respHeaders,
|
|
290
|
+
};
|
|
291
|
+
stored++;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
296
|
+
finally {
|
|
297
|
+
try {
|
|
298
|
+
if (!_f && !_a && (_b = _g.return)) yield _b.call(_g);
|
|
299
|
+
}
|
|
300
|
+
finally { if (e_2) throw e_2.error; }
|
|
301
|
+
}
|
|
302
|
+
process.stdout.write("\r");
|
|
303
|
+
try {
|
|
304
|
+
fs.writeFileSync(cacheFile, JSON.stringify(cache));
|
|
305
|
+
}
|
|
306
|
+
catch (err) {
|
|
307
|
+
if (err instanceof RangeError) {
|
|
308
|
+
console.log(chalk.red(`[!] Cache too large to serialize as one JSON string.`));
|
|
309
|
+
process.exit(1);
|
|
310
|
+
}
|
|
311
|
+
throw err;
|
|
312
|
+
}
|
|
313
|
+
console.log(chalk.green(`[✓] Load complete — scanned ${scanned}, matched ${matched}, wrote ${stored} cache entries to ${cacheFile}`));
|
|
314
|
+
});
|
|
315
|
+
export default load;
|
|
316
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/load/index.ts"],"names":[],"mappings":"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"}
|
package/build/map/index.js
CHANGED
|
@@ -14,16 +14,19 @@ import getWebpackConnections from "./next_js/getWebpackConnections.js";
|
|
|
14
14
|
import getTurbopackConnections from "./next_js/getTurbopackConnections.js";
|
|
15
15
|
import getFetchInstances from "./next_js/getFetchInstances.js";
|
|
16
16
|
import resolveFetch from "./next_js/resolveFetch.js";
|
|
17
|
-
import
|
|
17
|
+
import resolveNewRequest from "./next_js/resolveNewRequest.js";
|
|
18
|
+
import interactive, { runCommands as nextRunCommands } from "./next_js/interactive.js";
|
|
18
19
|
import { existsSync, readFileSync } from "fs";
|
|
19
20
|
import getAxiosInstances from "./next_js/getAxiosInstances.js";
|
|
20
21
|
import resolveAxios from "./next_js/resolveAxios.js";
|
|
21
22
|
import { getOpenapi, getOpenapiOutput, getOpenapiOutputFile } from "../utility/globals.js";
|
|
22
23
|
import { generateOpenapiV3Spec } from "../utility/openapiGenerator.js";
|
|
24
|
+
import { generatePostmanCollection } from "../utility/postmanGenerator.js";
|
|
23
25
|
import getExports from "./next_js/getExports.js";
|
|
24
26
|
// Vue.JS
|
|
25
27
|
import getViteConnections from "./vue_js/getViteConnections.js";
|
|
26
|
-
import vueInteractive from "./vue_js/interactive.js";
|
|
28
|
+
import vueInteractive, { runCommands as vueRunCommands } from "./vue_js/interactive.js";
|
|
29
|
+
import vue_resolveFetch from "./vue_js/vue_resolveFetch.js";
|
|
27
30
|
const availableTech = {
|
|
28
31
|
next: "Next.JS",
|
|
29
32
|
vue: "Vue.JS",
|
|
@@ -49,7 +52,7 @@ const availableFormats = {
|
|
|
49
52
|
* @param interactive_mode - Whether to launch interactive mode after analysis
|
|
50
53
|
* @returns Promise that resolves when mapping analysis is complete
|
|
51
54
|
*/
|
|
52
|
-
const map = (
|
|
55
|
+
const map = (directory_1, output_1, formats_1, tech_1, list_1, interactive_mode_1, ...args_1) => __awaiter(void 0, [directory_1, output_1, formats_1, tech_1, list_1, interactive_mode_1, ...args_1], void 0, function* (directory, output, formats, tech, list, interactive_mode, commands = []) {
|
|
53
56
|
console.log(chalk.cyan("[i] Running 'map' module"));
|
|
54
57
|
if (list) {
|
|
55
58
|
console.log(chalk.cyan("Available technologies:"));
|
|
@@ -101,7 +104,12 @@ const map = (directory, output, formats, tech, list, interactive_mode) => __awai
|
|
|
101
104
|
yield resolveFetch(chunks, directory);
|
|
102
105
|
// also, the axios instances
|
|
103
106
|
yield resolveAxios(chunks, directory);
|
|
104
|
-
|
|
107
|
+
// wrapper-class HTTP requests: new X({url, method, ...})
|
|
108
|
+
yield resolveNewRequest(chunks, directory);
|
|
109
|
+
if (commands.length > 0) {
|
|
110
|
+
yield nextRunCommands(chunks, `${output}.json`, commands);
|
|
111
|
+
}
|
|
112
|
+
else if (interactive_mode) {
|
|
105
113
|
yield interactive(chunks, `${output}.json`);
|
|
106
114
|
}
|
|
107
115
|
// check if the openapi output is enabled. if so, then write to file
|
|
@@ -113,6 +121,16 @@ const map = (directory, output, formats, tech, list, interactive_mode) => __awai
|
|
|
113
121
|
// write to file
|
|
114
122
|
fs.writeFileSync(getOpenapiOutputFile(), openapiJson);
|
|
115
123
|
console.log(chalk.green(`[✓] Generated OpenAPI spec at ${getOpenapiOutputFile()}`));
|
|
124
|
+
// Also emit a Postman Collection v2.1 — Bruno/Insomnia/Postman use its
|
|
125
|
+
// nested `item` arrays to render real folder hierarchies on import,
|
|
126
|
+
// which a flat OpenAPI tag list can't represent.
|
|
127
|
+
const postmanCollection = generatePostmanCollection(getOpenapiOutput());
|
|
128
|
+
const openapiOutputFile = getOpenapiOutputFile();
|
|
129
|
+
const postmanOutputFile = openapiOutputFile.endsWith(".json")
|
|
130
|
+
? openapiOutputFile.replace(/\.json$/, ".postman_collection.json")
|
|
131
|
+
: `${openapiOutputFile}.postman_collection.json`;
|
|
132
|
+
fs.writeFileSync(postmanOutputFile, JSON.stringify(postmanCollection, null, 2));
|
|
133
|
+
console.log(chalk.green(`[✓] Generated Postman Collection at ${postmanOutputFile}`));
|
|
116
134
|
}
|
|
117
135
|
}
|
|
118
136
|
else if (tech === "vue") {
|
|
@@ -123,9 +141,28 @@ const map = (directory, output, formats, tech, list, interactive_mode) => __awai
|
|
|
123
141
|
else {
|
|
124
142
|
chunks = JSON.parse(readFileSync(`${output}.json`, { encoding: "utf8" }));
|
|
125
143
|
}
|
|
126
|
-
|
|
144
|
+
// Resolve fetch instances across all Vue.JS files
|
|
145
|
+
yield vue_resolveFetch(directory);
|
|
146
|
+
if (commands.length > 0) {
|
|
147
|
+
yield vueRunCommands(chunks, `${output}.json`, commands);
|
|
148
|
+
}
|
|
149
|
+
else if (interactive_mode) {
|
|
127
150
|
yield vueInteractive(chunks, `${output}.json`);
|
|
128
151
|
}
|
|
152
|
+
// Generate OpenAPI spec and Postman collection if enabled
|
|
153
|
+
if (getOpenapi() === true) {
|
|
154
|
+
const openapiSpec = generateOpenapiV3Spec(getOpenapiOutput(), chunks);
|
|
155
|
+
const openapiJson = JSON.stringify(openapiSpec, null, 2);
|
|
156
|
+
fs.writeFileSync(getOpenapiOutputFile(), openapiJson);
|
|
157
|
+
console.log(chalk.green(`[✓] Generated OpenAPI spec at ${getOpenapiOutputFile()}`));
|
|
158
|
+
const postmanCollection = generatePostmanCollection(getOpenapiOutput());
|
|
159
|
+
const openapiOutputFile = getOpenapiOutputFile();
|
|
160
|
+
const postmanOutputFile = openapiOutputFile.endsWith(".json")
|
|
161
|
+
? openapiOutputFile.replace(/\.json$/, ".postman_collection.json")
|
|
162
|
+
: `${openapiOutputFile}.postman_collection.json`;
|
|
163
|
+
fs.writeFileSync(postmanOutputFile, JSON.stringify(postmanCollection, null, 2));
|
|
164
|
+
console.log(chalk.green(`[✓] Generated Postman Collection at ${postmanOutputFile}`));
|
|
165
|
+
}
|
|
129
166
|
}
|
|
130
167
|
});
|
|
131
168
|
export default map;
|
package/build/map/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/map/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,UAAU;AACV,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,YAAY,MAAM,2BAA2B,CAAC;AACrD,OAAO,WAAW,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/map/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,11 +24,17 @@ const getExports = (chunks) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
24
24
|
// get the chunk code
|
|
25
25
|
const chunkCode = chunk.code;
|
|
26
26
|
// parse it with ast
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
let ast;
|
|
28
|
+
try {
|
|
29
|
+
ast = parser.parse(chunkCode, {
|
|
30
|
+
sourceType: "unambiguous",
|
|
31
|
+
plugins: ["jsx", "typescript"],
|
|
32
|
+
errorRecovery: true,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
catch (_a) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
32
38
|
// declare the exportname var
|
|
33
39
|
let chunkSecondArg;
|
|
34
40
|
let chunkThirdArg;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getExports.js","sourceRoot":"","sources":["../../../src/map/next_js/getExports.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;AAEnC;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAO,MAAc,EAAmB,EAAE;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAE/C,IAAI,SAAS,GAAG,MAAM,CAAC;IAEvB,6BAA6B;IAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,qBAAqB;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAE7B,oBAAoB;QACpB,
|
|
1
|
+
{"version":3,"file":"getExports.js","sourceRoot":"","sources":["../../../src/map/next_js/getExports.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,11 +53,17 @@ const getFetchInstances = (chunks, output, formats) => __awaiter(void 0, void 0,
|
|
|
53
53
|
let chunk_copy = Object.assign({}, chunks);
|
|
54
54
|
// iterate through the chunks, and check fetch instances
|
|
55
55
|
for (let chunk of Object.values(chunks)) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
let chunkAst;
|
|
57
|
+
try {
|
|
58
|
+
chunkAst = parser.parse(chunk.code, {
|
|
59
|
+
sourceType: "module",
|
|
60
|
+
plugins: ["jsx", "typescript"],
|
|
61
|
+
errorRecovery: true,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
catch (_a) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
61
67
|
const fetchAliases = new Set();
|
|
62
68
|
const fetchCalls = new Set();
|
|
63
69
|
traverse(chunkAst, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFetchInstances.js","sourceRoot":"","sources":["../../../src/map/next_js/getFetchInstances.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;AACnC,OAAO,MAAM,MAAM,eAAe,CAAC;AAGnC;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,CAAC,IAAS,EAAW,EAAE;IAC7C,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/D,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,eAAe,GAAG,CAAC,IAAS,EAAW,EAAE;IAC3C,0CAA0C;IAC1C,OAAO,CACH,CAAC,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,IAAI,CAAC,KAAK,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClF,CAAC,IAAI,CAAC,IAAI,KAAK,uBAAuB,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAC/E,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,iBAAiB,GAAG,CAAO,MAAc,EAAE,MAAc,EAAE,OAAiB,EAAmB,EAAE;IACnG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;IAClE,IAAI,UAAU,qBAAgB,MAAM,CAAE,CAAC;IAEvC,0DAA0D;IAC1D,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,
|
|
1
|
+
{"version":3,"file":"getFetchInstances.js","sourceRoot":"","sources":["../../../src/map/next_js/getFetchInstances.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { createUI } from "./interactive_helpers/ui.js";
|
|
11
11
|
import { handleCommand } from "./interactive_helpers/commandHandler.js";
|
|
12
12
|
import { setupKeybindings } from "./interactive_helpers/keybindings.js";
|
|
13
|
+
import { enableCursorInput } from "./interactive_helpers/inputPatch.js";
|
|
13
14
|
/**
|
|
14
15
|
* Starts the interactive mode.
|
|
15
16
|
* @param {Chunks} chunks - A dictionary of chunk names to chunk objects.
|
|
@@ -32,8 +33,37 @@ const interactive = (chunks, map_file) => __awaiter(void 0, void 0, void 0, func
|
|
|
32
33
|
yield handleCommand(text, state, ui);
|
|
33
34
|
}));
|
|
34
35
|
setupKeybindings(ui.screen, ui.inputBox, ui.outputBox, state);
|
|
36
|
+
enableCursorInput(ui.inputBox);
|
|
35
37
|
ui.inputBox.focus();
|
|
36
38
|
ui.screen.render();
|
|
37
39
|
});
|
|
40
|
+
/**
|
|
41
|
+
* Run a list of interactive-mode commands non-interactively. The blessed UI is
|
|
42
|
+
* replaced by a thin shim that pipes `outputBox.log` to stdout, so a caller
|
|
43
|
+
* (e.g. `map -c ...` or `run -c ...`) can drive the same command surface
|
|
44
|
+
* without a TTY.
|
|
45
|
+
*/
|
|
46
|
+
const runCommands = (chunks, map_file, commands) => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
+
const state = {
|
|
48
|
+
chunks,
|
|
49
|
+
lastCommandStatus: true,
|
|
50
|
+
functionNavHistory: [],
|
|
51
|
+
functionNavHistoryIndex: -1,
|
|
52
|
+
funcWriteFile: undefined,
|
|
53
|
+
commandHistory: [],
|
|
54
|
+
commandHistoryIndex: -1,
|
|
55
|
+
writeimports: false,
|
|
56
|
+
mapFile: map_file,
|
|
57
|
+
};
|
|
58
|
+
const headlessUi = {
|
|
59
|
+
screen: { render: () => { } },
|
|
60
|
+
outputBox: { log: (s) => console.log(s), setText: () => { } },
|
|
61
|
+
inputBox: { clearValue: () => { }, focus: () => { } },
|
|
62
|
+
};
|
|
63
|
+
for (const command of commands) {
|
|
64
|
+
yield handleCommand(command, state, headlessUi);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
export { runCommands };
|
|
38
68
|
export default interactive;
|
|
39
69
|
//# sourceMappingURL=interactive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/map/next_js/interactive.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAexE;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAO,MAAc,EAAE,QAAgB,EAAE,EAAE;IAC3D,MAAM,KAAK,GAAG;QACV,MAAM;QACN,iBAAiB,EAAE,IAAI;QACvB,kBAAkB,EAAE,EAAE;QACtB,uBAAuB,EAAE,CAAC,CAAC;QAC3B,aAAa,EAAE,SAAS;QACxB,cAAc,EAAE,EAAE;QAClB,mBAAmB,EAAE,CAAC,CAAC;QACvB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,QAAQ;KACpB,CAAC;IAEF,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEtB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAO,IAAY,EAAE,EAAE;QAC5C,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAA,CAAC,CAAC;IAEH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/map/next_js/interactive.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAexE;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAO,MAAc,EAAE,QAAgB,EAAE,EAAE;IAC3D,MAAM,KAAK,GAAG;QACV,MAAM;QACN,iBAAiB,EAAE,IAAI;QACvB,kBAAkB,EAAE,EAAE;QACtB,uBAAuB,EAAE,CAAC,CAAC;QAC3B,aAAa,EAAE,SAAS;QACxB,cAAc,EAAE,EAAE;QAClB,mBAAmB,EAAE,CAAC,CAAC;QACvB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,QAAQ;KACpB,CAAC;IAEF,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEtB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAO,IAAY,EAAE,EAAE;QAC5C,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAA,CAAC,CAAC;IAEH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAE/B,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACpB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAA,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,GAAG,CAAO,MAAc,EAAE,QAAgB,EAAE,QAAkB,EAAiB,EAAE;IAC9F,MAAM,KAAK,GAAU;QACjB,MAAM;QACN,iBAAiB,EAAE,IAAI;QACvB,kBAAkB,EAAE,EAAE;QACtB,uBAAuB,EAAE,CAAC,CAAC;QAC3B,aAAa,EAAE,SAAS;QACxB,cAAc,EAAE,EAAE;QAClB,mBAAmB,EAAE,CAAC,CAAC;QACvB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,QAAQ;KACpB,CAAC;IAEF,MAAM,UAAU,GAAQ;QACpB,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE;QAC5B,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE;QACpE,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE;KACtD,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAe,WAAW,CAAC"}
|
|
@@ -12,6 +12,7 @@ import path from "path";
|
|
|
12
12
|
import commandHelpers from "./commandHelpers.js";
|
|
13
13
|
import { helpMenu } from "./helpMenu.js";
|
|
14
14
|
import { printFunction } from "./printer.js";
|
|
15
|
+
import { runEsqueryCommand } from "./esqueryGen.js";
|
|
15
16
|
import fs from "fs";
|
|
16
17
|
/**
|
|
17
18
|
* Handle user input commands.
|
|
@@ -252,6 +253,27 @@ function handleCommand(text, state, ui) {
|
|
|
252
253
|
}
|
|
253
254
|
}
|
|
254
255
|
}
|
|
256
|
+
else if (text.startsWith("esquery")) {
|
|
257
|
+
const usage = helpMenu.esquery;
|
|
258
|
+
const parts = text.split(" ");
|
|
259
|
+
if (parts.length < 3) {
|
|
260
|
+
outputBox.log(chalk.magenta(usage));
|
|
261
|
+
state.lastCommandStatus = false;
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
const chunkId = parts[1];
|
|
265
|
+
const search = parts.slice(2).join(" ");
|
|
266
|
+
try {
|
|
267
|
+
const result = runEsqueryCommand(state.chunks, chunkId, search);
|
|
268
|
+
outputBox.log(result);
|
|
269
|
+
state.lastCommandStatus = true;
|
|
270
|
+
}
|
|
271
|
+
catch (err) {
|
|
272
|
+
outputBox.log(chalk.red(err instanceof Error ? err.message : String(err)));
|
|
273
|
+
state.lastCommandStatus = false;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
255
277
|
else if (text.startsWith("trace")) {
|
|
256
278
|
const usage = helpMenu.trace;
|
|
257
279
|
if (text.split(" ").length < 2) {
|