@shriyanss/js-recon 1.3.1-alpha.3 → 1.3.1-beta.1

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 (138) hide show
  1. package/.github/workflows/build-and-prettify.yaml +15 -1
  2. package/.github/workflows/publish-js-recon.yml +13 -1
  3. package/CHANGELOG.md +84 -0
  4. package/CLAUDE.md +104 -11
  5. package/Dockerfile +16 -2
  6. package/README.md +4 -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.map +1 -1
  10. package/build/analyze/helpers/engineHelpers/taintFlow.js +32 -0
  11. package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -1
  12. package/build/analyze/helpers/initRules.js +9 -0
  13. package/build/analyze/helpers/initRules.js.map +1 -1
  14. package/build/analyze/helpers/schemas.js +5 -1
  15. package/build/analyze/helpers/schemas.js.map +1 -1
  16. package/build/analyze/index.js +7 -2
  17. package/build/analyze/index.js.map +1 -1
  18. package/build/endpoints/next_js/client_mappedJsonFile.js +12 -5
  19. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  20. package/build/fingerprint/index.js +123 -0
  21. package/build/fingerprint/index.js.map +1 -0
  22. package/build/globalConfig.js +1 -1
  23. package/build/globalConfig.js.map +1 -1
  24. package/build/index.js +51 -4
  25. package/build/index.js.map +1 -1
  26. package/build/lazyLoad/downloadQueue.js +9 -8
  27. package/build/lazyLoad/downloadQueue.js.map +1 -1
  28. package/build/lazyLoad/index.js +260 -163
  29. package/build/lazyLoad/index.js.map +1 -1
  30. package/build/lazyLoad/next_js/NextJsCrawler.js +58 -16
  31. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
  32. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +149 -139
  33. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  34. package/build/lazyLoad/next_js/next_SubsequentRequests.js +25 -4
  35. package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
  36. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +13 -5
  37. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
  38. package/build/lazyLoad/react/react_followImports.js +105 -0
  39. package/build/lazyLoad/react/react_followImports.js.map +1 -0
  40. package/build/lazyLoad/react/react_getScriptTags.js +28 -5
  41. package/build/lazyLoad/react/react_getScriptTags.js.map +1 -1
  42. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js +162 -0
  43. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js.map +1 -0
  44. package/build/lazyLoad/svelte/svelte_getFromPageSource.js +15 -0
  45. package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
  46. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js +180 -0
  47. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js.map +1 -0
  48. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +15 -1
  49. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
  50. package/build/lazyLoad/techDetect/checkReact.js +67 -36
  51. package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
  52. package/build/lazyLoad/techDetect/checkSvelte.js +35 -35
  53. package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
  54. package/build/lazyLoad/techDetect/index.js +10 -6
  55. package/build/lazyLoad/techDetect/index.js.map +1 -1
  56. package/build/lazyLoad/vue/vue_getClientSidePaths.js +6 -0
  57. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
  58. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +6 -0
  59. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
  60. package/build/lazyLoad/vue/vue_stringJsFiles.js +6 -0
  61. package/build/lazyLoad/vue/vue_stringJsFiles.js.map +1 -1
  62. package/build/map/graphql/resolveGraphql.js +296 -0
  63. package/build/map/graphql/resolveGraphql.js.map +1 -0
  64. package/build/map/index.js +93 -1
  65. package/build/map/index.js.map +1 -1
  66. package/build/map/next_js/interactive_helpers/commandHandler.js +4 -0
  67. package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -1
  68. package/build/map/next_js/interactive_helpers/commandHelpers.js +28 -0
  69. package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
  70. package/build/map/next_js/interactive_helpers/helpMenu.js +1 -1
  71. package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -1
  72. package/build/map/next_js/resolveServerActions.js +449 -0
  73. package/build/map/next_js/resolveServerActions.js.map +1 -0
  74. package/build/map/next_js/utils.js +1 -0
  75. package/build/map/next_js/utils.js.map +1 -1
  76. package/build/map/react_js/getReactConnections.js +298 -0
  77. package/build/map/react_js/getReactConnections.js.map +1 -0
  78. package/build/map/react_js/interactive.js +4 -0
  79. package/build/map/react_js/interactive.js.map +1 -0
  80. package/build/map/react_js/react_resolveFetch.js +6 -0
  81. package/build/map/react_js/react_resolveFetch.js.map +1 -0
  82. package/build/map/svelte_js/interactive.js +58 -0
  83. package/build/map/svelte_js/interactive.js.map +1 -0
  84. package/build/map/svelte_js/interactive_helpers/commandHandler.js +4 -0
  85. package/build/map/svelte_js/interactive_helpers/commandHandler.js.map +1 -0
  86. package/build/map/vue_js/bodyResolver.js +477 -0
  87. package/build/map/vue_js/bodyResolver.js.map +1 -0
  88. package/build/map/vue_js/crossFileResolver.js +438 -0
  89. package/build/map/vue_js/crossFileResolver.js.map +1 -0
  90. package/build/map/vue_js/getViteConnections.js +150 -129
  91. package/build/map/vue_js/getViteConnections.js.map +1 -1
  92. package/build/map/vue_js/taint_utils.js +621 -0
  93. package/build/map/vue_js/taint_utils.js.map +1 -0
  94. package/build/map/vue_js/vue_resolveFetch.js +79 -392
  95. package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
  96. package/build/map/vue_js/vue_resolveHttpClient.js +733 -0
  97. package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -0
  98. package/build/map/vue_js/vue_resolveXhr.js +279 -0
  99. package/build/map/vue_js/vue_resolveXhr.js.map +1 -0
  100. package/build/mcp/chatOneShot.js +101 -0
  101. package/build/mcp/chatOneShot.js.map +1 -0
  102. package/build/mcp/claudeCodeCreds.js +150 -0
  103. package/build/mcp/claudeCodeCreds.js.map +1 -0
  104. package/build/mcp/cli.js +140 -149
  105. package/build/mcp/cli.js.map +1 -1
  106. package/build/mcp/commands.js +80 -0
  107. package/build/mcp/commands.js.map +1 -1
  108. package/build/mcp/index.js +30 -9
  109. package/build/mcp/index.js.map +1 -1
  110. package/build/mcp/intent.js +204 -0
  111. package/build/mcp/intent.js.map +1 -0
  112. package/build/mcp/jobs.js +199 -0
  113. package/build/mcp/jobs.js.map +1 -0
  114. package/build/mcp/mcpServer.js +241 -0
  115. package/build/mcp/mcpServer.js.map +1 -0
  116. package/build/mcp/providers.js +18 -1
  117. package/build/mcp/providers.js.map +1 -1
  118. package/build/mcp/skills.js +115 -0
  119. package/build/mcp/skills.js.map +1 -0
  120. package/build/refactor/index.js +6 -0
  121. package/build/refactor/index.js.map +1 -1
  122. package/build/refactor/react/index.js +636 -0
  123. package/build/refactor/react/index.js.map +1 -0
  124. package/build/run/index.js +260 -60
  125. package/build/run/index.js.map +1 -1
  126. package/build/run/interruptHandler.js +93 -0
  127. package/build/run/interruptHandler.js.map +1 -0
  128. package/build/utility/globals.js +29 -0
  129. package/build/utility/globals.js.map +1 -1
  130. package/build/utility/makeReq.js +14 -2
  131. package/build/utility/makeReq.js.map +1 -1
  132. package/build/utility/openapiGenerator.js +46 -14
  133. package/build/utility/openapiGenerator.js.map +1 -1
  134. package/build/utility/postmanGenerator.js +62 -13
  135. package/build/utility/postmanGenerator.js.map +1 -1
  136. package/build/utility/progressLog.js +50 -0
  137. package/build/utility/progressLog.js.map +1 -0
  138. package/package.json +12 -9
@@ -12,8 +12,10 @@ import parser from "@babel/parser";
12
12
  import _traverse from "@babel/traverse";
13
13
  import fs from "fs";
14
14
  import path from "path";
15
- import { resolveNodeValue, substituteVariablesInString, memberChainToString } from "../next_js/utils.js";
15
+ import { resolveNodeValue, substituteVariablesInString } from "../next_js/utils.js";
16
16
  import * as globals from "../../utility/globals.js";
17
+ import { inferEnclosingFn, substituteCallerPlaceholders, substituteCallerHeaders, makeGetCallers, } from "./taint_utils.js";
18
+ import { deepSubstituteBodyValue } from "./bodyResolver.js";
17
19
  const traverse = _traverse.default;
18
20
  /**
19
21
  * Checks whether invoking the given function body would directly execute a
@@ -89,310 +91,6 @@ const isFunctionLike = (node) => !!node &&
89
91
  (node.type === "ArrowFunctionExpression" ||
90
92
  node.type === "FunctionExpression" ||
91
93
  node.type === "FunctionDeclaration");
92
- /**
93
- * Pulls out the function binding name from the surrounding declarator /
94
- * assignment so we can later match callsites by identifier. Handles four
95
- * common shapes seen in Vite-bundled code:
96
- * const fn = (arg) => { ... }
97
- * fn = (arg) => { ... }
98
- * function fn(arg) { ... }
99
- * { fn: (arg) => { ... } } // object-literal property value
100
- */
101
- const inferEnclosingFn = (callPath, file) => {
102
- var _a, _b, _c, _d, _e, _f, _g, _h;
103
- const fnPath = callPath.getFunctionParent();
104
- if (!fnPath)
105
- return null;
106
- const fnNode = fnPath.node;
107
- const firstParamName = fnNode.params && ((_a = fnNode.params[0]) === null || _a === void 0 ? void 0 : _a.type) === "Identifier"
108
- ? fnNode.params[0].name
109
- : fnNode.params &&
110
- ((_b = fnNode.params[0]) === null || _b === void 0 ? void 0 : _b.type) === "AssignmentPattern" &&
111
- ((_c = fnNode.params[0].left) === null || _c === void 0 ? void 0 : _c.type) === "Identifier"
112
- ? fnNode.params[0].left.name
113
- : null;
114
- let bindingName = null;
115
- if (fnNode.type === "FunctionDeclaration" && ((_d = fnNode.id) === null || _d === void 0 ? void 0 : _d.type) === "Identifier") {
116
- bindingName = fnNode.id.name;
117
- }
118
- else {
119
- const parentNode = (_e = fnPath.parentPath) === null || _e === void 0 ? void 0 : _e.node;
120
- if (parentNode) {
121
- if (parentNode.type === "VariableDeclarator" && ((_f = parentNode.id) === null || _f === void 0 ? void 0 : _f.type) === "Identifier") {
122
- bindingName = parentNode.id.name;
123
- }
124
- else if (parentNode.type === "AssignmentExpression" && ((_g = parentNode.left) === null || _g === void 0 ? void 0 : _g.type) === "Identifier") {
125
- bindingName = parentNode.left.name;
126
- }
127
- else if (parentNode.type === "ObjectProperty" &&
128
- !parentNode.computed &&
129
- ((_h = parentNode.key) === null || _h === void 0 ? void 0 : _h.type) === "Identifier") {
130
- bindingName = parentNode.key.name;
131
- }
132
- }
133
- }
134
- return { bindingName, firstParamName, node: fnNode, file };
135
- };
136
- /**
137
- * Walks an ObjectExpression and returns the property value for the given
138
- * dotted property path (e.g. ["data"] -> the value node of `data: ...`).
139
- * Returns null if any segment of the path isn't a literal property.
140
- */
141
- const lookupObjectExpressionProp = (objExpr, propPath) => {
142
- if (!objExpr || objExpr.type !== "ObjectExpression")
143
- return null;
144
- let current = objExpr;
145
- for (const segment of propPath) {
146
- if (!current || current.type !== "ObjectExpression")
147
- return null;
148
- let next = null;
149
- for (const prop of current.properties) {
150
- if (prop.type !== "ObjectProperty")
151
- continue;
152
- const key = prop.key.type === "Identifier"
153
- ? prop.key.name
154
- : prop.key.type === "StringLiteral"
155
- ? prop.key.value
156
- : null;
157
- if (key === segment) {
158
- next = prop.value;
159
- break;
160
- }
161
- }
162
- if (!next)
163
- return null;
164
- current = next;
165
- }
166
- return current;
167
- };
168
- /**
169
- * Resolves the value of `paramName.propPath` by walking back through the
170
- * enclosing function's callers. If a caller's argument is itself an Identifier
171
- * pointing to a constant initializer, we follow that binding; if it's the
172
- * caller's own first parameter, we recurse to that function's callers.
173
- *
174
- * Returns the resolved AST node + the scope it lives in (so further sub-property
175
- * resolution can use the correct binding lookup), or null when the chain breaks.
176
- */
177
- const resolveParamProperty = (paramName, propPath, enclosingFn, getCallers, depth = 0) => {
178
- var _a, _b, _c;
179
- if (!enclosingFn || !enclosingFn.bindingName || depth > 6)
180
- return null;
181
- // Only the function's first parameter is supported for now — every observed
182
- // case has fetch wrappers shaped as `(e) => fetch(... e.X ...)`.
183
- if (enclosingFn.firstParamName !== paramName)
184
- return null;
185
- const callers = getCallers(enclosingFn.bindingName);
186
- if (!callers || callers.length === 0)
187
- return null;
188
- for (const caller of callers) {
189
- const arg = caller.args[0];
190
- if (!arg)
191
- continue;
192
- // Case 1: caller passes an object literal directly — fn({ a: ..., b: ... })
193
- if (arg.type === "ObjectExpression") {
194
- const node = lookupObjectExpressionProp(arg, propPath);
195
- if (node)
196
- return { node, scope: caller.scope, fileContent: caller.fileContent };
197
- }
198
- // Case 2: caller passes an Identifier pointing to a const-initialized
199
- // object literal — `const x = { a: ... }; fn(x)`.
200
- if (arg.type === "Identifier") {
201
- const binding = caller.scope.getBinding(arg.name);
202
- const initNode = (_b = (_a = binding === null || binding === void 0 ? void 0 : binding.path) === null || _a === void 0 ? void 0 : _a.node) === null || _b === void 0 ? void 0 : _b.init;
203
- if (initNode && initNode.type === "ObjectExpression") {
204
- const node = lookupObjectExpressionProp(initNode, propPath);
205
- if (node)
206
- return { node, scope: caller.scope, fileContent: caller.fileContent };
207
- }
208
- // Case 3: caller passes its own first param straight through —
209
- // `outer = (p) => fn(p)`. Recurse up to that function's callers.
210
- if (((_c = caller.enclosingFn) === null || _c === void 0 ? void 0 : _c.firstParamName) === arg.name) {
211
- const result = resolveParamProperty(arg.name, propPath, caller.enclosingFn, getCallers, depth + 1);
212
- if (result)
213
- return result;
214
- }
215
- }
216
- }
217
- return null;
218
- };
219
- /**
220
- * Renders an ObjectExpression as a `k1={k1}&k2={k2}` query-string fragment.
221
- * Literal property values are URL-encoded directly; non-literal values fall
222
- * back to the placeholder form so the schema reader can see what's missing.
223
- */
224
- const renderObjectAsQuery = (objExpr, scope, fileContent) => {
225
- if (!objExpr || objExpr.type !== "ObjectExpression")
226
- return null;
227
- const parts = [];
228
- for (const prop of objExpr.properties) {
229
- if (prop.type !== "ObjectProperty")
230
- continue;
231
- const key = prop.key.type === "Identifier" ? prop.key.name : prop.key.type === "StringLiteral" ? prop.key.value : null;
232
- if (!key)
233
- continue;
234
- let valStr;
235
- try {
236
- const resolved = resolveNodeValue(prop.value, scope, "", "fetch", fileContent);
237
- if (resolved !== null && resolved !== undefined && !String(resolved).startsWith("[")) {
238
- valStr = encodeURIComponent(String(resolved));
239
- }
240
- else {
241
- valStr = `{${key}}`;
242
- }
243
- }
244
- catch (_a) {
245
- valStr = `{${key}}`;
246
- }
247
- parts.push(`${key}=${valStr}`);
248
- }
249
- return parts.length > 0 ? parts.join("&") : null;
250
- };
251
- /**
252
- * Returns a plain object derived from an ObjectExpression's properties.
253
- * Spread elements are merged in when they themselves resolve to a literal
254
- * object; otherwise the spread is preserved as a sentinel key so the schema
255
- * reader knows extra fields exist at runtime.
256
- */
257
- const renderObjectExpression = (objExpr, scope, fileContent) => {
258
- if (!objExpr || objExpr.type !== "ObjectExpression")
259
- return null;
260
- const out = {};
261
- for (const prop of objExpr.properties) {
262
- if (prop.type === "ObjectProperty") {
263
- const key = prop.key.type === "Identifier"
264
- ? prop.key.name
265
- : prop.key.type === "StringLiteral"
266
- ? prop.key.value
267
- : null;
268
- if (!key)
269
- continue;
270
- try {
271
- const resolved = resolveNodeValue(prop.value, scope, "", "fetch", fileContent);
272
- out[key] = resolved === undefined || resolved === null ? "" : String(resolved);
273
- }
274
- catch (_a) {
275
- out[key] = "";
276
- }
277
- }
278
- else if (prop.type === "SpreadElement") {
279
- try {
280
- const resolved = resolveNodeValue(prop.argument, scope, "", "fetch", fileContent);
281
- if (resolved && typeof resolved === "object") {
282
- for (const [k, v] of Object.entries(resolved)) {
283
- if (!(k in out))
284
- out[k] = v === undefined || v === null ? "" : String(v);
285
- }
286
- }
287
- else {
288
- const chain = memberChainToString(prop.argument);
289
- out[`...${chain !== null && chain !== void 0 ? chain : "spread"}`] = "<spread>";
290
- }
291
- }
292
- catch (_b) {
293
- const chain = memberChainToString(prop.argument);
294
- out[`...${chain !== null && chain !== void 0 ? chain : "spread"}`] = "<spread>";
295
- }
296
- }
297
- }
298
- return out;
299
- };
300
- /**
301
- * Tries to convert a value node into a printable string, transparently
302
- * unwrapping template literals built from caller-side bindings. Returns null
303
- * when the value is itself a Vue-style ref / member expression that we can't
304
- * pin down statically.
305
- */
306
- const renderValueNode = (node, scope, fileContent) => {
307
- if (!node)
308
- return null;
309
- try {
310
- const resolved = resolveNodeValue(node, scope, "", "fetch", fileContent);
311
- if (resolved === null || resolved === undefined)
312
- return null;
313
- if (typeof resolved === "object") {
314
- // Avoid emitting `[object Object]` — leave it to the upstream
315
- // placeholder so the consumer knows it's structured.
316
- return null;
317
- }
318
- const s = String(resolved);
319
- if (s.startsWith("[unresolved"))
320
- return null;
321
- return s;
322
- }
323
- catch (_a) {
324
- return null;
325
- }
326
- };
327
- /**
328
- * Substitutes [member:P.X], [param:P], and [urlsearchparams:P.X] markers in a
329
- * string by walking back to the enclosing function's caller(s). The string is
330
- * returned with as many markers resolved as we could trace.
331
- */
332
- const substituteCallerPlaceholders = (input, enclosingFn, getCallers) => {
333
- if (!input || !enclosingFn)
334
- return input;
335
- let output = input;
336
- output = output.replace(/\[urlsearchparams:([A-Za-z_$][\w$.]*)\]/g, (match, chain) => {
337
- const parts = chain.split(".");
338
- if (parts.length < 1)
339
- return match;
340
- const paramName = parts[0];
341
- const propPath = parts.slice(1);
342
- const resolved = resolveParamProperty(paramName, propPath, enclosingFn, getCallers);
343
- if (!resolved)
344
- return match;
345
- const rendered = renderObjectAsQuery(resolved.node, resolved.scope, resolved.fileContent);
346
- return rendered !== null && rendered !== void 0 ? rendered : match;
347
- });
348
- output = output.replace(/\[member:([A-Za-z_$][\w$.]*)\]/g, (match, chain) => {
349
- const parts = chain.split(".");
350
- if (parts.length < 1)
351
- return match;
352
- const paramName = parts[0];
353
- const propPath = parts.slice(1);
354
- const resolved = resolveParamProperty(paramName, propPath, enclosingFn, getCallers);
355
- if (!resolved)
356
- return match;
357
- const rendered = renderValueNode(resolved.node, resolved.scope, resolved.fileContent);
358
- return rendered !== null && rendered !== void 0 ? rendered : match;
359
- });
360
- return output;
361
- };
362
- /**
363
- * Substitutes placeholders in a header bag. `...P.X: <spread>` entries are
364
- * expanded when the corresponding caller-side value is a literal object;
365
- * `[member:P.X]` markers inside header values are substituted in-place.
366
- */
367
- const substituteCallerHeaders = (headers, enclosingFn, getCallers) => {
368
- if (!enclosingFn)
369
- return headers;
370
- const out = {};
371
- for (const [k, v] of Object.entries(headers)) {
372
- if (k.startsWith("...") && v === "<spread>") {
373
- const chain = k.slice(3);
374
- const parts = chain.split(".");
375
- const paramName = parts[0];
376
- const propPath = parts.slice(1);
377
- const resolved = resolveParamProperty(paramName, propPath, enclosingFn, getCallers);
378
- if (resolved && resolved.node.type === "ObjectExpression") {
379
- const obj = renderObjectExpression(resolved.node, resolved.scope, resolved.fileContent);
380
- if (obj) {
381
- for (const [hk, hv] of Object.entries(obj)) {
382
- if (!(hk in out))
383
- out[hk] = hv;
384
- }
385
- continue;
386
- }
387
- }
388
- out[k] = v;
389
- }
390
- else {
391
- out[k] = substituteCallerPlaceholders(v, enclosingFn, getCallers);
392
- }
393
- }
394
- return out;
395
- };
396
94
  /**
397
95
  * Scans all JS files in the given directory for fetch() calls,
398
96
  * resolves their URL / method / headers / body, and registers each
@@ -401,8 +99,8 @@ const substituteCallerHeaders = (headers, enclosingFn, getCallers) => {
401
99
  * Designed for Vite-bundled Vue.JS applications where HTTP calls are
402
100
  * made with the native fetch() API rather than via webpack chunks.
403
101
  */
404
- const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, function* () {
405
- console.log(chalk.cyan("[i] Resolving Vue.JS fetch instances"));
102
+ const vue_resolveFetch = (directory_1, ...args_1) => __awaiter(void 0, [directory_1, ...args_1], void 0, function* (directory, frameworkName = "Vue.JS") {
103
+ console.log(chalk.cyan(`[i] Resolving ${frameworkName} fetch instances`));
406
104
  let files;
407
105
  try {
408
106
  files = fs.readdirSync(directory, { recursive: true, encoding: "utf8" });
@@ -418,10 +116,19 @@ const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, functi
418
116
  // function that ultimately calls fetch(). Their property names are the
419
117
  // fetch-wrapper keys downstream code destructures and invokes in place of
420
118
  // fetch — so we need to recognise those aliases.
119
+ //
120
+ // ASTs are parsed on-demand and discarded after each file — only
121
+ // `wrapperKeyNames` (a small string set) and `fetchFilePaths` (a path list)
122
+ // are retained so that the full pre-pass AST set never lives in memory
123
+ // simultaneously.
421
124
  const wrapperKeyNames = new Set();
422
- const fileAstCache = new Map();
423
- const fileContentCache = new Map();
424
- for (const file of files) {
125
+ const fetchFilePaths = [];
126
+ for (let _pi = 0; _pi < files.length; _pi++) {
127
+ // Yield to the event loop every 50 files so V8 GC can reclaim ASTs
128
+ // from completed iterations before the next batch begins.
129
+ if (_pi > 0 && _pi % 50 === 0)
130
+ yield new Promise((r) => setImmediate(r));
131
+ const file = files[_pi];
425
132
  const filePath = path.join(directory, file);
426
133
  let fileContent;
427
134
  try {
@@ -432,6 +139,7 @@ const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, functi
432
139
  }
433
140
  if (!fileContent.includes("fetch"))
434
141
  continue;
142
+ fetchFilePaths.push(filePath);
435
143
  let fileAst;
436
144
  try {
437
145
  fileAst = parser.parse(fileContent, {
@@ -443,8 +151,6 @@ const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, functi
443
151
  catch (_c) {
444
152
  continue;
445
153
  }
446
- fileAstCache.set(filePath, fileAst);
447
- fileContentCache.set(filePath, fileContent);
448
154
  traverse(fileAst, {
449
155
  ObjectProperty(p) {
450
156
  const key = p.node.key;
@@ -458,89 +164,41 @@ const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, functi
458
164
  wrapperKeyNames.add(keyName);
459
165
  },
460
166
  });
167
+ // fileAst and fileContent go out of scope here — GC can reclaim them.
461
168
  }
462
- // Lazy caller lookup. Rather than building a global index of every
463
- // CallExpression in every bundle (which becomes O(huge) for minified Vite
464
- // chunks), we only search when phase-2 actually asks for a specific binding
465
- // name, and cache the per-name result. The fast `fileContent.includes`
466
- // check skips files that can't possibly contain the call. When the call
467
- // count blows past a sane budget we treat the name as too ambiguous to be
468
- // useful for tracing and short-circuit to an empty list.
469
- const MAX_CALLERS_PER_NAME = 64;
470
- const callerCache = new Map();
471
- const getCallers = (bindingName) => {
472
- var _a;
473
- const cached = callerCache.get(bindingName);
474
- if (cached)
475
- return cached;
476
- const needle = `${bindingName}(`;
477
- const out = [];
478
- let overflowed = false;
479
- for (const [filePath, fileAst] of fileAstCache.entries()) {
480
- if (overflowed)
481
- break;
482
- const fileContent = (_a = fileContentCache.get(filePath)) !== null && _a !== void 0 ? _a : "";
483
- if (!fileContent.includes(needle))
484
- continue;
485
- traverse(fileAst, {
486
- CallExpression(callPath) {
487
- if (overflowed) {
488
- callPath.stop();
489
- return;
490
- }
491
- const callee = callPath.node.callee;
492
- if (callee.type !== "Identifier" || callee.name !== bindingName)
493
- return;
494
- if (out.length >= MAX_CALLERS_PER_NAME) {
495
- overflowed = true;
496
- callPath.stop();
497
- return;
498
- }
499
- out.push({
500
- file: filePath,
501
- fileContent,
502
- callNode: callPath.node,
503
- scope: callPath.scope,
504
- args: callPath.node.arguments,
505
- enclosingFn: inferEnclosingFn(callPath, filePath),
506
- });
507
- },
508
- });
509
- }
510
- // A name with this many callsites is almost certainly a minifier
511
- // single-letter local (e, t, n, …) — tracing it is noise, not signal.
512
- const result = overflowed ? [] : out;
513
- callerCache.set(bindingName, result);
514
- return result;
515
- };
169
+ const getCallers = makeGetCallers(fetchFilePaths);
516
170
  let totalFetchCalls = 0;
517
171
  // Counter for per-callsite uniqueness so two callsites at the same path+method
518
172
  // are kept distinct in mapped.json and downstream specs.
519
173
  let callsiteCounter = 0;
520
174
  const entries = [];
521
- for (const file of files) {
175
+ for (let _mi = 0; _mi < files.length; _mi++) {
176
+ // Yield every 50 files so V8 GC can run between batches.
177
+ if (_mi > 0 && _mi % 50 === 0)
178
+ yield new Promise((r) => setImmediate(r));
179
+ const file = files[_mi];
522
180
  const filePath = path.join(directory, file);
523
- let fileContent = fileContentCache.get(filePath);
524
- let fileAst = fileAstCache.get(filePath);
525
- if (!fileContent || !fileAst) {
526
- try {
527
- fileContent = fs.readFileSync(filePath, "utf-8");
528
- }
529
- catch (_d) {
530
- continue;
531
- }
532
- if (!fileContent.includes("fetch"))
533
- continue;
534
- try {
535
- fileAst = parser.parse(fileContent, {
536
- sourceType: "unambiguous",
537
- plugins: ["jsx", "typescript"],
538
- errorRecovery: true,
539
- });
540
- }
541
- catch (_e) {
542
- continue;
543
- }
181
+ // Parse each file fresh — no persistent cache. The AST goes out of scope
182
+ // at the end of this loop body so the GC can reclaim it.
183
+ let fileContent;
184
+ let fileAst;
185
+ try {
186
+ fileContent = fs.readFileSync(filePath, "utf-8");
187
+ }
188
+ catch (_d) {
189
+ continue;
190
+ }
191
+ if (!fileContent.includes("fetch"))
192
+ continue;
193
+ try {
194
+ fileAst = parser.parse(fileContent, {
195
+ sourceType: "unambiguous",
196
+ plugins: ["jsx", "typescript"],
197
+ errorRecovery: true,
198
+ });
199
+ }
200
+ catch (_e) {
201
+ continue;
544
202
  }
545
203
  // Collect fetch aliases:
546
204
  // 1. `const x = fetch` (direct identifier aliasing)
@@ -607,7 +265,6 @@ const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, functi
607
265
  if (args.length === 0)
608
266
  return;
609
267
  const fileLine = (_b = (_a = callPath.node.loc) === null || _a === void 0 ? void 0 : _a.start.line) !== null && _b !== void 0 ? _b : 0;
610
- console.log(chalk.blue(`[+] Found fetch call in "${filePath}":${fileLine}`));
611
268
  totalFetchCalls++;
612
269
  // Resolve URL (first argument)
613
270
  const urlArgCode = fileContent
@@ -643,11 +300,18 @@ const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, functi
643
300
  }
644
301
  }
645
302
  }
646
- const enclosingFn = inferEnclosingFn(callPath, filePath);
303
+ const rawEnclosingFn = inferEnclosingFn(callPath, filePath);
304
+ // Null out the AST node reference — it is never read in the
305
+ // second pass, but keeping it alive would pin the entire file
306
+ // AST in memory through the entries array.
307
+ const enclosingFn = rawEnclosingFn ? Object.assign(Object.assign({}, rawEnclosingFn), { node: null }) : null;
647
308
  entries.push({
648
309
  file,
649
310
  filePath,
650
- fileContent,
311
+ // fileContent is not used in the second pass; store an empty
312
+ // string so the full file content is not kept alive in memory
313
+ // through the entries array.
314
+ fileContent: "",
651
315
  fileLine,
652
316
  url: typeof url === "string" ? url : "",
653
317
  method,
@@ -662,6 +326,7 @@ const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, functi
662
326
  // substitute markers we couldn't resolve in the first pass. This is where
663
327
  // `?[urlsearchparams:p.q]` turns into `?k1={k1}&k2={k2}`, and where
664
328
  // `...p.q: <spread>` gets expanded if a literal object was passed.
329
+ //
665
330
  const MARKER_RE = /\[(urlsearchparams|member|param):/;
666
331
  const headersHaveMarkers = (h) => {
667
332
  for (const [k, v] of Object.entries(h)) {
@@ -676,11 +341,33 @@ const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, functi
676
341
  if (entry.enclosingFn &&
677
342
  entry.enclosingFn.bindingName &&
678
343
  entry.enclosingFn.firstParamName &&
344
+ entry.enclosingFn.bindingName.length > 2 &&
679
345
  (MARKER_RE.test(entry.url) || MARKER_RE.test(entry.body) || headersHaveMarkers(entry.headers))) {
680
346
  entry.url = substituteCallerPlaceholders(entry.url, entry.enclosingFn, getCallers);
681
347
  entry.headers = substituteCallerHeaders(entry.headers, entry.enclosingFn, getCallers);
682
348
  entry.body = substituteCallerPlaceholders(entry.body, entry.enclosingFn, getCallers);
683
349
  }
350
+ // Deep body resolution: when the body JSON contains [param:X] string
351
+ // values that map to structured objects at the call site, replace them.
352
+ // This runs even for short binding names (e.g. single-char minifier
353
+ // locals) because makeGetCallers uses the alias map internally and will
354
+ // find callers via a meaningful exported name (e.g. postSOA → O).
355
+ if (entry.enclosingFn && entry.enclosingFn.bindingName && /\[param:/.test(entry.body)) {
356
+ try {
357
+ const parsed = JSON.parse(entry.body);
358
+ if (parsed !== null && typeof parsed === "object") {
359
+ const substituted = deepSubstituteBodyValue(parsed, entry.enclosingFn, getCallers);
360
+ entry.body = JSON.stringify(substituted);
361
+ }
362
+ }
363
+ catch (_f) {
364
+ // body is not valid JSON; fall back to string-level substitution
365
+ if (entry.enclosingFn.bindingName.length <= 2) {
366
+ entry.body = substituteCallerPlaceholders(entry.body, entry.enclosingFn, getCallers);
367
+ }
368
+ }
369
+ }
370
+ console.log(chalk.blue(`[+] Found fetch call in "${entry.filePath}":${entry.fileLine}`));
684
371
  console.log(chalk.green(` URL: ${entry.url}`));
685
372
  if (entry.method !== "GET" || Object.keys(entry.headers).length > 0 || entry.body) {
686
373
  console.log(chalk.green(` Method: ${entry.method}`));
@@ -716,7 +403,7 @@ const vue_resolveFetch = (directory) => __awaiter(void 0, void 0, void 0, functi
716
403
  functionFileLine: entry.fileLine,
717
404
  });
718
405
  }
719
- console.log(chalk.green(`[✓] Found and resolved ${totalFetchCalls} fetch call(s) across Vue.JS files`));
406
+ console.log(chalk.green(`[✓] Found and resolved ${totalFetchCalls} fetch call(s) across ${frameworkName} files`));
720
407
  });
721
408
  export default vue_resolveFetch;
722
409
  //# sourceMappingURL=vue_resolveFetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vue_resolveFetch.js","sourceRoot":"","sources":["../../../src/map/vue_js/vue_resolveFetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vue_resolveFetch.js","sourceRoot":"","sources":["../../../src/map/vue_js/vue_resolveFetch.ts"],"names":[],"mappings":"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"}