@jshookmcp/jshook 0.3.2 → 0.3.3
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/README.md +3 -3
- package/README.zh.md +3 -3
- package/dist/{AntiCheatDetector-B6d4Qe9D.mjs → AntiCheatDetector-CUpZBh5O.mjs} +1 -1
- package/dist/{BrowserSessionCoordinator-BJ-HOxo0.mjs → BrowserSessionCoordinator-QIt3tetp.mjs} +1 -1
- package/dist/CodeInjector-Btj9upnf.mjs +1 -0
- package/dist/{ConsoleMonitor-CxDJV15E.mjs → ConsoleMonitor-DIjN5Afa.mjs} +5 -5
- package/dist/{DarwinAPI-ZfQdpLNI.mjs → DarwinAPI-BuMPGzHm.mjs} +1 -1
- package/dist/DetailedDataManager-Z77fDl9Z.mjs +5 -0
- package/dist/ExtensionManager.tools-CIGOWViz.mjs +1 -0
- package/dist/{FingerprintManager-DT0EAUEo.mjs → FingerprintManager-BkDSsjjP.mjs} +1 -1
- package/dist/{HardwareBreakpoint-BUfPdp0f.mjs → HardwareBreakpoint-DMAMcPyB.mjs} +1 -1
- package/dist/{HeapAnalyzer-B_aqY8oj.mjs → HeapAnalyzer-Yj348FYt.mjs} +1 -1
- package/dist/{ExtensionManager.tools-oVMJgPcN.mjs → MCPServer.activation.ttl-CEGNBycZ.mjs} +1 -1
- package/dist/MCPServer.search.helpers-Cs1JpKbu.mjs +1 -0
- package/dist/MCPServer.search.validation-DnifPCCv.mjs +1 -0
- package/dist/{MemoryController-X1XNSn1n.mjs → MemoryController-DjtgiING.mjs} +1 -1
- package/dist/{MemoryScanSession-DG_F-PjE.mjs → MemoryScanSession-zfoVZJB0.mjs} +1 -1
- package/dist/MemoryScanner-Dxd657li.mjs +1 -0
- package/dist/{NativeMemoryManager.utils-BHy1P_jM.mjs → NativeMemoryManager.utils-Bu8srMEF.mjs} +1 -1
- package/dist/{PEAnalyzer-yWQaGrcx.mjs → PEAnalyzer-CMu9Ua9T.mjs} +1 -1
- package/dist/PointerChainEngine-CaSC1Mry.mjs +1 -0
- package/dist/{ProcessRegistry-C-bN48oR.mjs → ProcessRegistry-D5y1yuP2.mjs} +1 -1
- package/dist/{ReverseEvidenceGraph-BhSYYdiI.mjs → ReverseEvidenceGraph-BksOpsPs.mjs} +1 -1
- package/dist/ServerRuntimeState-CgqBBwfd.mjs +1 -0
- package/dist/{Speedhack-yseDPSZ9.mjs → Speedhack-pwXTHxOY.mjs} +1 -1
- package/dist/{StructureAnalyzer-C5lpuZkg.mjs → StructureAnalyzer-BseGzsSl.mjs} +2 -2
- package/dist/ToolCatalog-DgmQXdsm.mjs +1 -0
- package/dist/ToolHandlerMap-7HWoIgQO.mjs +1 -0
- package/dist/{ToolProbe-C7ZU2x7M.mjs → ToolProbe-DQiREmNp.mjs} +1 -1
- package/dist/{ToolRegistry-C5oB8KP8.mjs → ToolRegistry-eMZEBiR1.mjs} +1 -1
- package/dist/ToolRouter.policy-UKBlFlbh.mjs +4 -0
- package/dist/{TraceRecorder-BiJWBXHX.mjs → TraceRecorder-B5ktv3nP.mjs} +2 -2
- package/dist/VersionDetector-CmPJmaJg.mjs +1 -0
- package/dist/{Win32API-eUCF57l_.mjs → Win32API-DoP3MMHS.mjs} +1 -1
- package/dist/{Win32Debug-CYrIQBvr.mjs → Win32Debug-DwF8mQGm.mjs} +1 -1
- package/dist/{WorkflowEngine-D876meOO.mjs → WorkflowEngine-CldHG5b4.mjs} +1 -1
- package/dist/{analysis-D4swdMvq.mjs → analysis-C-ln0Brh.mjs} +3 -3
- package/dist/antidebug-CsnpOR9z.mjs +1 -0
- package/dist/{artifactRetention-BCPQASm7.mjs → artifactRetention-DkYKLOvi.mjs} +1 -1
- package/dist/{artifacts-CkodUM4j.mjs → artifacts-D-4pSS_N.mjs} +1 -1
- package/dist/{betterSqlite3-Brtq-SIQ.mjs → betterSqlite3-Bdo_ifuJ.mjs} +1 -1
- package/dist/binary-instrument-BeZ224mZ.mjs +9 -0
- package/dist/{boringssl-inspector-BBaJwwkU.mjs → boringssl-inspector-ZOCkaipa.mjs} +2 -2
- package/dist/browser-BUaB25bk.mjs +11 -0
- package/dist/{handlers-yo_xYzT8.mjs → canvas-396ieNv5.mjs} +22 -22
- package/dist/collector-CB2syQEg.mjs +1 -0
- package/dist/constants-DMv3svps.mjs +2 -0
- package/dist/coordination-Dbohmj6D.mjs +1 -0
- package/dist/dart-inspector-LhEqRITQ.mjs +0 -0
- package/dist/debugger-CLzkObIO.mjs +1 -0
- package/dist/{definitions-OeLvmlQy.mjs → definitions-0hxnrDU72.mjs} +1 -1
- package/dist/definitions-B3a9QC2t.mjs +1 -0
- package/dist/{definitions-Ibci7e_L.mjs → definitions-BOvju5t2.mjs} +1 -1
- package/dist/{definitions-D4g-MS10.mjs → definitions-CXj_cEVt.mjs} +1 -1
- package/dist/{definitions-C3qNgSn1.mjs → definitions-Co6AvTjH.mjs} +1 -1
- package/dist/{definitions-DxFNRQNK2.mjs → definitions-Cv5r8xwq.mjs} +1 -1
- package/dist/definitions-DBYSxChX.mjs +1 -0
- package/dist/{definitions-CQd7yCQH.mjs → definitions-D_dTDX9B.mjs} +1 -1
- package/dist/{definitions-l7TjdE6V.mjs → definitions-Db9t2ddh.mjs} +1 -1
- package/dist/{definitions-BWxBke3r.mjs → definitions-DbN2CjI2.mjs} +1 -1
- package/dist/{definitions-DAQm1Xar.mjs → definitions-DlmmHmZc.mjs} +1 -1
- package/dist/{definitions-Bf3H1EwV.mjs → definitions-DnYpoGig.mjs} +1 -1
- package/dist/{definitions-BYwATKc-.mjs → definitions-DtZ6Ktx2.mjs} +1 -1
- package/dist/{definitions-D5wl_8HN.mjs → definitions-DuIPS8gq.mjs} +1 -1
- package/dist/{definitions-RZYGD_Ey.mjs → definitions-DywfwPMb.mjs} +1 -1
- package/dist/definitions-EGmqr85H.mjs +1 -0
- package/dist/{definitions-bybDvnG0.mjs → definitions-Fetw_Cge.mjs} +3 -3
- package/dist/{definitions-CB6vmOer.mjs → definitions-LdkeuOeA.mjs} +1 -1
- package/dist/{definitions-B_83XfNQ.mjs → definitions-Ym8niHDb.mjs} +1 -1
- package/dist/{definitions-Cenu6mxo.mjs → definitions-aeRd5DAR.mjs} +1 -1
- package/dist/{definitions-CT8ln6GQ.mjs → definitions-cnG6tj17.mjs} +1 -1
- package/dist/{encoding-ycOaz8Vr.mjs → encoding-B4xZWErf.mjs} +2 -2
- package/dist/ensure-browser-core-JHwDo5ql.mjs +285 -0
- package/dist/{factory-CKr4fAE1.mjs → factory-BxNdBiZa.mjs} +1 -1
- package/dist/{graphql-B2TiPEow.mjs → graphql-GBWsZ9xC.mjs} +4 -4
- package/dist/{handlers-D5E40ssn.mjs → handlers-5nzR8B0a.mjs} +2 -2
- package/dist/handlers-6iNsXOVT.mjs +7 -0
- package/dist/{handlers-BpDlVVVU.mjs → handlers-BZ8n6Hvf.mjs} +1 -1
- package/dist/{handlers-0yKLRIfo.mjs → handlers-BbLxNbbT.mjs} +1 -1
- package/dist/{handlers-DGbdQAgD.mjs → handlers-BbS4hssc.mjs} +2 -2
- package/dist/{handlers-l8QIKqBj.mjs → handlers-CIKOP4aI.mjs} +2 -2
- package/dist/handlers-CWKBBjai.mjs +1 -0
- package/dist/{handlers-B62K4FTc.mjs → handlers-Cmb6SoRC.mjs} +1 -1
- package/dist/handlers-CrJsKnEI.mjs +1 -0
- package/dist/{antidebug-7L3ygj_9.mjs → handlers-DB6xVVWq.mjs} +2 -2
- package/dist/{handlers-CMJK7m1c.mjs → handlers-DOOCWUNR.mjs} +3 -3
- package/dist/{handlers-D2ZOul9p.mjs → handlers-Z_B5aVaU.mjs} +2 -2
- package/dist/handlers-gVscChvl.mjs +1 -0
- package/dist/handlers-xFvI9P_y.mjs +1 -0
- package/dist/{handlers.impl-D9Hh8Bgl.mjs → handlers.impl-BsFTW6SD.mjs} +1 -1
- package/dist/{hooks-D4XLfgtV.mjs → hooks-DPouiS7I.mjs} +9 -9
- package/dist/index.mjs +11 -11
- package/dist/macro-p8kuJVcm.mjs +2 -0
- package/dist/maintenance-DAqADb6Z.mjs +302 -0
- package/dist/manifest-4lmM6MZR.mjs +1 -0
- package/dist/{manifest-DujQqEQR.mjs → manifest-AxaxRSt6.mjs} +2 -2
- package/dist/{manifest-DYpn8w_h.mjs → manifest-BIqRE1Qz.mjs} +1 -1
- package/dist/manifest-Box-jWfr.mjs +1 -0
- package/dist/manifest-Bp33di0Q.mjs +1 -0
- package/dist/{manifest-CQH9FhwI.mjs → manifest-BvRX4nRP.mjs} +1 -1
- package/dist/{manifest-0Jpt_AQa.mjs → manifest-C6KoB1XE.mjs} +1 -1
- package/dist/manifest-C7TdXCWY.mjs +1 -0
- package/dist/manifest-CM-n64K0.mjs +1 -0
- package/dist/{manifest-nXHmtMSp2.mjs → manifest-CUokxCUN.mjs} +1 -1
- package/dist/manifest-CWJS45iO.mjs +1 -0
- package/dist/{manifest-LLdI5m4T.mjs → manifest-Cdxdgo-D.mjs} +1 -1
- package/dist/{manifest-D_obs5F4.mjs → manifest-Cf6SmamD.mjs} +1 -1
- package/dist/manifest-Cgxu2qdv.mjs +1 -0
- package/dist/{manifest-ztWJoXy4.mjs → manifest-CowGSURa2.mjs} +1 -1
- package/dist/{manifest-DYzWI8Xs.mjs → manifest-CsGIrh34.mjs} +1 -1
- package/dist/manifest-CvDpVToN.mjs +1 -0
- package/dist/manifest-D8TL9RLE.mjs +1 -0
- package/dist/{manifest-DCx6w2XV.mjs → manifest-DIhtCBe6.mjs} +1 -1
- package/dist/{manifest-D9jUUJAu.mjs → manifest-DJbruNOg.mjs} +1 -1
- package/dist/manifest-DLGtZH-0.mjs +1 -0
- package/dist/manifest-DXHdPt2T.mjs +1 -0
- package/dist/{manifest-B3fZbSWR.mjs → manifest-Dg5ScOyW.mjs} +1 -1
- package/dist/{manifest-xWfu6iLo.mjs → manifest-DzGoTS0R.mjs} +1 -1
- package/dist/manifest-G2H52LKz.mjs +131 -0
- package/dist/{manifest-CctIumog.mjs → manifest-P0Futrgb.mjs} +1 -1
- package/dist/{manifest-YgVd8Sgz.mjs → manifest-Qw7xgvjv.mjs} +1 -1
- package/dist/{manifest-QYbQXJn0.mjs → manifest-W3qvVrP2.mjs} +1 -1
- package/dist/manifest-dG6MuR1U.mjs +1 -0
- package/dist/manifest-nWXtgq5Y2.mjs +1 -0
- package/dist/{manifest-LG42zPLY2.mjs → manifest-vp1upSSq.mjs} +1 -1
- package/dist/{modules-BPBcSaM-.mjs → modules-DO3jXCgj.mjs} +10 -10
- package/dist/{mojo-ipc-BhwsdVUW.mjs → mojo-ipc-Be-ccWrc.mjs} +1 -1
- package/dist/native-g095qhpK.mjs +961 -0
- package/dist/network-Dvxm7eEI.mjs +7 -0
- package/dist/outputPaths-D2ddHrOJ.mjs +2 -0
- package/dist/{parse-args-Bw413PlW.mjs → parse-args-ngRrvF9e.mjs} +1 -1
- package/dist/platform-DjWbuiF8.mjs +93 -0
- package/dist/process-Dq5I-KZW.mjs +2 -0
- package/dist/proxy-DPNgM7TE.mjs +2 -0
- package/dist/{registry-DH4sc1dt.mjs → registry-xB8Wgmyj.mjs} +1 -1
- package/dist/{renderer-pid-9tJnZ_9N.mjs → renderer-pid-7jbTR8f5.mjs} +1 -1
- package/dist/search-defaults-CJik67or.mjs +1 -0
- package/dist/server/plugin-api.mjs +1 -1
- package/dist/sourcemap-DqEW15Ao.mjs +1 -0
- package/dist/streaming-Dbk4eStJ.mjs +1 -0
- package/dist/{transform-DOxzeWPB.mjs → transform-D-peM3aO.mjs} +2 -2
- package/dist/{wasm-CZ_HTfKR.mjs → wasm-CZajRaad.mjs} +6 -6
- package/dist/{webcrack-C1iYG_EX.mjs → webcrack-phEfVt5y.mjs} +3 -3
- package/dist/{workflow-BdwQmARn.mjs → workflow-wkXb3x-U.mjs} +3 -3
- package/package.json +2 -2
- package/dist/CodeInjector-Cll_7bLJ.mjs +0 -1
- package/dist/DOMInspector-C19J4zeq.mjs +0 -95
- package/dist/DetailedDataManager-DmQ1LT-W.mjs +0 -1
- package/dist/ExtensionManager-BD724zkO.mjs +0 -1
- package/dist/MCPServer.search.handlers.domain-BbS-6LnX.mjs +0 -1
- package/dist/MemoryScanner-g1_L1ub5.mjs +0 -1
- package/dist/NativeMemoryManager.impl-DniBe2wf.mjs +0 -1
- package/dist/NetworkMonitor-B_-au6aV.mjs +0 -185
- package/dist/PageController-Dfsm1_o7.mjs +0 -1
- package/dist/PointerChainEngine-BhCUkmxY.mjs +0 -1
- package/dist/PrerequisiteError-BjCQA-gK.mjs +0 -1
- package/dist/ScriptManager-LWGPTdvD.mjs +0 -7
- package/dist/ServerRuntimeState-D2bWHqEE.mjs +0 -1
- package/dist/ToolCatalog-CYdD9F5f.mjs +0 -1
- package/dist/ToolRouter.policy-CfhJczkt.mjs +0 -4
- package/dist/VersionDetector-CHT36Az0.mjs +0 -9
- package/dist/apk-packer-BqXcInnX.mjs +0 -1
- package/dist/binary-instrument-DU7V6TUM.mjs +0 -7
- package/dist/binary-secrets-PdMVoyt0.mjs +0 -1
- package/dist/browser-Qqco2rOT.mjs +0 -11
- package/dist/collector-Bpl6qy2L.mjs +0 -1
- package/dist/constants-BYj8Xek8.mjs +0 -1
- package/dist/coordination-CWXW1o8K.mjs +0 -1
- package/dist/dart-inspector-7AkPeZ_Q.mjs +0 -0
- package/dist/debugger-DyALjYMk.mjs +0 -1
- package/dist/definitions-BftdXgXI.mjs +0 -1
- package/dist/definitions-Bio5XJYy.mjs +0 -1
- package/dist/definitions-CMZRSy3k.mjs +0 -1
- package/dist/definitions-DP1vgxEY.mjs +0 -1
- package/dist/definitions-Tls8c0A0.mjs +0 -1
- package/dist/ensure-browser-core-DxWC-NTp.mjs +0 -1
- package/dist/flat-target-session-DvcQX7J5.mjs +0 -1
- package/dist/handlers-8zN_vBIz.mjs +0 -1
- package/dist/handlers-DHO3rjsW.mjs +0 -1
- package/dist/handlers-FJ80VzUI.mjs +0 -2
- package/dist/handlers-VHWrxbM_.mjs +0 -1
- package/dist/handlers-mPFiNPe8.mjs +0 -302
- package/dist/jadx-search-B_Yse0Zh.mjs +0 -5
- package/dist/maintenance-BUpIukhg.mjs +0 -1
- package/dist/manifest-B7NB2rh2.mjs +0 -1
- package/dist/manifest-BDi4nbH1.mjs +0 -1
- package/dist/manifest-BLDfkE7n.mjs +0 -1
- package/dist/manifest-BcXbB4gf.mjs +0 -1
- package/dist/manifest-Bdnc_vrc.mjs +0 -1
- package/dist/manifest-BuYKgCnp.mjs +0 -1
- package/dist/manifest-CBfNnGPV.mjs +0 -1
- package/dist/manifest-CPS1Xv69.mjs +0 -1
- package/dist/manifest-CRryuZF4.mjs +0 -1
- package/dist/manifest-CvTe5ZGV2.mjs +0 -1
- package/dist/manifest-D-5GH0DV.mjs +0 -1
- package/dist/manifest-D3Ssf3IC.mjs +0 -1
- package/dist/manifest-D5ck3NvC.mjs +0 -1
- package/dist/manifest-DG19q-Ld.mjs +0 -1
- package/dist/manifest-DLMlD0Zc.mjs +0 -1
- package/dist/manifest-DwL2ik8P.mjs +0 -1
- package/dist/manifest-ItF5P8A12.mjs +0 -1
- package/dist/manifest-KZphqIyX.mjs +0 -1
- package/dist/manifest-RcpX_MyZ.mjs +0 -123
- package/dist/manifest-Zy7Odg5J.mjs +0 -1
- package/dist/manifest-ff1H7Pdp.mjs +0 -1
- package/dist/manifest-iuhF6pTL2.mjs +0 -1
- package/dist/manifest-yC16OhL2.mjs +0 -1
- package/dist/matchesWildcardPattern-BAG6LvX5.mjs +0 -1
- package/dist/native-j8l473zn.mjs +0 -961
- package/dist/network-T0VRwNPd.mjs +0 -7
- package/dist/outputPaths-B4Ic4RZh.mjs +0 -2
- package/dist/platform-CzaQtISh.mjs +0 -93
- package/dist/playwright-cdp-fallback-DqFdx9-s.mjs +0 -1
- package/dist/process-CWhsCWrf.mjs +0 -2
- package/dist/proxy-DZFlDsG3.mjs +0 -2
- package/dist/search-defaults-lYBVn_3L.mjs +0 -1
- package/dist/shared-state-board-BSjXLUV1.mjs +0 -1
- package/dist/sourcemap-Dh3Ai_ur.mjs +0 -1
- package/dist/streaming-BcJ0B6ao.mjs +0 -1
- package/dist/types-D9EiE5o9.mjs +0 -1
- /package/dist/{CacheAdapters-CsNtQIR8.mjs → CacheAdapters-BlDrQg8f.mjs} +0 -0
- /package/dist/{EventBus-DL8iLA09.mjs → EventBus-Cm-t-B65.mjs} +0 -0
- /package/dist/{EvidenceGraphBridge-BtbwXsLC.mjs → EvidenceGraphBridge-DBDc0wUA.mjs} +0 -0
- /package/dist/{HookGeneratorBuilders.core.generators.storage-DzD6dIJd.mjs → HookGeneratorBuilders.core.generators.storage-CWaWpOHa.mjs} +0 -0
- /package/dist/{InstrumentationSession-D_G1ZPyd.mjs → InstrumentationSession-c5qZyp7d.mjs} +0 -0
- /package/dist/{ResponseBuilder-BfWP-uaT.mjs → ResponseBuilder-nPXl_khE.mjs} +0 -0
- /package/dist/{RingBuffer-Dm54ELKT.mjs → RingBuffer-B6RTHmij.mjs} +0 -0
- /package/dist/{StealthVerifier-BmcxfwSF.mjs → StealthVerifier-DMBrtkhN.mjs} +0 -0
- /package/dist/{ToolError-DWU_z7gp.mjs → ToolError-g3rjWzhx.mjs} +0 -0
- /package/dist/{authorization-schema-BOFwSXUN.mjs → authorization-schema-Jtikc5Yt.mjs} +0 -0
- /package/dist/{bind-helpers-m2U8glkF.mjs → bind-helpers-D0mGAOof.mjs} +0 -0
- /package/dist/{capabilities-CyXuKUl1.mjs → capabilities-L1ax5EHS.mjs} +0 -0
- /package/dist/{chunk-C_pMuVsO.mjs → chunk-88NL7fhV.mjs} +0 -0
- /package/dist/{concurrency-DCr8WQ2M.mjs → concurrency-Dehnw4JC.mjs} +0 -0
- /package/dist/{evidence-graph-bridge-CV_UdYqj.mjs → evidence-graph-bridge-eT9icP6a.mjs} +0 -0
- /package/dist/{formatAddress-vLA_hOJt.mjs → formatAddress-DAcw4Ckg.mjs} +0 -0
- /package/dist/{logger-sBC6IdRT.mjs → logger-CCikqqvj.mjs} +0 -0
- /package/dist/{response-C7rKQst4.mjs → response-B1RuVVfD.mjs} +0 -0
- /package/dist/{ssrf-policy-CsIJGkpd.mjs → ssrf-policy-B72vdy23.mjs} +0 -0
- /package/dist/{tool-builder-qif8M9-K.mjs → tool-builder-CpLh-UQd.mjs} +0 -0
- /package/dist/{types-Fz69RzbZ.mjs → types-BzPBzmVB.mjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./tool-builder-
|
|
1
|
+
import{t as e}from"./tool-builder-CpLh-UQd.mjs";const t=[e(`antidebug_bypass`,e=>e.desc(`Bypass one or more anti-debug protection types. Specify types to apply; omit or use ["all"] to apply all bypasses. Types: all, debugger_statement, timing, stack_trace, console_detect.`).array(`types`,{type:`string`,enum:[`all`,`debugger_statement`,`timing`,`stack_trace`,`console_detect`]},`Bypass types to apply (default: ["all"])`).boolean(`persistent`,`Inject persistently for future documents`,{default:!0}).enum(`mode`,[`remove`,`noop`],`Debugger statement mode (for debugger_statement type)`,{default:`remove`}).number(`maxDrift`,`Max timing drift per call in ms (for timing type)`,{default:50,minimum:0,maximum:1e4}).array(`filterPatterns`,{type:`string`},`Additional stack frame patterns to filter (for stack_trace type)`)),e(`antidebug_detect_protections`,e=>e.desc(`Detect anti-debug protections in current page with bypass recommendations.`))];export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./tool-builder-
|
|
1
|
+
import{t as e}from"./tool-builder-CpLh-UQd.mjs";const t=[e(`wasm_capabilities`,e=>e.desc(`Report WASM tool availability.`).query()),e(`wasm_dump`,e=>e.desc(`Dump a captured WebAssembly module from the current page.`).number(`moduleIndex`,`Index of the WASM module to dump if multiple were loaded`,{default:0}).string(`outputPath`,`Custom output file path. If omitted, auto-generates in artifacts/wasm/`)),e(`wasm_disassemble`,e=>e.desc(`Disassemble a .wasm binary to WAT text format.`).string(`inputPath`,`Path to the .wasm file to disassemble`).string(`outputPath`,`Output .wat file path. If omitted, auto-generates in artifacts/wasm/`).boolean(`foldExprs`,`Fold expressions for more compact output`,{default:!0}).required(`inputPath`)),e(`wasm_decompile`,e=>e.desc(`Decompile .wasm bytecode to readable pseudo-code with type info.`).string(`inputPath`,`Path to the .wasm file to decompile`).string(`outputPath`,`Output file path. If omitted, auto-generates in artifacts/wasm/`).required(`inputPath`)),e(`wasm_inspect_sections`,e=>e.desc(`Parse .wasm section headers: imports, exports, memory, tables, code.`).string(`inputPath`,`Path to the .wasm file to inspect`).enum(`sections`,[`headers`,`details`,`disassemble`,`all`],`What to dump: headers (section overview), details (full metadata), disassemble (bytecode), all`,{default:`details`}).required(`inputPath`)),e(`wasm_offline_run`,e=>e.desc(`Run an exported .wasm function.`).string(`inputPath`,`Path to the .wasm file`).string(`functionName`,`Name of the exported function to invoke`).array(`args`,{type:`string`},`Arguments to pass to the function (will be parsed as integers/floats)`).enum(`runtime`,[`wasmtime`,`wasmer`,`auto`],`WASM runtime to use. "auto" tries wasmtime first, then wasmer`,{default:`auto`}).number(`timeoutMs`,`Execution timeout in ms`,{default:1e4}).required(`inputPath`,`functionName`)),e(`wasm_optimize`,e=>e.desc(`Optimize a .wasm binary for size or speed.`).string(`inputPath`,`Path to the .wasm file to optimize`).string(`outputPath`,`Output optimized .wasm file path. If omitted, auto-generates in artifacts/wasm/`).enum(`level`,[`O1`,`O2`,`O3`,`O4`,`Os`,`Oz`],`Optimization level`,{default:`O2`}).required(`inputPath`)),e(`wasm_vmp_trace`,e=>e.desc(`Read captured WASM VMP import-call traces from the current page.`).number(`maxEvents`,`Maximum import call events to capture`,{default:5e3}).string(`filterModule`,`Filter by import module name`)),e(`wasm_memory_inspect`,e=>e.desc(`Inspect exported WebAssembly.Memory from the current page.`).number(`offset`,`Starting byte offset to read from`,{default:0}).number(`length`,`Number of bytes to read`,{default:256}).enum(`format`,[`hex`,`ascii`,`both`],`Output format`,{default:`both`}).string(`searchPattern`,`Search for this hex pattern or ASCII string in the memory range`)),e(`wasm_to_c`,e=>e.desc(`Transpile .wasm bytecode to C source and header files.`).string(`inputPath`,`Path to the .wasm file to convert`).string(`outputDir`,`Directory for generated .c and .h files. If omitted, uses artifacts/wasm/`).required(`inputPath`)),e(`wasm_detect_obfuscation`,e=>e.desc(`Detect WASM obfuscation: opaque predicates, control-flow flattening, bogus ops.`).string(`inputPath`,`Path to the .wasm file to analyze`).boolean(`verbose`,`Include detailed pattern evidence in output`,{default:!1}).required(`inputPath`)),e(`wasm_instrument_trace`,e=>e.desc(`Generate a JS instrumentation wrapper for a .wasm module.`).string(`inputPath`,`Path to the .wasm file to instrument`).array(`hooks`,{type:`string`,enum:[`call`,`memory`,`branch`,`loop`,`local`]},`Hook types to inject`).boolean(`allHooks`,`Inject all available hook types`,{default:!0}).string(`outputPath`,`Output JS file path. If omitted, auto-generates in artifacts/wasm/`).required(`inputPath`))];export{t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
`)}function U(e){let{encoding:t,outputFormat:n,buffer:r,jsonValue:i}=e;if(n===`hex`)return k({success:!0,encoding:t,outputFormat:n,byteLength:r.length,result:r.toString(`hex`),hexDump:H(r)});if(n===`utf8`)return k({success:!0,encoding:t,outputFormat:n,byteLength:r.length,result:r.toString(`utf8`)});let a=z(r),o=a===null?null:B(a);return k({success:!0,encoding:t,outputFormat:n,byteLength:r.length,result:i??{parsedJson:o,utf8:a,hex:r.toString(`hex`)}})}async function W(e){let{source:t,data:n,filePath:l,maxBytes:u}=e;if(t===`file`){if(!l)throw Error(`filePath is required when source=file`);let e=await c(o(l));if(!(await Promise.all([i(),r(),process.cwd()].map(async e=>{let t=a(e)?e:o(e);try{return await c(t)}catch{return t}}))).some(t=>e.startsWith(t)))throw Error(`File access denied: path "${l}" is outside allowed directories`);let t=await s(e);return typeof u==`number`?t.subarray(0,u):t}if(t===`base64`){if(!n)throw Error(`data is required for base64 source`);return M(n)}if(t===`hex`){if(!n)throw Error(`data is required for hex source`);return j(n)}return Buffer.from(n??``,`utf8`)}async function G(e,t){try{let n=await(await e.getActivePage()).evaluate(e=>{let t=t=>{if(!t||typeof t!=`object`)return null;let n=t;if(n.requestId!==e)return null;if(typeof n.responseBody==`string`)return{body:n.responseBody,base64Encoded:!!n.base64Encoded};if(typeof n.body==`string`)return{body:n.body,base64Encoded:!!n.base64Encoded};let r=n.response;if(r&&typeof r==`object`){let e=r;if(typeof e.body==`string`)return{body:e.body,base64Encoded:!!e.base64Encoded}}return null},n=e=>{if(!Array.isArray(e))return null;for(let n of e){let e=t(n);if(e)return e}return null},r=n(window.__capturedAPIs);if(r)return r;try{let e=window.localStorage.getItem(`__capturedAPIs`);return e?n(JSON.parse(e)):null}catch{return null}},t);if(!n||typeof n!=`object`)return null;let r=n;if(typeof r.body!=`string`)return null;if(r.base64Encoded)return Buffer.from(r.body,`base64`);let i=r.body.trim();return F(i)?Buffer.from(i,`base64`):Buffer.from(r.body,`utf8`)}catch{return null}}function K(e){let t=[];for(let n of S){if(e.length<n.bytes.length)continue;let r=!0;for(let t=0;t<n.bytes.length;t+=1)if(e[t]!==n.bytes[t]){r=!1;break}r&&t.push(n.format)}return t}function q(e){let t=e[0];if(t===void 0)return[];let n=new Set;return[8,16,24,32].includes(t)&&n.add(`protobuf`),(t>=128&&t<=143||t>=144&&t<=159||t>=160&&t<=191)&&n.add(`messagepack`),(t>=160&&t<=191||t>=128&&t<=159)&&n.add(`cbor`),Array.from(n)}function J(e,t,n){let r=new Set;if((e===`base64`||t&&F(t.trim()))&&r.add(`base64`),(e===`hex`||t&&P(t))&&r.add(`hex`),t&&I(t)&&r.add(`url-encoded`),n.length>=3){let[e,t,i]=n;e===239&&t===187&&i===191&&r.add(`utf8-bom`)}return Array.from(r)}function Y(e){if(e.length===0)return 0;let t=Array.from({length:256},()=>0);for(let n of e.values())t[n]+=1;let n=0;for(let r of t){if(r===0)continue;let t=r/e.length;n-=t*Math.log2(t)}return Number(n.toFixed(6))}function X(e){if(e.length===0)return[];let t=Array.from({length:256},()=>0);for(let n of e.values())t[n]+=1;let n=[];for(let r=0;r<256;r+=1){let i=t[r];i!==0&&n.push({byte:`0x${r.toString(16).padStart(2,`0`)}`,count:i,ratio:Number((i/e.length).toFixed(6))})}return n.sort((e,t)=>t.count-e.count),n}function Z(e,t){if(e.length===0)return[];let n=[],r=0;for(let i=0;i<e.length;i+=t){let a=Math.min(i+t,e.length);n.push({index:r,start:i,end:a,entropy:Y(e.subarray(i,a))}),r+=1}return n}function Q(e,t){let n=$(t);return e<3.8&&n>.85?`plaintext`:e<5.8?`encoded`:e<7.2?`compressed`:e<7.8?`encrypted`:`random`}function $(e){if(e.length===0)return 1;let t=0;for(let n of e.values())(n>=32&&n<=126||n===9||n===10||n===13)&&(t+=1);return t/e.length}var ee=class{collector;responseBodyResolver;constructor(e,t){this.collector=e,this.responseBodyResolver=t}async resolveCapturedRequestBody(e){if(this.responseBodyResolver)try{let t=await this.responseBodyResolver(e);if(t&&typeof t.body==`string`){if(t.base64Encoded)return Buffer.from(t.body,`base64`);let e=t.body.trim();return F(e)?Buffer.from(e,`base64`):Buffer.from(t.body,`utf8`)}}catch{}return G(this.collector,e)}async handleBinaryDetectFormat(n){try{let r=
|
|
1
|
+
import{n as e,o as t,r as n}from"./parse-args-ngRrvF9e.mjs";import"./definitions-LdkeuOeA.mjs";import{homedir as r,tmpdir as i}from"node:os";import{isAbsolute as a,resolve as o}from"node:path";import{readFile as s,realpath as c}from"node:fs/promises";function l(e,t,n){let r=[],i=0,a=0;for(;i<e.length;){let o=d(e,i);if(o.error)return{fields:r,bytesConsumed:i,error:o.error};let s=o.value;i=o.offset;let c=Number(s>>3n),l=Number(s&7n);if(c<=0)return{fields:r,bytesConsumed:i,error:`Invalid field number ${c} at offset ${i}`};if(l===0){let t=d(e,i);if(t.error)return{fields:r,bytesConsumed:i,error:t.error};i=t.offset,r.push({index:a,fieldNumber:c,wireType:l,wireTypeName:f(l),value:p(t.value)})}else if(l===1){if(i+8>e.length)return{fields:r,bytesConsumed:i,error:`Unexpected EOF for fixed64 at offset ${i}`};let t=e.subarray(i,i+8),n=t.readBigUInt64LE(0);i+=8,r.push({index:a,fieldNumber:c,wireType:l,wireTypeName:f(l),value:{uint64:p(n),hex:t.toString(`hex`)}})}else if(l===2){let o=d(e,i);if(o.error)return{fields:r,bytesConsumed:i,error:o.error};i=o.offset;let s=o.value;if(s>BigInt(2**53-1))return{fields:r,bytesConsumed:i,error:`Length-delimited field is too large at offset ${i}`};let p=Number(s);if(p<0||i+p>e.length)return{fields:r,bytesConsumed:i,error:`Invalid length-delimited field length=${p} at offset ${i}`};let m=e.subarray(i,i+p);i+=p,r.push({index:a,fieldNumber:c,wireType:l,wireTypeName:f(l),value:u(m,t,n)})}else if(l===5){if(i+4>e.length)return{fields:r,bytesConsumed:i,error:`Unexpected EOF for fixed32 at offset ${i}`};let t=e.subarray(i,i+4),n=t.readUInt32LE(0);i+=4,r.push({index:a,fieldNumber:c,wireType:l,wireTypeName:f(l),value:{uint32:n,hex:t.toString(`hex`)}})}else return{fields:r,bytesConsumed:i,error:`Unsupported wire type ${l} at offset ${i}`};a+=1}return{fields:r,bytesConsumed:i}}function u(e,t,n){if(e.length===0)return{kind:`empty`,length:0};if(t<n){let r=l(e,t+1,n);if(!r.error&&r.bytesConsumed===e.length&&r.fields.length>0)return{kind:`message`,fields:r.fields}}let r=m(e);return r!==null&&h(r)?{kind:`string`,value:r}:{kind:`bytes`,length:e.length,hex:e.toString(`hex`),base64:e.toString(`base64`)}}function d(e,t){let n=0n,r=0n,i=t;for(let t=0;t<10;t+=1){let t=e[i];if(t===void 0)return{error:`Unexpected EOF while parsing varint at offset ${i}`};let a=BigInt(t);if(n|=(a&127n)<<r,i+=1,(a&128n)==0n)return{value:n,offset:i};r+=7n}return{error:`Varint exceeds 10 bytes at offset ${t}`}}function f(e){return e===0?`varint`:e===1?`fixed64`:e===2?`length-delimited`:e===5?`fixed32`:`unknown`}function p(e){let t=BigInt(2**53-1),n=BigInt(-(2**53-1));return e<=t&&e>=n?Number(e):e.toString()}function m(e){let t=e.toString(`utf8`);return(t.match(/\uFFFD/g)??[]).length>0?null:t}function h(e){if(e.length===0)return!0;let t=0;for(let n of e){let e=n.charCodeAt(0);(e>=32&&e<=126||e===9||e===10||e===13)&&(t+=1)}return t/e.length>=.85}function g(e){let t=_(e,0,0);if(t.offset!==e.length)throw Error(`MessagePack decode ended early: consumed ${t.offset} of ${e.length} bytes`);return t.value}function _(e,t,n){if(n>64)throw Error(`MessagePack decode depth exceeds safety limit`);let r=e[t];if(r===void 0)throw Error(`Unexpected EOF at offset ${t}`);let i=t+1;if(r<=127)return{value:r,offset:i};if(r>=224)return{value:r-256,offset:i};if(r>=160&&r<=191){let t=r&31;return x(e,i,t),{value:e.subarray(i,i+t).toString(`utf8`),offset:i+t}}if(r>=144&&r<=159){let t=r&15;return v(e,i,t,n+1)}if(r>=128&&r<=143){let t=r&15;return y(e,i,t,n+1)}if(r===192)return{value:null,offset:i};if(r===194)return{value:!1,offset:i};if(r===195)return{value:!0,offset:i};if(r===204)return x(e,i,1),{value:e.readUInt8(i),offset:i+1};if(r===205)return x(e,i,2),{value:e.readUInt16BE(i),offset:i+2};if(r===206)return x(e,i,4),{value:e.readUInt32BE(i),offset:i+4};if(r===207)return x(e,i,8),{value:p(e.readBigUInt64BE(i)),offset:i+8};if(r===208)return x(e,i,1),{value:e.readInt8(i),offset:i+1};if(r===209)return x(e,i,2),{value:e.readInt16BE(i),offset:i+2};if(r===210)return x(e,i,4),{value:e.readInt32BE(i),offset:i+4};if(r===211)return x(e,i,8),{value:p(e.readBigInt64BE(i)),offset:i+8};if(r===202)return x(e,i,4),{value:e.readFloatBE(i),offset:i+4};if(r===203)return x(e,i,8),{value:e.readDoubleBE(i),offset:i+8};if(r===217){x(e,i,1);let t=e.readUInt8(i);return i+=1,x(e,i,t),{value:e.subarray(i,i+t).toString(`utf8`),offset:i+t}}if(r===218){x(e,i,2);let t=e.readUInt16BE(i);return i+=2,x(e,i,t),{value:e.subarray(i,i+t).toString(`utf8`),offset:i+t}}if(r===219){x(e,i,4);let t=e.readUInt32BE(i);return i+=4,x(e,i,t),{value:e.subarray(i,i+t).toString(`utf8`),offset:i+t}}if(r===196){x(e,i,1);let t=e.readUInt8(i);i+=1,x(e,i,t);let n=e.subarray(i,i+t);return{value:{type:`bytes`,base64:n.toString(`base64`),hex:n.toString(`hex`)},offset:i+t}}if(r===197){x(e,i,2);let t=e.readUInt16BE(i);i+=2,x(e,i,t);let n=e.subarray(i,i+t);return{value:{type:`bytes`,base64:n.toString(`base64`),hex:n.toString(`hex`)},offset:i+t}}if(r===198){x(e,i,4);let t=e.readUInt32BE(i);i+=4,x(e,i,t);let n=e.subarray(i,i+t);return{value:{type:`bytes`,base64:n.toString(`base64`),hex:n.toString(`hex`)},offset:i+t}}if(r===220){x(e,i,2);let t=e.readUInt16BE(i);return i+=2,v(e,i,t,n+1)}if(r===221){x(e,i,4);let t=e.readUInt32BE(i);return i+=4,v(e,i,t,n+1)}if(r===222){x(e,i,2);let t=e.readUInt16BE(i);return i+=2,y(e,i,t,n+1)}if(r===223){x(e,i,4);let t=e.readUInt32BE(i);return i+=4,y(e,i,t,n+1)}if(r>=212&&r<=216){let t={212:1,213:2,214:4,215:8,216:16}[r];x(e,i,1+t);let n=e.readInt8(i),a=e.subarray(i+1,i+1+t);return{value:{type:`ext`,extType:n,base64:a.toString(`base64`),hex:a.toString(`hex`)},offset:i+1+t}}if(r===199||r===200||r===201){let t=r===199?1:r===200?2:4;x(e,i,t);let n=t===1?e.readUInt8(i):t===2?e.readUInt16BE(i):e.readUInt32BE(i);i+=t,x(e,i,1+n);let a=e.readInt8(i),o=e.subarray(i+1,i+1+n);return{value:{type:`ext`,extType:a,base64:o.toString(`base64`),hex:o.toString(`hex`)},offset:i+1+n}}throw Error(`Unsupported MessagePack prefix 0x${r.toString(16)} at offset ${t}`)}function v(e,t,n,r){let i=t,a=[];for(let t=0;t<n;t+=1){let t=_(e,i,r);a.push(t.value),i=t.offset}return{value:a,offset:i}}function y(e,t,n,r){let i=t,a={};for(let t=0;t<n;t+=1){let t=_(e,i,r);i=t.offset;let n=_(e,i,r);i=n.offset;let o=b(t.value);a[o]=n.value}return{value:a,offset:i}}function b(e){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(typeof e==`bigint`)return e.toString();if(e===null)return`null`;try{return JSON.stringify(e)}catch{return String(e)}}function x(e,t,n){if(t<0||n<0||t+n>e.length)throw Error(`Unexpected EOF while reading ${n} bytes at offset ${t}`)}const S=[{format:`png`,bytes:[137,80,78,71]},{format:`jpeg`,bytes:[255,216,255]},{format:`gif`,bytes:[71,73,70]},{format:`wasm`,bytes:[0,97,115,109]},{format:`zip/apk`,bytes:[80,75,3,4]},{format:`pdf`,bytes:[37,80,68,70]}],C=new Set([`base64`,`hex`,`file`,`raw`]),w=new Set([`base64`,`hex`,`raw`,`file`]),T=new Set([`base64`,`hex`,`url`,`protobuf`,`msgpack`]),E=new Set([`hex`,`utf8`,`json`]),D=new Set([`utf8`,`hex`,`json`]),O=new Set([`base64`,`hex`,`url`]);function k(e){return{content:[{type:`text`,text:JSON.stringify(e,null,2)}]}}function A(e,t){return k({success:!1,tool:e,error:t instanceof Error?t.message:String(t)})}function j(e){let t=e.trim().replace(/^0x/i,``).replace(/[\s:,-]/g,``);if(t.length===0)return Buffer.alloc(0);if(t.length%2!=0||!/^[0-9a-fA-F]+$/.test(t))throw Error(`Invalid hex string`);return Buffer.from(t,`hex`)}function M(e){let t=e.trim().replace(/\s+/g,``);if(t.length===0)return Buffer.alloc(0);if(!F(t))throw Error(`Invalid base64 string`);return Buffer.from(t,`base64`)}function N(e){let t=e.trim();return t.length===0?Buffer.alloc(0):P(t)?j(t):F(t)?M(t):Buffer.from(t,`utf8`)}function P(e){let t=e.trim().replace(/^0x/i,``).replace(/[\s:,-]/g,``);return t.length>0&&t.length%2==0&&/^[0-9a-fA-F]+$/.test(t)}function F(e){let t=e.trim().replace(/\s+/g,``);if(t.length===0||t.length%4!=0||!/^[A-Za-z0-9+/]*={0,2}$/.test(t))return!1;try{let e=Buffer.from(t,`base64`);return t.replace(/=+$/,``)===e.toString(`base64`).replace(/=+$/,``)}catch{return!1}}function I(e){return/%[0-9a-fA-F]{2}/.test(e)||/\+/.test(e)}function L(e){return decodeURIComponent(e.replace(/\+/g,`%20`))}function R(e){let t=``;for(let n of e.values())t+=n>=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122||n===45||n===46||n===95||n===126?String.fromCharCode(n):`%${n.toString(16).toUpperCase().padStart(2,`0`)}`;return t}function z(e){let t=e.toString(`utf8`);return(t.match(/\uFFFD/g)??[]).length>0?null:t}function B(e){try{return JSON.parse(e)}catch{return null}}function V(e,t){return Array.from(e.subarray(0,t).values()).map(e=>e.toString(16).padStart(2,`0`)).join(` `)}function H(e,t=16){let n=[];for(let r=0;r<e.length;r+=t){let i=e.subarray(r,r+t),a=Array.from(i.values()).map(e=>e.toString(16).padStart(2,`0`)).join(` `),o=Array.from(i.values()).map(e=>e>=32&&e<=126?String.fromCharCode(e):`.`).join(``);n.push(`${r.toString(16).padStart(8,`0`)} ${a.padEnd(47)} |${o}|`)}return n.join(`
|
|
2
|
+
`)}function U(e){let{encoding:t,outputFormat:n,buffer:r,jsonValue:i}=e;if(n===`hex`)return k({success:!0,encoding:t,outputFormat:n,byteLength:r.length,result:r.toString(`hex`),hexDump:H(r)});if(n===`utf8`)return k({success:!0,encoding:t,outputFormat:n,byteLength:r.length,result:r.toString(`utf8`)});let a=z(r),o=a===null?null:B(a);return k({success:!0,encoding:t,outputFormat:n,byteLength:r.length,result:i??{parsedJson:o,utf8:a,hex:r.toString(`hex`)}})}async function W(e){let{source:t,data:n,filePath:l,maxBytes:u}=e;if(t===`file`){if(!l)throw Error(`filePath is required when source=file`);let e=await c(o(l));if(!(await Promise.all([i(),r(),process.cwd()].map(async e=>{let t=a(e)?e:o(e);try{return await c(t)}catch{return t}}))).some(t=>e.startsWith(t)))throw Error(`File access denied: path "${l}" is outside allowed directories`);let t=await s(e);return typeof u==`number`?t.subarray(0,u):t}if(t===`base64`){if(!n)throw Error(`data is required for base64 source`);return M(n)}if(t===`hex`){if(!n)throw Error(`data is required for hex source`);return j(n)}return Buffer.from(n??``,`utf8`)}async function G(e,t){try{let n=await(await e.getActivePage()).evaluate(e=>{let t=t=>{if(!t||typeof t!=`object`)return null;let n=t;if(n.requestId!==e)return null;if(typeof n.responseBody==`string`)return{body:n.responseBody,base64Encoded:!!n.base64Encoded};if(typeof n.body==`string`)return{body:n.body,base64Encoded:!!n.base64Encoded};let r=n.response;if(r&&typeof r==`object`){let e=r;if(typeof e.body==`string`)return{body:e.body,base64Encoded:!!e.base64Encoded}}return null},n=e=>{if(!Array.isArray(e))return null;for(let n of e){let e=t(n);if(e)return e}return null},r=n(window.__capturedAPIs);if(r)return r;try{let e=window.localStorage.getItem(`__capturedAPIs`);return e?n(JSON.parse(e)):null}catch{return null}},t);if(!n||typeof n!=`object`)return null;let r=n;if(typeof r.body!=`string`)return null;if(r.base64Encoded)return Buffer.from(r.body,`base64`);let i=r.body.trim();return F(i)?Buffer.from(i,`base64`):Buffer.from(r.body,`utf8`)}catch{return null}}function K(e){let t=[];for(let n of S){if(e.length<n.bytes.length)continue;let r=!0;for(let t=0;t<n.bytes.length;t+=1)if(e[t]!==n.bytes[t]){r=!1;break}r&&t.push(n.format)}return t}function q(e){let t=e[0];if(t===void 0)return[];let n=new Set;return[8,16,24,32].includes(t)&&n.add(`protobuf`),(t>=128&&t<=143||t>=144&&t<=159||t>=160&&t<=191)&&n.add(`messagepack`),(t>=160&&t<=191||t>=128&&t<=159)&&n.add(`cbor`),Array.from(n)}function J(e,t,n){let r=new Set;if((e===`base64`||t&&F(t.trim()))&&r.add(`base64`),(e===`hex`||t&&P(t))&&r.add(`hex`),t&&I(t)&&r.add(`url-encoded`),n.length>=3){let[e,t,i]=n;e===239&&t===187&&i===191&&r.add(`utf8-bom`)}return Array.from(r)}function Y(e){if(e.length===0)return 0;let t=Array.from({length:256},()=>0);for(let n of e.values())t[n]+=1;let n=0;for(let r of t){if(r===0)continue;let t=r/e.length;n-=t*Math.log2(t)}return Number(n.toFixed(6))}function X(e){if(e.length===0)return[];let t=Array.from({length:256},()=>0);for(let n of e.values())t[n]+=1;let n=[];for(let r=0;r<256;r+=1){let i=t[r];i!==0&&n.push({byte:`0x${r.toString(16).padStart(2,`0`)}`,count:i,ratio:Number((i/e.length).toFixed(6))})}return n.sort((e,t)=>t.count-e.count),n}function Z(e,t){if(e.length===0)return[];let n=[],r=0;for(let i=0;i<e.length;i+=t){let a=Math.min(i+t,e.length);n.push({index:r,start:i,end:a,entropy:Y(e.subarray(i,a))}),r+=1}return n}function Q(e,t){let n=$(t);return e<3.8&&n>.85?`plaintext`:e<5.8?`encoded`:e<7.2?`compressed`:e<7.8?`encrypted`:`random`}function $(e){if(e.length===0)return 1;let t=0;for(let n of e.values())(n>=32&&n<=126||n===9||n===10||n===13)&&(t+=1);return t/e.length}var ee=class{collector;responseBodyResolver;constructor(e,t){this.collector=e,this.responseBodyResolver=t}async resolveCapturedRequestBody(e){if(this.responseBodyResolver)try{let t=await this.responseBodyResolver(e);if(t&&typeof t.body==`string`){if(t.base64Encoded)return Buffer.from(t.body,`base64`);let e=t.body.trim();return F(e)?Buffer.from(e,`base64`):Buffer.from(t.body,`utf8`)}}catch{}return G(this.collector,e)}async handleBinaryDetectFormat(n){try{let r=e(n,`source`,C,`raw`),i=t(n,`data`),a=t(n,`filePath`),o=t(n,`requestId`),s=null,c=!1;if(r===`raw`&&o&&(s=await this.resolveCapturedRequestBody(o),c=s!==null),!s){if(r!==`file`&&!i)throw Error(`data is required for non-file source when requestId payload is unavailable`);s=await W({source:r,data:i,filePath:a,maxBytes:r===`file`?512:void 0})}let l=Y(s);return k({success:!0,source:r,requestId:o??null,requestBodyUsed:c,byteLength:s.length,previewHex:V(s,64),magicFormats:K(s),structuredFormats:q(s),encodingSignals:J(r,i,s),entropy:l,assessment:Q(l,s),topBytes:X(s).slice(0,8)})}catch(e){return A(`binary_detect_format`,e)}}async handleBinaryDecode(n){try{let r=t(n,`data`,``),i=e(n,`encoding`,T),a=e(n,`outputFormat`,E,`hex`);if(!r)throw Error(`data is required`);if(!i)throw Error(`encoding is required`);if(i===`url`){let e=L(r);if(a===`hex`){let t=Buffer.from(e,`utf8`);return k({success:!0,encoding:i,outputFormat:a,byteLength:t.length,result:t.toString(`hex`),hexDump:H(t)})}return k(a===`utf8`?{success:!0,encoding:i,outputFormat:a,result:e}:{success:!0,encoding:i,outputFormat:a,result:B(e)??{text:e}})}let o=i===`base64`?M(r):i===`hex`?j(r):N(r);if(i===`protobuf`){let e=l(o,0,5);return U({encoding:i,outputFormat:a,buffer:o,jsonValue:{fields:e.fields,bytesConsumed:e.bytesConsumed,error:e.error??null}})}return U(i===`msgpack`?{encoding:i,outputFormat:a,buffer:o,jsonValue:g(o)}:{encoding:i,outputFormat:a,buffer:o})}catch(e){return A(`binary_decode`,e)}}async handleBinaryEncode(n){try{let r=t(n,`data`,``),i=e(n,`inputFormat`,D,`utf8`),a=e(n,`outputEncoding`,O,`base64`);if(!r)throw Error(`data is required`);let o;if(i===`utf8`)o=Buffer.from(r,`utf8`);else if(i===`hex`)o=j(r);else{let e=JSON.parse(r);o=Buffer.from(JSON.stringify(e),`utf8`)}let s=a===`base64`?o.toString(`base64`):a===`hex`?o.toString(`hex`):R(o);return k({success:!0,inputFormat:i,outputEncoding:a,byteLength:o.length,output:s})}catch(e){return A(`binary_encode`,e)}}async handleBinaryEntropyAnalysis(r){try{let i=e(r,`source`,w,`raw`),a=t(r,`data`),o=t(r,`filePath`);if(i!==`file`&&!a)throw Error(`data is required for non-file source`);let s=n(r,`blockSize`,256),c=Math.max(16,Math.min(8192,Math.trunc(s||256))),l=await W({source:i,data:a,filePath:o}),u=Y(l);return k({success:!0,source:i,byteLength:l.length,blockSize:c,overallEntropy:u,blockEntropies:Z(l,c),byteFrequency:X(l).slice(0,20),assessment:Q(u,l)})}catch(e){return A(`binary_entropy_analysis`,e)}}async handleProtobufDecodeRaw(e){try{let r=t(e,`data`,``);if(!r)throw Error(`data is required`);let i=n(e,`maxDepth`,5),a=Math.max(1,Math.min(20,Math.trunc(i||5))),o=M(r),s=l(o,0,a);return k({success:s.error===void 0,byteLength:o.length,maxDepth:a,parsedBytes:s.bytesConsumed,fields:s.fields,error:s.error??null})}catch(e){return A(`protobuf_decode_raw`,e)}}};export{ee as EncodingToolHandlers};
|