@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,4 +1,5 @@
1
1
  import hljs from "highlight.js";
2
+ import { severityBadgeHtml } from "../severityColors.js";
2
3
  /**
3
4
  * Escapes HTML characters in a given string.
4
5
  * This function replaces the following characters with their HTML entity equivalents:
@@ -95,7 +96,7 @@ const genDataTablesPage = (db) => {
95
96
  <td>${escapeHtml(f.ruleDescription)}</td>
96
97
  <td>${escapeHtml(f.ruleAuthor)}</td>
97
98
  <td>${escapeHtml(f.ruleTech)}</td>
98
- <td data-order="${severityRank(f.severity)}">${escapeHtml(f.severity)}</td>
99
+ <td data-order="${severityRank(f.severity)}">${severityBadgeHtml(f.severity)}</td>
99
100
  <td>${escapeHtml(f.message)}</td>
100
101
  <td>${renderJsCode(f.findingLocation)}</td>
101
102
  </tr>`)
@@ -1 +1 @@
1
- {"version":3,"file":"genDataTablesPage.js","sourceRoot":"","sources":["../../../../src/report/utility/dataTables/genDataTablesPage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genDataTablesPage.js","sourceRoot":"","sources":["../../../../src/report/utility/dataTables/genDataTablesPage.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAwBzD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,GAAG,CAAC,KAAc,EAAU,EAAE;IAC1C,MAAM,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,GAAG;SACL,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,GAAG,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE;IACzC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACtD,QAAQ,CAAC,EAAE,CAAC;QACR,KAAK,MAAM;YACP,OAAO,CAAC,CAAC;QACb,KAAK,KAAK;YACN,OAAO,CAAC,CAAC;QACb,KAAK,QAAQ;YACT,OAAO,CAAC,CAAC;QACb,KAAK,MAAM;YACP,OAAO,CAAC,CAAC;QACb;YACI,OAAO,EAAE,CAAC,CAAC,2BAA2B;IAC9C,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,CAAC,IAA+B,EAAU,EAAE;IAC7D,MAAM,GAAG,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;IACvB,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;QAChG,OAAO,iEAAiE,WAAW,eAAe,CAAC;IACvG,CAAC;IAAC,WAAM,CAAC;QACL,iCAAiC;QACjC,OAAO,0BAA0B,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7D,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,CAAC,EAAqB,EAAU,EAAE;IACxD,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,GAAG,EAAuB,CAAC;IAC1F,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAkB,CAAC;IAExE,MAAM,YAAY,GAAG,QAAQ;SACxB,GAAG,CACA,CAAC,CAAC,EAAE,EAAE,CAAC;;sBAEG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;sBACpB,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;sBACtB,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;sBACtB,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;sBAC7B,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;sBACxB,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;kCACV,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;sBACtE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;sBACrB,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC;kBACnC,CACT;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,UAAU,GAAG,MAAM;SACpB,GAAG,CACA,CAAC,CAAC,EAAE,EAAE,CAAC;;sBAEG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;sBAChB,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;sBACzB,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;sBAC5B,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;sBAC5B,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;sBACrB,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;sBACrB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;kBACtB,CACT;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;YAkBL,YAAY;;;;;;;;;;;;;;;;;;YAkBZ,UAAU;;;eAGP,CAAC;IAEZ,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -7,7 +7,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import chalk from "chalk";
11
10
  import fs from "fs";
12
11
  import { marked } from "marked";
13
12
  import hljs from "highlight.js";
@@ -16,12 +15,13 @@ import CONFIG from "../../globalConfig.js";
16
15
  import addMappedJson from "./markdownGen/addMappedJson.js";
17
16
  import genDataTablesPage from "./dataTables/genDataTablesPage.js";
18
17
  import { createRequire } from "module";
18
+ import { printMsg, MSG } from "../../utility/printMsg.js";
19
19
  /**
20
20
  * Attempts to read local DataTables assets from node_modules (for offline/self-contained reports)
21
21
  *
22
22
  * @returns An object containing the DataTables JavaScript and CSS, or null if not found
23
23
  */
24
- const getLocalDataTablesAssets = () => {
24
+ export const getLocalDataTablesAssets = () => {
25
25
  try {
26
26
  const require = createRequire(import.meta.url);
27
27
  const dtJsPath = require.resolve("datatables.net/js/dataTables.min.js");
@@ -31,7 +31,7 @@ const getLocalDataTablesAssets = () => {
31
31
  return { js, css };
32
32
  }
33
33
  catch (e) {
34
- console.warn("[DataTables] Local assets not found; falling back to CDN", (e === null || e === void 0 ? void 0 : e.message) || e);
34
+ printMsg(MSG.Warn, `[DataTables] Local assets not found; falling back to CDN ${(e === null || e === void 0 ? void 0 : e.message) || e}`);
35
35
  return { js: null, css: null };
36
36
  }
37
37
  };
@@ -40,7 +40,7 @@ const getLocalDataTablesAssets = () => {
40
40
  *
41
41
  * @returns The jQuery JavaScript, or null if not found
42
42
  */
43
- const getLocalJqueryAsset = () => {
43
+ export const getLocalJqueryAsset = () => {
44
44
  try {
45
45
  const require = createRequire(import.meta.url);
46
46
  // Try the direct subpath first (jQuery <4); if that fails (jQuery 4+ restricts
@@ -59,61 +59,230 @@ const getLocalJqueryAsset = () => {
59
59
  return js;
60
60
  }
61
61
  catch (_b) {
62
- console.warn("[DataTables] Local jQuery not found; falling back to CDN");
62
+ printMsg(MSG.Warn, "[DataTables] Local jQuery not found; falling back to CDN");
63
63
  return null;
64
64
  }
65
65
  };
66
+ /**
67
+ * Attempts to read the local highlight.js light/dark theme stylesheets from node_modules
68
+ * (avoids depending on a CDN for code-block syntax highlighting colors).
69
+ *
70
+ * @returns An object containing the light and dark theme CSS, or null for either if not found
71
+ */
72
+ export const getLocalHljsThemes = () => {
73
+ try {
74
+ const require = createRequire(import.meta.url);
75
+ const lightPath = require.resolve("highlight.js/styles/github.css");
76
+ const darkPath = require.resolve("highlight.js/styles/github-dark.css");
77
+ const light = fs.readFileSync(lightPath, "utf8");
78
+ const dark = fs.readFileSync(darkPath, "utf8");
79
+ return { light, dark };
80
+ }
81
+ catch (e) {
82
+ printMsg(MSG.Warn, `[Highlight.js] Local theme assets not found; falling back to CDN ${(e === null || e === void 0 ? void 0 : e.message) || e}`);
83
+ return { light: null, dark: null };
84
+ }
85
+ };
66
86
  /**
67
87
  * Generates an HTML report based on the provided markdown and assets.
68
88
  *
69
89
  * @param analyzeMarkdown - The markdown for the analyze section
70
90
  * @param mappedJsonMarkdown - The markdown for the mapped JSON section
71
91
  * @param dataTablesHtml - The HTML for the data tables section
92
+ * @param aboutHtml - The pre-rendered HTML for the about section
72
93
  * @param dtAssets - The DataTables assets (JavaScript and CSS)
73
94
  * @param jqueryJs - The jQuery JavaScript
95
+ * @param hljsThemes - The highlight.js light/dark theme CSS
74
96
  *
75
97
  * @returns The generated HTML report as a string
76
98
  */
77
- const html = (analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, dtAssets, jqueryJs) => __awaiter(void 0, void 0, void 0, function* () {
99
+ const html = (analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, aboutHtml, dtAssets, jqueryJs, hljsThemes) => __awaiter(void 0, void 0, void 0, function* () {
78
100
  return `<!DOCTYPE html>
79
101
  <html>
80
102
  <head>
81
103
  <meta charset="UTF-8">
104
+ <script>
105
+ (function () {
106
+ try {
107
+ var stored = localStorage.getItem('jsrTheme');
108
+ var theme = stored === 'light' || stored === 'dark'
109
+ ? stored
110
+ : (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
111
+ document.documentElement.setAttribute('data-theme', theme);
112
+ } catch (e) {}
113
+ })();
114
+ </script>
82
115
  <title>JS Recon Report</title>
83
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/styles/github-dark.css">
116
+ ${hljsThemes.light
117
+ ? `<style id="hljs-light">${hljsThemes.light}</style>`
118
+ : `<link id="hljs-light" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/styles/github.css">`}
119
+ ${hljsThemes.dark
120
+ ? `<style id="hljs-dark" disabled>${hljsThemes.dark}</style>`
121
+ : `<link id="hljs-dark" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highlight.js@11.9.0/styles/github-dark.css" disabled>`}
84
122
  ${dtAssets.css
85
123
  ? `<style id="dt-inline-css">${dtAssets.css}</style>`
86
124
  : `<link rel="stylesheet" href="https://cdn.datatables.net/2.0.8/css/dataTables.dataTables.min.css">`}
87
125
  <style>
126
+ :root {
127
+ --bg: #f5f6f8;
128
+ --surface: #ffffff;
129
+ --text: #1a1a1a;
130
+ --text-muted: #5a6472;
131
+ --border: #e0e0e0;
132
+ --accent: #2563eb;
133
+ --accent-text: #ffffff;
134
+ --table-hover: #f0f4ff;
135
+ --code-bg: #f6f8fa;
136
+ --shadow: rgba(0, 0, 0, 0.08);
137
+
138
+ --sev-info-bg: #e0f2fe;
139
+ --sev-info-text: #075985;
140
+ --sev-info-border: #7dd3fc;
141
+ --sev-low-bg: #dcfce7;
142
+ --sev-low-text: #166534;
143
+ --sev-low-border: #86efac;
144
+ --sev-medium-bg: #fef9c3;
145
+ --sev-medium-text: #854d0e;
146
+ --sev-medium-border: #fde047;
147
+ --sev-high-bg: #fee2e2;
148
+ --sev-high-text: #991b1b;
149
+ --sev-high-border: #fca5a5;
150
+ }
151
+ @media (prefers-color-scheme: dark) {
152
+ :root {
153
+ --bg: #0f1117;
154
+ --surface: #171923;
155
+ --text: #e5e7eb;
156
+ --text-muted: #9ca3af;
157
+ --border: #2d3340;
158
+ --accent: #60a5fa;
159
+ --accent-text: #0f1117;
160
+ --table-hover: #1f2430;
161
+ --code-bg: #1e222c;
162
+ --shadow: rgba(0, 0, 0, 0.4);
163
+
164
+ --sev-info-bg: #0c4a6e;
165
+ --sev-info-text: #bae6fd;
166
+ --sev-info-border: #0ea5e9;
167
+ --sev-low-bg: #14532d;
168
+ --sev-low-text: #bbf7d0;
169
+ --sev-low-border: #22c55e;
170
+ --sev-medium-bg: #713f12;
171
+ --sev-medium-text: #fef08a;
172
+ --sev-medium-border: #eab308;
173
+ --sev-high-bg: #7f1d1d;
174
+ --sev-high-text: #fecaca;
175
+ --sev-high-border: #ef4444;
176
+ }
177
+ }
178
+ html[data-theme="light"] {
179
+ --bg: #f5f6f8;
180
+ --surface: #ffffff;
181
+ --text: #1a1a1a;
182
+ --text-muted: #5a6472;
183
+ --border: #e0e0e0;
184
+ --accent: #2563eb;
185
+ --accent-text: #ffffff;
186
+ --table-hover: #f0f4ff;
187
+ --code-bg: #f6f8fa;
188
+ --shadow: rgba(0, 0, 0, 0.08);
189
+ --sev-info-bg: #e0f2fe;
190
+ --sev-info-text: #075985;
191
+ --sev-info-border: #7dd3fc;
192
+ --sev-low-bg: #dcfce7;
193
+ --sev-low-text: #166534;
194
+ --sev-low-border: #86efac;
195
+ --sev-medium-bg: #fef9c3;
196
+ --sev-medium-text: #854d0e;
197
+ --sev-medium-border: #fde047;
198
+ --sev-high-bg: #fee2e2;
199
+ --sev-high-text: #991b1b;
200
+ --sev-high-border: #fca5a5;
201
+ }
202
+ html[data-theme="dark"] {
203
+ --bg: #0f1117;
204
+ --surface: #171923;
205
+ --text: #e5e7eb;
206
+ --text-muted: #9ca3af;
207
+ --border: #2d3340;
208
+ --accent: #60a5fa;
209
+ --accent-text: #0f1117;
210
+ --table-hover: #1f2430;
211
+ --code-bg: #1e222c;
212
+ --shadow: rgba(0, 0, 0, 0.4);
213
+ --sev-info-bg: #0c4a6e;
214
+ --sev-info-text: #bae6fd;
215
+ --sev-info-border: #0ea5e9;
216
+ --sev-low-bg: #14532d;
217
+ --sev-low-text: #bbf7d0;
218
+ --sev-low-border: #22c55e;
219
+ --sev-medium-bg: #713f12;
220
+ --sev-medium-text: #fef08a;
221
+ --sev-medium-border: #eab308;
222
+ --sev-high-bg: #7f1d1d;
223
+ --sev-high-text: #fecaca;
224
+ --sev-high-border: #ef4444;
225
+ }
226
+
227
+ * { box-sizing: border-box; }
228
+
229
+ body {
230
+ padding-top: 80px; /* Height of the navbar */
231
+ margin: 0;
232
+ background: var(--bg);
233
+ color: var(--text);
234
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
235
+ transition: background-color 0.15s ease, color 0.15s ease;
236
+ }
237
+
238
+ a { color: var(--accent); }
239
+
240
+ #content {
241
+ max-width: 1150px;
242
+ margin: 0 auto;
243
+ padding: 8px 24px 60px;
244
+ }
245
+
88
246
  h2, h3, h4 {
89
247
  cursor: pointer;
90
248
  position: relative;
91
249
  padding-left: 20px;
250
+ color: var(--text);
92
251
  }
93
252
  h2::before, h3::before, h4::before {
94
253
  content: '▼';
95
254
  position: absolute;
96
255
  left: 0;
97
256
  transition: transform 0.2s;
257
+ font-size: 0.7em;
258
+ top: 0.35em;
98
259
  }
99
260
  .collapsed::before {
100
261
  transform: rotate(-90deg);
101
262
  }
102
- body {
103
- padding-top: 80px; /* Height of the navbar */
263
+
264
+ code:not(.hljs) {
265
+ background: var(--code-bg);
266
+ color: var(--text);
267
+ padding: 2px 6px;
268
+ border-radius: 4px;
269
+ font-size: 0.9em;
104
270
  }
271
+ pre { background: var(--code-bg); border: 1px solid var(--border); border-radius: 8px; padding: 12px; overflow: auto; }
272
+ pre code.hljs { background: transparent !important; padding: 0; }
273
+
105
274
  .navbar {
106
275
  position: fixed;
107
276
  top: 0;
108
277
  left: 0;
109
278
  width: 100%;
110
- background-color: #ffffff;
111
- border-bottom: 1px solid #e0e0e0;
279
+ background-color: var(--surface);
280
+ border-bottom: 1px solid var(--border);
112
281
  display: flex;
113
282
  align-items: center;
114
- padding: 10px 20px;
283
+ padding: 10px 24px;
115
284
  z-index: 1000;
116
- box-shadow: 0 2px 5px rgba(0,0,0,0.1);
285
+ box-shadow: 0 2px 8px var(--shadow);
117
286
  }
118
287
  .navbar-logo img {
119
288
  height: 40px;
@@ -124,17 +293,61 @@ const html = (analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, dtAssets, jqu
124
293
  padding: 0;
125
294
  display: flex;
126
295
  gap: 15px;
296
+ flex: 1;
297
+ }
298
+ .navbar-links a {
299
+ color: var(--text-muted);
300
+ text-decoration: none;
301
+ font-weight: 500;
302
+ padding: 6px 4px;
303
+ border-bottom: 2px solid transparent;
304
+ }
305
+ .navbar-links a:hover { color: var(--text); }
306
+ .navbar-links a.active {
307
+ color: var(--accent);
308
+ border-bottom-color: var(--accent);
127
309
  }
310
+ .theme-toggle {
311
+ background: transparent;
312
+ border: 1px solid var(--border);
313
+ color: var(--text);
314
+ border-radius: 8px;
315
+ padding: 6px 12px;
316
+ cursor: pointer;
317
+ font-size: 1rem;
318
+ line-height: 1;
319
+ }
320
+ .theme-toggle:hover { background: var(--table-hover); }
321
+
322
+ .badge {
323
+ display: inline-block;
324
+ padding: 2px 10px;
325
+ border-radius: 999px;
326
+ font-size: 0.78rem;
327
+ font-weight: 600;
328
+ border: 1px solid transparent;
329
+ text-transform: uppercase;
330
+ letter-spacing: 0.02em;
331
+ white-space: nowrap;
332
+ }
333
+ .badge-info { background: var(--sev-info-bg); color: var(--sev-info-text); border-color: var(--sev-info-border); }
334
+ .badge-low { background: var(--sev-low-bg); color: var(--sev-low-text); border-color: var(--sev-low-border); }
335
+ .badge-medium { background: var(--sev-medium-bg); color: var(--sev-medium-text); border-color: var(--sev-medium-border); }
336
+ .badge-high { background: var(--sev-high-bg); color: var(--sev-high-text); border-color: var(--sev-high-border); }
337
+ .badge-unknown { background: var(--surface); color: var(--text-muted); border-color: var(--border); }
338
+
128
339
  .data-table { font-size: 0.9rem; }
129
- pre.code-cell { white-space: pre-wrap; word-break: break-word; max-height: 200px; overflow: auto; }
340
+ pre.code-cell { white-space: pre-wrap; word-break: break-word; max-height: 200px; overflow: auto; background: var(--code-bg); border: 1px solid var(--border); border-radius: 6px; padding: 8px; }
130
341
  thead tr.filter-row th { padding: 4px 6px; }
131
342
  thead tr.filter-row th input {
132
343
  width: 100%;
133
344
  padding: 4px 6px;
134
- border: 1px solid #ccc;
345
+ border: 1px solid var(--border);
135
346
  border-radius: 4px;
136
347
  font-size: 0.85rem;
137
348
  box-sizing: border-box;
349
+ background: var(--surface);
350
+ color: var(--text);
138
351
  }
139
352
  /* Column resize styles */
140
353
  table.display.data-table { table-layout: fixed; }
@@ -151,6 +364,49 @@ const html = (analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, dtAssets, jqu
151
364
  transition: opacity 0.15s ease-in-out;
152
365
  }
153
366
  table.display.data-table thead th:hover .th-resizer { opacity: 1; }
367
+
368
+ /* DataTables dark-mode reskin (overrides the inlined DataTables stylesheet above) */
369
+ html[data-theme="dark"] table.dataTable,
370
+ html[data-theme="dark"] table.dataTable thead th,
371
+ html[data-theme="dark"] table.dataTable tbody td,
372
+ html[data-theme="dark"] table.dataTable tbody tr {
373
+ color: var(--text);
374
+ background-color: transparent;
375
+ border-color: var(--border) !important;
376
+ }
377
+ html[data-theme="dark"] table.dataTable tbody tr:hover {
378
+ background-color: var(--table-hover);
379
+ }
380
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_info,
381
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_length,
382
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_filter,
383
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_filter input,
384
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_length select {
385
+ color: var(--text);
386
+ background-color: var(--surface);
387
+ border-color: var(--border);
388
+ }
389
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button {
390
+ color: var(--text) !important;
391
+ background: transparent;
392
+ border-color: var(--border) !important;
393
+ }
394
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
395
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
396
+ background: var(--accent) !important;
397
+ color: var(--accent-text) !important;
398
+ border-color: var(--accent) !important;
399
+ }
400
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
401
+ background: var(--table-hover) !important;
402
+ color: var(--text) !important;
403
+ border-color: var(--border) !important;
404
+ }
405
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
406
+ html[data-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover {
407
+ color: var(--text-muted) !important;
408
+ background: transparent !important;
409
+ }
154
410
  </style>
155
411
  </head>
156
412
  <body>
@@ -164,6 +420,7 @@ const html = (analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, dtAssets, jqu
164
420
  <li><a href="#dataTables">Data Tables</a></li>
165
421
  <li><a href="#about">About</a></li>
166
422
  </ul>
423
+ <button id="theme-toggle" class="theme-toggle" type="button" aria-label="Toggle dark mode" title="Toggle dark mode">🌙</button>
167
424
  </nav>
168
425
  <div id="content"></div>
169
426
  <script id="page-data" type="application/json">
@@ -171,10 +428,9 @@ const html = (analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, dtAssets, jqu
171
428
  home: yield marked.parse(analyzeMarkdown),
172
429
  mappedJson: yield marked.parse(mappedJsonMarkdown),
173
430
  dataTables: dataTablesHtml,
174
- about: `# About\n\n The documentation for this tool is available at [JS Recon Docs](https://js-recon.io/).\n\n## Version\n\nThis report is generated with JS Recon [v${CONFIG.version}](https://github.com/js-recon/js-recon/releases/tag/v${CONFIG.version}).`,
431
+ about: aboutHtml,
175
432
  }).replace(/</g, "\\u003c")}
176
433
  </script>
177
- <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
178
434
  ${jqueryJs
179
435
  ? `<script id="jquery-inline-js">${jqueryJs}</script>`
180
436
  : `<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>`}
@@ -186,6 +442,33 @@ const html = (analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, dtAssets, jqu
186
442
  const contentDiv = document.getElementById('content');
187
443
  const navbarLinks = document.getElementById('navbar-links');
188
444
  const pages = JSON.parse(document.getElementById('page-data').textContent);
445
+ const themeToggle = document.getElementById('theme-toggle');
446
+ const hljsLight = document.getElementById('hljs-light');
447
+ const hljsDark = document.getElementById('hljs-dark');
448
+
449
+ const getTheme = () => document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light';
450
+
451
+ const applyHljsTheme = (theme) => {
452
+ if (hljsLight) hljsLight.disabled = theme === 'dark';
453
+ if (hljsDark) hljsDark.disabled = theme !== 'dark';
454
+ };
455
+
456
+ const setTheme = (theme, persist) => {
457
+ document.documentElement.setAttribute('data-theme', theme);
458
+ applyHljsTheme(theme);
459
+ if (themeToggle) themeToggle.textContent = theme === 'dark' ? '☀️' : '🌙';
460
+ if (persist) {
461
+ try { localStorage.setItem('jsrTheme', theme); } catch (e) {}
462
+ }
463
+ };
464
+
465
+ setTheme(getTheme(), false);
466
+
467
+ if (themeToggle) {
468
+ themeToggle.addEventListener('click', () => {
469
+ setTheme(getTheme() === 'dark' ? 'light' : 'dark', true);
470
+ });
471
+ }
189
472
 
190
473
  const isDtAvailable = () => {
191
474
  if (typeof window.DataTable !== 'undefined') return true; // ESM/global
@@ -455,15 +738,20 @@ const html = (analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, dtAssets, jqu
455
738
  updateVisibility();
456
739
  };
457
740
 
741
+ const updateActiveNavLink = (pageName) => {
742
+ const links = navbarLinks.querySelectorAll('a');
743
+ links.forEach((a) => {
744
+ const linkPage = (a.getAttribute('href') || '').replace(/^#/, '');
745
+ a.classList.toggle('active', linkPage === pageName);
746
+ });
747
+ };
748
+
458
749
  const renderPage = (pageName) => {
459
750
  const content = pages[pageName] || '<h2>Page Not Found: ' + pageName + '</h2>';
460
- if (pageName === 'home' || pageName === 'dataTables' || pageName === 'mappedJson') {
461
- contentDiv.innerHTML = content;
462
- } else {
463
- contentDiv.innerHTML = window.marked.parse(content);
464
- }
751
+ contentDiv.innerHTML = content;
465
752
  initializeCollapsibleHeaders();
466
753
  initializeDataTablesIfPresent();
754
+ updateActiveNavLink(pageName);
467
755
  };
468
756
 
469
757
  const handleHashChange = () => {
@@ -499,11 +787,12 @@ const html = (analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, dtAssets, jqu
499
787
  * @returns A promise that resolves when the HTML report is generated
500
788
  */
501
789
  const genHtml = (outputReportFile, db) => __awaiter(void 0, void 0, void 0, function* () {
502
- console.log(chalk.cyan("[i] Generating HTML report..."));
790
+ printMsg(MSG.Header, "[i] Generating HTML report...");
503
791
  let analyzeMarkdown = `# JS Recon Report generated at ${new Date().toISOString()}\n\n`;
504
792
  let mappedJsonMarkdown = analyzeMarkdown;
505
793
  analyzeMarkdown = yield addAnalyze(analyzeMarkdown, db);
506
794
  mappedJsonMarkdown = yield addMappedJson(mappedJsonMarkdown, db);
795
+ const aboutMarkdown = `# About\n\n The documentation for this tool is available at [JS Recon Docs](https://js-recon.io/).\n\n## Version\n\nThis report is generated with JS Recon [v${CONFIG.version}](https://github.com/js-recon/js-recon/releases/tag/v${CONFIG.version}).`;
507
796
  const dataTablesHtml = genDataTablesPage(db);
508
797
  const renderer = new marked.Renderer();
509
798
  renderer.code = ({ text, lang }) => {
@@ -517,11 +806,13 @@ const genHtml = (outputReportFile, db) => __awaiter(void 0, void 0, void 0, func
517
806
  pedantic: false,
518
807
  gfm: true,
519
808
  });
809
+ const aboutHtml = yield marked.parse(aboutMarkdown);
520
810
  const dtAssets = getLocalDataTablesAssets();
521
811
  const jqueryJs = getLocalJqueryAsset();
522
- const renderedHtml = yield html(analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, dtAssets, jqueryJs);
812
+ const hljsThemes = getLocalHljsThemes();
813
+ const renderedHtml = yield html(analyzeMarkdown, mappedJsonMarkdown, dataTablesHtml, aboutHtml, dtAssets, jqueryJs, hljsThemes);
523
814
  fs.writeFileSync(outputReportFile, renderedHtml);
524
- console.log(chalk.green("[✓] HTML report generated successfully"));
815
+ printMsg(MSG.Run, "[✓] HTML report generated successfully");
525
816
  });
526
817
  export default genHtml;
527
818
  //# sourceMappingURL=genHtml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"genHtml.js","sourceRoot":"","sources":["../../../src/report/utility/genHtml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"genHtml.js","sourceRoot":"","sources":["../../../src/report/utility/genHtml.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import { severityBadgeHtml } from "../severityColors.js";
10
11
  /**
11
12
  * Adds an analyze section to the markdown.
12
13
  *
@@ -40,7 +41,7 @@ const addAnalyze = (markdown, db) => __awaiter(void 0, void 0, void 0, function*
40
41
  }
41
42
  toReturn += `${findingLocationBlock}\n`;
42
43
  toReturn += `- **Rule ID:** ${finding.ruleId}\n`;
43
- toReturn += `- **Severity:** ${finding.severity}\n`;
44
+ toReturn += `- **Severity:** ${severityBadgeHtml(finding.severity)}\n`;
44
45
  toReturn += `- **Message:** ${finding.message}\n`;
45
46
  toReturn += `- **Author:** ${finding.ruleAuthor}\n`;
46
47
  toReturn += `- **Technology:** ${finding.ruleTech}\n\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"addAnalyze.js","sourceRoot":"","sources":["../../../../src/report/utility/markdownGen/addAnalyze.ts"],"names":[],"mappings":";;;;;;;;;AAcA;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CAAO,QAAgB,EAAE,EAAqB,EAAmB,EAAE;IAClF,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,QAAQ,IAAI,wBAAwB,CAAC;IACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,GAAG,EAAuB,CAAC;IAC1F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,eAAe,GAAyC,EAAE,CAAC;QACjE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC3C,CAAC;YACD,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACrC,QAAQ,IAAI,OAAO,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;YAC9C,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9C,QAAQ,IAAI,QAAQ,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,eAAe,IAAI,CAAC;gBACrE,IAAI,oBAAoB,GAAG,EAAE,CAAC;gBAC9B,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;oBACnC,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACJ,oBAAoB,GAAG,OAAO,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC;gBACvE,CAAC;gBACD,QAAQ,IAAI,GAAG,oBAAoB,IAAI,CAAC;gBACxC,QAAQ,IAAI,kBAAkB,OAAO,CAAC,MAAM,IAAI,CAAC;gBACjD,QAAQ,IAAI,mBAAmB,OAAO,CAAC,QAAQ,IAAI,CAAC;gBACpD,QAAQ,IAAI,kBAAkB,OAAO,CAAC,OAAO,IAAI,CAAC;gBAClD,QAAQ,IAAI,iBAAiB,OAAO,CAAC,UAAU,IAAI,CAAC;gBACpD,QAAQ,IAAI,qBAAqB,OAAO,CAAC,QAAQ,MAAM,CAAC;YAC5D,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAA,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"addAnalyze.js","sourceRoot":"","sources":["../../../../src/report/utility/markdownGen/addAnalyze.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAczD;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CAAO,QAAgB,EAAE,EAAqB,EAAmB,EAAE;IAClF,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,QAAQ,IAAI,wBAAwB,CAAC;IACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,GAAG,EAAuB,CAAC;IAC1F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,eAAe,GAAyC,EAAE,CAAC;QACjE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC3C,CAAC;YACD,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACrC,QAAQ,IAAI,OAAO,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;YAC9C,KAAK,MAAM,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9C,QAAQ,IAAI,QAAQ,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,eAAe,IAAI,CAAC;gBACrE,IAAI,oBAAoB,GAAG,EAAE,CAAC;gBAC9B,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;oBACnC,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACJ,oBAAoB,GAAG,OAAO,GAAG,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC;gBACvE,CAAC;gBACD,QAAQ,IAAI,GAAG,oBAAoB,IAAI,CAAC;gBACxC,QAAQ,IAAI,kBAAkB,OAAO,CAAC,MAAM,IAAI,CAAC;gBACjD,QAAQ,IAAI,mBAAmB,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvE,QAAQ,IAAI,kBAAkB,OAAO,CAAC,OAAO,IAAI,CAAC;gBAClD,QAAQ,IAAI,iBAAiB,OAAO,CAAC,UAAU,IAAI,CAAC;gBACpD,QAAQ,IAAI,qBAAqB,OAAO,CAAC,QAAQ,MAAM,CAAC;YAC5D,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAA,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import chalk from "chalk";
10
+ import { printMsg, MSG } from "../../../utility/printMsg.js";
11
11
  /**
12
12
  * Populates the analysis findings table in the database with the given findings.
13
13
  *
@@ -26,6 +26,6 @@ export const populateAnalysisFindings = (db, findings) => __awaiter(void 0, void
26
26
  }
27
27
  });
28
28
  insertMany(findings);
29
- console.log(chalk.green("[✓] Populated analysis findings into the database..."));
29
+ printMsg(MSG.Run, "[✓] Populated analysis findings into the database...");
30
30
  });
31
31
  //# sourceMappingURL=populateAnalysisFindings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"populateAnalysisFindings.js","sourceRoot":"","sources":["../../../../src/report/utility/populateDb/populateAnalysisFindings.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAO,EAAqB,EAAE,QAAwB,EAAE,EAAE;IAC9F,4CAA4C;IAC5C,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,GAAG,EAAE,CAAC;IAElD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACrB,0KAA0K,CAC7K,CAAC;IAEF,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CACN,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EACtE,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,eAAe,CACvB,CAAC;QACN,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;AACrF,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"populateAnalysisFindings.js","sourceRoot":"","sources":["../../../../src/report/utility/populateDb/populateAnalysisFindings.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAG7D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAO,EAAqB,EAAE,QAAwB,EAAE,EAAE;IAC9F,4CAA4C;IAC5C,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,GAAG,EAAE,CAAC;IAElD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACrB,0KAA0K,CAC7K,CAAC;IAEF,MAAM,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CACN,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EACtE,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,eAAe,CACvB,CAAC;QACN,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,sDAAsD,CAAC,CAAC;AAC9E,CAAC,CAAA,CAAC"}
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import chalk from "chalk";
10
+ import { printMsg, MSG } from "../../../utility/printMsg.js";
11
11
  /**
12
12
  * Populates the endpoints table in the database with the given endpoints.
13
13
  *
@@ -30,7 +30,7 @@ const populateEndpoints = (db, endpoints) => __awaiter(void 0, void 0, void 0, f
30
30
  catch (error) {
31
31
  // Ignore unique constraint errors if a URL is already present
32
32
  if (!error.message.includes("UNIQUE constraint failed")) {
33
- console.error(`Error inserting ${fullUrl}:`, error);
33
+ printMsg(MSG.Err, `Error inserting ${fullUrl}: ${error}`);
34
34
  }
35
35
  }
36
36
  // Recursively process nested paths
@@ -44,7 +44,7 @@ const populateEndpoints = (db, endpoints) => __awaiter(void 0, void 0, void 0, f
44
44
  insertPaths(baseUrl, endpoints[baseUrl]);
45
45
  }
46
46
  })();
47
- console.log(chalk.green("[✓] Populated endpoints into the database..."));
47
+ printMsg(MSG.Run, "[✓] Populated endpoints into the database...");
48
48
  });
49
49
  export default populateEndpoints;
50
50
  //# sourceMappingURL=populateEndpoints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"populateEndpoints.js","sourceRoot":"","sources":["../../../../src/report/utility/populateDb/populateEndpoints.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG,CAAO,EAAqB,EAAE,SAAc,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAE9E,4BAA4B;IAC5B,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,EAAE,CAAC;IAE1C,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE;QAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,mDAAmD;YACnD,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,8DAA8D;gBAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;oBACtD,OAAO,CAAC,KAAK,CAAC,mBAAmB,OAAO,GAAG,EAAE,KAAK,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC;YAED,mCAAmC;YACnC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAChB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAC9B,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAA,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"populateEndpoints.js","sourceRoot":"","sources":["../../../../src/report/utility/populateDb/populateEndpoints.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG,CAAO,EAAqB,EAAE,SAAc,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAE9E,4BAA4B;IAC5B,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,EAAE,CAAC;IAE1C,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE;QAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,mDAAmD;YACnD,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,8DAA8D;gBAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;oBACtD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,mBAAmB,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC;YAED,mCAAmC;YACnC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAChB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAC9B,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;IAEL,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,8CAA8C,CAAC,CAAC;AACtE,CAAC,CAAA,CAAC;AAEF,eAAe,iBAAiB,CAAC"}