@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,302 @@
1
+ import _traverse from "@babel/traverse";
2
+ import * as fs from "fs";
3
+ import parser from "@babel/parser";
4
+ import { astNodeToJsonString } from "./astNodeToJsonString.js";
5
+ import chalk from "chalk";
6
+ import pathModule from "path";
7
+ const traverse = _traverse.default;
8
+ /**
9
+ * Find parameters passed to exported endpoint functions from other chunks
10
+ * that import this chunk
11
+ *
12
+ * @param {string} sourceChunkName - The name of the chunk that exports the endpoint
13
+ * @param {string} exportName - The export name of the endpoint function
14
+ * @param {Chunks} chunks - A dictionary of chunk names to chunk objects
15
+ * @param {string} directory - The directory of the chunk files
16
+ * @returns {Array<{chunkId: string, params: string, file: string, line: number}>} - Array of parameters found in other chunks
17
+ */
18
+ export const findCrossChunkParameters = (sourceChunkName, exportName, chunks, directory) => {
19
+ const result = [];
20
+ // Find chunks that import the source chunk
21
+ const importingChunks = Object.entries(chunks).filter(([_, chunk]) => {
22
+ return chunk.imports && chunk.imports.includes(sourceChunkName);
23
+ });
24
+ if (importingChunks.length === 0) {
25
+ return result;
26
+ }
27
+ // Process each importing chunk
28
+ for (const [importingChunkName, importingChunk] of importingChunks) {
29
+ const chunkCode = importingChunk.code;
30
+ const ast = parser.parse(chunkCode, {
31
+ sourceType: "unambiguous",
32
+ plugins: ["jsx", "typescript"],
33
+ errorRecovery: true,
34
+ });
35
+ // Step 1: Find the third parameter in function declarations
36
+ let thirdArg = "";
37
+ traverse(ast, {
38
+ enter(path) {
39
+ if (path.isFunctionDeclaration() && path.node.params.length >= 3) {
40
+ const thirdParam = path.node.params[2];
41
+ if (thirdParam.type === "Identifier") {
42
+ thirdArg = thirdParam.name;
43
+ path.stop();
44
+ }
45
+ }
46
+ else if (path.isAssignmentExpression() &&
47
+ path.node.right.type === "ArrowFunctionExpression" &&
48
+ path.node.right.params.length >= 3) {
49
+ const thirdParam = path.node.right.params[2];
50
+ if (thirdParam.type === "Identifier") {
51
+ thirdArg = thirdParam.name;
52
+ path.stop();
53
+ }
54
+ }
55
+ },
56
+ });
57
+ if (!thirdArg) {
58
+ continue;
59
+ }
60
+ // Step 2: Find variable assignments using the third arg and source chunk
61
+ // Example: <new_var> = <third_arg>(<chunk_that_exports>);
62
+ const moduleVars = {};
63
+ traverse(ast, {
64
+ VariableDeclarator(path) {
65
+ if (path.node.init &&
66
+ path.node.init.type === "CallExpression" &&
67
+ path.node.init.callee.type === "Identifier" &&
68
+ path.node.init.callee.name === thirdArg &&
69
+ path.node.init.arguments.length > 0 &&
70
+ path.node.id.type === "Identifier") {
71
+ // Found a variable assigned from the third arg function
72
+ // e.g., let moduleVar = n(21222);
73
+ if (path.node.init.arguments[0].type === "NumericLiteral" &&
74
+ path.node.init.arguments[0].value.toString() === sourceChunkName) {
75
+ moduleVars[path.node.id.name] = sourceChunkName;
76
+ }
77
+ else if (path.node.init.arguments[0].type === "StringLiteral" &&
78
+ path.node.init.arguments[0].value === sourceChunkName) {
79
+ moduleVars[path.node.id.name] = sourceChunkName;
80
+ }
81
+ }
82
+ },
83
+ });
84
+ if (Object.keys(moduleVars).length === 0) {
85
+ continue;
86
+ }
87
+ // Step 3: Find calls to the exported function and extract parameters
88
+ // Examples:
89
+ // - await (0, <new_var>.<something>)();
90
+ // - (0, <new_var>.<something>)(e)
91
+ for (const moduleVar of Object.keys(moduleVars)) {
92
+ traverse(ast, {
93
+ CallExpression(path) {
94
+ // Helper function to extract and record parameters
95
+ const extractAndRecordParams = (callNode, context = "") => {
96
+ if (callNode.arguments && callNode.arguments.length > 0) {
97
+ // Extract parameters
98
+ const params = astNodeToJsonString(callNode.arguments[0], chunkCode);
99
+ // Find the line number in the file
100
+ const functionFile = `${directory}/${importingChunk.file}`;
101
+ const codeFileContent = fs.readFileSync(functionFile, "utf-8");
102
+ let functionFileLine = -1;
103
+ // Extract code snippet for this call
104
+ const callSnippet = chunkCode.substring(callNode.start, callNode.end);
105
+ // Find line in file
106
+ const lines = codeFileContent.split("\n");
107
+ for (let i = 0; i < lines.length; i++) {
108
+ if (lines[i].includes(callSnippet.trim().substring(0, Math.min(callSnippet.length, 30)))) {
109
+ functionFileLine = i + 1;
110
+ break;
111
+ }
112
+ }
113
+ // Log the found parameter usage
114
+ console.log(chalk.cyan(`[+] Found ${context} parameter usage for '${exportName}' in chunk ${importingChunkName} ("${functionFile}":${functionFileLine})`));
115
+ console.log(chalk.magenta(` Params: ${params}`));
116
+ // Add to result
117
+ result.push({
118
+ chunkId: importingChunkName,
119
+ params: params,
120
+ file: functionFile,
121
+ line: functionFileLine,
122
+ });
123
+ return true;
124
+ }
125
+ return false;
126
+ };
127
+ // Helper function to check if a node represents a call to our exported function
128
+ const isTargetExportCall = (calleeNode) => {
129
+ // Check direct member expression: moduleVar.exportName
130
+ if (calleeNode.type === "MemberExpression" &&
131
+ calleeNode.object.type === "Identifier" &&
132
+ calleeNode.object.name === moduleVar &&
133
+ calleeNode.property.type === "Identifier" &&
134
+ calleeNode.property.name === exportName) {
135
+ return true;
136
+ }
137
+ // Check (0, moduleVar.exportName) pattern
138
+ if (calleeNode.type === "SequenceExpression" &&
139
+ calleeNode.expressions.length === 2 &&
140
+ calleeNode.expressions[0].type === "NumericLiteral" &&
141
+ calleeNode.expressions[0].value === 0 &&
142
+ calleeNode.expressions[1].type === "MemberExpression" &&
143
+ calleeNode.expressions[1].object.type === "Identifier" &&
144
+ calleeNode.expressions[1].object.name === moduleVar &&
145
+ calleeNode.expressions[1].property.type === "Identifier" &&
146
+ calleeNode.expressions[1].property.name === exportName) {
147
+ return true;
148
+ }
149
+ return false;
150
+ };
151
+ // 1. Check for direct calls: (0, m.HE)(e) or m.HE(e)
152
+ if (isTargetExportCall(path.node.callee)) {
153
+ extractAndRecordParams(path.node, "direct");
154
+ }
155
+ // 2. Check for awaited calls: await (0, m.HE)(e)
156
+ if (path.parentPath &&
157
+ path.parentPath.isAwaitExpression() &&
158
+ isTargetExportCall(path.node.callee)) {
159
+ extractAndRecordParams(path.node, "awaited");
160
+ }
161
+ // 3. Check for calls wrapped in variable assignments: const result = (0, m.HE)(e)
162
+ if (path.parentPath &&
163
+ (path.parentPath.isVariableDeclarator() || path.parentPath.isAssignmentExpression()) &&
164
+ isTargetExportCall(path.node.callee)) {
165
+ extractAndRecordParams(path.node, "assigned");
166
+ }
167
+ // 4. Check if we're in a function call where one of the arguments is our target call
168
+ const checkForParamInFunctionCall = () => {
169
+ // Get the parent function call
170
+ const parentCall = path.findParent((p) => p.isCallExpression() && p !== path);
171
+ if (!parentCall)
172
+ return false;
173
+ // Check if any of the arguments to the parent function is a call to our export
174
+ if (parentCall.node.arguments) {
175
+ for (let i = 0; i < parentCall.node.arguments.length; i++) {
176
+ const arg = parentCall.node.arguments[i];
177
+ // Check if the argument is an object with properties
178
+ if (arg.type === "ObjectExpression") {
179
+ for (const prop of arg.properties) {
180
+ if (prop.type === "ObjectProperty" &&
181
+ prop.value.type === "CallExpression" &&
182
+ isTargetExportCall(prop.value.callee)) {
183
+ // Found our export being called inside an object passed to another function
184
+ extractAndRecordParams(prop.value, "nested in object");
185
+ return true;
186
+ }
187
+ }
188
+ }
189
+ }
190
+ }
191
+ return false;
192
+ };
193
+ checkForParamInFunctionCall();
194
+ // 5. Look for wrapper functions that call our endpoint function with parameters
195
+ const parentFunction = path.findParent((p) => p.isFunction());
196
+ if (parentFunction && path.parentPath && path.parentPath.isCallExpression()) {
197
+ const parentCall = path.parentPath;
198
+ // Check if the current call is to our exported function
199
+ if (isTargetExportCall(path.node.callee) && parentCall.node.arguments.length > 0) {
200
+ extractAndRecordParams(parentCall.node, "wrapper function");
201
+ }
202
+ }
203
+ // 6. Check for complex assignment patterns: b = async (e) => { (await (0, m.HE)(e)).result... }
204
+ const checkForComplexAssignments = () => {
205
+ // Find variable declarations or assignments that are functions
206
+ const funcDecl = path.findParent((p) => (p.isVariableDeclarator() || p.isAssignmentExpression()) &&
207
+ ((p.node.init &&
208
+ (p.node.init.type === "ArrowFunctionExpression" ||
209
+ p.node.init.type === "FunctionExpression")) ||
210
+ (p.node.right &&
211
+ (p.node.right.type === "ArrowFunctionExpression" ||
212
+ p.node.right.type === "FunctionExpression"))));
213
+ if (funcDecl) {
214
+ // This call is inside a function declaration
215
+ // Check if this function calls our target export
216
+ if (isTargetExportCall(path.node.callee)) {
217
+ extractAndRecordParams(path.node, "complex function");
218
+ }
219
+ }
220
+ return false;
221
+ };
222
+ checkForComplexAssignments();
223
+ // 7. Check for destructuring from the result of our API call: const { result } = await (0, m.HE)(e)
224
+ if (path.parentPath &&
225
+ path.parentPath.isAwaitExpression() &&
226
+ path.parentPath.parentPath &&
227
+ path.parentPath.parentPath.isVariableDeclarator() &&
228
+ path.parentPath.parentPath.node.id.type === "ObjectPattern" &&
229
+ isTargetExportCall(path.node.callee)) {
230
+ extractAndRecordParams(path.node, "destructured result");
231
+ }
232
+ // 8. Check for property access on the result: (await (0, m.HE)(e)).result
233
+ if (path.parentPath &&
234
+ path.parentPath.isAwaitExpression() &&
235
+ path.parentPath.parentPath &&
236
+ path.parentPath.parentPath.isMemberExpression() &&
237
+ isTargetExportCall(path.node.callee)) {
238
+ extractAndRecordParams(path.node, "property access");
239
+ }
240
+ // 9. Check for conditional expressions: n ? b({ params }) : w({ params })
241
+ if (path.parentPath &&
242
+ path.parentPath.isConditionalExpression() &&
243
+ (path.parentPath.node.consequent === path.node || path.parentPath.node.alternate === path.node)) {
244
+ // This call is part of a ternary operation
245
+ // If there are function calls in either branch, examine them
246
+ const checkBranch = (branchNode) => {
247
+ if (branchNode && branchNode.type === "CallExpression") {
248
+ // Extract object properties that might be parameters
249
+ if (branchNode.arguments && branchNode.arguments.length > 0) {
250
+ const arg = branchNode.arguments[0];
251
+ if (arg.type === "ObjectExpression") {
252
+ // Found a call with object parameters in conditional
253
+ const params = astNodeToJsonString(arg, chunkCode);
254
+ // Find the line number in the file
255
+ const functionFile = pathModule.join(directory, importingChunk.file);
256
+ const codeFileContent = fs.readFileSync(functionFile, "utf-8");
257
+ let functionFileLine = -1;
258
+ // Extract code snippet for this call
259
+ const callSnippet = chunkCode.substring(branchNode.start, branchNode.end);
260
+ // Find line in file
261
+ const lines = codeFileContent.split("\n");
262
+ for (let i = 0; i < lines.length; i++) {
263
+ if (lines[i].includes(callSnippet.trim().substring(0, Math.min(callSnippet.length, 30)))) {
264
+ functionFileLine = i + 1;
265
+ break;
266
+ }
267
+ }
268
+ // Check if the object has references to our export
269
+ for (const prop of arg.properties) {
270
+ if (prop.type === "ObjectProperty" &&
271
+ prop.value.type === "MemberExpression" &&
272
+ prop.value.object &&
273
+ prop.value.object.type === "Identifier" &&
274
+ prop.value.object.name === "e") {
275
+ // This is likely a parameter derived from our export
276
+ console.log(chalk.cyan(`[+] Found conditional branch parameter usage for '${exportName}' in chunk ${importingChunkName} ("${functionFile}":${functionFileLine})`));
277
+ console.log(chalk.magenta(` Params: ${params}`));
278
+ result.push({
279
+ chunkId: importingChunkName,
280
+ params: params,
281
+ file: functionFile,
282
+ line: functionFileLine,
283
+ });
284
+ return true;
285
+ }
286
+ }
287
+ }
288
+ }
289
+ }
290
+ return false;
291
+ };
292
+ checkBranch(path.parentPath.node.consequent);
293
+ checkBranch(path.parentPath.node.alternate);
294
+ }
295
+ },
296
+ });
297
+ }
298
+ }
299
+ return result;
300
+ };
301
+ export default findCrossChunkParameters;
302
+ //# sourceMappingURL=findCrossChunkParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findCrossChunkParams.js","sourceRoot":"","sources":["../../../../src/map/next_js/resolveAxiosHelpers/findCrossChunkParams.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import chalk from "chalk";
5
5
  import * as globals from "../../../utility/globals.js";
6
6
  import { astNodeToJsonString } from "./astNodeToJsonString.js";
7
7
  import { resolveNodeValue } from "../utils.js";
8
+ import { traceAxiosInstanceExports } from "./traceAxiosInstanceExports.js";
9
+ import { getThirdArg } from "../resolveAxios.js";
8
10
  const traverse = _traverse.default;
9
11
  /**
10
12
  * Finds the line number of a target line content in a given file content.
@@ -37,17 +39,54 @@ const findLineNumberByContent = (fileContent, targetLineContent) => {
37
39
  export const handleAxiosCreate = (path, ast, chunkCode, directory, chunkName, chunks) => {
38
40
  let axiosCreateVarName = "";
39
41
  let axiosCreateLineNumber = 0;
40
- if (path.parentPath.isCallExpression() && path.parentPath.parentPath.isVariableDeclarator()) {
41
- const varDeclarator = path.parentPath.parentPath.node;
42
- if (varDeclarator.id.type === "Identifier") {
43
- axiosCreateVarName = varDeclarator.id.name;
44
- const axiosCreateLineContent = chunkCode.split("\n")[varDeclarator.loc.start.line - 1];
45
- const chunkFile = fs.readFileSync(fsPath.join(directory, chunks[chunkName].file), "utf-8");
46
- axiosCreateLineNumber = findLineNumberByContent(chunkFile, axiosCreateLineContent);
42
+ // Find the wrapper function that contains the axios.create() call
43
+ // Pattern: p = ((t) => { let e = n.Z.create({...}) })
44
+ // We want 'p', not 'e'
45
+ // First, traverse up to find if we're inside a function
46
+ let wrapperFunction = path.findParent((p) => p.isArrowFunctionExpression() || p.isFunctionExpression());
47
+ if (wrapperFunction) {
48
+ // Now check if this function is assigned to a variable or wrapped in a call expression
49
+ let assignmentParent = wrapperFunction.findParent((p) => p.isAssignmentExpression() || p.isVariableDeclarator());
50
+ if (assignmentParent) {
51
+ if (assignmentParent.isAssignmentExpression()) {
52
+ // Pattern: p = ((t) => {...})
53
+ const assignment = assignmentParent.node;
54
+ if (assignment.left.type === "Identifier") {
55
+ axiosCreateVarName = assignment.left.name;
56
+ const axiosCreateLineContent = chunkCode.split("\n")[assignment.loc.start.line - 1];
57
+ const chunkFile = fs.readFileSync(fsPath.join(directory, chunks[chunkName].file), "utf-8");
58
+ axiosCreateLineNumber = findLineNumberByContent(chunkFile, axiosCreateLineContent);
59
+ }
60
+ }
61
+ else if (assignmentParent.isVariableDeclarator()) {
62
+ // Pattern: const p = ((t) => {...})
63
+ const varDeclarator = assignmentParent.node;
64
+ if (varDeclarator.id.type === "Identifier") {
65
+ axiosCreateVarName = varDeclarator.id.name;
66
+ const axiosCreateLineContent = chunkCode.split("\n")[varDeclarator.loc.start.line - 1];
67
+ const chunkFile = fs.readFileSync(fsPath.join(directory, chunks[chunkName].file), "utf-8");
68
+ axiosCreateLineNumber = findLineNumberByContent(chunkFile, axiosCreateLineContent);
69
+ }
70
+ }
71
+ }
72
+ }
73
+ else {
74
+ // Fallback to old logic if not wrapped in a function
75
+ if (path.parentPath.isCallExpression() && path.parentPath.parentPath.isVariableDeclarator()) {
76
+ const varDeclarator = path.parentPath.parentPath.node;
77
+ if (varDeclarator.id.type === "Identifier") {
78
+ axiosCreateVarName = varDeclarator.id.name;
79
+ const axiosCreateLineContent = chunkCode.split("\n")[varDeclarator.loc.start.line - 1];
80
+ const chunkFile = fs.readFileSync(fsPath.join(directory, chunks[chunkName].file), "utf-8");
81
+ axiosCreateLineNumber = findLineNumberByContent(chunkFile, axiosCreateLineContent);
82
+ }
47
83
  }
48
84
  }
49
85
  if (axiosCreateVarName !== "") {
50
86
  console.log(chalk.magenta(`[✓] axios.create() assigned to '${axiosCreateVarName}' in chunk ${chunkName} ("${directory}/${chunks[chunkName].file}":${axiosCreateLineNumber})`));
87
+ // Trace if this axios instance is exported and re-used in other chunks
88
+ console.log(chalk.blue(` [→] Tracing axios instance '${axiosCreateVarName}' exports...`));
89
+ traceAxiosInstanceExports(chunkName, axiosCreateVarName, chunks, directory);
51
90
  // get the arguments of this axios create. Like .create({})
52
91
  let axiosCreateBaseURL;
53
92
  const axiosCreateArgs = path.parentPath.node.arguments;
@@ -88,7 +127,8 @@ export const handleAxiosCreate = (path, ast, chunkCode, directory, chunkName, ch
88
127
  else {
89
128
  const scope = callPath.scope;
90
129
  const nodeCode = chunkCode.slice(property.value.start, property.value.end);
91
- axiosCreateCallUrl = resolveNodeValue(property.value, scope, nodeCode, "axios");
130
+ const thirdArgName = getThirdArg(ast);
131
+ axiosCreateCallUrl = resolveNodeValue(property.value, scope, nodeCode, "axios", chunkCode, chunks, thirdArgName);
92
132
  }
93
133
  }
94
134
  else if (property.key.name === "method" && property.value.type === "StringLiteral") {
@@ -1 +1 @@
1
- {"version":3,"file":"handleAxiosCreate.js","sourceRoot":"","sources":["../../../../src/map/next_js/resolveAxiosHelpers/handleAxiosCreate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handleAxiosCreate.js","sourceRoot":"","sources":["../../../../src/map/next_js/resolveAxiosHelpers/handleAxiosCreate.ts"],"names":[],"mappings":"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"}