@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.
- package/.claude-sync/sync.sh +1 -1
- package/.github/dependabot.yml +50 -0
- package/.github/workflows/build-and-prettify.yaml +49 -19
- package/.github/workflows/codeql.yml +33 -0
- package/.github/workflows/exploit-smoke-test.yaml +160 -0
- package/.github/workflows/framework-detection-smoke-test.yaml +135 -0
- package/.github/workflows/plumber.yml +20 -0
- package/.github/workflows/promote-js-recon.yml +5 -3
- package/.github/workflows/publish-js-recon.yml +31 -2
- package/.github/workflows/rules-smoke-test.yaml +13 -5
- package/.nvmrc +1 -0
- package/.plumber.yaml +151 -0
- package/CHANGELOG.md +55 -0
- package/CONTRIBUTING.md +32 -0
- package/Dockerfile +1 -0
- package/README.md +3 -2
- package/SECURITY.md +1 -1
- package/build/analyze/engine/astEngine.js +10 -9
- package/build/analyze/engine/astEngine.js.map +1 -1
- package/build/analyze/engine/csMastSEngine.js +6 -6
- package/build/analyze/engine/csMastSEngine.js.map +1 -1
- package/build/analyze/engine/index.js +1 -1
- package/build/analyze/engine/index.js.map +1 -1
- package/build/analyze/engine/requestEngine.js +6 -6
- package/build/analyze/engine/requestEngine.js.map +1 -1
- package/build/analyze/helpers/determineCompatibleVersion.js +70 -0
- package/build/analyze/helpers/determineCompatibleVersion.js.map +1 -0
- package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js +9 -3
- package/build/analyze/helpers/engineHelpers/findMemberExpressionAssignment.js.map +1 -1
- package/build/analyze/helpers/initRules.js +9 -9
- package/build/analyze/helpers/initRules.js.map +1 -1
- package/build/analyze/helpers/outputHelper.js +3 -3
- package/build/analyze/helpers/outputHelper.js.map +1 -1
- package/build/analyze/helpers/schemas.js +1 -0
- package/build/analyze/helpers/schemas.js.map +1 -1
- package/build/analyze/helpers/validate.js +9 -5
- package/build/analyze/helpers/validate.js.map +1 -1
- package/build/analyze/index.js +26 -16
- package/build/analyze/index.js.map +1 -1
- package/build/cliProgram.js +733 -0
- package/build/cliProgram.js.map +1 -0
- package/build/completion/index.js +247 -382
- package/build/completion/index.js.map +1 -1
- package/build/completion/introspect.js +17 -0
- package/build/completion/introspect.js.map +1 -0
- package/build/config/applicationConfig.js +3 -2
- package/build/config/applicationConfig.js.map +1 -1
- package/build/cs_mast/index.js +18 -17
- package/build/cs_mast/index.js.map +1 -1
- package/build/endpoints/gen_report/gen_json.js +2 -2
- package/build/endpoints/gen_report/gen_json.js.map +1 -1
- package/build/endpoints/gen_report/utility/iterate_n_store.js +1 -1
- package/build/endpoints/gen_report/utility/iterate_n_store.js.map +1 -1
- package/build/endpoints/index.js +12 -12
- package/build/endpoints/index.js.map +1 -1
- package/build/endpoints/next_js/client_jsFilesHref.js +3 -3
- package/build/endpoints/next_js/client_jsFilesHref.js.map +1 -1
- package/build/endpoints/next_js/client_jsonParse.js +4 -4
- package/build/endpoints/next_js/client_jsonParse.js.map +1 -1
- package/build/endpoints/next_js/client_mappedJsonFile.js +6 -6
- package/build/endpoints/next_js/client_mappedJsonFile.js.map +1 -1
- package/build/endpoints/next_js/client_subsequentRequests.js +5 -5
- package/build/endpoints/next_js/client_subsequentRequests.js.map +1 -1
- package/build/exploit/angular/cve-2026-68945.js +61 -0
- package/build/exploit/angular/cve-2026-68945.js.map +1 -0
- package/build/exploit/index.js +60 -0
- package/build/exploit/index.js.map +1 -0
- package/build/exploit/next/cve-2025-29927.js +65 -0
- package/build/exploit/next/cve-2025-29927.js.map +1 -0
- package/build/exploit/next/cve-2026-64645.js +51 -0
- package/build/exploit/next/cve-2026-64645.js.map +1 -0
- package/build/exploit/nuxt/cve-2026-71315.js +47 -0
- package/build/exploit/nuxt/cve-2026-71315.js.map +1 -0
- package/build/exploit/nuxt/cve-2026-71320.js +114 -0
- package/build/exploit/nuxt/cve-2026-71320.js.map +1 -0
- package/build/exploit/react/cve-2025-55182.js +116 -0
- package/build/exploit/react/cve-2025-55182.js.map +1 -0
- package/build/exploit/registry/cveRegistry.js +115 -0
- package/build/exploit/registry/cveRegistry.js.map +1 -0
- package/build/exploit/types.js +2 -0
- package/build/exploit/types.js.map +1 -0
- package/build/exploit/utility/compareResponses.js +29 -0
- package/build/exploit/utility/compareResponses.js.map +1 -0
- package/build/exploit/utility/outputHelper.js +22 -0
- package/build/exploit/utility/outputHelper.js.map +1 -0
- package/build/exploit/utility/rawRequest.js +56 -0
- package/build/exploit/utility/rawRequest.js.map +1 -0
- package/build/exploit/utility/sandboxRce.js +49 -0
- package/build/exploit/utility/sandboxRce.js.map +1 -0
- package/build/exploit/utility/toEngineOutput.js +28 -0
- package/build/exploit/utility/toEngineOutput.js.map +1 -0
- package/build/exploit/utility/wsClient.js +78 -0
- package/build/exploit/utility/wsClient.js.map +1 -0
- package/build/exploit/vite/cve-2025-30208.js +44 -0
- package/build/exploit/vite/cve-2025-30208.js.map +1 -0
- package/build/exploit/vite/cve-2026-39363.js +60 -0
- package/build/exploit/vite/cve-2026-39363.js.map +1 -0
- package/build/fingerprint/index.js +3 -2
- package/build/fingerprint/index.js.map +1 -1
- package/build/globalConfig.js +2 -2
- package/build/globalConfig.js.map +1 -1
- package/build/index.js +5 -596
- package/build/index.js.map +1 -1
- package/build/lazyLoad/angular/angular_getFromPageSource.js +3 -3
- package/build/lazyLoad/angular/angular_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/downloadFilesUtil.js +14 -11
- package/build/lazyLoad/downloadFilesUtil.js.map +1 -1
- package/build/lazyLoad/downloadQueue.js +9 -1
- package/build/lazyLoad/downloadQueue.js.map +1 -1
- package/build/lazyLoad/downloadResponse.js +1 -0
- package/build/lazyLoad/downloadResponse.js.map +1 -1
- package/build/lazyLoad/generic/generic_crawlPages.js +186 -0
- package/build/lazyLoad/generic/generic_crawlPages.js.map +1 -0
- package/build/lazyLoad/generic/generic_downloadFiles.js +81 -0
- package/build/lazyLoad/generic/generic_downloadFiles.js.map +1 -0
- package/build/lazyLoad/generic/generic_extractLinks.js +79 -0
- package/build/lazyLoad/generic/generic_extractLinks.js.map +1 -0
- package/build/lazyLoad/generic/generic_getScriptTags.js +152 -0
- package/build/lazyLoad/generic/generic_getScriptTags.js.map +1 -0
- package/build/lazyLoad/generic/generic_importMapDiscovery.js +87 -0
- package/build/lazyLoad/generic/generic_importMapDiscovery.js.map +1 -0
- package/build/lazyLoad/generic/generic_resolveScope.js +66 -0
- package/build/lazyLoad/generic/generic_resolveScope.js.map +1 -0
- package/build/lazyLoad/generic/generic_scanAttributesForJs.js +122 -0
- package/build/lazyLoad/generic/generic_scanAttributesForJs.js.map +1 -0
- package/build/lazyLoad/generic/generic_stringsDiscovery.js +103 -0
- package/build/lazyLoad/generic/generic_stringsDiscovery.js.map +1 -0
- package/build/lazyLoad/generic/generic_webpackChunkPaths.js +56 -0
- package/build/lazyLoad/generic/generic_webpackChunkPaths.js.map +1 -0
- package/build/lazyLoad/globals.js +31 -0
- package/build/lazyLoad/globals.js.map +1 -1
- package/build/lazyLoad/index.js +172 -75
- package/build/lazyLoad/index.js.map +1 -1
- package/build/lazyLoad/methodFilter.js +9 -1
- package/build/lazyLoad/methodFilter.js.map +1 -1
- package/build/lazyLoad/next_js/NextJsCrawler.js +98 -14
- package/build/lazyLoad/next_js/NextJsCrawler.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetJSScript.js +3 -3
- package/build/lazyLoad/next_js/next_GetJSScript.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js +4 -4
- package/build/lazyLoad/next_js/next_GetLazyResourcesBuildManifestJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js +17 -11
- package/build/lazyLoad/next_js/next_GetLazyResourcesWebpackJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_SubsequentRequests.js +7 -6
- package/build/lazyLoad/next_js/next_SubsequentRequests.js.map +1 -1
- package/build/lazyLoad/next_js/next_bruteForceJsFiles.js +1 -1
- package/build/lazyLoad/next_js/next_bruteForceJsFiles.js.map +1 -1
- package/build/lazyLoad/next_js/next_buildId.js +2 -2
- package/build/lazyLoad/next_js/next_buildId.js.map +1 -1
- package/build/lazyLoad/next_js/next_getClientSidePaths.js +2 -2
- package/build/lazyLoad/next_js/next_getClientSidePaths.js.map +1 -1
- package/build/lazyLoad/next_js/next_parseLayoutJs.js +6 -6
- package/build/lazyLoad/next_js/next_parseLayoutJs.js.map +1 -1
- package/build/lazyLoad/next_js/next_promiseResolve.js +1 -1
- package/build/lazyLoad/next_js/next_promiseResolve.js.map +1 -1
- package/build/lazyLoad/next_js/next_routerStateForge.js +407 -0
- package/build/lazyLoad/next_js/next_routerStateForge.js.map +1 -0
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js +1 -1
- package/build/lazyLoad/next_js/next_scriptTagsSubsequentRequests.js.map +1 -1
- package/build/lazyLoad/next_js/next_serverActionIdScan.js +77 -0
- package/build/lazyLoad/next_js/next_serverActionIdScan.js.map +1 -0
- package/build/lazyLoad/nuxt_js/nuxt_astParse.js +15 -13
- package/build/lazyLoad/nuxt_js/nuxt_astParse.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js +2 -2
- package/build/lazyLoad/nuxt_js/nuxt_getBuildsManifest.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js +3 -3
- package/build/lazyLoad/nuxt_js/nuxt_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js +29 -5
- package/build/lazyLoad/nuxt_js/nuxt_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/react/react_sourcemapUrls.js +7 -28
- package/build/lazyLoad/react/react_sourcemapUrls.js.map +1 -1
- package/build/lazyLoad/react/react_webpackChunkPaths.js +10 -202
- package/build/lazyLoad/react/react_webpackChunkPaths.js.map +1 -1
- package/build/lazyLoad/researchUtils.js +15 -0
- package/build/lazyLoad/researchUtils.js.map +1 -0
- package/build/lazyLoad/shared/webpackChunkParsers.js +218 -0
- package/build/lazyLoad/shared/webpackChunkParsers.js.map +1 -0
- package/build/lazyLoad/sourcemap.js +120 -0
- package/build/lazyLoad/sourcemap.js.map +1 -1
- package/build/lazyLoad/stagnation/stagnationMonitor.js +63 -0
- package/build/lazyLoad/stagnation/stagnationMonitor.js.map +1 -0
- package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js +1 -0
- package/build/lazyLoad/svelte/svelte_discoverPagesFromJs.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js +5 -5
- package/build/lazyLoad/svelte/svelte_getFromPageSource.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_getVersionJson.js +2 -2
- package/build/lazyLoad/svelte/svelte_getVersionJson.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js +6 -6
- package/build/lazyLoad/svelte/svelte_recursivePageCrawl.js.map +1 -1
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js +15 -6
- package/build/lazyLoad/svelte/svelte_stringAnalysisJSFiles.js.map +1 -1
- package/build/lazyLoad/techDetect/checkAngularJS.js +1 -1
- package/build/lazyLoad/techDetect/checkAngularJS.js.map +1 -1
- package/build/lazyLoad/techDetect/checkNuxtJS.js +3 -3
- package/build/lazyLoad/techDetect/checkNuxtJS.js.map +1 -1
- package/build/lazyLoad/techDetect/checkSvelte.js +0 -1
- package/build/lazyLoad/techDetect/checkSvelte.js.map +1 -1
- package/build/lazyLoad/techDetect/checkVueJS.js +6 -6
- package/build/lazyLoad/techDetect/checkVueJS.js.map +1 -1
- package/build/lazyLoad/techDetect/index.js +17 -1
- package/build/lazyLoad/techDetect/index.js.map +1 -1
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js +2 -2
- package/build/lazyLoad/vue/vue_SingleJsFileOnHome.js.map +1 -1
- package/build/lazyLoad/vue/vue_discoverJsFiles.js +13 -11
- package/build/lazyLoad/vue/vue_discoverJsFiles.js.map +1 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js +1 -1
- package/build/lazyLoad/vue/vue_getClientSidePaths.js.map +1 -1
- package/build/lazyLoad/vue/vue_pageSrc.js +1 -1
- package/build/lazyLoad/vue/vue_pageSrc.js.map +1 -1
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js +12 -3
- package/build/lazyLoad/vue/vue_reconstructSourceMaps.js.map +1 -1
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js +2 -2
- package/build/lazyLoad/vue/vue_recursiveClientSidePathDownload.js.map +1 -1
- package/build/lazyLoad/vue/vue_severalJsFilesHome.js +3 -3
- package/build/lazyLoad/vue/vue_severalJsFilesHome.js.map +1 -1
- package/build/load/index.js +28 -38
- package/build/load/index.js.map +1 -1
- package/build/map/angular_js/getAngularConnections.js +6 -6
- package/build/map/angular_js/getAngularConnections.js.map +1 -1
- package/build/map/graphql/resolveGraphql.js +6 -6
- package/build/map/graphql/resolveGraphql.js.map +1 -1
- package/build/map/index.js +17 -17
- package/build/map/index.js.map +1 -1
- package/build/map/interactive-mode/commandHandler.js +278 -0
- package/build/map/interactive-mode/commandHandler.js.map +1 -0
- package/build/map/interactive-mode/commandHelpers.js +189 -0
- package/build/map/interactive-mode/commandHelpers.js.map +1 -0
- package/build/map/interactive-mode/esqueryGen.js.map +1 -0
- package/build/map/interactive-mode/helpMenu.js +11 -0
- package/build/map/interactive-mode/helpMenu.js.map +1 -0
- package/build/map/interactive-mode/inputPatch.js.map +1 -0
- package/build/map/interactive-mode/interactive.js +71 -0
- package/build/map/interactive-mode/interactive.js.map +1 -0
- package/build/map/interactive-mode/keybindings.js.map +1 -0
- package/build/map/interactive-mode/printer.js.map +1 -0
- package/build/map/interactive-mode/ui.js.map +1 -0
- package/build/map/next_js/getAxiosInstances.js +5 -5
- package/build/map/next_js/getAxiosInstances.js.map +1 -1
- package/build/map/next_js/getExports.js +4 -4
- package/build/map/next_js/getExports.js.map +1 -1
- package/build/map/next_js/getFetchInstances.js +10 -10
- package/build/map/next_js/getFetchInstances.js.map +1 -1
- package/build/map/next_js/getTurbopackConnections.js +8 -8
- package/build/map/next_js/getTurbopackConnections.js.map +1 -1
- package/build/map/next_js/getWebpackConnections.js +27 -16
- package/build/map/next_js/getWebpackConnections.js.map +1 -1
- package/build/map/next_js/interactive.js +3 -65
- package/build/map/next_js/interactive.js.map +1 -1
- package/build/map/next_js/interactive_helpers/commandHandler.js +38 -290
- package/build/map/next_js/interactive_helpers/commandHandler.js.map +1 -1
- package/build/map/next_js/interactive_helpers/commandHelpers.js +0 -184
- package/build/map/next_js/interactive_helpers/commandHelpers.js.map +1 -1
- package/build/map/next_js/interactive_helpers/helpMenu.js +2 -10
- package/build/map/next_js/interactive_helpers/helpMenu.js.map +1 -1
- package/build/map/next_js/resolveAxios.js +6 -6
- package/build/map/next_js/resolveAxios.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js +4 -4
- package/build/map/next_js/resolveAxiosHelpers/findAxiosClients.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js +2 -2
- package/build/map/next_js/resolveAxiosHelpers/findAxiosInstance.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js +5 -5
- package/build/map/next_js/resolveAxiosHelpers/findCrossChunkParams.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js +10 -10
- package/build/map/next_js/resolveAxiosHelpers/handleAxiosCreate.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js +13 -9
- package/build/map/next_js/resolveAxiosHelpers/handleZDotCreate.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js +12 -8
- package/build/map/next_js/resolveAxiosHelpers/processAxiosCall.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js +12 -8
- package/build/map/next_js/resolveAxiosHelpers/processDirectAxiosCall.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js +11 -11
- package/build/map/next_js/resolveAxiosHelpers/processExportedEndpoints.js.map +1 -1
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js +16 -16
- package/build/map/next_js/resolveAxiosHelpers/traceAxiosInstanceExports.js.map +1 -1
- package/build/map/next_js/resolveFetch.js +23 -23
- package/build/map/next_js/resolveFetch.js.map +1 -1
- package/build/map/next_js/resolveNewRequest.js +10 -10
- package/build/map/next_js/resolveNewRequest.js.map +1 -1
- package/build/map/next_js/resolveServerActions.js +4 -4
- package/build/map/next_js/resolveServerActions.js.map +1 -1
- package/build/map/next_js/utils.js +8 -2
- package/build/map/next_js/utils.js.map +1 -1
- package/build/map/react_js/getReactConnections.js +21 -14
- package/build/map/react_js/getReactConnections.js.map +1 -1
- package/build/map/svelte_js/interactive.js +3 -54
- package/build/map/svelte_js/interactive.js.map +1 -1
- package/build/map/vue_js/getViteConnections.js +23 -16
- package/build/map/vue_js/getViteConnections.js.map +1 -1
- package/build/map/vue_js/interactive.js +3 -63
- package/build/map/vue_js/interactive.js.map +1 -1
- package/build/map/vue_js/interactive_helpers/commandHandler.js +34 -283
- package/build/map/vue_js/interactive_helpers/commandHandler.js.map +1 -1
- package/build/map/vue_js/interactive_helpers/helpMenu.js +2 -10
- package/build/map/vue_js/interactive_helpers/helpMenu.js.map +1 -1
- package/build/map/vue_js/taint_utils.js +1 -1
- package/build/map/vue_js/taint_utils.js.map +1 -1
- package/build/map/vue_js/vue_resolveFetch.js +12 -12
- package/build/map/vue_js/vue_resolveFetch.js.map +1 -1
- package/build/map/vue_js/vue_resolveHttpClient.js +18 -18
- package/build/map/vue_js/vue_resolveHttpClient.js.map +1 -1
- package/build/map/vue_js/vue_resolveXhr.js +11 -11
- package/build/map/vue_js/vue_resolveXhr.js.map +1 -1
- package/build/mcp/chatOneShot.js +7 -7
- package/build/mcp/chatOneShot.js.map +1 -1
- package/build/mcp/claudeCodeCreds.js +5 -5
- package/build/mcp/claudeCodeCreds.js.map +1 -1
- package/build/mcp/cli.js +36 -35
- package/build/mcp/cli.js.map +1 -1
- package/build/mcp/config.js +4 -4
- package/build/mcp/config.js.map +1 -1
- package/build/mcp/index.js +7 -7
- package/build/mcp/index.js.map +1 -1
- package/build/mcp/mcpServer.js +4 -3
- package/build/mcp/mcpServer.js.map +1 -1
- package/build/mcp/skills.js +1 -0
- package/build/mcp/skills.js.map +1 -1
- package/build/mcp/tools.js +6 -5
- package/build/mcp/tools.js.map +1 -1
- package/build/proxy/detectBlockedResponse.js +2 -0
- package/build/proxy/detectBlockedResponse.js.map +1 -1
- package/build/proxy/index.js +3 -3
- package/build/proxy/index.js.map +1 -1
- package/build/refactor/index.js +83 -79
- package/build/refactor/index.js.map +1 -1
- package/build/refactor/next/index.js +69 -26
- package/build/refactor/next/index.js.map +1 -1
- package/build/refactor/next/transform.js +11 -4
- package/build/refactor/next/transform.js.map +1 -1
- package/build/refactor/next/validator.js +7 -7
- package/build/refactor/next/validator.js.map +1 -1
- package/build/refactor/react/index.js +13 -13
- package/build/refactor/react/index.js.map +1 -1
- package/build/refactor/react/validator.js +7 -7
- package/build/refactor/react/validator.js.map +1 -1
- package/build/refactor/react-vite/index.js +3 -3
- package/build/refactor/react-vite/index.js.map +1 -1
- package/build/refactor/remote/hf-client.js +1 -0
- package/build/refactor/remote/hf-client.js.map +1 -1
- package/build/refactor/remote/version-detect.js +12 -12
- package/build/refactor/remote/version-detect.js.map +1 -1
- package/build/refactor/vue/index.js +6 -6
- package/build/refactor/vue/index.js.map +1 -1
- package/build/refactor/vue/vite.js +6 -6
- package/build/refactor/vue/vite.js.map +1 -1
- package/build/report/index.js +30 -8
- package/build/report/index.js.map +1 -1
- package/build/report/swaggerJacker.js +63 -0
- package/build/report/swaggerJacker.js.map +1 -0
- package/build/report/utility/dataTables/genDataTablesPage.js +2 -1
- package/build/report/utility/dataTables/genDataTablesPage.js.map +1 -1
- package/build/report/utility/genHtml.js +316 -25
- package/build/report/utility/genHtml.js.map +1 -1
- package/build/report/utility/markdownGen/addAnalyze.js +2 -1
- package/build/report/utility/markdownGen/addAnalyze.js.map +1 -1
- package/build/report/utility/populateDb/populateAnalysisFindings.js +2 -2
- package/build/report/utility/populateDb/populateAnalysisFindings.js.map +1 -1
- package/build/report/utility/populateDb/populateEndpoints.js +3 -3
- package/build/report/utility/populateDb/populateEndpoints.js.map +1 -1
- package/build/report/utility/populateDb/populateMappedJson.js +2 -2
- package/build/report/utility/populateDb/populateMappedJson.js.map +1 -1
- package/build/report/utility/populateDb/populateMappedOpenapi.js +3 -3
- package/build/report/utility/populateDb/populateMappedOpenapi.js.map +1 -1
- package/build/report/utility/severityColors.js +35 -0
- package/build/report/utility/severityColors.js.map +1 -0
- package/build/run/bundler-detect.js +45 -9
- package/build/run/bundler-detect.js.map +1 -1
- package/build/run/dashboard/dashboardHtml.js +150 -0
- package/build/run/dashboard/dashboardHtml.js.map +1 -0
- package/build/run/dashboard/fsBrowser.js +43 -0
- package/build/run/dashboard/fsBrowser.js.map +1 -0
- package/build/run/dashboard/server.js +123 -0
- package/build/run/dashboard/server.js.map +1 -0
- package/build/run/dashboard/state.js +97 -0
- package/build/run/dashboard/state.js.map +1 -0
- package/build/run/index.js +177 -110
- package/build/run/index.js.map +1 -1
- package/build/run/interruptHandler.js +18 -0
- package/build/run/interruptHandler.js.map +1 -1
- package/build/sourcemaps/index.js +7 -6
- package/build/sourcemaps/index.js.map +1 -1
- package/build/strings/index.js +27 -24
- package/build/strings/index.js.map +1 -1
- package/build/strings/openapi.js +4 -4
- package/build/strings/openapi.js.map +1 -1
- package/build/strings/permutate.js +4 -4
- package/build/strings/permutate.js.map +1 -1
- package/build/strings/secrets.js +1 -0
- package/build/strings/secrets.js.map +1 -1
- package/build/strings/trufflehog.js +66 -19
- package/build/strings/trufflehog.js.map +1 -1
- package/build/strings/trufflehogConfig.js +36 -0
- package/build/strings/trufflehogConfig.js.map +1 -0
- package/build/strings/trufflehogDownload.js +115 -0
- package/build/strings/trufflehogDownload.js.map +1 -0
- package/build/utility/ai.js +33 -4
- package/build/utility/ai.js.map +1 -1
- package/build/utility/banner.js +4 -3
- package/build/utility/banner.js.map +1 -1
- package/build/utility/cacheDb.js +78 -0
- package/build/utility/cacheDb.js.map +1 -0
- package/build/utility/configureSandbox.js +2 -2
- package/build/utility/configureSandbox.js.map +1 -1
- package/build/utility/customHeaders.js +30 -0
- package/build/utility/customHeaders.js.map +1 -0
- package/build/utility/globals.js +37 -12
- package/build/utility/globals.js.map +1 -1
- package/build/utility/heap.js +2 -1
- package/build/utility/heap.js.map +1 -1
- package/build/utility/makeReq.js +38 -87
- package/build/utility/makeReq.js.map +1 -1
- package/build/utility/openapiGenerator.js +2 -2
- package/build/utility/openapiGenerator.js.map +1 -1
- package/build/utility/printMsg.js +53 -0
- package/build/utility/printMsg.js.map +1 -0
- package/build/utility/progressLog.js +4 -3
- package/build/utility/progressLog.js.map +1 -1
- package/build/utility/resolvePath.js +2 -1
- package/build/utility/resolvePath.js.map +1 -1
- package/build/utility/ruleVersionMap.js +73 -0
- package/build/utility/ruleVersionMap.js.map +1 -0
- package/config.dist.yaml +3 -3
- package/contributing/testing.md +106 -0
- package/eslint.config.js +24 -0
- package/package.json +22 -6
- package/scripts/exploit-smoke-test.js +82 -0
- package/scripts/framework-detect-smoke-test.js +64 -0
- package/scripts/postinstall-completion.mjs +40 -0
- package/scripts/smoke-test.js +12 -0
- package/build/lazyLoad/downloadLoadedJsUtil.js +0 -98
- package/build/lazyLoad/downloadLoadedJsUtil.js.map +0 -1
- package/build/map/next_js/interactive_helpers/esqueryGen.js.map +0 -1
- package/build/map/next_js/interactive_helpers/inputPatch.js.map +0 -1
- package/build/map/next_js/interactive_helpers/keybindings.js.map +0 -1
- package/build/map/next_js/interactive_helpers/printer.js.map +0 -1
- package/build/map/next_js/interactive_helpers/ui.js.map +0 -1
- /package/build/map/{next_js/interactive_helpers → interactive-mode}/esqueryGen.js +0 -0
- /package/build/map/{next_js/interactive_helpers → interactive-mode}/inputPatch.js +0 -0
- /package/build/map/{next_js/interactive_helpers → interactive-mode}/keybindings.js +0 -0
- /package/build/map/{next_js/interactive_helpers → interactive-mode}/printer.js +0 -0
- /package/build/map/{next_js/interactive_helpers → interactive-mode}/ui.js +0 -0
package/build/lazyLoad/index.js
CHANGED
|
@@ -10,13 +10,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
var _a;
|
|
11
11
|
import chalk from "chalk";
|
|
12
12
|
import fs from "fs";
|
|
13
|
-
import frameworkDetect from "./techDetect/index.js";
|
|
14
|
-
import CONFIG from "../globalConfig.js";
|
|
13
|
+
import frameworkDetect, { getLastInterceptedUrls } from "./techDetect/index.js";
|
|
15
14
|
import _traverse from "@babel/traverse";
|
|
16
15
|
const traverse = ((_a = _traverse.default) !== null && _a !== void 0 ? _a : _traverse);
|
|
17
16
|
import { URL } from "url";
|
|
18
17
|
// Next.js
|
|
19
18
|
import NextJsCrawler from "./next_js/NextJsCrawler.js";
|
|
19
|
+
import next_serverActionIdScan from "./next_js/next_serverActionIdScan.js";
|
|
20
20
|
import { next_buildId_RSC } from "./next_js/next_buildId.js";
|
|
21
21
|
// Nuxt.js
|
|
22
22
|
import nuxt_getFromPageSource from "./nuxt_js/nuxt_getFromPageSource.js";
|
|
@@ -41,11 +41,13 @@ import react_getScriptTags from "./react/react_getScriptTags.js";
|
|
|
41
41
|
import react_webpackChunkPaths from "./react/react_webpackChunkPaths.js";
|
|
42
42
|
import react_sourcemapUrls from "./react/react_sourcemapUrls.js";
|
|
43
43
|
import react_followImports from "./react/react_followImports.js";
|
|
44
|
-
import downloadLoadedJs from "./downloadLoadedJsUtil.js";
|
|
45
44
|
import { DownloadQueue } from "./downloadQueue.js";
|
|
45
|
+
import generic_crawlPages from "./generic/generic_crawlPages.js";
|
|
46
|
+
import resolveGenericScope from "./generic/generic_resolveScope.js";
|
|
46
47
|
import path from "path";
|
|
47
48
|
import { join } from "path";
|
|
48
49
|
import { extractSourceMaps } from "../sourcemaps/index.js";
|
|
50
|
+
import { discoverSourcemapUrls } from "./sourcemap.js";
|
|
49
51
|
// import global vars
|
|
50
52
|
import * as lazyLoadGlobals from "./globals.js";
|
|
51
53
|
import * as globals from "../utility/globals.js";
|
|
@@ -55,6 +57,9 @@ import { progressLog, progressWarn } from "../utility/progressLog.js";
|
|
|
55
57
|
import { resolveHostOutputDirectory } from "./outputPath.js";
|
|
56
58
|
import { withRequestSignal } from "../utility/makeReq.js";
|
|
57
59
|
import { resolveTargetInputs } from "../utility/targetInputs.js";
|
|
60
|
+
import { accumulateTechnique, createTechniqueRecorder } from "./researchUtils.js";
|
|
61
|
+
import { printMsg, MSG } from "../utility/printMsg.js";
|
|
62
|
+
import { getCacheDb } from "../utility/cacheDb.js";
|
|
58
63
|
/**
|
|
59
64
|
* Downloads the required JavaScript files for a given URL
|
|
60
65
|
* @param {string} url The URL to download the JS files from
|
|
@@ -67,7 +72,7 @@ import { resolveTargetInputs } from "../utility/targetInputs.js";
|
|
|
67
72
|
* @param {boolean} insecure If true, then disable SSL certificate verification
|
|
68
73
|
* @returns {Promise<void>} A Promise that resolves when the download is complete
|
|
69
74
|
*/
|
|
70
|
-
const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subsequentRequestsFlag_1, urlsFile_1, insecure_1, buildId_1, sourcemapDir_1, research_1, researchOutput_1, maxIterations_1, ...args_1) => __awaiter(void 0, [url_1, output_1, strictScope_1, inputScope_1, threads_1, subsequentRequestsFlag_1, urlsFile_1, insecure_1, buildId_1, sourcemapDir_1, research_1, researchOutput_1, maxIterations_1, ...args_1], void 0, function* (url, output, strictScope, inputScope, threads, subsequentRequestsFlag, urlsFile, insecure, buildId, sourcemapDir, research, researchOutput, maxIterations, maxJsSizeMb = 2, hardTimeoutMs = 30 * 60 * 1000, maxPageVisits = 200, includeMethods = [], excludeMethods = [], detectionTimeoutMs = 30 * 1000, cancellationSignal, isBatch = false) {
|
|
75
|
+
const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subsequentRequestsFlag_1, urlsFile_1, insecure_1, buildId_1, sourcemapDir_1, research_1, researchOutput_1, maxIterations_1, ...args_1) => __awaiter(void 0, [url_1, output_1, strictScope_1, inputScope_1, threads_1, subsequentRequestsFlag_1, urlsFile_1, insecure_1, buildId_1, sourcemapDir_1, research_1, researchOutput_1, maxIterations_1, ...args_1], void 0, function* (url, output, strictScope, inputScope, threads, subsequentRequestsFlag, urlsFile, insecure, buildId, sourcemapDir, research, researchOutput, maxIterations, maxJsSizeMb = 2, hardTimeoutMs = 30 * 60 * 1000, maxPageVisits = 200, includeMethods = [], excludeMethods = [], detectionTimeoutMs = 30 * 1000, cancellationSignal, isBatch = false, maxRedirects = 20, stringsEnabled = false, stringsMaxIterations = 5, stagnationTimeinMs = 0, stagnationPercentage = 80, stagnationMonitorMs = 60 * 1000, rscParamBruteforceLimit = 20, wordlist) {
|
|
71
76
|
const resolvedTargets = resolveTargetInputs(url);
|
|
72
77
|
// Hoisted so the timeout handler can stop discovery and drain downloads.
|
|
73
78
|
let activeCrawler = null;
|
|
@@ -99,25 +104,29 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
99
104
|
if (cancellationSignal === null || cancellationSignal === void 0 ? void 0 : cancellationSignal.aborted)
|
|
100
105
|
requestCancellation();
|
|
101
106
|
const work = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
102
|
-
|
|
107
|
+
printMsg(MSG.Header, "[i] Loading 'Lazy Load' module");
|
|
103
108
|
if (globals.getDisableSandbox()) {
|
|
104
|
-
|
|
109
|
+
printMsg(MSG.Warn, "[!] Browser sandbox disabled");
|
|
105
110
|
}
|
|
106
111
|
globals.setInsecure(insecure);
|
|
107
112
|
if (insecure) {
|
|
108
113
|
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
|
|
109
|
-
|
|
114
|
+
printMsg(MSG.Warn, "[!] Running in insecure mode. SSL certificate verification disabled");
|
|
110
115
|
}
|
|
111
|
-
// if cache enabled,
|
|
116
|
+
// if cache enabled, ensure the cache DB can be opened (this also creates it + its schema if missing)
|
|
112
117
|
if (!globals.getDisableCache()) {
|
|
113
|
-
|
|
114
|
-
|
|
118
|
+
try {
|
|
119
|
+
getCacheDb();
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
printMsg(MSG.Err, `[!] Could not open response cache database: ${(err === null || err === void 0 ? void 0 : err.message) || err}`);
|
|
123
|
+
process.exit(32);
|
|
115
124
|
}
|
|
116
125
|
}
|
|
117
126
|
for (const url of resolvedTargets.targets) {
|
|
118
127
|
if (hardTimeoutReached)
|
|
119
128
|
break;
|
|
120
|
-
|
|
129
|
+
printMsg(MSG.Header, `[i] Processing ${url}`);
|
|
121
130
|
lazyLoadGlobals.clearJsUrls();
|
|
122
131
|
lazyLoadGlobals.clearJsonUrls();
|
|
123
132
|
lazyLoadGlobals.clearCrawledUrls();
|
|
@@ -149,15 +158,15 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
149
158
|
activeDetectionController = null;
|
|
150
159
|
}
|
|
151
160
|
if (detectionTimedOut) {
|
|
152
|
-
|
|
161
|
+
printMsg(MSG.Warn, `[!] Framework detection timed out after ${detectionTimeoutMs}ms; treating as not detected`);
|
|
153
162
|
}
|
|
154
163
|
if (hardTimeoutReached)
|
|
155
164
|
break;
|
|
156
165
|
globals.setTech(tech ? tech.name : "");
|
|
157
166
|
if (tech) {
|
|
158
167
|
if (tech.name === "next") {
|
|
159
|
-
|
|
160
|
-
|
|
168
|
+
printMsg(MSG.Run, "[✓] Next.js detected");
|
|
169
|
+
printMsg(MSG.Warn, `Evidence: ${tech.evidence}`);
|
|
161
170
|
activeQueue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
162
171
|
const crawler = new NextJsCrawler({
|
|
163
172
|
url,
|
|
@@ -168,6 +177,8 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
168
177
|
research,
|
|
169
178
|
maxIterations,
|
|
170
179
|
maxPageVisits,
|
|
180
|
+
rscParamBruteforceLimit,
|
|
181
|
+
wordlist,
|
|
171
182
|
onUrlsDiscovered: (urls) => enqueue(activeQueue, urls),
|
|
172
183
|
includeMethods,
|
|
173
184
|
excludeMethods,
|
|
@@ -185,8 +196,26 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
185
196
|
yield activeQueue.drain();
|
|
186
197
|
if (hardTimeoutReached)
|
|
187
198
|
return;
|
|
199
|
+
const nextSeenUrls = activeQueue.seenUrls;
|
|
188
200
|
activeQueue.printSummary();
|
|
189
201
|
activeQueue = null;
|
|
202
|
+
if (shouldRunMethod("next_sourcemapUrls", includeMethods, excludeMethods)) {
|
|
203
|
+
const jsUrlsForSourcemaps = nextSeenUrls.filter((u) => /\.m?js($|[?#])/.test(u));
|
|
204
|
+
const mapUrls = yield discoverSourcemapUrls(jsUrlsForSourcemaps, threads, output);
|
|
205
|
+
if (mapUrls.length > 0) {
|
|
206
|
+
const mapQueue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
207
|
+
enqueue(mapQueue, mapUrls);
|
|
208
|
+
yield mapQueue.drain();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (shouldRunMethod("next_serverActionIdScan", includeMethods, excludeMethods)) {
|
|
212
|
+
const scanDir = resolveHostOutputDirectory(output, new URL(url).host, isBatch);
|
|
213
|
+
const scanResult = yield next_serverActionIdScan(scanDir);
|
|
214
|
+
if (scanResult.allActionIds.length > 0) {
|
|
215
|
+
printMsg(MSG.Run, `[✓] Found ${scanResult.allActionIds.length} Server Action ID(s) referenced in downloaded chunks (disclosure only — not invoked)`);
|
|
216
|
+
fs.writeFileSync(path.join(scanDir, "server_action_ids.json"), JSON.stringify(scanResult, null, 4));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
190
219
|
if (buildId) {
|
|
191
220
|
// get the buildId
|
|
192
221
|
// the directory is the output <output>/<host.replace(":", "_")>/___subsequent_requests
|
|
@@ -195,7 +224,7 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
195
224
|
if (hardTimeoutReached)
|
|
196
225
|
return;
|
|
197
226
|
if (buildId) {
|
|
198
|
-
|
|
227
|
+
printMsg(MSG.Header, "[+] Found buildId: " + buildId);
|
|
199
228
|
// now, write it to a file
|
|
200
229
|
fs.writeFileSync(path.join(targetOutputDir, "BUILD_ID"), buildId);
|
|
201
230
|
}
|
|
@@ -204,75 +233,103 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
204
233
|
if (research) {
|
|
205
234
|
// prettify the JSON and write
|
|
206
235
|
fs.writeFileSync(researchOutput, JSON.stringify(crawler.techniqueEfficiencyMapping, null, 4));
|
|
207
|
-
|
|
236
|
+
printMsg(MSG.Run, "[✓] Research mode enabled. Technique efficiency written to " + researchOutput);
|
|
208
237
|
}
|
|
209
238
|
// extract the source maps
|
|
210
239
|
yield extractSourceMaps(output, join(output, sourcemapDir));
|
|
211
240
|
}
|
|
212
241
|
else if (tech.name === "vue") {
|
|
213
|
-
|
|
214
|
-
|
|
242
|
+
printMsg(MSG.Run, "[✓] Vue.js detected");
|
|
243
|
+
printMsg(MSG.Warn, `Evidence: ${tech.evidence}`);
|
|
215
244
|
activeQueue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
216
245
|
const queue = activeQueue;
|
|
217
246
|
const onFilesDiscovered = (files) => enqueue(queue, files);
|
|
247
|
+
const vueResearchMap = {};
|
|
248
|
+
const vueOnTechnique = research ? createTechniqueRecorder(vueResearchMap) : undefined;
|
|
218
249
|
// run the full discovery pipeline against the entry URL
|
|
219
|
-
const { clientSidePaths } = yield vue_discoverJsFiles(url, maxJsSizeMb, onFilesDiscovered, includeMethods, excludeMethods, threads);
|
|
250
|
+
const { clientSidePaths } = yield vue_discoverJsFiles(url, maxJsSizeMb, onFilesDiscovered, includeMethods, excludeMethods, threads, true, true, vueOnTechnique, output);
|
|
220
251
|
if (hardTimeoutReached)
|
|
221
252
|
return;
|
|
222
253
|
// recurse the same pipeline through every client-side path we found
|
|
223
|
-
yield vue_recursiveClientSidePathDownload(clientSidePaths, threads, maxJsSizeMb, onFilesDiscovered, includeMethods, excludeMethods);
|
|
254
|
+
yield vue_recursiveClientSidePathDownload(clientSidePaths, threads, maxJsSizeMb, onFilesDiscovered, includeMethods, excludeMethods, vueOnTechnique, output);
|
|
224
255
|
if (hardTimeoutReached)
|
|
225
256
|
return;
|
|
226
257
|
yield queue.drain();
|
|
227
258
|
if (hardTimeoutReached)
|
|
228
259
|
return;
|
|
229
260
|
queue.printSummary();
|
|
261
|
+
if (research) {
|
|
262
|
+
fs.writeFileSync(researchOutput, JSON.stringify(vueResearchMap, null, 4));
|
|
263
|
+
printMsg(MSG.Run, "[✓] Research mode enabled. Technique efficiency written to " + researchOutput);
|
|
264
|
+
}
|
|
230
265
|
// extract the source maps
|
|
231
266
|
yield extractSourceMaps(output, join(output, sourcemapDir));
|
|
232
267
|
}
|
|
233
268
|
else if (tech.name === "nuxt") {
|
|
234
|
-
|
|
235
|
-
|
|
269
|
+
printMsg(MSG.Run, "[✓] Nuxt.js detected");
|
|
270
|
+
printMsg(MSG.Warn, `Evidence: ${tech.evidence}`);
|
|
236
271
|
const queue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
237
272
|
activeQueue = queue;
|
|
273
|
+
const nuxtResearchMap = {};
|
|
238
274
|
// find the files from the page source
|
|
239
275
|
const jsFilesFromPageSource = shouldRunMethod("nuxt_getFromPageSource", includeMethods, excludeMethods)
|
|
240
276
|
? yield nuxt_getFromPageSource(url)
|
|
241
277
|
: [];
|
|
242
278
|
enqueue(queue, jsFilesFromPageSource);
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
279
|
+
if (research)
|
|
280
|
+
accumulateTechnique(nuxtResearchMap, "nuxt_getFromPageSource", jsFilesFromPageSource);
|
|
281
|
+
const nuxtStringAnalysisResult = shouldRunMethod("nuxt_stringAnalysisJSFiles", includeMethods, excludeMethods)
|
|
282
|
+
? yield nuxt_stringAnalysisJSFiles(url, threads, output)
|
|
283
|
+
: { jsFiles: [], mapFiles: [] };
|
|
284
|
+
const jsFilesFromStringAnalysis = nuxtStringAnalysisResult.jsFiles;
|
|
246
285
|
enqueue(queue, jsFilesFromStringAnalysis);
|
|
286
|
+
if (nuxtStringAnalysisResult.mapFiles.length > 0) {
|
|
287
|
+
enqueue(queue, nuxtStringAnalysisResult.mapFiles);
|
|
288
|
+
}
|
|
289
|
+
if (research)
|
|
290
|
+
accumulateTechnique(nuxtResearchMap, "nuxt_stringAnalysisJSFiles", jsFilesFromStringAnalysis);
|
|
247
291
|
const firstBatch = [...new Set([...jsFilesFromPageSource, ...jsFilesFromStringAnalysis])];
|
|
248
|
-
|
|
292
|
+
const jsFilesFromAST = [];
|
|
249
293
|
if (shouldRunMethod("nuxt_astParse", includeMethods, excludeMethods)) {
|
|
250
|
-
|
|
294
|
+
printMsg(MSG.Header, "[i] Analyzing functions in the files found");
|
|
251
295
|
for (const jsFile of firstBatch) {
|
|
252
296
|
jsFilesFromAST.push(...(yield nuxt_astParse(jsFile)));
|
|
253
297
|
}
|
|
254
298
|
}
|
|
255
299
|
enqueue(queue, jsFilesFromAST);
|
|
300
|
+
if (research)
|
|
301
|
+
accumulateTechnique(nuxtResearchMap, "nuxt_astParse", jsFilesFromAST);
|
|
256
302
|
enqueue(queue, lazyLoadGlobals.getJsUrls());
|
|
257
303
|
const buildsManifestFiles = shouldRunMethod("nuxt_getBuildsManifest", includeMethods, excludeMethods)
|
|
258
304
|
? yield nuxt_getBuildsManifest(url)
|
|
259
305
|
: [];
|
|
260
306
|
enqueue(queue, buildsManifestFiles);
|
|
307
|
+
if (research)
|
|
308
|
+
accumulateTechnique(nuxtResearchMap, "nuxt_getBuildsManifest", buildsManifestFiles);
|
|
261
309
|
yield queue.drain();
|
|
262
310
|
if (hardTimeoutReached)
|
|
263
311
|
return;
|
|
264
312
|
queue.printSummary();
|
|
313
|
+
if (research) {
|
|
314
|
+
fs.writeFileSync(researchOutput, JSON.stringify(nuxtResearchMap, null, 4));
|
|
315
|
+
printMsg(MSG.Run, "[✓] Research mode enabled. Technique efficiency written to " + researchOutput);
|
|
316
|
+
}
|
|
317
|
+
// extract the source maps
|
|
318
|
+
yield extractSourceMaps(output, join(output, sourcemapDir));
|
|
265
319
|
}
|
|
266
320
|
else if (tech.name === "svelte") {
|
|
267
|
-
|
|
268
|
-
|
|
321
|
+
printMsg(MSG.Run, "[✓] Svelte detected");
|
|
322
|
+
printMsg(MSG.Warn, `Evidence: ${tech.evidence}`);
|
|
269
323
|
const queue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
270
324
|
activeQueue = queue;
|
|
325
|
+
const svelteResearchMap = {};
|
|
271
326
|
// find the files from the page source
|
|
272
327
|
const jsFilesFromPageSource = shouldRunMethod("svelte_getFromPageSource", includeMethods, excludeMethods)
|
|
273
328
|
? yield svelte_getFromPageSource(url)
|
|
274
329
|
: [];
|
|
275
330
|
enqueue(queue, jsFilesFromPageSource);
|
|
331
|
+
if (research)
|
|
332
|
+
accumulateTechnique(svelteResearchMap, "svelte_getFromPageSource", jsFilesFromPageSource);
|
|
276
333
|
// probe /<appDir>/version.json — SvelteKit serves this for the `updated` store
|
|
277
334
|
// but never references it from HTML or JS, so it is invisible to all other steps
|
|
278
335
|
const appDir = (() => {
|
|
@@ -292,27 +349,36 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
292
349
|
if (versionJsonFiles.length > 0) {
|
|
293
350
|
enqueue(queue, versionJsonFiles);
|
|
294
351
|
}
|
|
352
|
+
if (research)
|
|
353
|
+
accumulateTechnique(svelteResearchMap, "svelte_getVersionJson", versionJsonFiles);
|
|
295
354
|
// analyze the strings now
|
|
296
355
|
let jsFilesFromStringAnalysis = [];
|
|
297
356
|
let mapFilesFromStringAnalysis = [];
|
|
298
357
|
if (shouldRunMethod("svelte_stringAnalysisJSFiles", includeMethods, excludeMethods)) {
|
|
299
|
-
const result = yield svelte_stringAnalysisJSFiles(url, threads);
|
|
358
|
+
const result = yield svelte_stringAnalysisJSFiles(url, threads, output);
|
|
300
359
|
jsFilesFromStringAnalysis = result.jsFiles;
|
|
301
360
|
mapFilesFromStringAnalysis = result.mapFiles;
|
|
302
361
|
enqueue(queue, jsFilesFromStringAnalysis);
|
|
303
362
|
if (mapFilesFromStringAnalysis.length > 0) {
|
|
304
363
|
enqueue(queue, mapFilesFromStringAnalysis);
|
|
305
364
|
}
|
|
365
|
+
if (research) {
|
|
366
|
+
accumulateTechnique(svelteResearchMap, "svelte_stringAnalysisJSFiles", jsFilesFromStringAnalysis);
|
|
367
|
+
accumulateTechnique(svelteResearchMap, "svelte_stringAnalysisJSFiles", mapFilesFromStringAnalysis);
|
|
368
|
+
}
|
|
306
369
|
}
|
|
307
370
|
// recursively follow ESM static imports (import ... from "./chunk.js")
|
|
371
|
+
// svelte_followImports reuses react_followImports — tracked under react_followImports key
|
|
308
372
|
const visited = new Set();
|
|
309
373
|
let toFollow = [...new Set([...jsFilesFromPageSource, ...jsFilesFromStringAnalysis])];
|
|
310
374
|
while (toFollow.length > 0) {
|
|
311
375
|
const newFiles = yield react_followImports(toFollow, maxJsSizeMb, url, visited, threads);
|
|
312
376
|
if (newFiles.length === 0)
|
|
313
377
|
break;
|
|
314
|
-
|
|
378
|
+
printMsg(MSG.Run, `[✓] Discovered ${newFiles.length} more JS file(s) via imports`);
|
|
315
379
|
enqueue(queue, newFiles);
|
|
380
|
+
if (research)
|
|
381
|
+
accumulateTechnique(svelteResearchMap, "react_followImports", newFiles);
|
|
316
382
|
toFollow = newFiles;
|
|
317
383
|
}
|
|
318
384
|
// crawl same-origin HTML pages found via <a href> and <link href>,
|
|
@@ -320,6 +386,8 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
320
386
|
const jsFilesFromPageCrawl = shouldRunMethod("svelte_recursivePageCrawl", includeMethods, excludeMethods)
|
|
321
387
|
? yield svelte_recursivePageCrawl(url, maxJsSizeMb, (files) => enqueue(queue, files))
|
|
322
388
|
: [];
|
|
389
|
+
if (research)
|
|
390
|
+
accumulateTechnique(svelteResearchMap, "svelte_recursivePageCrawl", jsFilesFromPageCrawl);
|
|
323
391
|
// Svelte/Astro apps use client-side routing — the home page rarely has
|
|
324
392
|
// <a href> links in its server-rendered HTML. Scan downloaded JS for
|
|
325
393
|
// embedded page path strings (e.g. "/admin", "/debug") and visit each
|
|
@@ -331,31 +399,44 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
331
399
|
if (jsFilesFromPathScan.length > 0) {
|
|
332
400
|
enqueue(queue, jsFilesFromPathScan);
|
|
333
401
|
}
|
|
402
|
+
if (research)
|
|
403
|
+
accumulateTechnique(svelteResearchMap, "svelte_discoverPagesFromJs", jsFilesFromPathScan);
|
|
334
404
|
// run string analysis once more to catch JS files discovered during page crawl
|
|
335
405
|
if ((jsFilesFromPageCrawl.length > 0 || jsFilesFromPathScan.length > 0) &&
|
|
336
406
|
shouldRunMethod("svelte_stringAnalysisJSFiles", includeMethods, excludeMethods)) {
|
|
337
|
-
const { jsFiles: jsFilesFromStringAnalysis2, mapFiles: mapFilesFromStringAnalysis2 } = yield svelte_stringAnalysisJSFiles(url, threads);
|
|
407
|
+
const { jsFiles: jsFilesFromStringAnalysis2, mapFiles: mapFilesFromStringAnalysis2 } = yield svelte_stringAnalysisJSFiles(url, threads, output);
|
|
338
408
|
enqueue(queue, jsFilesFromStringAnalysis2);
|
|
339
409
|
if (mapFilesFromStringAnalysis2.length > 0) {
|
|
340
410
|
enqueue(queue, mapFilesFromStringAnalysis2);
|
|
341
411
|
}
|
|
412
|
+
if (research) {
|
|
413
|
+
accumulateTechnique(svelteResearchMap, "svelte_stringAnalysisJSFiles", jsFilesFromStringAnalysis2);
|
|
414
|
+
accumulateTechnique(svelteResearchMap, "svelte_stringAnalysisJSFiles", mapFilesFromStringAnalysis2);
|
|
415
|
+
}
|
|
342
416
|
}
|
|
343
417
|
yield queue.drain();
|
|
344
418
|
if (hardTimeoutReached)
|
|
345
419
|
return;
|
|
346
420
|
queue.printSummary();
|
|
421
|
+
if (research) {
|
|
422
|
+
fs.writeFileSync(researchOutput, JSON.stringify(svelteResearchMap, null, 4));
|
|
423
|
+
printMsg(MSG.Run, "[✓] Research mode enabled. Technique efficiency written to " + researchOutput);
|
|
424
|
+
}
|
|
347
425
|
yield extractSourceMaps(output, join(output, sourcemapDir));
|
|
348
426
|
}
|
|
349
427
|
else if (tech.name === "angular") {
|
|
350
|
-
|
|
351
|
-
|
|
428
|
+
printMsg(MSG.Run, "[✓] Angular detected");
|
|
429
|
+
printMsg(MSG.Warn, `Evidence: ${tech.evidence}`);
|
|
352
430
|
const queue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
353
431
|
activeQueue = queue;
|
|
432
|
+
const angularResearchMap = {};
|
|
354
433
|
// find the files from the page source
|
|
355
434
|
const jsFilesFromPageSource = shouldRunMethod("angular_getFromPageSource", includeMethods, excludeMethods)
|
|
356
435
|
? yield angular_getFromPageSource(url)
|
|
357
436
|
: [];
|
|
358
437
|
enqueue(queue, jsFilesFromPageSource);
|
|
438
|
+
if (research)
|
|
439
|
+
accumulateTechnique(angularResearchMap, "angular_getFromPageSource", jsFilesFromPageSource);
|
|
359
440
|
// files using the main.js
|
|
360
441
|
if (shouldRunMethod("angular_getFromMainJs", includeMethods, excludeMethods)) {
|
|
361
442
|
let mainJsUrl;
|
|
@@ -368,10 +449,14 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
368
449
|
if (mainJsUrl) {
|
|
369
450
|
const jsFilesFromMainJs = yield angular_getFromMainJs(mainJsUrl);
|
|
370
451
|
enqueue(queue, jsFilesFromMainJs);
|
|
452
|
+
if (research)
|
|
453
|
+
accumulateTechnique(angularResearchMap, "angular_getFromMainJs", jsFilesFromMainJs);
|
|
371
454
|
// recursively follow chunk-to-chunk imports beyond the first hop
|
|
372
455
|
if (shouldRunMethod("angular_recursiveChunkImports", includeMethods, excludeMethods)) {
|
|
373
456
|
const transitiveChunks = yield angular_recursiveChunkImports(jsFilesFromMainJs, threads);
|
|
374
457
|
enqueue(queue, transitiveChunks);
|
|
458
|
+
if (research)
|
|
459
|
+
accumulateTechnique(angularResearchMap, "angular_recursiveChunkImports", transitiveChunks);
|
|
375
460
|
}
|
|
376
461
|
}
|
|
377
462
|
}
|
|
@@ -379,16 +464,32 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
379
464
|
if (hardTimeoutReached)
|
|
380
465
|
return;
|
|
381
466
|
queue.printSummary();
|
|
467
|
+
if (shouldRunMethod("angular_sourcemapUrls", includeMethods, excludeMethods)) {
|
|
468
|
+
const jsUrlsForSourcemaps = queue.seenUrls.filter((u) => /\.m?js($|[?#])/.test(u));
|
|
469
|
+
const mapUrls = yield discoverSourcemapUrls(jsUrlsForSourcemaps, threads, output);
|
|
470
|
+
if (mapUrls.length > 0) {
|
|
471
|
+
const mapQueue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
472
|
+
enqueue(mapQueue, mapUrls);
|
|
473
|
+
yield mapQueue.drain();
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
if (research) {
|
|
477
|
+
fs.writeFileSync(researchOutput, JSON.stringify(angularResearchMap, null, 4));
|
|
478
|
+
printMsg(MSG.Run, "[✓] Research mode enabled. Technique efficiency written to " + researchOutput);
|
|
479
|
+
}
|
|
480
|
+
// extract the source maps
|
|
481
|
+
yield extractSourceMaps(output, join(output, sourcemapDir));
|
|
382
482
|
}
|
|
383
483
|
else if (tech.name === "react") {
|
|
384
|
-
|
|
385
|
-
|
|
484
|
+
printMsg(MSG.Run, "[✓] React detected");
|
|
485
|
+
printMsg(MSG.Warn, `Evidence: ${tech.evidence}`);
|
|
386
486
|
const queue = new DownloadQueue(output, threads, {
|
|
387
487
|
compactOutput: true,
|
|
388
488
|
onProgress: (progress) => activeDownloadProgress === null || activeDownloadProgress === void 0 ? void 0 : activeDownloadProgress.update(progress),
|
|
389
489
|
alreadyBatchTargetRoot: isBatch,
|
|
390
490
|
});
|
|
391
491
|
activeQueue = queue;
|
|
492
|
+
const reactResearchMap = {};
|
|
392
493
|
// Seed: <script src> tags + <link rel="modulepreload"> (Vite vendor chunks)
|
|
393
494
|
const jsFilesFromPageSource = shouldRunMethod("react_getScriptTags", includeMethods, excludeMethods)
|
|
394
495
|
? yield react_getScriptTags(url, maxJsSizeMb, output, isBatch)
|
|
@@ -396,6 +497,8 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
396
497
|
if (hardTimeoutReached)
|
|
397
498
|
return;
|
|
398
499
|
enqueue(queue, jsFilesFromPageSource);
|
|
500
|
+
if (research)
|
|
501
|
+
accumulateTechnique(reactResearchMap, "react_getScriptTags", jsFilesFromPageSource);
|
|
399
502
|
// webpack-style chunk path builders (CRA / custom webpack configs)
|
|
400
503
|
const webpackChunkPaths = shouldRunMethod("react_webpackChunkPaths", includeMethods, excludeMethods)
|
|
401
504
|
? yield react_webpackChunkPaths(url, maxJsSizeMb, jsFilesFromPageSource, threads)
|
|
@@ -406,6 +509,8 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
406
509
|
activeDownloadProgress.update(queue.progress);
|
|
407
510
|
try {
|
|
408
511
|
enqueue(queue, webpackChunkPaths);
|
|
512
|
+
if (research)
|
|
513
|
+
accumulateTechnique(reactResearchMap, "react_webpackChunkPaths", webpackChunkPaths);
|
|
409
514
|
// Recursively follow ESM imports and Vite __vite_mapDeps references.
|
|
410
515
|
// visited starts empty so the seed files are fetched and parsed in the first round.
|
|
411
516
|
const visited = new Set();
|
|
@@ -419,14 +524,18 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
419
524
|
break;
|
|
420
525
|
progressLog(chalk.green(`[✓] Discovered ${newFiles.length} more JS file(s) via imports`));
|
|
421
526
|
enqueue(queue, newFiles);
|
|
527
|
+
if (research)
|
|
528
|
+
accumulateTechnique(reactResearchMap, "react_followImports", newFiles);
|
|
422
529
|
toFollow = newFiles;
|
|
423
530
|
}
|
|
424
531
|
}
|
|
425
532
|
// Sourcemaps for everything discovered
|
|
426
533
|
if (!hardTimeoutReached &&
|
|
427
534
|
shouldRunMethod("react_sourcemapUrls", includeMethods, excludeMethods)) {
|
|
428
|
-
const sourcemapUrls = yield react_sourcemapUrls([...visited], threads);
|
|
535
|
+
const sourcemapUrls = yield react_sourcemapUrls([...visited], threads, output);
|
|
429
536
|
enqueue(queue, sourcemapUrls);
|
|
537
|
+
if (research)
|
|
538
|
+
accumulateTechnique(reactResearchMap, "react_sourcemapUrls", sourcemapUrls);
|
|
430
539
|
}
|
|
431
540
|
yield queue.drain();
|
|
432
541
|
}
|
|
@@ -437,50 +546,38 @@ const lazyLoad = (url_1, output_1, strictScope_1, inputScope_1, threads_1, subse
|
|
|
437
546
|
if (hardTimeoutReached)
|
|
438
547
|
return;
|
|
439
548
|
queue.printSummary();
|
|
549
|
+
if (research) {
|
|
550
|
+
fs.writeFileSync(researchOutput, JSON.stringify(reactResearchMap, null, 4));
|
|
551
|
+
printMsg(MSG.Run, "[✓] Research mode enabled. Technique efficiency written to " + researchOutput);
|
|
552
|
+
}
|
|
440
553
|
yield extractSourceMaps(output, join(output, sourcemapDir));
|
|
441
554
|
}
|
|
442
555
|
}
|
|
443
556
|
else {
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
557
|
+
printMsg(MSG.Warn, "[i] Framework not detected — falling back to generic JS extraction");
|
|
558
|
+
globals.setTech("generic");
|
|
559
|
+
// If the caller didn't customize scope (still the "*" default) and isn't
|
|
560
|
+
// using --strict-scope, default the generic crawl's scope to the origin
|
|
561
|
+
// reached after following redirects, rather than crawling the whole web.
|
|
562
|
+
if (!strictScope && inputScope.length === 1 && inputScope[0] === "*") {
|
|
563
|
+
const resolvedScope = yield resolveGenericScope(url, maxRedirects);
|
|
564
|
+
lazyLoadGlobals.setScope(resolvedScope);
|
|
565
|
+
}
|
|
566
|
+
// Downloads JS incrementally as pages are crawled (see generic_crawlPages.ts) —
|
|
567
|
+
// the returned list is only used for the final summary count.
|
|
568
|
+
const genericResearchMap = {};
|
|
569
|
+
const allUrls = yield generic_crawlPages(url, maxJsSizeMb, output, maxPageVisits, threads, research ? genericResearchMap : undefined, stringsEnabled, stringsMaxIterations, getLastInterceptedUrls(), stagnationTimeinMs, stagnationPercentage, stagnationMonitorMs);
|
|
448
570
|
if (hardTimeoutReached)
|
|
449
571
|
return;
|
|
450
|
-
if (
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
secondChanceTech = "next";
|
|
460
|
-
secondChanceEvidence = u;
|
|
461
|
-
break;
|
|
462
|
-
}
|
|
463
|
-
if (u.includes("/_nuxt/")) {
|
|
464
|
-
secondChanceTech = "nuxt";
|
|
465
|
-
secondChanceEvidence = u;
|
|
466
|
-
break;
|
|
467
|
-
}
|
|
468
|
-
if (u.includes("/_app/immutable/")) {
|
|
469
|
-
secondChanceTech = "svelte";
|
|
470
|
-
secondChanceEvidence = u;
|
|
471
|
-
break;
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
if (secondChanceTech) {
|
|
475
|
-
console.log(chalk.green(`[✓] Detected ${secondChanceTech} from downloaded file paths (evidence: ${secondChanceEvidence})`));
|
|
476
|
-
globals.setTech(secondChanceTech);
|
|
477
|
-
}
|
|
478
|
-
const queue = new DownloadQueue(output, threads, { alreadyBatchTargetRoot: isBatch });
|
|
479
|
-
enqueue(queue, js_urls);
|
|
480
|
-
yield queue.drain();
|
|
481
|
-
if (hardTimeoutReached)
|
|
482
|
-
return;
|
|
483
|
-
queue.printSummary();
|
|
572
|
+
if (allUrls.length > 0) {
|
|
573
|
+
printMsg(MSG.Run, `[✓] Found ${allUrls.length} JS file(s)`);
|
|
574
|
+
}
|
|
575
|
+
else {
|
|
576
|
+
printMsg(MSG.Warn, "[i] No JS files discovered");
|
|
577
|
+
}
|
|
578
|
+
if (research) {
|
|
579
|
+
fs.writeFileSync(researchOutput, JSON.stringify(genericResearchMap, null, 4));
|
|
580
|
+
printMsg(MSG.Run, "[✓] Research mode enabled. Technique efficiency written to " + researchOutput);
|
|
484
581
|
}
|
|
485
582
|
}
|
|
486
583
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lazyLoad/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lazyLoad/index.ts"],"names":[],"mappings":"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"}
|