@js-recon/js-recon 1.4.4 → 2.0.1-alpha.2

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 (440) hide show
  1. package/.claude-sync/sync.sh +1 -1
  2. package/.github/dependabot.yml +50 -0
  3. package/.github/workflows/build-and-prettify.yaml +49 -19
  4. package/.github/workflows/codeql.yml +33 -0
  5. package/.github/workflows/exploit-smoke-test.yaml +160 -0
  6. package/.github/workflows/framework-detection-smoke-test.yaml +135 -0
  7. package/.github/workflows/plumber.yml +20 -0
  8. package/.github/workflows/promote-js-recon.yml +5 -3
  9. package/.github/workflows/publish-js-recon.yml +31 -2
  10. package/.github/workflows/rules-smoke-test.yaml +13 -5
  11. package/.nvmrc +1 -0
  12. package/.plumber.yaml +151 -0
  13. package/CHANGELOG.md +55 -0
  14. package/CONTRIBUTING.md +32 -0
  15. package/Dockerfile +1 -0
  16. package/README.md +3 -2
  17. package/SECURITY.md +1 -1
  18. package/build/analyze/engine/astEngine.js +10 -9
  19. package/build/analyze/engine/astEngine.js.map +1 -1
  20. package/build/analyze/engine/csMastSEngine.js +6 -6
  21. package/build/analyze/engine/csMastSEngine.js.map +1 -1
  22. package/build/analyze/engine/index.js +1 -1
  23. package/build/analyze/engine/index.js.map +1 -1
  24. package/build/analyze/engine/requestEngine.js +6 -6
  25. package/build/analyze/engine/requestEngine.js.map +1 -1
  26. package/build/analyze/helpers/determineCompatibleVersion.js +70 -0
  27. package/build/analyze/helpers/determineCompatibleVersion.js.map +1 -0
  28. package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js +9 -3
  29. package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js.map +1 -1
  30. package/build/analyze/helpers/initRules.js +9 -9
  31. package/build/analyze/helpers/initRules.js.map +1 -1
  32. package/build/analyze/helpers/outputHelper.js +3 -3
  33. package/build/analyze/helpers/outputHelper.js.map +1 -1
  34. package/build/analyze/helpers/schemas.js +1 -0
  35. package/build/analyze/helpers/schemas.js.map +1 -1
  36. package/build/analyze/helpers/validate.js +9 -5
  37. package/build/analyze/helpers/validate.js.map +1 -1
  38. package/build/analyze/index.js +26 -16
  39. package/build/analyze/index.js.map +1 -1
  40. package/build/cliProgram.js +733 -0
  41. package/build/cliProgram.js.map +1 -0
  42. package/build/completion/index.js +247 -382
  43. package/build/completion/index.js.map +1 -1
  44. package/build/completion/introspect.js +17 -0
  45. package/build/completion/introspect.js.map +1 -0
  46. package/build/config/applicationConfig.js +3 -2
  47. package/build/config/applicationConfig.js.map +1 -1
  48. package/build/cs_mast/index.js +18 -17
  49. package/build/cs_mast/index.js.map +1 -1
  50. package/build/endpoints/gen_report/gen_json.js +2 -2
  51. package/build/endpoints/gen_report/gen_json.js.map +1 -1
  52. package/build/endpoints/gen_report/utility/iterate_n_store.js +1 -1
  53. package/build/endpoints/gen_report/utility/iterate_n_store.js.map +1 -1
  54. package/build/endpoints/index.js +12 -12
  55. package/build/endpoints/index.js.map +1 -1
  56. package/build/endpoints/next_js/client_jsFilesHref.js +3 -3
  57. package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
  58. package/build/endpoints/next_js/client_jsonParse.js +4 -4
  59. package/build/endpoints/next_js/client_jsonParse.js.map +1 -1
  60. package/build/endpoints/next_js/client_mappedJsonFile.js +6 -6
  61. package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
  62. package/build/endpoints/next_js/client_subsequentRequests.js +5 -5
  63. package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
  64. package/build/exploit/angular/cve-2026-68945.js +61 -0
  65. package/build/exploit/angular/cve-2026-68945.js.map +1 -0
  66. package/build/exploit/index.js +60 -0
  67. package/build/exploit/index.js.map +1 -0
  68. package/build/exploit/next/cve-2025-29927.js +65 -0
  69. package/build/exploit/next/cve-2025-29927.js.map +1 -0
  70. package/build/exploit/next/cve-2026-64645.js +51 -0
  71. package/build/exploit/next/cve-2026-64645.js.map +1 -0
  72. package/build/exploit/nuxt/cve-2026-71315.js +47 -0
  73. package/build/exploit/nuxt/cve-2026-71315.js.map +1 -0
  74. package/build/exploit/nuxt/cve-2026-71320.js +114 -0
  75. package/build/exploit/nuxt/cve-2026-71320.js.map +1 -0
  76. package/build/exploit/react/cve-2025-55182.js +116 -0
  77. package/build/exploit/react/cve-2025-55182.js.map +1 -0
  78. package/build/exploit/registry/cveRegistry.js +115 -0
  79. package/build/exploit/registry/cveRegistry.js.map +1 -0
  80. package/build/exploit/types.js +2 -0
  81. package/build/exploit/types.js.map +1 -0
  82. package/build/exploit/utility/compareResponses.js +29 -0
  83. package/build/exploit/utility/compareResponses.js.map +1 -0
  84. package/build/exploit/utility/outputHelper.js +22 -0
  85. package/build/exploit/utility/outputHelper.js.map +1 -0
  86. package/build/exploit/utility/rawRequest.js +56 -0
  87. package/build/exploit/utility/rawRequest.js.map +1 -0
  88. package/build/exploit/utility/sandboxRce.js +49 -0
  89. package/build/exploit/utility/sandboxRce.js.map +1 -0
  90. package/build/exploit/utility/toEngineOutput.js +28 -0
  91. package/build/exploit/utility/toEngineOutput.js.map +1 -0
  92. package/build/exploit/utility/wsClient.js +78 -0
  93. package/build/exploit/utility/wsClient.js.map +1 -0
  94. package/build/exploit/vite/cve-2025-30208.js +44 -0
  95. package/build/exploit/vite/cve-2025-30208.js.map +1 -0
  96. package/build/exploit/vite/cve-2026-39363.js +60 -0
  97. package/build/exploit/vite/cve-2026-39363.js.map +1 -0
  98. package/build/fingerprint/index.js +3 -2
  99. package/build/fingerprint/index.js.map +1 -1
  100. package/build/globalConfig.js +2 -2
  101. package/build/globalConfig.js.map +1 -1
  102. package/build/index.js +5 -596
  103. package/build/index.js.map +1 -1
  104. package/build/lazyLoad/angular/angular_getFromPageSource.js +3 -3
  105. package/build/lazyLoad/angular/angular_getFromPageSource.js.map +1 -1
  106. package/build/lazyLoad/downloadFilesUtil.js +14 -11
  107. package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
  108. package/build/lazyLoad/downloadQueue.js +9 -1
  109. package/build/lazyLoad/downloadQueue.js.map +1 -1
  110. package/build/lazyLoad/downloadResponse.js +1 -0
  111. package/build/lazyLoad/downloadResponse.js.map +1 -1
  112. package/build/lazyLoad/generic/generic_crawlPages.js +186 -0
  113. package/build/lazyLoad/generic/generic_crawlPages.js.map +1 -0
  114. package/build/lazyLoad/generic/generic_downloadFiles.js +81 -0
  115. package/build/lazyLoad/generic/generic_downloadFiles.js.map +1 -0
  116. package/build/lazyLoad/generic/generic_extractLinks.js +79 -0
  117. package/build/lazyLoad/generic/generic_extractLinks.js.map +1 -0
  118. package/build/lazyLoad/generic/generic_getScriptTags.js +152 -0
  119. package/build/lazyLoad/generic/generic_getScriptTags.js.map +1 -0
  120. package/build/lazyLoad/generic/generic_importMapDiscovery.js +87 -0
  121. package/build/lazyLoad/generic/generic_importMapDiscovery.js.map +1 -0
  122. package/build/lazyLoad/generic/generic_resolveScope.js +66 -0
  123. package/build/lazyLoad/generic/generic_resolveScope.js.map +1 -0
  124. package/build/lazyLoad/generic/generic_scanAttributesForJs.js +122 -0
  125. package/build/lazyLoad/generic/generic_scanAttributesForJs.js.map +1 -0
  126. package/build/lazyLoad/generic/generic_stringsDiscovery.js +103 -0
  127. package/build/lazyLoad/generic/generic_stringsDiscovery.js.map +1 -0
  128. package/build/lazyLoad/generic/generic_webpackChunkPaths.js +56 -0
  129. package/build/lazyLoad/generic/generic_webpackChunkPaths.js.map +1 -0
  130. package/build/lazyLoad/globals.js +31 -0
  131. package/build/lazyLoad/globals.js.map +1 -1
  132. package/build/lazyLoad/index.js +172 -75
  133. package/build/lazyLoad/index.js.map +1 -1
  134. package/build/lazyLoad/methodFilter.js +9 -1
  135. package/build/lazyLoad/methodFilter.js.map +1 -1
  136. package/build/lazyLoad/next_js/NextJsCrawler.js +98 -14
  137. package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
  138. package/build/lazyLoad/next_js/next_GetJSScript.js +3 -3
  139. package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -1
  140. package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js +4 -4
  141. package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js.map +1 -1
  142. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +17 -11
  143. package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
  144. package/build/lazyLoad/next_js/next_SubsequentRequests.js +7 -6
  145. package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
  146. package/build/lazyLoad/next_js/next_bruteForceJsFiles.js +1 -1
  147. package/build/lazyLoad/next_js/next_bruteForceJsFiles.js.map +1 -1
  148. package/build/lazyLoad/next_js/next_buildId.js +2 -2
  149. package/build/lazyLoad/next_js/next_buildId.js.map +1 -1
  150. package/build/lazyLoad/next_js/next_getClientSidePaths.js +2 -2
  151. package/build/lazyLoad/next_js/next_getClientSidePaths.js.map +1 -1
  152. package/build/lazyLoad/next_js/next_parseLayoutJs.js +6 -6
  153. package/build/lazyLoad/next_js/next_parseLayoutJs.js.map +1 -1
  154. package/build/lazyLoad/next_js/next_promiseResolve.js +1 -1
  155. package/build/lazyLoad/next_js/next_promiseResolve.js.map +1 -1
  156. package/build/lazyLoad/next_js/next_routerStateForge.js +407 -0
  157. package/build/lazyLoad/next_js/next_routerStateForge.js.map +1 -0
  158. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +1 -1
  159. package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
  160. package/build/lazyLoad/next_js/next_serverActionIdScan.js +77 -0
  161. package/build/lazyLoad/next_js/next_serverActionIdScan.js.map +1 -0
  162. package/build/lazyLoad/nuxt_js/nuxt_astParse.js +15 -13
  163. package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -1
  164. package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js +2 -2
  165. package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js.map +1 -1
  166. package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +3 -3
  167. package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js.map +1 -1
  168. package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +29 -5
  169. package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -1
  170. package/build/lazyLoad/react/react_sourcemapUrls.js +7 -28
  171. package/build/lazyLoad/react/react_sourcemapUrls.js.map +1 -1
  172. package/build/lazyLoad/react/react_webpackChunkPaths.js +10 -202
  173. package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -1
  174. package/build/lazyLoad/researchUtils.js +15 -0
  175. package/build/lazyLoad/researchUtils.js.map +1 -0
  176. package/build/lazyLoad/shared/webpackChunkParsers.js +218 -0
  177. package/build/lazyLoad/shared/webpackChunkParsers.js.map +1 -0
  178. package/build/lazyLoad/sourcemap.js +120 -0
  179. package/build/lazyLoad/sourcemap.js.map +1 -1
  180. package/build/lazyLoad/stagnation/stagnationMonitor.js +63 -0
  181. package/build/lazyLoad/stagnation/stagnationMonitor.js.map +1 -0
  182. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js +1 -0
  183. package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js.map +1 -1
  184. package/build/lazyLoad/svelte/svelte_getFromPageSource.js +5 -5
  185. package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
  186. package/build/lazyLoad/svelte/svelte_getVersionJson.js +2 -2
  187. package/build/lazyLoad/svelte/svelte_getVersionJson.js.map +1 -1
  188. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js +6 -6
  189. package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js.map +1 -1
  190. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +15 -6
  191. package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
  192. package/build/lazyLoad/techDetect/checkAngularJS.js +1 -1
  193. package/build/lazyLoad/techDetect/checkAngularJS.js.map +1 -1
  194. package/build/lazyLoad/techDetect/checkNuxtJS.js +3 -3
  195. package/build/lazyLoad/techDetect/checkNuxtJS.js.map +1 -1
  196. package/build/lazyLoad/techDetect/checkSvelte.js +0 -1
  197. package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
  198. package/build/lazyLoad/techDetect/checkVueJS.js +6 -6
  199. package/build/lazyLoad/techDetect/checkVueJS.js.map +1 -1
  200. package/build/lazyLoad/techDetect/index.js +17 -1
  201. package/build/lazyLoad/techDetect/index.js.map +1 -1
  202. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +2 -2
  203. package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
  204. package/build/lazyLoad/vue/vue_discoverJsFiles.js +13 -11
  205. package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
  206. package/build/lazyLoad/vue/vue_getClientSidePaths.js +1 -1
  207. package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
  208. package/build/lazyLoad/vue/vue_pageSrc.js +1 -1
  209. package/build/lazyLoad/vue/vue_pageSrc.js.map +1 -1
  210. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +12 -3
  211. package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -1
  212. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +2 -2
  213. package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
  214. package/build/lazyLoad/vue/vue_severalJsFilesHome.js +3 -3
  215. package/build/lazyLoad/vue/vue_severalJsFilesHome.js.map +1 -1
  216. package/build/load/index.js +28 -38
  217. package/build/load/index.js.map +1 -1
  218. package/build/map/angular_js/getAngularConnections.js +6 -6
  219. package/build/map/angular_js/getAngularConnections.js.map +1 -1
  220. package/build/map/graphql/resolveGraphql.js +6 -6
  221. package/build/map/graphql/resolveGraphql.js.map +1 -1
  222. package/build/map/index.js +17 -17
  223. package/build/map/index.js.map +1 -1
  224. package/build/map/interactive-mode/commandHandler.js +278 -0
  225. package/build/map/interactive-mode/commandHandler.js.map +1 -0
  226. package/build/map/interactive-mode/commandHelpers.js +189 -0
  227. package/build/map/interactive-mode/commandHelpers.js.map +1 -0
  228. package/build/map/interactive-mode/esqueryGen.js.map +1 -0
  229. package/build/map/interactive-mode/helpMenu.js +11 -0
  230. package/build/map/interactive-mode/helpMenu.js.map +1 -0
  231. package/build/map/interactive-mode/inputPatch.js.map +1 -0
  232. package/build/map/interactive-mode/interactive.js +71 -0
  233. package/build/map/interactive-mode/interactive.js.map +1 -0
  234. package/build/map/interactive-mode/keybindings.js.map +1 -0
  235. package/build/map/interactive-mode/printer.js.map +1 -0
  236. package/build/map/interactive-mode/ui.js.map +1 -0
  237. package/build/map/next_js/getAxiosInstances.js +5 -5
  238. package/build/map/next_js/getAxiosInstances.js.map +1 -1
  239. package/build/map/next_js/getExports.js +4 -4
  240. package/build/map/next_js/getExports.js.map +1 -1
  241. package/build/map/next_js/getFetchInstances.js +10 -10
  242. package/build/map/next_js/getFetchInstances.js.map +1 -1
  243. package/build/map/next_js/getTurbopackConnections.js +8 -8
  244. package/build/map/next_js/getTurbopackConnections.js.map +1 -1
  245. package/build/map/next_js/getWebpackConnections.js +27 -16
  246. package/build/map/next_js/getWebpackConnections.js.map +1 -1
  247. package/build/map/next_js/interactive.js +3 -65
  248. package/build/map/next_js/interactive.js.map +1 -1
  249. package/build/map/next_js/interactive_helpers/commandHandler.js +38 -290
  250. package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -1
  251. package/build/map/next_js/interactive_helpers/commandHelpers.js +0 -184
  252. package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
  253. package/build/map/next_js/interactive_helpers/helpMenu.js +2 -10
  254. package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -1
  255. package/build/map/next_js/resolveAxios.js +6 -6
  256. package/build/map/next_js/resolveAxios.js.map +1 -1
  257. package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js +4 -4
  258. package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js.map +1 -1
  259. package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js +2 -2
  260. package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js.map +1 -1
  261. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +5 -5
  262. package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
  263. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js +10 -10
  264. package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
  265. package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js +13 -9
  266. package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js.map +1 -1
  267. package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js +12 -8
  268. package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js.map +1 -1
  269. package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js +12 -8
  270. package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js.map +1 -1
  271. package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js +11 -11
  272. package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js.map +1 -1
  273. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +16 -16
  274. package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -1
  275. package/build/map/next_js/resolveFetch.js +23 -23
  276. package/build/map/next_js/resolveFetch.js.map +1 -1
  277. package/build/map/next_js/resolveNewRequest.js +10 -10
  278. package/build/map/next_js/resolveNewRequest.js.map +1 -1
  279. package/build/map/next_js/resolveServerActions.js +4 -4
  280. package/build/map/next_js/resolveServerActions.js.map +1 -1
  281. package/build/map/next_js/utils.js +8 -2
  282. package/build/map/next_js/utils.js.map +1 -1
  283. package/build/map/react_js/getReactConnections.js +21 -14
  284. package/build/map/react_js/getReactConnections.js.map +1 -1
  285. package/build/map/svelte_js/interactive.js +3 -54
  286. package/build/map/svelte_js/interactive.js.map +1 -1
  287. package/build/map/vue_js/getViteConnections.js +23 -16
  288. package/build/map/vue_js/getViteConnections.js.map +1 -1
  289. package/build/map/vue_js/interactive.js +3 -63
  290. package/build/map/vue_js/interactive.js.map +1 -1
  291. package/build/map/vue_js/interactive_helpers/commandHandler.js +34 -283
  292. package/build/map/vue_js/interactive_helpers/commandHandler.js.map +1 -1
  293. package/build/map/vue_js/interactive_helpers/helpMenu.js +2 -10
  294. package/build/map/vue_js/interactive_helpers/helpMenu.js.map +1 -1
  295. package/build/map/vue_js/taint_utils.js +1 -1
  296. package/build/map/vue_js/taint_utils.js.map +1 -1
  297. package/build/map/vue_js/vue_resolveFetch.js +12 -12
  298. package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
  299. package/build/map/vue_js/vue_resolveHttpClient.js +18 -18
  300. package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -1
  301. package/build/map/vue_js/vue_resolveXhr.js +11 -11
  302. package/build/map/vue_js/vue_resolveXhr.js.map +1 -1
  303. package/build/mcp/chatOneShot.js +7 -7
  304. package/build/mcp/chatOneShot.js.map +1 -1
  305. package/build/mcp/claudeCodeCreds.js +5 -5
  306. package/build/mcp/claudeCodeCreds.js.map +1 -1
  307. package/build/mcp/cli.js +36 -35
  308. package/build/mcp/cli.js.map +1 -1
  309. package/build/mcp/config.js +4 -4
  310. package/build/mcp/config.js.map +1 -1
  311. package/build/mcp/index.js +7 -7
  312. package/build/mcp/index.js.map +1 -1
  313. package/build/mcp/mcpServer.js +4 -3
  314. package/build/mcp/mcpServer.js.map +1 -1
  315. package/build/mcp/skills.js +1 -0
  316. package/build/mcp/skills.js.map +1 -1
  317. package/build/mcp/tools.js +6 -5
  318. package/build/mcp/tools.js.map +1 -1
  319. package/build/proxy/detectBlockedResponse.js +2 -0
  320. package/build/proxy/detectBlockedResponse.js.map +1 -1
  321. package/build/proxy/index.js +3 -3
  322. package/build/proxy/index.js.map +1 -1
  323. package/build/refactor/index.js +83 -79
  324. package/build/refactor/index.js.map +1 -1
  325. package/build/refactor/next/index.js +69 -26
  326. package/build/refactor/next/index.js.map +1 -1
  327. package/build/refactor/next/transform.js +11 -4
  328. package/build/refactor/next/transform.js.map +1 -1
  329. package/build/refactor/next/validator.js +7 -7
  330. package/build/refactor/next/validator.js.map +1 -1
  331. package/build/refactor/react/index.js +13 -13
  332. package/build/refactor/react/index.js.map +1 -1
  333. package/build/refactor/react/validator.js +7 -7
  334. package/build/refactor/react/validator.js.map +1 -1
  335. package/build/refactor/react-vite/index.js +3 -3
  336. package/build/refactor/react-vite/index.js.map +1 -1
  337. package/build/refactor/remote/hf-client.js +1 -0
  338. package/build/refactor/remote/hf-client.js.map +1 -1
  339. package/build/refactor/remote/version-detect.js +12 -12
  340. package/build/refactor/remote/version-detect.js.map +1 -1
  341. package/build/refactor/vue/index.js +6 -6
  342. package/build/refactor/vue/index.js.map +1 -1
  343. package/build/refactor/vue/vite.js +6 -6
  344. package/build/refactor/vue/vite.js.map +1 -1
  345. package/build/report/index.js +30 -8
  346. package/build/report/index.js.map +1 -1
  347. package/build/report/swaggerJacker.js +63 -0
  348. package/build/report/swaggerJacker.js.map +1 -0
  349. package/build/report/utility/dataTables/genDataTablesPage.js +2 -1
  350. package/build/report/utility/dataTables/genDataTablesPage.js.map +1 -1
  351. package/build/report/utility/genHtml.js +316 -25
  352. package/build/report/utility/genHtml.js.map +1 -1
  353. package/build/report/utility/markdownGen/addAnalyze.js +2 -1
  354. package/build/report/utility/markdownGen/addAnalyze.js.map +1 -1
  355. package/build/report/utility/populateDb/populateAnalysisFindings.js +2 -2
  356. package/build/report/utility/populateDb/populateAnalysisFindings.js.map +1 -1
  357. package/build/report/utility/populateDb/populateEndpoints.js +3 -3
  358. package/build/report/utility/populateDb/populateEndpoints.js.map +1 -1
  359. package/build/report/utility/populateDb/populateMappedJson.js +2 -2
  360. package/build/report/utility/populateDb/populateMappedJson.js.map +1 -1
  361. package/build/report/utility/populateDb/populateMappedOpenapi.js +3 -3
  362. package/build/report/utility/populateDb/populateMappedOpenapi.js.map +1 -1
  363. package/build/report/utility/severityColors.js +35 -0
  364. package/build/report/utility/severityColors.js.map +1 -0
  365. package/build/run/bundler-detect.js +45 -9
  366. package/build/run/bundler-detect.js.map +1 -1
  367. package/build/run/dashboard/dashboardHtml.js +150 -0
  368. package/build/run/dashboard/dashboardHtml.js.map +1 -0
  369. package/build/run/dashboard/fsBrowser.js +43 -0
  370. package/build/run/dashboard/fsBrowser.js.map +1 -0
  371. package/build/run/dashboard/server.js +123 -0
  372. package/build/run/dashboard/server.js.map +1 -0
  373. package/build/run/dashboard/state.js +97 -0
  374. package/build/run/dashboard/state.js.map +1 -0
  375. package/build/run/index.js +177 -110
  376. package/build/run/index.js.map +1 -1
  377. package/build/run/interruptHandler.js +18 -0
  378. package/build/run/interruptHandler.js.map +1 -1
  379. package/build/sourcemaps/index.js +7 -6
  380. package/build/sourcemaps/index.js.map +1 -1
  381. package/build/strings/index.js +27 -24
  382. package/build/strings/index.js.map +1 -1
  383. package/build/strings/openapi.js +4 -4
  384. package/build/strings/openapi.js.map +1 -1
  385. package/build/strings/permutate.js +4 -4
  386. package/build/strings/permutate.js.map +1 -1
  387. package/build/strings/secrets.js +1 -0
  388. package/build/strings/secrets.js.map +1 -1
  389. package/build/strings/trufflehog.js +66 -19
  390. package/build/strings/trufflehog.js.map +1 -1
  391. package/build/strings/trufflehogConfig.js +36 -0
  392. package/build/strings/trufflehogConfig.js.map +1 -0
  393. package/build/strings/trufflehogDownload.js +115 -0
  394. package/build/strings/trufflehogDownload.js.map +1 -0
  395. package/build/utility/ai.js +33 -4
  396. package/build/utility/ai.js.map +1 -1
  397. package/build/utility/banner.js +4 -3
  398. package/build/utility/banner.js.map +1 -1
  399. package/build/utility/cacheDb.js +78 -0
  400. package/build/utility/cacheDb.js.map +1 -0
  401. package/build/utility/configureSandbox.js +2 -2
  402. package/build/utility/configureSandbox.js.map +1 -1
  403. package/build/utility/customHeaders.js +30 -0
  404. package/build/utility/customHeaders.js.map +1 -0
  405. package/build/utility/globals.js +37 -12
  406. package/build/utility/globals.js.map +1 -1
  407. package/build/utility/heap.js +2 -1
  408. package/build/utility/heap.js.map +1 -1
  409. package/build/utility/makeReq.js +38 -87
  410. package/build/utility/makeReq.js.map +1 -1
  411. package/build/utility/openapiGenerator.js +2 -2
  412. package/build/utility/openapiGenerator.js.map +1 -1
  413. package/build/utility/printMsg.js +53 -0
  414. package/build/utility/printMsg.js.map +1 -0
  415. package/build/utility/progressLog.js +4 -3
  416. package/build/utility/progressLog.js.map +1 -1
  417. package/build/utility/resolvePath.js +2 -1
  418. package/build/utility/resolvePath.js.map +1 -1
  419. package/build/utility/ruleVersionMap.js +73 -0
  420. package/build/utility/ruleVersionMap.js.map +1 -0
  421. package/config.dist.yaml +3 -3
  422. package/contributing/testing.md +106 -0
  423. package/eslint.config.js +24 -0
  424. package/package.json +22 -6
  425. package/scripts/exploit-smoke-test.js +82 -0
  426. package/scripts/framework-detect-smoke-test.js +64 -0
  427. package/scripts/postinstall-completion.mjs +40 -0
  428. package/scripts/smoke-test.js +12 -0
  429. package/build/lazyLoad/downloadLoadedJsUtil.js +0 -98
  430. package/build/lazyLoad/downloadLoadedJsUtil.js.map +0 -1
  431. package/build/map/next_js/interactive_helpers/esqueryGen.js.map +0 -1
  432. package/build/map/next_js/interactive_helpers/inputPatch.js.map +0 -1
  433. package/build/map/next_js/interactive_helpers/keybindings.js.map +0 -1
  434. package/build/map/next_js/interactive_helpers/printer.js.map +0 -1
  435. package/build/map/next_js/interactive_helpers/ui.js.map +0 -1
  436. /package/build/map/{next_js/interactive_helpers → interactive-mode}/esqueryGen.js +0 -0
  437. /package/build/map/{next_js/interactive_helpers → interactive-mode}/inputPatch.js +0 -0
  438. /package/build/map/{next_js/interactive_helpers → interactive-mode}/keybindings.js +0 -0
  439. /package/build/map/{next_js/interactive_helpers → interactive-mode}/printer.js +0 -0
  440. /package/build/map/{next_js/interactive_helpers → interactive-mode}/ui.js +0 -0
@@ -1,310 +1,58 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import chalk from "chalk";
11
- import path from "path";
2
+ import { makeHandleCommand } from "../../interactive-mode/commandHandler.js";
3
+ import sharedCommandHelpers from "../../interactive-mode/commandHelpers.js";
12
4
  import commandHelpers from "./commandHelpers.js";
13
5
  import { helpMenu } from "./helpMenu.js";
14
- import { printFunction } from "./printer.js";
15
- import { runEsqueryCommand } from "./esqueryGen.js";
16
- import fs from "fs";
17
- /**
18
- * Handle user input commands.
19
- * @param {string} text - the user input text.
20
- * @param {State} state - the state of the application.
21
- * @param {Screen} ui - the UI elements.
22
- */
23
- function handleCommand(text, state, ui) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- var _a;
26
- const { outputBox, inputBox, screen } = ui;
27
- if (text !== "" && !text.match(/^\s+$/) && text !== state.commandHistory[state.commandHistory.length - 1]) {
28
- state.commandHistory.push(text);
29
- state.commandHistoryIndex = state.commandHistory.length;
30
- }
31
- if (state.lastCommandStatus) {
32
- outputBox.log(`${chalk.bgGreenBright("%")} ${text}`);
33
- }
34
- else {
35
- outputBox.log(`${chalk.bgRed("%")} ${text}`);
36
- }
37
- if (text === "") {
6
+ const handleCommand = makeHandleCommand({
7
+ helpMenu,
8
+ handleListOption: (option, parts, state, ui, usage) => {
9
+ const { outputBox } = ui;
10
+ if (option === "fetch") {
11
+ outputBox.log(commandHelpers.fetchMenu(state.chunks));
38
12
  state.lastCommandStatus = true;
13
+ return true;
39
14
  }
40
- else if (text === "exit") {
41
- return process.exit(0);
42
- }
43
- else if (text === "help") {
44
- let helpText = chalk.cyan("Available commands:\n");
45
- for (const [key, value] of Object.entries(helpMenu)) {
46
- helpText += chalk.green(`\n${key}:\n`);
47
- helpText += ` ${value.replace(/\n/g, "\n ")}\n`;
48
- }
49
- outputBox.log(helpText);
15
+ if (option === "axios") {
16
+ outputBox.log(commandHelpers.axiosClientsMenu(state.chunks));
50
17
  state.lastCommandStatus = true;
18
+ return true;
51
19
  }
52
- else if (text.startsWith("list")) {
53
- const usage = helpMenu.list;
54
- if (text.split(" ").length < 2) {
55
- outputBox.log(chalk.magenta(usage));
56
- state.lastCommandStatus = false;
57
- }
58
- else {
59
- const option = text.split(" ")[1];
60
- if (option === "") {
61
- outputBox.log(chalk.magenta(usage));
62
- state.lastCommandStatus = false;
63
- }
64
- else if (option === "fetch") {
65
- outputBox.log(commandHelpers.fetchMenu(state.chunks));
66
- state.lastCommandStatus = true;
67
- }
68
- else if (option === "axios") {
69
- outputBox.log(commandHelpers.axiosClientsMenu(state.chunks));
70
- state.lastCommandStatus = true;
71
- }
72
- else if (option === "all") {
73
- outputBox.log(commandHelpers.listAllFunctions(state.chunks));
74
- state.lastCommandStatus = true;
75
- }
76
- else if (option === "desc") {
77
- outputBox.log(commandHelpers.listNonEmptyDescriptionFunctions(state.chunks));
78
- state.lastCommandStatus = true;
79
- }
80
- else if (option === "nav") {
81
- outputBox.log(commandHelpers.navHistory(state.chunks, state.functionNavHistory));
82
- state.lastCommandStatus = true;
83
- }
84
- else if (option === "server_actions") {
85
- outputBox.log(commandHelpers.listServerActions());
86
- state.lastCommandStatus = true;
87
- }
88
- else if (option === "exportnames") {
89
- // get the chunk id
90
- const chunkId = text.split(" ")[2];
91
- if (chunkId === "") {
92
- outputBox.log(chalk.magenta(usage));
93
- state.lastCommandStatus = false;
94
- }
95
- else {
96
- const exportNames = commandHelpers.getExportNames(state.chunks, chunkId);
97
- outputBox.log(exportNames);
98
- state.lastCommandStatus = true;
99
- }
100
- }
101
- else {
102
- outputBox.log(chalk.red(option) + " is not a valid option");
103
- state.lastCommandStatus = false;
104
- }
105
- }
106
- }
107
- else if (text.startsWith("go")) {
108
- const usage = helpMenu.go;
109
- if (text.split(" ").length < 2) {
110
- outputBox.log(chalk.magenta(usage));
111
- state.lastCommandStatus = false;
112
- }
113
- else {
114
- const funcName = text.split(" ")[1];
115
- if (funcName === "") {
116
- outputBox.log(chalk.magenta(usage));
117
- state.lastCommandStatus = false;
118
- }
119
- else if (funcName === "to") {
120
- const funcId = text.split(" ")[2];
121
- // check if the function exists
122
- if (state.chunks[funcId]) {
123
- const funcCode = yield commandHelpers.getFunctionCode(state.chunks, funcId, state);
124
- printFunction(outputBox, funcCode, (_a = state.chunks[funcId]) === null || _a === void 0 ? void 0 : _a.description, state.funcWriteFile);
125
- state.lastCommandStatus = true;
126
- }
127
- else {
128
- outputBox.log(chalk.red(`No function with ID ${funcId} found`));
129
- state.lastCommandStatus = false;
130
- }
131
- // before pushing to the function nav history,
132
- // make sure this is not the same as the last one
133
- if (state.functionNavHistory[state.functionNavHistoryIndex] !== funcId &&
134
- Object.keys(state.chunks).includes(funcId)) {
135
- state.functionNavHistory.push(funcId);
136
- state.functionNavHistoryIndex++;
137
- }
138
- }
139
- else if (funcName === "back") {
140
- if (state.functionNavHistory.length > 0) {
141
- if (state.functionNavHistoryIndex > 0) {
142
- state.functionNavHistoryIndex--;
143
- const funcId = state.functionNavHistory[state.functionNavHistoryIndex];
144
- if (Object.keys(state.chunks).includes(funcId)) {
145
- const funcCode = yield commandHelpers.getFunctionCode(state.chunks, funcId, state);
146
- printFunction(outputBox, funcCode, state.chunks[funcId].description, state.funcWriteFile);
147
- state.lastCommandStatus = true;
148
- }
149
- else {
150
- outputBox.log(chalk.red(`No function with ID ${funcId} found`));
151
- state.lastCommandStatus = false;
152
- }
153
- }
154
- else {
155
- outputBox.log(chalk.red("No previous function found"));
156
- state.lastCommandStatus = false;
157
- }
158
- }
159
- else {
160
- outputBox.log(chalk.red("No previous function found"));
161
- state.lastCommandStatus = false;
162
- }
163
- }
164
- else if (funcName === "ahead") {
165
- if (state.functionNavHistory.length > 0) {
166
- if (state.functionNavHistoryIndex < state.functionNavHistory.length - 1) {
167
- state.functionNavHistoryIndex++;
168
- const funcId = state.functionNavHistory[state.functionNavHistoryIndex];
169
- if (Object.keys(state.chunks).includes(funcId)) {
170
- const funcCode = yield commandHelpers.getFunctionCode(state.chunks, funcId, state);
171
- printFunction(outputBox, funcCode, state.chunks[funcId].description, state.funcWriteFile);
172
- state.lastCommandStatus = true;
173
- }
174
- else {
175
- outputBox.log(chalk.red(`No function with ID ${funcId} found`));
176
- state.lastCommandStatus = false;
177
- }
178
- }
179
- else {
180
- outputBox.log(chalk.red("No next function found"));
181
- state.lastCommandStatus = false;
182
- }
183
- }
184
- else {
185
- outputBox.log(chalk.red("No next function found"));
186
- state.lastCommandStatus = false;
187
- }
188
- }
189
- else {
190
- outputBox.log(chalk.red(funcName) + " is not a valid option");
191
- state.lastCommandStatus = false;
192
- }
193
- }
20
+ if (option === "all") {
21
+ outputBox.log(sharedCommandHelpers.listAllFunctions(state.chunks));
22
+ state.lastCommandStatus = true;
23
+ return true;
194
24
  }
195
- else if (text === "clear") {
196
- outputBox.setText("");
25
+ if (option === "desc") {
26
+ outputBox.log(sharedCommandHelpers.listNonEmptyDescriptionFunctions(state.chunks));
197
27
  state.lastCommandStatus = true;
28
+ return true;
198
29
  }
199
- else if (text.startsWith("set")) {
200
- if (text.split(" ").length < 3) {
201
- outputBox.log(chalk.magenta(helpMenu.set));
202
- state.lastCommandStatus = false;
203
- }
204
- else {
205
- const option = text.split(" ")[1];
206
- if (option === "funcwritefile") {
207
- const fileName = text.split(" ")[2];
208
- state.funcWriteFile = path.join(`${fileName}`);
209
- outputBox.log(chalk.green(`Function write file set to ${state.funcWriteFile}`));
210
- state.lastCommandStatus = true;
211
- }
212
- else if (option === "writeimports") {
213
- // modify the var in state
214
- const modifyVal = text.split(" ")[2];
215
- if (modifyVal === "true") {
216
- state.writeimports = true;
217
- outputBox.log("writeimports: " + chalk.green("true"));
218
- state.lastCommandStatus = true;
219
- }
220
- else if (modifyVal === "false") {
221
- state.writeimports = false;
222
- outputBox.log("writeimports: " + chalk.yellow("false"));
223
- state.lastCommandStatus = true;
224
- }
225
- else {
226
- outputBox.log(chalk.magenta(helpMenu.set));
227
- state.lastCommandStatus = false;
228
- }
229
- }
230
- else if (option === "funcdesc") {
231
- // update the function description
232
- const chunkId = text.split(" ")[2];
233
- if (chunkId === "") {
234
- outputBox.log(chalk.magenta(helpMenu.set));
235
- state.lastCommandStatus = false;
236
- }
237
- else {
238
- // check if the function id exists or not
239
- if (!Object.keys(state.chunks).includes(chunkId)) {
240
- outputBox.log(chalk.red(`Chunk ID ${chunkId} not found`));
241
- state.lastCommandStatus = false;
242
- }
243
- else {
244
- // proceed with modifying chunk name
245
- const newChunkDesc = text.split(" ").slice(3).join(" ");
246
- state.chunks[chunkId].description = newChunkDesc;
247
- // write to file also
248
- fs.writeFileSync(state.mapFile, JSON.stringify(state.chunks, null, 2));
249
- outputBox.log(chalk.green(`Description for ${chunkId} modified: ${newChunkDesc}`));
250
- state.lastCommandStatus = true;
251
- }
252
- }
253
- }
254
- else {
255
- outputBox.log(chalk.red(option) + " is not a valid option");
256
- state.lastCommandStatus = false;
257
- }
258
- }
30
+ if (option === "nav") {
31
+ outputBox.log(sharedCommandHelpers.navHistory(state.chunks, state.functionNavHistory));
32
+ state.lastCommandStatus = true;
33
+ return true;
259
34
  }
260
- else if (text.startsWith("esquery")) {
261
- const usage = helpMenu.esquery;
262
- const parts = text.split(" ");
263
- if (parts.length < 3) {
264
- outputBox.log(chalk.magenta(usage));
265
- state.lastCommandStatus = false;
266
- }
267
- else {
268
- const chunkId = parts[1];
269
- const search = parts.slice(2).join(" ");
270
- try {
271
- const result = runEsqueryCommand(state.chunks, chunkId, search);
272
- outputBox.log(result);
273
- state.lastCommandStatus = true;
274
- }
275
- catch (err) {
276
- outputBox.log(chalk.red(err instanceof Error ? err.message : String(err)));
277
- state.lastCommandStatus = false;
278
- }
279
- }
35
+ if (option === "server_actions") {
36
+ outputBox.log(commandHelpers.listServerActions());
37
+ state.lastCommandStatus = true;
38
+ return true;
280
39
  }
281
- else if (text.startsWith("trace")) {
282
- const usage = helpMenu.trace;
283
- if (text.split(" ").length < 2) {
40
+ if (option === "exportnames") {
41
+ // get the chunk id
42
+ const chunkId = parts[2];
43
+ if (chunkId === "") {
284
44
  outputBox.log(chalk.magenta(usage));
285
45
  state.lastCommandStatus = false;
286
46
  }
287
47
  else {
288
- const option = text.split(" ")[1];
289
- if (option === "") {
290
- outputBox.log(chalk.magenta(usage));
291
- state.lastCommandStatus = false;
292
- }
293
- else {
294
- const funcName = text.split(" ")[1];
295
- outputBox.log(commandHelpers.traceFunction(state.chunks, funcName));
296
- state.lastCommandStatus = true;
297
- }
48
+ const exportNames = sharedCommandHelpers.getExportNames(state.chunks, chunkId);
49
+ outputBox.log(exportNames);
50
+ state.lastCommandStatus = true;
298
51
  }
52
+ return true;
299
53
  }
300
- else {
301
- outputBox.log((chalk.red(text), "is not a valid command"));
302
- state.lastCommandStatus = false;
303
- }
304
- inputBox.clearValue();
305
- inputBox.focus();
306
- screen.render();
307
- });
308
- }
54
+ return false;
55
+ },
56
+ });
309
57
  export { handleCommand };
310
58
  //# sourceMappingURL=commandHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commandHandler.js","sourceRoot":"","sources":["../../../../src/map/next_js/interactive_helpers/commandHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commandHandler.js","sourceRoot":"","sources":["../../../../src/map/next_js/interactive_helpers/commandHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAC5E,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,aAAa,GAAG,iBAAiB,CAAC;IACpC,QAAQ;IACR,gBAAgB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;QAClD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;QAEzB,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACrB,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACrB,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACnE,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACpB,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,gCAAgC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACnF,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACvF,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;YAC9B,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAClD,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC3B,mBAAmB;YACnB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBACjB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpC,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACJ,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/E,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC3B,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACnC,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAC,CAAC;AAEH,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1,14 +1,4 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import chalk from "chalk";
11
- import prettier from "prettier";
12
2
  import { getOpenapiOutput } from "../../../utility/globals.js";
13
3
  const commandHelpers = {
14
4
  /**
@@ -39,180 +29,6 @@ const commandHelpers = {
39
29
  }
40
30
  return returnText;
41
31
  },
42
- /**
43
- * Retrieves the code of a specific function.
44
- * @param {Chunks} chunks - Collection of code chunks to analyze
45
- * @param {string} funcName - Name of the function to retrieve code for
46
- * @param {State} state - State object containing writeimports flag
47
- * @returns {Promise<string>} - A Promise that resolves to the code of the specified function
48
- */
49
- getFunctionCode: (chunks, funcName, state) => __awaiter(void 0, void 0, void 0, function* () {
50
- let funcCode;
51
- for (const chunk of Object.values(chunks)) {
52
- if (chunk.id == funcName) {
53
- funcCode = chunk.code;
54
- }
55
- }
56
- if (state.writeimports === true) {
57
- // get the imports one by one, and append it to funcCode
58
- if (chunks[funcName].imports.length > 0) {
59
- funcCode += "\n\n// Imports:\n\n";
60
- for (const importName of chunks[funcName].imports) {
61
- // append the description as docstring
62
- // and the code for the function
63
- funcCode += `/**\n* ${chunks[importName].description}\n*/\n${chunks[importName].code}`;
64
- }
65
- }
66
- }
67
- // beautify the code
68
- funcCode = yield prettier.format(funcCode, { parser: "babel" });
69
- if (!funcCode) {
70
- return chalk.red(`Function ${funcName} not found`);
71
- }
72
- return funcCode;
73
- }),
74
- /**
75
- * Lists all functions in the code chunks.
76
- * @param {Chunks} chunks - Collection of code chunks to analyze
77
- * @returns {string} - A string containing the list of all functions
78
- */
79
- listAllFunctions: (chunks) => {
80
- let returnText = chalk.cyan("List of all functions\n");
81
- for (const chunk of Object.values(chunks)) {
82
- returnText += chalk.green(`- ${chunk.id}: ${chunk.description} (${chunk.file})\n`);
83
- }
84
- return returnText;
85
- },
86
- /**
87
- * Retrieves the navigation history.
88
- * @param {Chunks} chunks - Collection of code chunks to analyze
89
- * @param {string[]} navList - List of function IDs in navigation history
90
- * @returns {string} - A string containing the navigation history
91
- */
92
- navHistory: (chunks, navList) => {
93
- let returnText = chalk.cyan("Navigation history\n");
94
- if (navList.length === 0) {
95
- returnText += chalk.yellow("- No navigation history");
96
- }
97
- else {
98
- for (const id of navList) {
99
- if (Object.keys(chunks).includes(id)) {
100
- returnText += chalk.green(`- ${id}: ${chunks[id].description}\n`);
101
- }
102
- else {
103
- returnText += chalk.yellow(`- ${id}: <function not found>\n`);
104
- }
105
- }
106
- }
107
- return returnText;
108
- },
109
- /**
110
- * Traces a specific function.
111
- * @param {Chunks} chunks - Collection of code chunks to analyze
112
- * @param {string} funcName - Name of the function to trace
113
- * @returns {string} - A string containing the trace of the specified function
114
- */
115
- traceFunction: (chunks, funcName) => {
116
- let returnText = chalk.cyan(`Tracing function ${funcName}\n`);
117
- const thisChunk = chunks[funcName];
118
- if (!thisChunk) {
119
- returnText += chalk.red(`Function ${funcName} not found`);
120
- }
121
- else {
122
- // get imports
123
- if (thisChunk.imports.length === 0) {
124
- returnText += chalk.yellow("- No imports");
125
- }
126
- else {
127
- returnText += chalk.greenBright("Imports:\n");
128
- for (const importName of thisChunk.imports) {
129
- const funcDesc = chunks[importName].description;
130
- returnText += chalk.green(`- ${importName}: ${funcDesc}\n`);
131
- }
132
- }
133
- returnText += "\n";
134
- // get functions which import this particular function
135
- // iterate over the function
136
- let exported_to_chunks = [];
137
- for (const chunk of Object.values(chunks)) {
138
- // get the imports
139
- const chunk_imports = chunk.imports;
140
- // see if the import includes this particular ID
141
- for (const chunk_import of chunk_imports) {
142
- // if so, then push to the var
143
- if (chunk_import == funcName) {
144
- exported_to_chunks.push(chunk.id);
145
- }
146
- }
147
- }
148
- // append to return text
149
- if (exported_to_chunks.length === 0) {
150
- returnText += chalk.yellow("- No exports");
151
- }
152
- else {
153
- returnText += chalk.greenBright("Exports:\n");
154
- for (const exportName of exported_to_chunks) {
155
- returnText += chalk.green(`- ${exportName}: ${chunks[exportName].description}\n`);
156
- }
157
- }
158
- }
159
- return returnText;
160
- },
161
- getExportNames: (chunks, chunkId) => {
162
- // check if the chunk exists
163
- if (!chunks[chunkId] && chunkId !== "all" && chunkId !== "nonempty") {
164
- return chalk.red(`Chunk ${chunkId} not found`);
165
- }
166
- let returnText = chalk.cyan("List of export names\n");
167
- if (chunkId === "all") {
168
- returnText += "\n";
169
- returnText += chalk.magenta("Listing all chunks:\n");
170
- for (const chunk of Object.keys(chunks)) {
171
- returnText += chalk.green(`- ${chunk}: ${chunks[chunk].description}\n`);
172
- for (const exportName of chunks[chunk].exports) {
173
- returnText += chalk.green(` - ${exportName}\n`);
174
- }
175
- }
176
- }
177
- else if (chunkId === "nonempty") {
178
- returnText += "\n";
179
- returnText += chalk.magenta("Listing all chunks:\n");
180
- for (const chunk of Object.keys(chunks)) {
181
- if (chunks[chunk].exports.length > 0) {
182
- returnText += chalk.green(`- ${chunk}: ${chunks[chunk].description}\n`);
183
- for (const exportName of chunks[chunk].exports) {
184
- returnText += chalk.green(` - ${exportName}\n`);
185
- }
186
- }
187
- }
188
- }
189
- else {
190
- // check if it is empty
191
- if (chunks[chunkId].exports.length === 0) {
192
- returnText += chalk.yellow("- No exports");
193
- }
194
- else {
195
- for (const exportName of chunks[chunkId].exports) {
196
- returnText += chalk.green(`- ${exportName}\n`);
197
- }
198
- }
199
- }
200
- return returnText;
201
- },
202
- listNonEmptyDescriptionFunctions: (chunks) => {
203
- let returnText = chalk.cyan("List of functions with non-empty descriptions\n");
204
- let count = 0;
205
- for (const chunk of Object.values(chunks)) {
206
- if (chunk.description !== "none") {
207
- returnText += chalk.green(`- ${chunk.id}: ${chunk.description}\n`);
208
- count++;
209
- }
210
- }
211
- if (count === 0) {
212
- returnText += chalk.yellow("- No functions with non-empty descriptions");
213
- }
214
- return returnText;
215
- },
216
32
  listServerActions: () => {
217
33
  var _a;
218
34
  const items = getOpenapiOutput().filter((item) => { var _a; return (_a = item.headers) === null || _a === void 0 ? void 0 : _a["next-action"]; });
@@ -1 +1 @@
1
- {"version":3,"file":"commandHelpers.js","sourceRoot":"","sources":["../../../../src/map/next_js/interactive_helpers/commandHelpers.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,cAAc,GAAG;IACnB;;;;OAIG;IACH,SAAS,EAAE,CAAC,MAAc,EAAE,EAAE;QAC1B,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC7E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACtB,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,MAAc,EAAE,EAAE;QACjC,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACvE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD;;;;;;OAMG;IACH,eAAe,EAAE,CAAO,MAAc,EAAE,QAAgB,EAAE,KAAY,EAAE,EAAE;QACtE,IAAI,QAAgB,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACvB,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC9B,wDAAwD;YAExD,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,QAAQ,IAAI,qBAAqB,CAAC;gBAClC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;oBAChD,sCAAsC;oBACtC,gCAAgC;oBAChC,QAAQ,IAAI,UAAU,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,SAAS,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3F,CAAC;YACL,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,QAAQ,YAAY,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAA;IACD;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,MAAc,EAAE,EAAE;QACjC,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD;;;;;OAKG;IACH,UAAU,EAAE,CAAC,MAAc,EAAE,OAAiB,EAAU,EAAE;QACtD,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACvB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBACnC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACJ,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;gBAClE,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD;;;;;OAKG;IACH,aAAa,EAAE,CAAC,MAAc,EAAE,QAAgB,EAAE,EAAE;QAChD,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,IAAI,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,QAAQ,YAAY,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACJ,cAAc;YACd,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,UAAU,IAAI,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC9C,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;oBACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC;oBAChD,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC;YAED,UAAU,IAAI,IAAI,CAAC;YACnB,sDAAsD;YACtD,4BAA4B;YAC5B,IAAI,kBAAkB,GAAG,EAAE,CAAC;YAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,kBAAkB;gBAClB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;gBAEpC,gDAAgD;gBAChD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;oBACvC,8BAA8B;oBAC9B,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;wBAC3B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACtC,CAAC;gBACL,CAAC;YACL,CAAC;YAED,wBAAwB;YACxB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,UAAU,IAAI,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC9C,KAAK,MAAM,UAAU,IAAI,kBAAkB,EAAE,CAAC;oBAC1C,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;gBACtF,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,cAAc,EAAE,CAAC,MAAc,EAAE,OAAe,EAAU,EAAE;QACxD,4BAA4B;QAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAClE,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,OAAO,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAEtD,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACpB,UAAU,IAAI,IAAI,CAAC;YACnB,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;gBACxE,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC7C,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAChC,UAAU,IAAI,IAAI,CAAC;YACnB,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;oBACxE,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;wBAC7C,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC;oBACrD,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,uBAAuB;YACvB,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACJ,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC/C,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC;gBACnD,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,gCAAgC,EAAE,CAAC,MAAc,EAAE,EAAE;QACjD,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/E,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;gBAC/B,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;gBACnE,KAAK,EAAE,CAAC;YACZ,CAAC;QACL,CAAC;QACD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACd,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC;QAC7E,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,iBAAiB,EAAE,GAAG,EAAE;;QACpB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,OAAO,0CAAG,aAAa,CAAC,CAAA,EAAA,CAAC,CAAC;QACjF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QAClE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,QAAQ,CAAC;YACtC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACvC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC;YAC3C,UAAU,IAAI,eAAe,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,UAAU,IAAI,eAAe,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,UAAU,IAAI,eAAe,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;YAChG,CAAC;YACD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,UAAU,IAAI,eAAe,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC;YAC5G,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,UAAU,IAAI,eAAe,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,CAAC;YACD,UAAU,IAAI,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"commandHelpers.js","sourceRoot":"","sources":["../../../../src/map/next_js/interactive_helpers/commandHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,4 @@
1
- const helpMenu = {
2
- help: "Show this help menu",
3
- exit: "Exit the interactive mode",
4
- clear: "Clear the output box",
5
- list: "Usage: list <option>\n fetch: List functions that contain fetch instances\n axios: List functions that are axios clients\n all: List all functions\n desc: List all functions with non-empty descriptions\n nav: List navigation history\n server_actions: List all discovered Next.js Server Actions with route, body args, and source locations\n exportnames <option>: List export names for a chunk\n <chunkId>: List export names for a specific chunk\n all: List export names for all chunks\n nonempty: List export names for all non-empty chunks",
6
- go: "Usage: go <option>\n to <functionID>: Go to a specific function\n back: Go back to the previous function\n ahead: Go to the next function",
7
- set: "Usage: set <option> <value>\n funcwritefile <filename>: Set file to write function code to\n writeimports [true/false]: When using `go *` command, also write all the imports to the file\n funcdesc <functionId> <description>: Set the description of the provided function ID with provided value",
8
- trace: "Usage: trace <functionName>\n Traces imports for a function",
9
- esquery: "Usage: esquery <chunkId|*> <code-snippet>\n Find AST nodes whose minified source contains the (also minified) snippet, and print a loose + strict esquery selector for each. Use `*` (or `all`) as the chunk to scan every chunk. Example: esquery * fetch(`/api/docs/${file}`)",
10
- };
1
+ import { baseHelpMenu } from "../../interactive-mode/helpMenu.js";
2
+ const helpMenu = Object.assign(Object.assign({}, baseHelpMenu), { list: "Usage: list <option>\n fetch: List functions that contain fetch instances\n axios: List functions that are axios clients\n all: List all functions\n desc: List all functions with non-empty descriptions\n nav: List navigation history\n server_actions: List all discovered Next.js Server Actions with route, body args, and source locations\n exportnames <option>: List export names for a chunk\n <chunkId>: List export names for a specific chunk\n all: List export names for all chunks\n nonempty: List export names for all non-empty chunks" });
11
3
  export { helpMenu };
12
4
  //# sourceMappingURL=helpMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpMenu.js","sourceRoot":"","sources":["../../../../src/map/next_js/interactive_helpers/helpMenu.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACb,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,2BAA2B;IACjC,KAAK,EAAE,sBAAsB;IAC7B,IAAI,EAAE,8lBAA8lB;IACpmB,EAAE,EAAE,+JAA+J;IACnK,GAAG,EAAE,ySAAyS;IAC9S,KAAK,EAAE,8DAA8D;IACrE,OAAO,EACH,kRAAkR;CACzR,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"helpMenu.js","sourceRoot":"","sources":["../../../../src/map/next_js/interactive_helpers/helpMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,MAAM,QAAQ,mCACP,YAAY,KACf,IAAI,EAAE,8lBAA8lB,GACvmB,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}