@shriyanss/js-recon 1.3.1-alpha.3 → 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.
- package/.github/workflows/build-and-prettify.yaml +15 -1
- package/.github/workflows/publish-js-recon.yml +13 -1
- package/CHANGELOG.md +76 -0
- package/CLAUDE.md +100 -11
- package/README.md +2 -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/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 +7 -4
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-file marker resolver for Vite/webpack-chunk-style bundles.
|
|
3
|
+
*
|
|
4
|
+
* Each chunk wraps modules in:
|
|
5
|
+
* (self.webpackChunkX = self.webpackChunkX || []).push([
|
|
6
|
+
* [chunkId],
|
|
7
|
+
* {
|
|
8
|
+
* moduleId(q, M, e) {
|
|
9
|
+
* e.r(M); // mark ES module
|
|
10
|
+
* e.d(M, { name: () => binding, ... }); // getter exports
|
|
11
|
+
* const k = e(N); // import chunk N
|
|
12
|
+
* const binding = ... // local
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* ])
|
|
16
|
+
*/
|
|
17
|
+
import fs from "fs";
|
|
18
|
+
import path from "path";
|
|
19
|
+
import parser from "@babel/parser";
|
|
20
|
+
import _traverse from "@babel/traverse";
|
|
21
|
+
const traverse = _traverse.default;
|
|
22
|
+
const chunkFileCache = new Map();
|
|
23
|
+
let globalModuleIndex = null;
|
|
24
|
+
let globalIndexBuiltFor = null;
|
|
25
|
+
const isRequireCall = (node, requireParam) => {
|
|
26
|
+
if (!node || node.type !== "CallExpression")
|
|
27
|
+
return null;
|
|
28
|
+
if (!requireParam)
|
|
29
|
+
return null;
|
|
30
|
+
if (node.callee.type !== "Identifier" || node.callee.name !== requireParam)
|
|
31
|
+
return null;
|
|
32
|
+
if (node.arguments.length !== 1)
|
|
33
|
+
return null;
|
|
34
|
+
const arg = node.arguments[0];
|
|
35
|
+
if (arg.type === "NumericLiteral")
|
|
36
|
+
return { moduleId: String(arg.value) };
|
|
37
|
+
if (arg.type === "StringLiteral")
|
|
38
|
+
return { moduleId: arg.value };
|
|
39
|
+
return null;
|
|
40
|
+
};
|
|
41
|
+
const literalNodeToString = (node) => {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
if (!node)
|
|
44
|
+
return null;
|
|
45
|
+
if (node.type === "StringLiteral")
|
|
46
|
+
return node.value;
|
|
47
|
+
if (node.type === "NumericLiteral")
|
|
48
|
+
return String(node.value);
|
|
49
|
+
if (node.type === "BooleanLiteral")
|
|
50
|
+
return String(node.value);
|
|
51
|
+
if (node.type === "NullLiteral")
|
|
52
|
+
return "null";
|
|
53
|
+
if (node.type === "TemplateLiteral" && node.expressions.length === 0 && node.quasis.length === 1) {
|
|
54
|
+
return (_b = (_a = node.quasis[0].value.cooked) !== null && _a !== void 0 ? _a : node.quasis[0].value.raw) !== null && _b !== void 0 ? _b : null;
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
};
|
|
58
|
+
const parseChunkFile = (filePath) => {
|
|
59
|
+
var _a;
|
|
60
|
+
if (chunkFileCache.has(filePath))
|
|
61
|
+
return (_a = chunkFileCache.get(filePath)) !== null && _a !== void 0 ? _a : null;
|
|
62
|
+
let content;
|
|
63
|
+
try {
|
|
64
|
+
content = fs.readFileSync(filePath, "utf-8");
|
|
65
|
+
}
|
|
66
|
+
catch (_b) {
|
|
67
|
+
chunkFileCache.set(filePath, null);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
let ast;
|
|
71
|
+
try {
|
|
72
|
+
ast = parser.parse(content, {
|
|
73
|
+
sourceType: "unambiguous",
|
|
74
|
+
plugins: ["jsx", "typescript"],
|
|
75
|
+
errorRecovery: true,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
catch (_c) {
|
|
79
|
+
chunkFileCache.set(filePath, null);
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const modules = new Map();
|
|
83
|
+
traverse(ast, {
|
|
84
|
+
CallExpression(p) {
|
|
85
|
+
var _a, _b, _c, _d;
|
|
86
|
+
const callee = p.node.callee;
|
|
87
|
+
if (callee.type !== "MemberExpression")
|
|
88
|
+
return;
|
|
89
|
+
if (callee.property.type !== "Identifier" || callee.property.name !== "push")
|
|
90
|
+
return;
|
|
91
|
+
if (p.node.arguments.length !== 1)
|
|
92
|
+
return;
|
|
93
|
+
const arr = p.node.arguments[0];
|
|
94
|
+
if (arr.type !== "ArrayExpression")
|
|
95
|
+
return;
|
|
96
|
+
if (arr.elements.length < 2)
|
|
97
|
+
return;
|
|
98
|
+
const payload = arr.elements[1];
|
|
99
|
+
if (!payload || payload.type !== "ObjectExpression")
|
|
100
|
+
return;
|
|
101
|
+
for (const prop of payload.properties) {
|
|
102
|
+
if (prop.type !== "ObjectProperty" && prop.type !== "ObjectMethod")
|
|
103
|
+
continue;
|
|
104
|
+
const key = prop.key;
|
|
105
|
+
let moduleId = null;
|
|
106
|
+
if (key.type === "Identifier")
|
|
107
|
+
moduleId = key.name;
|
|
108
|
+
else if (key.type === "NumericLiteral")
|
|
109
|
+
moduleId = String(key.value);
|
|
110
|
+
else if (key.type === "StringLiteral")
|
|
111
|
+
moduleId = key.value;
|
|
112
|
+
if (!moduleId)
|
|
113
|
+
continue;
|
|
114
|
+
const fnNode = prop.type === "ObjectMethod" ? prop : prop.value;
|
|
115
|
+
if (!fnNode)
|
|
116
|
+
continue;
|
|
117
|
+
const params = fnNode.type === "ObjectMethod"
|
|
118
|
+
? fnNode.params
|
|
119
|
+
: fnNode.type === "FunctionExpression" || fnNode.type === "ArrowFunctionExpression"
|
|
120
|
+
? fnNode.params
|
|
121
|
+
: null;
|
|
122
|
+
const body = fnNode.type === "ObjectMethod"
|
|
123
|
+
? fnNode.body
|
|
124
|
+
: fnNode.type === "FunctionExpression" || fnNode.type === "ArrowFunctionExpression"
|
|
125
|
+
? fnNode.body
|
|
126
|
+
: null;
|
|
127
|
+
if (!params || !body)
|
|
128
|
+
continue;
|
|
129
|
+
const requireParam = ((_a = params[2]) === null || _a === void 0 ? void 0 : _a.type) === "Identifier" ? params[2].name : null;
|
|
130
|
+
const exportsParam = ((_b = params[1]) === null || _b === void 0 ? void 0 : _b.type) === "Identifier" ? params[1].name : null;
|
|
131
|
+
const exports_ = new Map();
|
|
132
|
+
const locals = new Map();
|
|
133
|
+
const imports = new Map();
|
|
134
|
+
if (body.type === "BlockStatement") {
|
|
135
|
+
for (const stmt of body.body) {
|
|
136
|
+
if (stmt.type === "ExpressionStatement") {
|
|
137
|
+
const ex = stmt.expression;
|
|
138
|
+
if (ex.type === "CallExpression" &&
|
|
139
|
+
ex.callee.type === "MemberExpression" &&
|
|
140
|
+
ex.callee.object.type === "Identifier" &&
|
|
141
|
+
requireParam &&
|
|
142
|
+
ex.callee.object.name === requireParam &&
|
|
143
|
+
ex.callee.property.type === "Identifier" &&
|
|
144
|
+
ex.callee.property.name === "d" &&
|
|
145
|
+
ex.arguments.length === 2 &&
|
|
146
|
+
((_c = ex.arguments[1]) === null || _c === void 0 ? void 0 : _c.type) === "ObjectExpression") {
|
|
147
|
+
for (const ep of ex.arguments[1].properties) {
|
|
148
|
+
if (ep.type !== "ObjectProperty")
|
|
149
|
+
continue;
|
|
150
|
+
const k = ep.key.type === "Identifier"
|
|
151
|
+
? ep.key.name
|
|
152
|
+
: ep.key.type === "StringLiteral"
|
|
153
|
+
? ep.key.value
|
|
154
|
+
: null;
|
|
155
|
+
if (!k)
|
|
156
|
+
continue;
|
|
157
|
+
const v = ep.value;
|
|
158
|
+
if (v.type === "ArrowFunctionExpression" && v.body.type === "Identifier") {
|
|
159
|
+
exports_.set(k, v.body.name);
|
|
160
|
+
}
|
|
161
|
+
else if (v.type === "FunctionExpression" && v.body.type === "BlockStatement") {
|
|
162
|
+
for (let i = v.body.body.length - 1; i >= 0; i--) {
|
|
163
|
+
const s = v.body.body[i];
|
|
164
|
+
if (s.type === "ReturnStatement" && ((_d = s.argument) === null || _d === void 0 ? void 0 : _d.type) === "Identifier") {
|
|
165
|
+
exports_.set(k, s.argument.name);
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
if (stmt.type === "VariableDeclaration") {
|
|
174
|
+
for (const d of stmt.declarations) {
|
|
175
|
+
if (d.id.type !== "Identifier" || !d.init)
|
|
176
|
+
continue;
|
|
177
|
+
const name = d.id.name;
|
|
178
|
+
locals.set(name, d.init);
|
|
179
|
+
const reqCall = isRequireCall(d.init, requireParam);
|
|
180
|
+
if (reqCall)
|
|
181
|
+
imports.set(name, reqCall.moduleId);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if (stmt.type === "FunctionDeclaration" && stmt.id) {
|
|
185
|
+
locals.set(stmt.id.name, stmt);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
modules.set(moduleId, {
|
|
190
|
+
moduleId,
|
|
191
|
+
bodyBlock: body,
|
|
192
|
+
requireParam,
|
|
193
|
+
exportsParam,
|
|
194
|
+
exports: exports_,
|
|
195
|
+
locals,
|
|
196
|
+
imports,
|
|
197
|
+
filePath,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
const parsed = { modules };
|
|
203
|
+
chunkFileCache.set(filePath, parsed);
|
|
204
|
+
return parsed;
|
|
205
|
+
};
|
|
206
|
+
const ensureGlobalIndex = (directory) => {
|
|
207
|
+
if (globalIndexBuiltFor === directory && globalModuleIndex)
|
|
208
|
+
return;
|
|
209
|
+
globalModuleIndex = new Map();
|
|
210
|
+
let files;
|
|
211
|
+
try {
|
|
212
|
+
files = fs.readdirSync(directory, { recursive: true, encoding: "utf8" });
|
|
213
|
+
}
|
|
214
|
+
catch (_a) {
|
|
215
|
+
globalIndexBuiltFor = directory;
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
files = files.filter((f) => f.endsWith(".js"));
|
|
219
|
+
for (const rel of files) {
|
|
220
|
+
const abs = path.join(directory, rel);
|
|
221
|
+
try {
|
|
222
|
+
if (!fs.lstatSync(abs).isFile())
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
catch (_b) {
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
const parsed = parseChunkFile(abs);
|
|
229
|
+
if (!parsed)
|
|
230
|
+
continue;
|
|
231
|
+
for (const [modId, mod] of parsed.modules) {
|
|
232
|
+
if (!globalModuleIndex.has(modId))
|
|
233
|
+
globalModuleIndex.set(modId, mod);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
globalIndexBuiltFor = directory;
|
|
237
|
+
};
|
|
238
|
+
const findModuleContainingFile = (filePath) => {
|
|
239
|
+
var _a, _b, _c;
|
|
240
|
+
const parsed = parseChunkFile(filePath);
|
|
241
|
+
if (!parsed || parsed.modules.size === 0)
|
|
242
|
+
return null;
|
|
243
|
+
let best = null;
|
|
244
|
+
let bestSize = -1;
|
|
245
|
+
for (const mod of parsed.modules.values()) {
|
|
246
|
+
const size = (_c = (_b = (_a = mod.bodyBlock) === null || _a === void 0 ? void 0 : _a.body) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
|
|
247
|
+
if (size > bestSize) {
|
|
248
|
+
best = mod;
|
|
249
|
+
bestSize = size;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return best;
|
|
253
|
+
};
|
|
254
|
+
const walkObjectMember = (node, propPath) => {
|
|
255
|
+
var _a;
|
|
256
|
+
let cur = node;
|
|
257
|
+
for (const prop of propPath) {
|
|
258
|
+
if (!cur)
|
|
259
|
+
return null;
|
|
260
|
+
if (cur.type !== "ObjectExpression")
|
|
261
|
+
return null;
|
|
262
|
+
let found = null;
|
|
263
|
+
for (const p of (_a = cur.properties) !== null && _a !== void 0 ? _a : []) {
|
|
264
|
+
if (p.type !== "ObjectProperty")
|
|
265
|
+
continue;
|
|
266
|
+
const k = p.key.type === "Identifier" ? p.key.name : p.key.type === "StringLiteral" ? p.key.value : null;
|
|
267
|
+
if (k === prop) {
|
|
268
|
+
found = p.value;
|
|
269
|
+
break;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
if (!found)
|
|
273
|
+
return null;
|
|
274
|
+
cur = found;
|
|
275
|
+
}
|
|
276
|
+
return cur;
|
|
277
|
+
};
|
|
278
|
+
export const crossFileResolveMember = (identName, propPath, fromFilePath, directory, depth = 0, visited = new Set()) => {
|
|
279
|
+
if (depth > 5)
|
|
280
|
+
return null;
|
|
281
|
+
ensureGlobalIndex(directory);
|
|
282
|
+
if (!globalModuleIndex)
|
|
283
|
+
return null;
|
|
284
|
+
const visitKey = `${fromFilePath}::${identName}::${propPath.join(".")}`;
|
|
285
|
+
if (visited.has(visitKey))
|
|
286
|
+
return null;
|
|
287
|
+
visited.add(visitKey);
|
|
288
|
+
const mod = findModuleContainingFile(fromFilePath);
|
|
289
|
+
if (!mod)
|
|
290
|
+
return null;
|
|
291
|
+
const localInit = mod.locals.get(identName);
|
|
292
|
+
if (localInit) {
|
|
293
|
+
const target = walkObjectMember(localInit, propPath);
|
|
294
|
+
const lit = literalNodeToString(target);
|
|
295
|
+
if (lit !== null)
|
|
296
|
+
return lit;
|
|
297
|
+
if ((target === null || target === void 0 ? void 0 : target.type) === "Identifier") {
|
|
298
|
+
return crossFileResolveMember(target.name, [], fromFilePath, directory, depth + 1, visited);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
const targetModuleId = mod.imports.get(identName);
|
|
302
|
+
if (!targetModuleId)
|
|
303
|
+
return null;
|
|
304
|
+
const targetMod = globalModuleIndex.get(targetModuleId);
|
|
305
|
+
if (!targetMod)
|
|
306
|
+
return null;
|
|
307
|
+
if (propPath.length === 0)
|
|
308
|
+
return null;
|
|
309
|
+
const exportName = propPath[0];
|
|
310
|
+
const restPath = propPath.slice(1);
|
|
311
|
+
const localBindingName = targetMod.exports.get(exportName);
|
|
312
|
+
if (!localBindingName)
|
|
313
|
+
return null;
|
|
314
|
+
const bindingInit = targetMod.locals.get(localBindingName);
|
|
315
|
+
if (!bindingInit)
|
|
316
|
+
return null;
|
|
317
|
+
const target = walkObjectMember(bindingInit, restPath);
|
|
318
|
+
const lit = literalNodeToString(target);
|
|
319
|
+
if (lit !== null)
|
|
320
|
+
return lit;
|
|
321
|
+
if ((target === null || target === void 0 ? void 0 : target.type) === "Identifier") {
|
|
322
|
+
return crossFileResolveMember(target.name, [], targetMod.filePath, directory, depth + 1, visited);
|
|
323
|
+
}
|
|
324
|
+
return null;
|
|
325
|
+
};
|
|
326
|
+
const inlineFunctionReturn = (fnNode) => {
|
|
327
|
+
if (!fnNode)
|
|
328
|
+
return null;
|
|
329
|
+
const body = fnNode.type === "FunctionDeclaration" ||
|
|
330
|
+
fnNode.type === "FunctionExpression" ||
|
|
331
|
+
fnNode.type === "ArrowFunctionExpression" ||
|
|
332
|
+
fnNode.type === "ObjectMethod"
|
|
333
|
+
? fnNode.body
|
|
334
|
+
: null;
|
|
335
|
+
if (!body)
|
|
336
|
+
return null;
|
|
337
|
+
if (body.type !== "BlockStatement") {
|
|
338
|
+
return literalNodeToString(body);
|
|
339
|
+
}
|
|
340
|
+
for (let i = body.body.length - 1; i >= 0; i--) {
|
|
341
|
+
const s = body.body[i];
|
|
342
|
+
if (s.type === "ReturnStatement" && s.argument) {
|
|
343
|
+
const lit = literalNodeToString(s.argument);
|
|
344
|
+
if (lit !== null)
|
|
345
|
+
return lit;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return null;
|
|
349
|
+
};
|
|
350
|
+
export const crossFileResolveCallReturn = (chain, fromFilePath, directory, depth = 0, visited = new Set()) => {
|
|
351
|
+
if (chain.length === 0 || depth > 5)
|
|
352
|
+
return null;
|
|
353
|
+
ensureGlobalIndex(directory);
|
|
354
|
+
if (!globalModuleIndex)
|
|
355
|
+
return null;
|
|
356
|
+
const visitKey = `${fromFilePath}::call::${chain.join(".")}`;
|
|
357
|
+
if (visited.has(visitKey))
|
|
358
|
+
return null;
|
|
359
|
+
visited.add(visitKey);
|
|
360
|
+
const mod = findModuleContainingFile(fromFilePath);
|
|
361
|
+
if (!mod)
|
|
362
|
+
return null;
|
|
363
|
+
const root = chain[0];
|
|
364
|
+
const localInit = mod.locals.get(root);
|
|
365
|
+
if (localInit) {
|
|
366
|
+
let cur = localInit;
|
|
367
|
+
if (chain.length === 1)
|
|
368
|
+
return inlineFunctionReturn(cur);
|
|
369
|
+
cur = walkObjectMember(cur, chain.slice(1));
|
|
370
|
+
if (!cur)
|
|
371
|
+
return null;
|
|
372
|
+
if (cur.type === "Identifier") {
|
|
373
|
+
return crossFileResolveCallReturn([cur.name], fromFilePath, directory, depth + 1, visited);
|
|
374
|
+
}
|
|
375
|
+
return inlineFunctionReturn(cur);
|
|
376
|
+
}
|
|
377
|
+
const targetModuleId = mod.imports.get(root);
|
|
378
|
+
if (!targetModuleId)
|
|
379
|
+
return null;
|
|
380
|
+
const targetMod = globalModuleIndex.get(targetModuleId);
|
|
381
|
+
if (!targetMod)
|
|
382
|
+
return null;
|
|
383
|
+
if (chain.length === 1)
|
|
384
|
+
return null;
|
|
385
|
+
const exportName = chain[1];
|
|
386
|
+
const restPath = chain.slice(2);
|
|
387
|
+
const localBindingName = targetMod.exports.get(exportName);
|
|
388
|
+
if (!localBindingName)
|
|
389
|
+
return null;
|
|
390
|
+
const bindingInit = targetMod.locals.get(localBindingName);
|
|
391
|
+
if (!bindingInit)
|
|
392
|
+
return null;
|
|
393
|
+
if (restPath.length === 0)
|
|
394
|
+
return inlineFunctionReturn(bindingInit);
|
|
395
|
+
const target = walkObjectMember(bindingInit, restPath);
|
|
396
|
+
if (!target)
|
|
397
|
+
return null;
|
|
398
|
+
if (target.type === "Identifier") {
|
|
399
|
+
return crossFileResolveCallReturn([target.name], targetMod.filePath, directory, depth + 1, visited);
|
|
400
|
+
}
|
|
401
|
+
return inlineFunctionReturn(target);
|
|
402
|
+
};
|
|
403
|
+
export const substituteCrossFileMarkers = (input, fromFilePath, directory) => {
|
|
404
|
+
if (typeof input !== "string" || !input)
|
|
405
|
+
return input;
|
|
406
|
+
let out = input;
|
|
407
|
+
out = out.replace(/\[member:([A-Za-z_$][\w$.]*)\]/g, (match, chain) => {
|
|
408
|
+
const parts = chain.split(".");
|
|
409
|
+
if (parts.length < 2)
|
|
410
|
+
return match;
|
|
411
|
+
const resolved = crossFileResolveMember(parts[0], parts.slice(1), fromFilePath, directory);
|
|
412
|
+
return resolved !== null && resolved !== void 0 ? resolved : match;
|
|
413
|
+
});
|
|
414
|
+
out = out.replace(/\[call:([A-Za-z_$][\w$.]*)\(\)\]/g, (match, chain) => {
|
|
415
|
+
const parts = chain.split(".");
|
|
416
|
+
const resolved = crossFileResolveCallReturn(parts, fromFilePath, directory);
|
|
417
|
+
return resolved !== null && resolved !== void 0 ? resolved : match;
|
|
418
|
+
});
|
|
419
|
+
return out;
|
|
420
|
+
};
|
|
421
|
+
export const substituteCrossFileMarkersDeep = (value, fromFilePath, directory) => {
|
|
422
|
+
if (value === null || value === undefined)
|
|
423
|
+
return value;
|
|
424
|
+
if (typeof value === "string")
|
|
425
|
+
return substituteCrossFileMarkers(value, fromFilePath, directory);
|
|
426
|
+
if (Array.isArray(value))
|
|
427
|
+
return value.map((v) => substituteCrossFileMarkersDeep(v, fromFilePath, directory));
|
|
428
|
+
if (typeof value === "object") {
|
|
429
|
+
const o = {};
|
|
430
|
+
for (const [k, v] of Object.entries(value)) {
|
|
431
|
+
const nk = typeof k === "string" ? substituteCrossFileMarkers(k, fromFilePath, directory) : k;
|
|
432
|
+
o[nk] = substituteCrossFileMarkersDeep(v, fromFilePath, directory);
|
|
433
|
+
}
|
|
434
|
+
return o;
|
|
435
|
+
}
|
|
436
|
+
return value;
|
|
437
|
+
};
|
|
438
|
+
//# sourceMappingURL=crossFileResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crossFileResolver.js","sourceRoot":"","sources":["../../../src/map/vue_js/crossFileResolver.ts"],"names":[],"mappings":"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"}
|