@shriyanss/js-recon 1.3.1-alpha.2 → 1.3.1-alpha.4

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.
Files changed (162) hide show
  1. package/.github/workflows/build-and-prettify.yaml +15 -1
  2. package/.github/workflows/pr_checker.yml +9 -8
  3. package/.github/workflows/publish-js-recon.yml +13 -1
  4. package/CHANGELOG.md +96 -0
  5. package/CLAUDE.md +225 -0
  6. package/README.md +2 -0
  7. package/build/analyze/engine/astEngine.js +57 -29
  8. package/build/analyze/engine/astEngine.js.map +1 -1
  9. package/build/analyze/engine/index.js +2 -2
  10. package/build/analyze/engine/index.js.map +1 -1
  11. package/build/analyze/helpers/engineHelpers/taintFlow.js +32 -0
  12. package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -1
  13. package/build/analyze/helpers/initRules.js +9 -0
  14. package/build/analyze/helpers/initRules.js.map +1 -1
  15. package/build/analyze/helpers/schemas.js +6 -1
  16. package/build/analyze/helpers/schemas.js.map +1 -1
  17. package/build/analyze/helpers/validate.js +49 -9
  18. package/build/analyze/helpers/validate.js.map +1 -1
  19. package/build/analyze/index.js +10 -4
  20. package/build/analyze/index.js.map +1 -1
  21. package/build/endpoints/next_js/client_mappedJsonFile.js +12 -5
  22. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  23. package/build/fingerprint/index.js +123 -0
  24. package/build/fingerprint/index.js.map +1 -0
  25. package/build/globalConfig.js +1 -1
  26. package/build/index.js +72 -5
  27. package/build/index.js.map +1 -1
  28. package/build/lazyLoad/downloadFilesUtil.js +3 -3
  29. package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
  30. package/build/lazyLoad/downloadQueue.js +16 -11
  31. package/build/lazyLoad/downloadQueue.js.map +1 -1
  32. package/build/lazyLoad/index.js +260 -163
  33. package/build/lazyLoad/index.js.map +1 -1
  34. package/build/lazyLoad/next_js/NextJsCrawler.js +58 -16
  35. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
  36. package/build/lazyLoad/next_js/next_GetJSScript.js +8 -4
  37. package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -1
  38. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +149 -139
  39. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  40. package/build/lazyLoad/next_js/next_SubsequentRequests.js +25 -4
  41. package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
  42. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +13 -5
  43. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
  44. package/build/lazyLoad/react/react_followImports.js +105 -0
  45. package/build/lazyLoad/react/react_followImports.js.map +1 -0
  46. package/build/lazyLoad/react/react_getScriptTags.js +28 -5
  47. package/build/lazyLoad/react/react_getScriptTags.js.map +1 -1
  48. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js +162 -0
  49. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js.map +1 -0
  50. package/build/lazyLoad/svelte/svelte_getFromPageSource.js +15 -0
  51. package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
  52. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js +180 -0
  53. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js.map +1 -0
  54. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +15 -1
  55. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
  56. package/build/lazyLoad/techDetect/checkReact.js +67 -36
  57. package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
  58. package/build/lazyLoad/techDetect/checkSvelte.js +35 -35
  59. package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
  60. package/build/lazyLoad/techDetect/index.js +31 -25
  61. package/build/lazyLoad/techDetect/index.js.map +1 -1
  62. package/build/lazyLoad/vue/vue_getClientSidePaths.js +6 -0
  63. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
  64. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +6 -0
  65. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
  66. package/build/lazyLoad/vue/vue_stringJsFiles.js +6 -0
  67. package/build/lazyLoad/vue/vue_stringJsFiles.js.map +1 -1
  68. package/build/load/index.js +316 -0
  69. package/build/load/index.js.map +1 -0
  70. package/build/map/graphql/resolveGraphql.js +296 -0
  71. package/build/map/graphql/resolveGraphql.js.map +1 -0
  72. package/build/map/index.js +104 -6
  73. package/build/map/index.js.map +1 -1
  74. package/build/map/next_js/interactive.js +30 -0
  75. package/build/map/next_js/interactive.js.map +1 -1
  76. package/build/map/next_js/interactive_helpers/commandHandler.js +26 -0
  77. package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -1
  78. package/build/map/next_js/interactive_helpers/commandHelpers.js +28 -0
  79. package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
  80. package/build/map/next_js/interactive_helpers/esqueryGen.js +370 -0
  81. package/build/map/next_js/interactive_helpers/esqueryGen.js.map +1 -0
  82. package/build/map/next_js/interactive_helpers/helpMenu.js +2 -1
  83. package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -1
  84. package/build/map/next_js/interactive_helpers/inputPatch.js +207 -0
  85. package/build/map/next_js/interactive_helpers/inputPatch.js.map +1 -0
  86. package/build/map/next_js/interactive_helpers/ui.js +0 -1
  87. package/build/map/next_js/interactive_helpers/ui.js.map +1 -1
  88. package/build/map/next_js/resolveServerActions.js +449 -0
  89. package/build/map/next_js/resolveServerActions.js.map +1 -0
  90. package/build/map/next_js/utils.js +89 -2
  91. package/build/map/next_js/utils.js.map +1 -1
  92. package/build/map/react_js/getReactConnections.js +298 -0
  93. package/build/map/react_js/getReactConnections.js.map +1 -0
  94. package/build/map/react_js/interactive.js +4 -0
  95. package/build/map/react_js/interactive.js.map +1 -0
  96. package/build/map/react_js/react_resolveFetch.js +6 -0
  97. package/build/map/react_js/react_resolveFetch.js.map +1 -0
  98. package/build/map/svelte_js/interactive.js +58 -0
  99. package/build/map/svelte_js/interactive.js.map +1 -0
  100. package/build/map/svelte_js/interactive_helpers/commandHandler.js +4 -0
  101. package/build/map/svelte_js/interactive_helpers/commandHandler.js.map +1 -0
  102. package/build/map/vue_js/bodyResolver.js +477 -0
  103. package/build/map/vue_js/bodyResolver.js.map +1 -0
  104. package/build/map/vue_js/crossFileResolver.js +438 -0
  105. package/build/map/vue_js/crossFileResolver.js.map +1 -0
  106. package/build/map/vue_js/getViteConnections.js +151 -106
  107. package/build/map/vue_js/getViteConnections.js.map +1 -1
  108. package/build/map/vue_js/interactive.js +28 -0
  109. package/build/map/vue_js/interactive.js.map +1 -1
  110. package/build/map/vue_js/interactive_helpers/commandHandler.js +22 -0
  111. package/build/map/vue_js/interactive_helpers/commandHandler.js.map +1 -1
  112. package/build/map/vue_js/interactive_helpers/helpMenu.js +1 -0
  113. package/build/map/vue_js/interactive_helpers/helpMenu.js.map +1 -1
  114. package/build/map/vue_js/taint_utils.js +621 -0
  115. package/build/map/vue_js/taint_utils.js.map +1 -0
  116. package/build/map/vue_js/vue_resolveFetch.js +279 -25
  117. package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
  118. package/build/map/vue_js/vue_resolveHttpClient.js +733 -0
  119. package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -0
  120. package/build/map/vue_js/vue_resolveXhr.js +279 -0
  121. package/build/map/vue_js/vue_resolveXhr.js.map +1 -0
  122. package/build/mcp/chatOneShot.js +101 -0
  123. package/build/mcp/chatOneShot.js.map +1 -0
  124. package/build/mcp/claudeCodeCreds.js +150 -0
  125. package/build/mcp/claudeCodeCreds.js.map +1 -0
  126. package/build/mcp/cli.js +140 -149
  127. package/build/mcp/cli.js.map +1 -1
  128. package/build/mcp/commands.js +80 -0
  129. package/build/mcp/commands.js.map +1 -1
  130. package/build/mcp/index.js +30 -9
  131. package/build/mcp/index.js.map +1 -1
  132. package/build/mcp/intent.js +204 -0
  133. package/build/mcp/intent.js.map +1 -0
  134. package/build/mcp/jobs.js +199 -0
  135. package/build/mcp/jobs.js.map +1 -0
  136. package/build/mcp/mcpServer.js +241 -0
  137. package/build/mcp/mcpServer.js.map +1 -0
  138. package/build/mcp/providers.js +18 -1
  139. package/build/mcp/providers.js.map +1 -1
  140. package/build/mcp/skills.js +115 -0
  141. package/build/mcp/skills.js.map +1 -0
  142. package/build/refactor/index.js +6 -0
  143. package/build/refactor/index.js.map +1 -1
  144. package/build/refactor/react/index.js +636 -0
  145. package/build/refactor/react/index.js.map +1 -0
  146. package/build/report/utility/populateDb/populateAnalysisFindings.js +1 -1
  147. package/build/report/utility/populateDb/populateAnalysisFindings.js.map +1 -1
  148. package/build/run/index.js +277 -60
  149. package/build/run/index.js.map +1 -1
  150. package/build/run/interruptHandler.js +93 -0
  151. package/build/run/interruptHandler.js.map +1 -0
  152. package/build/utility/globals.js +38 -0
  153. package/build/utility/globals.js.map +1 -1
  154. package/build/utility/makeReq.js +39 -5
  155. package/build/utility/makeReq.js.map +1 -1
  156. package/build/utility/openapiGenerator.js +61 -17
  157. package/build/utility/openapiGenerator.js.map +1 -1
  158. package/build/utility/postmanGenerator.js +69 -16
  159. package/build/utility/postmanGenerator.js.map +1 -1
  160. package/build/utility/progressLog.js +50 -0
  161. package/build/utility/progressLog.js.map +1 -0
  162. package/package.json +7 -4
@@ -0,0 +1,296 @@
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 chalk from "chalk";
11
+ import fs from "fs";
12
+ import path from "path";
13
+ import parser from "@babel/parser";
14
+ import _traverse from "@babel/traverse";
15
+ import { parse as gqlParse, print as gqlPrint, Kind, } from "graphql";
16
+ import * as globals from "../../utility/globals.js";
17
+ const traverse = _traverse.default;
18
+ const OPERATION_TOKEN_RE = /\b(query|mutation|subscription|fragment)\b/;
19
+ const MIN_CANDIDATE_LEN = 20;
20
+ /**
21
+ * Convert a TemplateLiteral AST node into a cooked string with each
22
+ * interpolation replaced by a neutral placeholder. We use a short alphanumeric
23
+ * filler rather than `${...}` because the GraphQL parser would reject the
24
+ * literal `$` syntax. Interpolations inside GraphQL templates almost always
25
+ * sit at value positions (variable defaults, enum names) where a placeholder
26
+ * may or may not parse — failures are silently dropped at the parse stage.
27
+ */
28
+ const templateLiteralToString = (node) => {
29
+ var _a, _b, _c, _d;
30
+ if (!node || !Array.isArray(node.quasis))
31
+ return "";
32
+ const parts = [];
33
+ for (let i = 0; i < node.quasis.length; i++) {
34
+ const q = node.quasis[i];
35
+ const cooked = (_d = (_b = (_a = q === null || q === void 0 ? void 0 : q.value) === null || _a === void 0 ? void 0 : _a.cooked) !== null && _b !== void 0 ? _b : (_c = q === null || q === void 0 ? void 0 : q.value) === null || _c === void 0 ? void 0 : _c.raw) !== null && _d !== void 0 ? _d : "";
36
+ parts.push(cooked);
37
+ if (i < node.quasis.length - 1) {
38
+ parts.push("__jsrecon_interp__");
39
+ }
40
+ }
41
+ return parts.join("");
42
+ };
43
+ /**
44
+ * Maps a GraphQL variable type AST node onto an example value that follows
45
+ * the existing `<string>` / `<number>` / `<boolean>` placeholder convention
46
+ * already understood by openapiGenerator's getZodPlaceholderType().
47
+ */
48
+ const placeholderForType = (typeNode) => {
49
+ if (typeNode.kind === Kind.NON_NULL_TYPE) {
50
+ return placeholderForType(typeNode.type);
51
+ }
52
+ if (typeNode.kind === Kind.LIST_TYPE) {
53
+ return [placeholderForType(typeNode.type)];
54
+ }
55
+ const name = typeNode.name.value;
56
+ switch (name) {
57
+ case "String":
58
+ case "ID":
59
+ return "<string>";
60
+ case "Int":
61
+ case "Float":
62
+ return "<number>";
63
+ case "Boolean":
64
+ return "<boolean>";
65
+ default:
66
+ return "<string>";
67
+ }
68
+ };
69
+ const buildVariablesStub = (defs) => {
70
+ const out = {};
71
+ if (!defs)
72
+ return out;
73
+ for (const def of defs) {
74
+ out[def.variable.name.value] = placeholderForType(def.type);
75
+ }
76
+ return out;
77
+ };
78
+ /**
79
+ * Captures candidate strings from a JS file's AST. We look at StringLiteral
80
+ * and TemplateLiteral nodes only — both directly carry GraphQL source text in
81
+ * real-world bundles (plain strings from `gql("…")` calls and inlined
82
+ * mutation/query exports; template literals from `gql\`…\``).
83
+ */
84
+ const collectCandidates = (code) => {
85
+ const candidates = [];
86
+ let ast;
87
+ try {
88
+ ast = parser.parse(code, {
89
+ sourceType: "unambiguous",
90
+ allowReturnOutsideFunction: true,
91
+ allowAwaitOutsideFunction: true,
92
+ allowImportExportEverywhere: true,
93
+ errorRecovery: true,
94
+ plugins: ["jsx", "typescript"],
95
+ });
96
+ }
97
+ catch (_a) {
98
+ return candidates;
99
+ }
100
+ const seenInFile = new Set();
101
+ traverse(ast, {
102
+ StringLiteral(p) {
103
+ var _a, _b, _c;
104
+ const v = p.node.value;
105
+ if (typeof v !== "string" || v.length < MIN_CANDIDATE_LEN)
106
+ return;
107
+ if (!OPERATION_TOKEN_RE.test(v))
108
+ return;
109
+ if (seenInFile.has(v))
110
+ return;
111
+ seenInFile.add(v);
112
+ candidates.push({ source: v, line: (_c = (_b = (_a = p.node.loc) === null || _a === void 0 ? void 0 : _a.start) === null || _b === void 0 ? void 0 : _b.line) !== null && _c !== void 0 ? _c : 0 });
113
+ },
114
+ TemplateLiteral(p) {
115
+ var _a, _b, _c;
116
+ const v = templateLiteralToString(p.node);
117
+ if (v.length < MIN_CANDIDATE_LEN)
118
+ return;
119
+ if (!OPERATION_TOKEN_RE.test(v))
120
+ return;
121
+ if (seenInFile.has(v))
122
+ return;
123
+ seenInFile.add(v);
124
+ candidates.push({ source: v, line: (_c = (_b = (_a = p.node.loc) === null || _a === void 0 ? void 0 : _a.start) === null || _b === void 0 ? void 0 : _b.line) !== null && _c !== void 0 ? _c : 0 });
125
+ },
126
+ });
127
+ return candidates;
128
+ };
129
+ const tryParse = (source) => {
130
+ try {
131
+ return gqlParse(source, { noLocation: true });
132
+ }
133
+ catch (_a) {
134
+ return null;
135
+ }
136
+ };
137
+ /**
138
+ * Re-prints a single operation as a standalone document, inlining any
139
+ * fragment definitions referenced from the operation so the emitted query
140
+ * body is self-contained.
141
+ */
142
+ const printOperationStandalone = (op, fragments) => {
143
+ const referenced = new Set();
144
+ const visit = (node) => {
145
+ var _a;
146
+ if (!node || typeof node !== "object")
147
+ return;
148
+ if (node.kind === Kind.FRAGMENT_SPREAD && ((_a = node === null || node === void 0 ? void 0 : node.name) === null || _a === void 0 ? void 0 : _a.value)) {
149
+ referenced.add(node.name.value);
150
+ }
151
+ for (const key of Object.keys(node)) {
152
+ const child = node[key];
153
+ if (Array.isArray(child))
154
+ child.forEach(visit);
155
+ else if (child && typeof child === "object" && child.kind)
156
+ visit(child);
157
+ }
158
+ };
159
+ visit(op);
160
+ // Transitively pull in fragments that reference other fragments
161
+ const out = [];
162
+ const queue = Array.from(referenced);
163
+ const added = new Set();
164
+ while (queue.length > 0) {
165
+ const name = queue.shift();
166
+ if (added.has(name))
167
+ continue;
168
+ const frag = fragments.get(name);
169
+ if (!frag)
170
+ continue;
171
+ added.add(name);
172
+ out.push(frag);
173
+ visit(frag);
174
+ for (const ref of referenced) {
175
+ if (!added.has(ref) && !queue.includes(ref))
176
+ queue.push(ref);
177
+ }
178
+ }
179
+ const doc = { kind: Kind.DOCUMENT, definitions: [op, ...out] };
180
+ return gqlPrint(doc);
181
+ };
182
+ /**
183
+ * Scans every JS file under `directory` for embedded GraphQL operations and
184
+ * emits one OpenAPI POST entry per distinct operation under a flat
185
+ * `GraphQL` collection folder. The endpoint URL is parameterised via the
186
+ * `{{graphqlEndpoint}}` placeholder so importers can substitute the real
187
+ * path at import time — this resolver does not attempt to locate the
188
+ * transport URL in the bundle.
189
+ */
190
+ const resolveGraphql = (directory) => __awaiter(void 0, void 0, void 0, function* () {
191
+ var _a;
192
+ console.log(chalk.cyan("[i] Scanning for embedded GraphQL operations"));
193
+ let files;
194
+ try {
195
+ files = fs.readdirSync(directory, { recursive: true, encoding: "utf8" });
196
+ }
197
+ catch (_b) {
198
+ console.log(chalk.red(`[!] Could not read directory: ${directory}`));
199
+ return;
200
+ }
201
+ files = files.filter((f) => f.endsWith(".js") || f.endsWith(".mjs"));
202
+ const total = files.length;
203
+ console.log(chalk.cyan(`[i] Scanning ${total} JS file(s) for GraphQL operations`));
204
+ // Two-phase to handle fragment-only files: first collect ALL fragments
205
+ // across all files, then emit operations with their fragment closures.
206
+ const allFragments = new Map();
207
+ const pendingOps = [];
208
+ let lastPct = -1;
209
+ const startTs = Date.now();
210
+ for (let i = 0; i < total; i++) {
211
+ if (i > 0 && i % 50 === 0)
212
+ yield new Promise((r) => setImmediate(r));
213
+ const pct = total === 0 ? 100 : Math.floor(((i + 1) * 100) / total);
214
+ if (pct !== lastPct && (pct % 10 === 0 || pct === 100)) {
215
+ const elapsed = ((Date.now() - startTs) / 1000).toFixed(1);
216
+ console.log(chalk.gray(` [scan] ${pct}% (${i + 1}/${total}) ops=${pendingOps.length} fragments=${allFragments.size} elapsed=${elapsed}s`));
217
+ lastPct = pct;
218
+ }
219
+ const rel = files[i];
220
+ const filePath = path.join(directory, rel);
221
+ let stat;
222
+ try {
223
+ stat = fs.lstatSync(filePath);
224
+ }
225
+ catch (_c) {
226
+ continue;
227
+ }
228
+ if (stat.isDirectory())
229
+ continue;
230
+ let content;
231
+ try {
232
+ content = fs.readFileSync(filePath, "utf-8");
233
+ }
234
+ catch (_d) {
235
+ continue;
236
+ }
237
+ if (!OPERATION_TOKEN_RE.test(content))
238
+ continue;
239
+ const candidates = collectCandidates(content);
240
+ for (const c of candidates) {
241
+ const doc = tryParse(c.source);
242
+ if (!doc)
243
+ continue;
244
+ for (const def of doc.definitions) {
245
+ if (def.kind === Kind.OPERATION_DEFINITION) {
246
+ pendingOps.push({ op: def, filePath, line: c.line });
247
+ }
248
+ else if (def.kind === Kind.FRAGMENT_DEFINITION) {
249
+ const name = def.name.value;
250
+ if (!allFragments.has(name))
251
+ allFragments.set(name, def);
252
+ }
253
+ }
254
+ }
255
+ }
256
+ const emittedKeys = new Set();
257
+ let emitted = 0;
258
+ let anonCounter = 0;
259
+ for (const { op, filePath, line } of pendingOps) {
260
+ const printedQuery = printOperationStandalone(op, allFragments);
261
+ const operationName = (_a = op.name) === null || _a === void 0 ? void 0 : _a.value;
262
+ const variables = buildVariablesStub(op.variableDefinitions);
263
+ const bodyObj = { query: printedQuery };
264
+ if (operationName)
265
+ bodyObj.operationName = operationName;
266
+ if (Object.keys(variables).length > 0)
267
+ bodyObj.variables = variables;
268
+ // Dedupe key: normalized query + operationName. A fragment used by
269
+ // multiple operations still produces distinct entries because the
270
+ // surrounding operation differs.
271
+ const dedupeKey = `${operationName !== null && operationName !== void 0 ? operationName : ""}::${printedQuery}`;
272
+ if (emittedKeys.has(dedupeKey))
273
+ continue;
274
+ emittedKeys.add(dedupeKey);
275
+ const summary = operationName !== null && operationName !== void 0 ? operationName : `anonymous ${op.operation} #${++anonCounter}`;
276
+ globals.addOpenapiOutput({
277
+ url: "/{{graphqlEndpoint}}",
278
+ method: "POST",
279
+ path: "/{{graphqlEndpoint}}",
280
+ headers: {
281
+ "Content-Type": "application/json",
282
+ Accept: "application/json",
283
+ },
284
+ body: JSON.stringify(bodyObj),
285
+ chunkId: "",
286
+ functionFile: filePath,
287
+ functionFileLine: line,
288
+ summary,
289
+ collectionFolder: "GraphQL",
290
+ });
291
+ emitted++;
292
+ }
293
+ console.log(chalk.green(`[✓] GraphQL: emitted ${emitted} operation(s) from ${allFragments.size} fragment(s) and ${pendingOps.length} parsed operation(s)`));
294
+ });
295
+ export default resolveGraphql;
296
+ //# sourceMappingURL=resolveGraphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveGraphql.js","sourceRoot":"","sources":["../../../src/map/graphql/resolveGraphql.ts"],"names":[],"mappings":"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"}
@@ -15,21 +15,34 @@ 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
17
  import resolveNewRequest from "./next_js/resolveNewRequest.js";
18
- import interactive from "./next_js/interactive.js";
18
+ import interactive, { runCommands as nextRunCommands } from "./next_js/interactive.js";
19
19
  import { existsSync, readFileSync } from "fs";
20
20
  import getAxiosInstances from "./next_js/getAxiosInstances.js";
21
21
  import resolveAxios from "./next_js/resolveAxios.js";
22
- import { getOpenapi, getOpenapiOutput, getOpenapiOutputFile } from "../utility/globals.js";
22
+ import { getOpenapi, getOpenapiOutput, getOpenapiOutputFile, getGraphqlEnabled } from "../utility/globals.js";
23
+ import resolveGraphql from "./graphql/resolveGraphql.js";
23
24
  import { generateOpenapiV3Spec } from "../utility/openapiGenerator.js";
24
25
  import { generatePostmanCollection } from "../utility/postmanGenerator.js";
25
26
  import getExports from "./next_js/getExports.js";
27
+ import resolveServerActions from "./next_js/resolveServerActions.js";
26
28
  // Vue.JS
27
29
  import getViteConnections from "./vue_js/getViteConnections.js";
28
- import vueInteractive from "./vue_js/interactive.js";
30
+ import vueInteractive, { runCommands as vueRunCommands } from "./vue_js/interactive.js";
29
31
  import vue_resolveFetch from "./vue_js/vue_resolveFetch.js";
32
+ // Svelte/Astro
33
+ import svelteInteractive, { runCommands as svelteRunCommands } from "./svelte_js/interactive.js";
34
+ // React
35
+ import getReactConnections from "./react_js/getReactConnections.js";
36
+ import reactInteractive, { runCommands as reactRunCommands } from "./react_js/interactive.js";
37
+ import react_resolveFetch from "./react_js/react_resolveFetch.js";
38
+ // XHR resolution (shared across Vite-based techs)
39
+ import vue_resolveXhr from "./vue_js/vue_resolveXhr.js";
40
+ import vue_resolveHttpClient from "./vue_js/vue_resolveHttpClient.js";
30
41
  const availableTech = {
31
42
  next: "Next.JS",
32
43
  vue: "Vue.JS",
44
+ react: "React",
45
+ svelte: "Svelte/Astro",
33
46
  };
34
47
  const availableFormats = {
35
48
  json: "JSON",
@@ -52,7 +65,7 @@ const availableFormats = {
52
65
  * @param interactive_mode - Whether to launch interactive mode after analysis
53
66
  * @returns Promise that resolves when mapping analysis is complete
54
67
  */
55
- const map = (directory, output, formats, tech, list, interactive_mode) => __awaiter(void 0, void 0, void 0, function* () {
68
+ 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 = []) {
56
69
  console.log(chalk.cyan("[i] Running 'map' module"));
57
70
  if (list) {
58
71
  console.log(chalk.cyan("Available technologies:"));
@@ -106,9 +119,17 @@ const map = (directory, output, formats, tech, list, interactive_mode) => __awai
106
119
  yield resolveAxios(chunks, directory);
107
120
  // wrapper-class HTTP requests: new X({url, method, ...})
108
121
  yield resolveNewRequest(chunks, directory);
109
- if (interactive_mode) {
122
+ // Next.js Server Actions registered via createServerReference(...)
123
+ yield resolveServerActions(chunks, directory);
124
+ if (commands.length > 0) {
125
+ yield nextRunCommands(chunks, `${output}.json`, commands);
126
+ }
127
+ else if (interactive_mode) {
110
128
  yield interactive(chunks, `${output}.json`);
111
129
  }
130
+ if (getOpenapi() === true && getGraphqlEnabled()) {
131
+ yield resolveGraphql(directory);
132
+ }
112
133
  // check if the openapi output is enabled. if so, then write to file
113
134
  if (getOpenapi() === true) {
114
135
  // convert the openapi output to JSON
@@ -140,9 +161,17 @@ const map = (directory, output, formats, tech, list, interactive_mode) => __awai
140
161
  }
141
162
  // Resolve fetch instances across all Vue.JS files
142
163
  yield vue_resolveFetch(directory);
143
- if (interactive_mode) {
164
+ yield vue_resolveXhr(directory);
165
+ yield vue_resolveHttpClient(directory);
166
+ if (commands.length > 0) {
167
+ yield vueRunCommands(chunks, `${output}.json`, commands);
168
+ }
169
+ else if (interactive_mode) {
144
170
  yield vueInteractive(chunks, `${output}.json`);
145
171
  }
172
+ if (getOpenapi() === true && getGraphqlEnabled()) {
173
+ yield resolveGraphql(directory);
174
+ }
146
175
  // Generate OpenAPI spec and Postman collection if enabled
147
176
  if (getOpenapi() === true) {
148
177
  const openapiSpec = generateOpenapiV3Spec(getOpenapiOutput(), chunks);
@@ -158,6 +187,75 @@ const map = (directory, output, formats, tech, list, interactive_mode) => __awai
158
187
  console.log(chalk.green(`[✓] Generated Postman Collection at ${postmanOutputFile}`));
159
188
  }
160
189
  }
190
+ else if (tech === "react") {
191
+ let chunks;
192
+ if (!existsSync(`${output}.json`)) {
193
+ chunks = yield getReactConnections(directory, output, formats);
194
+ }
195
+ else {
196
+ chunks = JSON.parse(readFileSync(`${output}.json`, { encoding: "utf8" }));
197
+ }
198
+ yield react_resolveFetch(directory);
199
+ yield vue_resolveXhr(directory, "React");
200
+ yield vue_resolveHttpClient(directory, "React");
201
+ if (commands.length > 0) {
202
+ yield reactRunCommands(chunks, `${output}.json`, commands);
203
+ }
204
+ else if (interactive_mode) {
205
+ yield reactInteractive(chunks, `${output}.json`);
206
+ }
207
+ if (getOpenapi() === true && getGraphqlEnabled()) {
208
+ yield resolveGraphql(directory);
209
+ }
210
+ if (getOpenapi() === true) {
211
+ const openapiSpec = generateOpenapiV3Spec(getOpenapiOutput(), chunks);
212
+ const openapiJson = JSON.stringify(openapiSpec, null, 2);
213
+ fs.writeFileSync(getOpenapiOutputFile(), openapiJson);
214
+ console.log(chalk.green(`[✓] Generated OpenAPI spec at ${getOpenapiOutputFile()}`));
215
+ const postmanCollection = generatePostmanCollection(getOpenapiOutput());
216
+ const openapiOutputFile = getOpenapiOutputFile();
217
+ const postmanOutputFile = openapiOutputFile.endsWith(".json")
218
+ ? openapiOutputFile.replace(/\.json$/, ".postman_collection.json")
219
+ : `${openapiOutputFile}.postman_collection.json`;
220
+ fs.writeFileSync(postmanOutputFile, JSON.stringify(postmanCollection, null, 2));
221
+ console.log(chalk.green(`[✓] Generated Postman Collection at ${postmanOutputFile}`));
222
+ }
223
+ }
224
+ else if (tech === "svelte") {
225
+ let chunks;
226
+ if (!existsSync(`${output}.json`)) {
227
+ // Astro+Svelte uses Vite — same chunk format as Vue.JS
228
+ chunks = yield getViteConnections(directory, output, formats);
229
+ }
230
+ else {
231
+ chunks = JSON.parse(readFileSync(`${output}.json`, { encoding: "utf8" }));
232
+ }
233
+ yield vue_resolveFetch(directory, "Svelte/Astro");
234
+ yield vue_resolveXhr(directory, "Svelte/Astro");
235
+ yield vue_resolveHttpClient(directory, "Svelte/Astro");
236
+ if (commands.length > 0) {
237
+ yield svelteRunCommands(chunks, `${output}.json`, commands);
238
+ }
239
+ else if (interactive_mode) {
240
+ yield svelteInteractive(chunks, `${output}.json`);
241
+ }
242
+ if (getOpenapi() === true && getGraphqlEnabled()) {
243
+ yield resolveGraphql(directory);
244
+ }
245
+ if (getOpenapi() === true) {
246
+ const openapiSpec = generateOpenapiV3Spec(getOpenapiOutput(), chunks);
247
+ const openapiJson = JSON.stringify(openapiSpec, null, 2);
248
+ fs.writeFileSync(getOpenapiOutputFile(), openapiJson);
249
+ console.log(chalk.green(`[✓] Generated OpenAPI spec at ${getOpenapiOutputFile()}`));
250
+ const postmanCollection = generatePostmanCollection(getOpenapiOutput());
251
+ const openapiOutputFile = getOpenapiOutputFile();
252
+ const postmanOutputFile = openapiOutputFile.endsWith(".json")
253
+ ? openapiOutputFile.replace(/\.json$/, ".postman_collection.json")
254
+ : `${openapiOutputFile}.postman_collection.json`;
255
+ fs.writeFileSync(postmanOutputFile, JSON.stringify(postmanCollection, null, 2));
256
+ console.log(chalk.green(`[✓] Generated Postman Collection at ${postmanOutputFile}`));
257
+ }
258
+ }
161
259
  });
162
260
  export default map;
163
261
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/map/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/map/index.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;IAE9D,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACpB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAA,CAAC;AAEF,eAAe,WAAW,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.
@@ -80,6 +81,10 @@ function handleCommand(text, state, ui) {
80
81
  outputBox.log(commandHelpers.navHistory(state.chunks, state.functionNavHistory));
81
82
  state.lastCommandStatus = true;
82
83
  }
84
+ else if (option === "server_actions") {
85
+ outputBox.log(commandHelpers.listServerActions());
86
+ state.lastCommandStatus = true;
87
+ }
83
88
  else if (option === "exportnames") {
84
89
  // get the chunk id
85
90
  const chunkId = text.split(" ")[2];
@@ -252,6 +257,27 @@ function handleCommand(text, state, ui) {
252
257
  }
253
258
  }
254
259
  }
260
+ else if (text.startsWith("esquery")) {
261
+ const usage = helpMenu.esquery;
262
+ const parts = text.split(" ");
263
+ if (parts.length < 3) {
264
+ outputBox.log(chalk.magenta(usage));
265
+ state.lastCommandStatus = false;
266
+ }
267
+ else {
268
+ const chunkId = parts[1];
269
+ const search = parts.slice(2).join(" ");
270
+ try {
271
+ const result = runEsqueryCommand(state.chunks, chunkId, search);
272
+ outputBox.log(result);
273
+ state.lastCommandStatus = true;
274
+ }
275
+ catch (err) {
276
+ outputBox.log(chalk.red(err instanceof Error ? err.message : String(err)));
277
+ state.lastCommandStatus = false;
278
+ }
279
+ }
280
+ }
255
281
  else if (text.startsWith("trace")) {
256
282
  const usage = helpMenu.trace;
257
283
  if (text.split(" ").length < 2) {