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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/build/endpoints/index.js +1 -0
  3. package/build/endpoints/index.js.map +1 -1
  4. package/build/globalConfig.js +2 -1
  5. package/build/globalConfig.js.map +1 -1
  6. package/build/index.js +3 -1
  7. package/build/index.js.map +1 -1
  8. package/build/lazyLoad/downloadFilesUtil.js +7 -4
  9. package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
  10. package/build/lazyLoad/index.js +87 -2
  11. package/build/lazyLoad/index.js.map +1 -1
  12. package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js +32 -23
  13. package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js.map +1 -1
  14. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +1 -1
  15. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  16. package/build/lazyLoad/next_js/next_buildId.js +9 -1
  17. package/build/lazyLoad/next_js/next_buildId.js.map +1 -1
  18. package/build/lazyLoad/sourcemap.js +188 -0
  19. package/build/lazyLoad/sourcemap.js.map +1 -0
  20. package/build/lazyLoad/techDetect/index.js +49 -3
  21. package/build/lazyLoad/techDetect/index.js.map +1 -1
  22. package/build/lazyLoad/vue/vue_RuntimeJs.js +101 -0
  23. package/build/lazyLoad/vue/vue_RuntimeJs.js.map +1 -0
  24. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +96 -0
  25. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -0
  26. package/build/lazyLoad/vue/vue_jsImports.js +65 -0
  27. package/build/lazyLoad/vue/vue_jsImports.js.map +1 -0
  28. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +56 -0
  29. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -0
  30. package/build/lazyLoad/vue/vue_sourcemapExtract.js +166 -0
  31. package/build/lazyLoad/vue/vue_sourcemapExtract.js.map +1 -0
  32. package/build/map/next_js/getAxiosInstances.js +1 -1
  33. package/build/map/next_js/getAxiosInstances.js.map +1 -1
  34. package/build/map/next_js/getWebpackConnections.js +1 -1
  35. package/build/map/next_js/getWebpackConnections.js.map +1 -1
  36. package/build/map/next_js/interactive_helpers/commandHelpers.js +1 -1
  37. package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
  38. package/build/map/next_js/resolveAxios.js +61 -17
  39. package/build/map/next_js/resolveAxios.js.map +1 -1
  40. package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js +48 -0
  41. package/build/map/next_js/resolveAxiosHelpers/directCallsWithoutAssignment.js.map +1 -0
  42. package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js +8 -8
  43. package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js.map +1 -1
  44. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +302 -0
  45. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -0
  46. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js +48 -8
  47. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
  48. package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js +261 -0
  49. package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js.map +1 -0
  50. package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js +10 -3
  51. package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js.map +1 -1
  52. package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js +113 -0
  53. package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js.map +1 -0
  54. package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js +274 -0
  55. package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js.map +1 -0
  56. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +506 -0
  57. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -0
  58. package/build/map/next_js/resolveFetch.js +243 -4
  59. package/build/map/next_js/resolveFetch.js.map +1 -1
  60. package/build/map/next_js/utils.js +867 -11
  61. package/build/map/next_js/utils.js.map +1 -1
  62. package/build/run/index.js +11 -6
  63. package/build/run/index.js.map +1 -1
  64. package/build/utility/globals.js.map +1 -1
  65. package/build/utility/makeReq.js +4 -0
  66. package/build/utility/makeReq.js.map +1 -1
  67. package/package.json +2 -2
@@ -0,0 +1,506 @@
1
+ import _traverse from "@babel/traverse";
2
+ import * as fs from "fs";
3
+ import parser from "@babel/parser";
4
+ import chalk from "chalk";
5
+ import * as globals from "../../../utility/globals.js";
6
+ import { getThirdArg } from "../resolveAxios.js";
7
+ import { resolveNodeValue } from "../utils.js";
8
+ const traverse = _traverse.default;
9
+ /**
10
+ * Recursively trace axios instance exports across chunks
11
+ *
12
+ * @param {string} sourceChunkId - The chunk ID where the axios instance was created
13
+ * @param {string} axiosVarName - The variable name holding the axios instance
14
+ * @param {Chunks} chunks - Dictionary of all chunks
15
+ * @param {string} directory - Directory containing chunk files
16
+ * @param {Set<string>} visited - Set of visited chunks to prevent infinite recursion
17
+ */
18
+ export const traceAxiosInstanceExports = (sourceChunkId, axiosVarName, chunks, directory, visited = new Set()) => {
19
+ // Prevent infinite recursion
20
+ if (visited.has(sourceChunkId)) {
21
+ return;
22
+ }
23
+ visited.add(sourceChunkId);
24
+ const sourceChunk = chunks[sourceChunkId];
25
+ if (!sourceChunk) {
26
+ return;
27
+ }
28
+ // Step 1: Find if the axios instance is exported from this chunk
29
+ const exportName = findAxiosInstanceExport(sourceChunkId, axiosVarName, chunks);
30
+ if (!exportName) {
31
+ console.log(chalk.yellow(` [!] Axios instance '${axiosVarName}' in chunk ${sourceChunkId} is not exported`));
32
+ return;
33
+ }
34
+ console.log(chalk.blue(` [→] Axios instance '${axiosVarName}' exported as '${exportName}' from chunk ${sourceChunkId}`));
35
+ // Step 2: Find all chunks that import this chunk
36
+ const importingChunks = findImportingChunks(sourceChunkId, chunks);
37
+ if (importingChunks.length === 0) {
38
+ console.log(chalk.yellow(` [!] No chunks import the axios instance '${exportName}' from chunk ${sourceChunkId}`));
39
+ return;
40
+ }
41
+ console.log(chalk.blue(` [→] Found ${importingChunks.length} chunk(s) importing axios instance '${exportName}'`));
42
+ // Step 3: Process each importing chunk
43
+ for (const importingChunkId of importingChunks) {
44
+ processImportingChunk(importingChunkId, sourceChunkId, exportName, chunks, directory, visited);
45
+ }
46
+ };
47
+ /**
48
+ * Find if an axios instance variable is exported from a chunk
49
+ */
50
+ const findAxiosInstanceExport = (chunkId, axiosVarName, chunks) => {
51
+ const chunk = chunks[chunkId];
52
+ if (!chunk || !chunk.exports || chunk.exports.length === 0) {
53
+ return null;
54
+ }
55
+ const chunkCode = chunk.code;
56
+ const ast = parser.parse(chunkCode, {
57
+ sourceType: "unambiguous",
58
+ plugins: ["jsx", "typescript"],
59
+ errorRecovery: true,
60
+ });
61
+ let foundExportName = null;
62
+ // Look for export pattern: n.d(t, { ExportName: function() { return axiosVarName } })
63
+ traverse(ast, {
64
+ CallExpression(path) {
65
+ const callee = path.node.callee;
66
+ if (callee.type === "MemberExpression" &&
67
+ callee.property.type === "Identifier" &&
68
+ callee.property.name === "d" &&
69
+ path.node.arguments.length >= 2 &&
70
+ path.node.arguments[1].type === "ObjectExpression") {
71
+ const exportsObj = path.node.arguments[1];
72
+ for (const prop of exportsObj.properties) {
73
+ if (prop.type === "ObjectProperty" &&
74
+ (prop.value.type === "FunctionExpression" || prop.value.type === "ArrowFunctionExpression")) {
75
+ let exportName = "";
76
+ if (prop.key.type === "Identifier") {
77
+ exportName = prop.key.name;
78
+ }
79
+ else if (prop.key.type === "StringLiteral") {
80
+ exportName = prop.key.value;
81
+ }
82
+ // Check if this export returns our axios variable
83
+ if (prop.value.body && prop.value.body.type === "BlockStatement") {
84
+ for (const stmt of prop.value.body.body) {
85
+ if (stmt.type === "ReturnStatement" &&
86
+ stmt.argument &&
87
+ stmt.argument.type === "Identifier" &&
88
+ stmt.argument.name === axiosVarName) {
89
+ foundExportName = exportName;
90
+ return;
91
+ }
92
+ }
93
+ }
94
+ else if (prop.value.body &&
95
+ prop.value.body.type === "Identifier" &&
96
+ prop.value.body.name === axiosVarName) {
97
+ foundExportName = exportName;
98
+ return;
99
+ }
100
+ }
101
+ }
102
+ }
103
+ },
104
+ });
105
+ return foundExportName;
106
+ };
107
+ /**
108
+ * Find all chunks that import a specific chunk
109
+ */
110
+ const findImportingChunks = (sourceChunkId, chunks) => {
111
+ const importingChunks = [];
112
+ for (const [chunkId, chunk] of Object.entries(chunks)) {
113
+ if (chunk.imports && chunk.imports.includes(sourceChunkId)) {
114
+ importingChunks.push(chunkId);
115
+ }
116
+ }
117
+ return importingChunks;
118
+ };
119
+ /**
120
+ * Process a chunk that imports an axios instance
121
+ */
122
+ const processImportingChunk = (importingChunkId, sourceChunkId, exportName, chunks, directory, visited) => {
123
+ const importingChunk = chunks[importingChunkId];
124
+ if (!importingChunk) {
125
+ return;
126
+ }
127
+ const chunkCode = importingChunk.code;
128
+ const ast = parser.parse(chunkCode, {
129
+ sourceType: "unambiguous",
130
+ plugins: ["jsx", "typescript"],
131
+ errorRecovery: true,
132
+ });
133
+ // Get the third argument (import function)
134
+ const thirdArg = getThirdArg(ast);
135
+ if (!thirdArg) {
136
+ console.log(chalk.yellow(` [!] Could not find third argument in chunk ${importingChunkId}`));
137
+ return;
138
+ }
139
+ // Find the variable that imports the axios instance
140
+ const importVarName = findImportVariable(ast, thirdArg, sourceChunkId);
141
+ if (!importVarName) {
142
+ console.log(chalk.yellow(` [!] Could not find import variable for chunk ${sourceChunkId} in chunk ${importingChunkId}`));
143
+ return;
144
+ }
145
+ console.log(chalk.blue(` [→] In chunk ${importingChunkId}, axios instance imported as '${importVarName}.${exportName}'`));
146
+ // Check if this chunk uses or re-exports the axios instance
147
+ const isReexported = checkIfReexported(ast, importVarName, exportName, chunks, importingChunkId);
148
+ if (isReexported.reexported) {
149
+ console.log(chalk.magenta(` [↻] Axios instance re-exported from chunk ${importingChunkId}, tracing further...`));
150
+ // Recursively trace the re-export
151
+ traceAxiosInstanceExports(importingChunkId, isReexported.localVarName, chunks, directory, visited);
152
+ }
153
+ else {
154
+ // This chunk uses the axios instance, extract API calls
155
+ console.log(chalk.greenBright(` [✓] Chunk ${importingChunkId} uses the axios instance, extracting API calls...`));
156
+ extractApiCalls(ast, chunkCode, importVarName, exportName, importingChunkId, chunks, directory, thirdArg);
157
+ }
158
+ };
159
+ /**
160
+ * Find the variable that imports the source chunk
161
+ */
162
+ const findImportVariable = (ast, thirdArg, sourceChunkId) => {
163
+ let importVar = null;
164
+ traverse(ast, {
165
+ VariableDeclarator(path) {
166
+ if (path.node.init &&
167
+ path.node.init.type === "CallExpression" &&
168
+ path.node.init.callee.type === "Identifier" &&
169
+ path.node.init.callee.name === thirdArg &&
170
+ path.node.init.arguments.length > 0 &&
171
+ path.node.id.type === "Identifier") {
172
+ const arg = path.node.init.arguments[0];
173
+ if ((arg.type === "NumericLiteral" && arg.value.toString() === sourceChunkId) ||
174
+ (arg.type === "StringLiteral" && arg.value === sourceChunkId)) {
175
+ importVar = path.node.id.name;
176
+ path.stop();
177
+ }
178
+ }
179
+ },
180
+ });
181
+ return importVar;
182
+ };
183
+ /**
184
+ * Check if the imported axios instance is re-exported
185
+ */
186
+ const checkIfReexported = (ast, importVarName, exportName, chunks, chunkId) => {
187
+ const chunk = chunks[chunkId];
188
+ if (!chunk || !chunk.exports || chunk.exports.length === 0) {
189
+ return { reexported: false };
190
+ }
191
+ // First, check if there's a local assignment: localVar = importVar.exportName(...)
192
+ let localVarName = null;
193
+ let foundPattern = false;
194
+ traverse(ast, {
195
+ AssignmentExpression(path) {
196
+ // Check for: p = ((t) => { ... i.C(...) ... })
197
+ if (path.node.left.type === "Identifier" &&
198
+ (path.node.right.type === "ArrowFunctionExpression" ||
199
+ path.node.right.type === "FunctionExpression" ||
200
+ path.node.right.type === "CallExpression")) {
201
+ // Check if the function body contains a call to importVar.exportName
202
+ const containsAxiosCall = checkNodeForAxiosCall(path.node.right, importVarName, exportName);
203
+ if (containsAxiosCall) {
204
+ localVarName = path.node.left.name;
205
+ foundPattern = true;
206
+ path.stop();
207
+ }
208
+ }
209
+ },
210
+ VariableDeclarator(path) {
211
+ // Check for: const p = ((t) => { ... i.C(...) ... })
212
+ if (path.node.id.type === "Identifier" &&
213
+ path.node.init &&
214
+ (path.node.init.type === "ArrowFunctionExpression" ||
215
+ path.node.init.type === "FunctionExpression" ||
216
+ path.node.init.type === "CallExpression")) {
217
+ const containsAxiosCall = checkNodeForAxiosCall(path.node.init, importVarName, exportName);
218
+ if (containsAxiosCall) {
219
+ localVarName = path.node.id.name;
220
+ foundPattern = true;
221
+ path.stop();
222
+ }
223
+ }
224
+ },
225
+ });
226
+ if (foundPattern && localVarName) {
227
+ // Check if this local variable is exported
228
+ const isExported = chunk.exports.some((exp) => {
229
+ // We need to check if the export returns localVarName
230
+ return checkIfVariableIsExported(ast, exp, localVarName);
231
+ });
232
+ if (isExported) {
233
+ return { reexported: true, localVarName };
234
+ }
235
+ }
236
+ return { reexported: false };
237
+ };
238
+ /**
239
+ * Check if a node contains a call to the axios instance (recursive AST inspection)
240
+ */
241
+ const checkNodeForAxiosCall = (node, importVarName, exportName) => {
242
+ if (!node)
243
+ return false;
244
+ // Check if this node is a call expression to our axios instance
245
+ if (node.type === "CallExpression") {
246
+ const callee = node.callee;
247
+ // Check for: importVar.exportName(...)
248
+ if (callee.type === "MemberExpression" &&
249
+ callee.object.type === "Identifier" &&
250
+ callee.object.name === importVarName &&
251
+ callee.property.type === "Identifier" &&
252
+ callee.property.name === exportName) {
253
+ return true;
254
+ }
255
+ // Check for: (0, importVar.exportName)(...)
256
+ if (callee.type === "SequenceExpression" &&
257
+ callee.expressions.length === 2 &&
258
+ callee.expressions[0].type === "NumericLiteral" &&
259
+ callee.expressions[0].value === 0 &&
260
+ callee.expressions[1].type === "MemberExpression" &&
261
+ callee.expressions[1].object.type === "Identifier" &&
262
+ callee.expressions[1].object.name === importVarName &&
263
+ callee.expressions[1].property.type === "Identifier" &&
264
+ callee.expressions[1].property.name === exportName) {
265
+ return true;
266
+ }
267
+ }
268
+ // Recursively check common node structures
269
+ if (node.body) {
270
+ if (Array.isArray(node.body)) {
271
+ for (const stmt of node.body) {
272
+ if (checkNodeForAxiosCall(stmt, importVarName, exportName)) {
273
+ return true;
274
+ }
275
+ }
276
+ }
277
+ else {
278
+ return checkNodeForAxiosCall(node.body, importVarName, exportName);
279
+ }
280
+ }
281
+ // Check block statement body
282
+ if (node.type === "BlockStatement" && node.body) {
283
+ for (const stmt of node.body) {
284
+ if (checkNodeForAxiosCall(stmt, importVarName, exportName)) {
285
+ return true;
286
+ }
287
+ }
288
+ }
289
+ // Check expressions
290
+ if (node.expression) {
291
+ return checkNodeForAxiosCall(node.expression, importVarName, exportName);
292
+ }
293
+ // Check argument/callee for nested calls
294
+ if (node.callee) {
295
+ if (checkNodeForAxiosCall(node.callee, importVarName, exportName)) {
296
+ return true;
297
+ }
298
+ }
299
+ // Check arguments
300
+ if (node.arguments && Array.isArray(node.arguments)) {
301
+ for (const arg of node.arguments) {
302
+ if (checkNodeForAxiosCall(arg, importVarName, exportName)) {
303
+ return true;
304
+ }
305
+ }
306
+ }
307
+ // Check init value for variable declarators
308
+ if (node.init) {
309
+ return checkNodeForAxiosCall(node.init, importVarName, exportName);
310
+ }
311
+ // Check right side of assignment
312
+ if (node.right) {
313
+ return checkNodeForAxiosCall(node.right, importVarName, exportName);
314
+ }
315
+ return false;
316
+ };
317
+ /**
318
+ * Check if a variable is exported with a given export name
319
+ */
320
+ const checkIfVariableIsExported = (ast, exportName, varName) => {
321
+ let isExported = false;
322
+ traverse(ast, {
323
+ CallExpression(path) {
324
+ const callee = path.node.callee;
325
+ if (callee.type === "MemberExpression" &&
326
+ callee.property.type === "Identifier" &&
327
+ callee.property.name === "d" &&
328
+ path.node.arguments.length >= 2 &&
329
+ path.node.arguments[1].type === "ObjectExpression") {
330
+ const exportsObj = path.node.arguments[1];
331
+ for (const prop of exportsObj.properties) {
332
+ if (prop.type === "ObjectProperty") {
333
+ let currentExportName = "";
334
+ if (prop.key.type === "Identifier") {
335
+ currentExportName = prop.key.name;
336
+ }
337
+ else if (prop.key.type === "StringLiteral") {
338
+ currentExportName = prop.key.value;
339
+ }
340
+ if (currentExportName === exportName) {
341
+ // Check if it returns varName
342
+ if (prop.value.type === "FunctionExpression" ||
343
+ prop.value.type === "ArrowFunctionExpression") {
344
+ if (prop.value.body && prop.value.body.type === "BlockStatement") {
345
+ for (const stmt of prop.value.body.body) {
346
+ if (stmt.type === "ReturnStatement" &&
347
+ stmt.argument &&
348
+ stmt.argument.type === "Identifier" &&
349
+ stmt.argument.name === varName) {
350
+ isExported = true;
351
+ return;
352
+ }
353
+ }
354
+ }
355
+ else if (prop.value.body &&
356
+ prop.value.body.type === "Identifier" &&
357
+ prop.value.body.name === varName) {
358
+ isExported = true;
359
+ return;
360
+ }
361
+ }
362
+ }
363
+ }
364
+ }
365
+ }
366
+ },
367
+ });
368
+ return isExported;
369
+ };
370
+ /**
371
+ * Extract API calls made using the axios instance
372
+ */
373
+ const extractApiCalls = (ast, chunkCode, importVarName, exportName, chunkId, chunks, directory, thirdArgName) => {
374
+ const chunk = chunks[chunkId];
375
+ const functionFile = `${directory}/${chunk.file}`;
376
+ traverse(ast, {
377
+ CallExpression(path) {
378
+ const callee = path.node.callee;
379
+ let isTargetCall = false;
380
+ // Check for: (0, importVar.exportName)({...})
381
+ if (callee.type === "SequenceExpression" &&
382
+ callee.expressions.length === 2 &&
383
+ callee.expressions[0].type === "NumericLiteral" &&
384
+ callee.expressions[0].value === 0 &&
385
+ callee.expressions[1].type === "MemberExpression" &&
386
+ callee.expressions[1].object.type === "Identifier" &&
387
+ callee.expressions[1].object.name === importVarName &&
388
+ callee.expressions[1].property.type === "Identifier" &&
389
+ callee.expressions[1].property.name === exportName) {
390
+ isTargetCall = true;
391
+ }
392
+ // Check for: importVar.exportName({...})
393
+ if (callee.type === "MemberExpression" &&
394
+ callee.object.type === "Identifier" &&
395
+ callee.object.name === importVarName &&
396
+ callee.property.type === "Identifier" &&
397
+ callee.property.name === exportName) {
398
+ isTargetCall = true;
399
+ }
400
+ if (isTargetCall && path.node.arguments.length > 0) {
401
+ const configArg = path.node.arguments[0];
402
+ if (configArg.type === "ObjectExpression") {
403
+ let url = "";
404
+ let method = "";
405
+ let data = "";
406
+ let params = "";
407
+ let headers = "";
408
+ for (const prop of configArg.properties) {
409
+ if (prop.type === "ObjectProperty" && prop.key.type === "Identifier") {
410
+ const propName = prop.key.name;
411
+ // Use resolveNodeValue for better resolution with webpack chunk context
412
+ const resolvedValue = resolveNodeValue(prop.value, path.scope, chunkCode.substring(prop.value.start, prop.value.end), "axios", chunkCode, chunks, thirdArgName);
413
+ if (propName === "url") {
414
+ // Handle both string and resolved values
415
+ if (typeof resolvedValue === "string") {
416
+ url = resolvedValue;
417
+ }
418
+ else {
419
+ url = JSON.stringify(resolvedValue);
420
+ }
421
+ }
422
+ else if (propName === "method") {
423
+ if (typeof resolvedValue === "string") {
424
+ method = resolvedValue.replace(/"/g, "").toUpperCase();
425
+ }
426
+ else {
427
+ method = String(resolvedValue).replace(/"/g, "").toUpperCase();
428
+ }
429
+ }
430
+ else if (propName === "data") {
431
+ if (typeof resolvedValue === "object" && resolvedValue !== null) {
432
+ data = JSON.stringify(resolvedValue);
433
+ }
434
+ else {
435
+ data = String(resolvedValue);
436
+ }
437
+ }
438
+ else if (propName === "params") {
439
+ if (typeof resolvedValue === "object" && resolvedValue !== null) {
440
+ params = JSON.stringify(resolvedValue);
441
+ }
442
+ else {
443
+ params = String(resolvedValue);
444
+ }
445
+ }
446
+ else if (propName === "headers") {
447
+ if (typeof resolvedValue === "object" && resolvedValue !== null) {
448
+ headers = JSON.stringify(resolvedValue);
449
+ }
450
+ else {
451
+ headers = String(resolvedValue);
452
+ }
453
+ }
454
+ }
455
+ }
456
+ // Find line number
457
+ const codeFileContent = fs.readFileSync(functionFile, "utf-8");
458
+ const callSnippet = chunkCode.substring(path.node.start, path.node.end);
459
+ let functionFileLine = -1;
460
+ const lines = codeFileContent.split("\n");
461
+ for (let i = 0; i < lines.length; i++) {
462
+ if (lines[i].includes(callSnippet.trim().substring(0, Math.min(callSnippet.length, 30)))) {
463
+ functionFileLine = i + 1;
464
+ break;
465
+ }
466
+ }
467
+ // Log the found API call
468
+ console.log(chalk.yellow(` [+] Found API call in chunk ${chunkId} ("${functionFile}":${functionFileLine})`));
469
+ if (url)
470
+ console.log(chalk.cyan(` URL: ${url}`));
471
+ if (method)
472
+ console.log(chalk.magenta(` Method: ${method}`));
473
+ if (data)
474
+ console.log(chalk.blue(` Data: ${data}`));
475
+ if (params)
476
+ console.log(chalk.blue(` Params: ${params}`));
477
+ if (headers)
478
+ console.log(chalk.gray(` Headers: ${headers}`));
479
+ // Add to global collection
480
+ let parsedHeaders = {};
481
+ if (headers) {
482
+ try {
483
+ parsedHeaders = JSON.parse(headers);
484
+ }
485
+ catch (e) {
486
+ // If JSON parsing fails, use the raw string
487
+ parsedHeaders = { _raw: headers };
488
+ }
489
+ }
490
+ globals.addOpenapiOutput({
491
+ url: url || "",
492
+ method: method || "",
493
+ path: url || "",
494
+ headers: parsedHeaders,
495
+ body: data || params || "",
496
+ chunkId: chunkId,
497
+ functionFile: functionFile,
498
+ functionFileLine: functionFileLine,
499
+ });
500
+ }
501
+ }
502
+ },
503
+ });
504
+ };
505
+ export default traceAxiosInstanceExports;
506
+ //# sourceMappingURL=traceAxiosInstanceExports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traceAxiosInstanceExports.js","sourceRoot":"","sources":["../../../../src/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.ts"],"names":[],"mappings":"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"}