@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.
- package/.github/workflows/build-and-prettify.yaml +15 -1
- package/.github/workflows/publish-js-recon.yml +13 -1
- package/CHANGELOG.md +84 -0
- package/CLAUDE.md +104 -11
- package/Dockerfile +16 -2
- package/README.md +4 -0
- package/build/analyze/engine/astEngine.js +57 -29
- package/build/analyze/engine/astEngine.js.map +1 -1
- package/build/analyze/engine/index.js.map +1 -1
- package/build/analyze/helpers/engineHelpers/taintFlow.js +32 -0
- package/build/analyze/helpers/engineHelpers/taintFlow.js.map +1 -1
- package/build/analyze/helpers/initRules.js +9 -0
- package/build/analyze/helpers/initRules.js.map +1 -1
- package/build/analyze/helpers/schemas.js +5 -1
- package/build/analyze/helpers/schemas.js.map +1 -1
- package/build/analyze/index.js +7 -2
- package/build/analyze/index.js.map +1 -1
- package/build/endpoints/next_js/client_mappedJsonFile.js +12 -5
- package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
- package/build/fingerprint/index.js +123 -0
- package/build/fingerprint/index.js.map +1 -0
- package/build/globalConfig.js +1 -1
- package/build/globalConfig.js.map +1 -1
- package/build/index.js +51 -4
- package/build/index.js.map +1 -1
- package/build/lazyLoad/downloadQueue.js +9 -8
- package/build/lazyLoad/downloadQueue.js.map +1 -1
- package/build/lazyLoad/index.js +260 -163
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/next_js/NextJsCrawler.js +58 -16
- package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +149 -139
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_SubsequentRequests.js +25 -4
- package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +13 -5
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
- package/build/lazyLoad/react/react_followImports.js +105 -0
- package/build/lazyLoad/react/react_followImports.js.map +1 -0
- package/build/lazyLoad/react/react_getScriptTags.js +28 -5
- package/build/lazyLoad/react/react_getScriptTags.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js +162 -0
- package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js.map +1 -0
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js +15 -0
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js +180 -0
- package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js.map +1 -0
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +15 -1
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/techDetect/checkReact.js +67 -36
- package/build/lazyLoad/techDetect/checkReact.js.map +1 -1
- package/build/lazyLoad/techDetect/checkSvelte.js +35 -35
- package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
- package/build/lazyLoad/techDetect/index.js +10 -6
- package/build/lazyLoad/techDetect/index.js.map +1 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js +6 -0
- package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +6 -0
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
- package/build/lazyLoad/vue/vue_stringJsFiles.js +6 -0
- package/build/lazyLoad/vue/vue_stringJsFiles.js.map +1 -1
- package/build/map/graphql/resolveGraphql.js +296 -0
- package/build/map/graphql/resolveGraphql.js.map +1 -0
- package/build/map/index.js +93 -1
- package/build/map/index.js.map +1 -1
- package/build/map/next_js/interactive_helpers/commandHandler.js +4 -0
- package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -1
- package/build/map/next_js/interactive_helpers/commandHelpers.js +28 -0
- package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
- package/build/map/next_js/interactive_helpers/helpMenu.js +1 -1
- package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -1
- package/build/map/next_js/resolveServerActions.js +449 -0
- package/build/map/next_js/resolveServerActions.js.map +1 -0
- package/build/map/next_js/utils.js +1 -0
- package/build/map/next_js/utils.js.map +1 -1
- package/build/map/react_js/getReactConnections.js +298 -0
- package/build/map/react_js/getReactConnections.js.map +1 -0
- package/build/map/react_js/interactive.js +4 -0
- package/build/map/react_js/interactive.js.map +1 -0
- package/build/map/react_js/react_resolveFetch.js +6 -0
- package/build/map/react_js/react_resolveFetch.js.map +1 -0
- package/build/map/svelte_js/interactive.js +58 -0
- package/build/map/svelte_js/interactive.js.map +1 -0
- package/build/map/svelte_js/interactive_helpers/commandHandler.js +4 -0
- package/build/map/svelte_js/interactive_helpers/commandHandler.js.map +1 -0
- package/build/map/vue_js/bodyResolver.js +477 -0
- package/build/map/vue_js/bodyResolver.js.map +1 -0
- package/build/map/vue_js/crossFileResolver.js +438 -0
- package/build/map/vue_js/crossFileResolver.js.map +1 -0
- package/build/map/vue_js/getViteConnections.js +150 -129
- package/build/map/vue_js/getViteConnections.js.map +1 -1
- package/build/map/vue_js/taint_utils.js +621 -0
- package/build/map/vue_js/taint_utils.js.map +1 -0
- package/build/map/vue_js/vue_resolveFetch.js +79 -392
- package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
- package/build/map/vue_js/vue_resolveHttpClient.js +733 -0
- package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -0
- package/build/map/vue_js/vue_resolveXhr.js +279 -0
- package/build/map/vue_js/vue_resolveXhr.js.map +1 -0
- package/build/mcp/chatOneShot.js +101 -0
- package/build/mcp/chatOneShot.js.map +1 -0
- package/build/mcp/claudeCodeCreds.js +150 -0
- package/build/mcp/claudeCodeCreds.js.map +1 -0
- package/build/mcp/cli.js +140 -149
- package/build/mcp/cli.js.map +1 -1
- package/build/mcp/commands.js +80 -0
- package/build/mcp/commands.js.map +1 -1
- package/build/mcp/index.js +30 -9
- package/build/mcp/index.js.map +1 -1
- package/build/mcp/intent.js +204 -0
- package/build/mcp/intent.js.map +1 -0
- package/build/mcp/jobs.js +199 -0
- package/build/mcp/jobs.js.map +1 -0
- package/build/mcp/mcpServer.js +241 -0
- package/build/mcp/mcpServer.js.map +1 -0
- package/build/mcp/providers.js +18 -1
- package/build/mcp/providers.js.map +1 -1
- package/build/mcp/skills.js +115 -0
- package/build/mcp/skills.js.map +1 -0
- package/build/refactor/index.js +6 -0
- package/build/refactor/index.js.map +1 -1
- package/build/refactor/react/index.js +636 -0
- package/build/refactor/react/index.js.map +1 -0
- package/build/run/index.js +260 -60
- package/build/run/index.js.map +1 -1
- package/build/run/interruptHandler.js +93 -0
- package/build/run/interruptHandler.js.map +1 -0
- package/build/utility/globals.js +29 -0
- package/build/utility/globals.js.map +1 -1
- package/build/utility/makeReq.js +14 -2
- package/build/utility/makeReq.js.map +1 -1
- package/build/utility/openapiGenerator.js +46 -14
- package/build/utility/openapiGenerator.js.map +1 -1
- package/build/utility/postmanGenerator.js +62 -13
- package/build/utility/postmanGenerator.js.map +1 -1
- package/build/utility/progressLog.js +50 -0
- package/build/utility/progressLog.js.map +1 -0
- 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
|
|
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 = (
|
|
405
|
-
console.log(chalk.cyan(
|
|
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
|
|
423
|
-
|
|
424
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
|
|
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
|
|
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
|
|
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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"}
|