@jshookmcp/jshook 0.3.2 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/README.md +19 -4
  2. package/README.zh.md +19 -4
  3. package/dist/AntiCheatDetector-B-mz4DK_.mjs +1 -0
  4. package/dist/{BrowserSessionCoordinator-BJ-HOxo0.mjs → BrowserSessionCoordinator-Cdic8FsH.mjs} +1 -1
  5. package/dist/CodeAnalyzerDataFlow-a-NkwcaG.mjs +2 -0
  6. package/dist/CodeInjector-B099WO6x.mjs +1 -0
  7. package/dist/ConsoleMonitor-BZRqrBH-.mjs +306 -0
  8. package/dist/CpuEngine-BC8jayy9.mjs +1 -0
  9. package/dist/DartAotExecutor-B7WVTKsd.mjs +1 -0
  10. package/dist/DartAotLoader-BxdhW-K2.mjs +2 -0
  11. package/dist/DarwinAPI-DzojdfjF.mjs +1 -0
  12. package/dist/DetailedDataManager-Dgh402Gp.mjs +5 -0
  13. package/dist/ExecutionSandbox-QbWQmzuC.mjs +45 -0
  14. package/dist/ExtensionManager.tools-D3h818Xs.mjs +1 -0
  15. package/dist/FingerprintManager-D9Zlr6be.mjs +1 -0
  16. package/dist/HardwareBreakpoint-C_lJ22bj.mjs +1 -0
  17. package/dist/HeapAnalyzer-bJbLvzp6.mjs +1 -0
  18. package/dist/HookPatternScanner-yx4vJ9sd.mjs +1 -0
  19. package/dist/InstrumentationSession-Cv1wikLA.mjs +1 -0
  20. package/dist/IntegrityScanner-BB7sw-SA.mjs +1 -0
  21. package/dist/JScramblerDeobfuscator-NVR5VatT.mjs +1 -0
  22. package/dist/MCPServer.activation.ttl-C2wOCMLV.mjs +1 -0
  23. package/dist/MCPServer.search.helpers-DlassAew.mjs +2 -0
  24. package/dist/MCPServer.search.validation-DnifPCCv.mjs +1 -0
  25. package/dist/MemoryController-CCsGuGJS.mjs +2 -0
  26. package/dist/{MemoryScanSession-DG_F-PjE.mjs → MemoryScanSession-BZ2A9Ph1.mjs} +1 -1
  27. package/dist/MemoryScanner-DAxsq7Sx.mjs +1 -0
  28. package/dist/NativeMemoryManager.impl-BIJzXMqH.mjs +1 -0
  29. package/dist/{NativeMemoryManager.utils-BHy1P_jM.mjs → NativeMemoryManager.utils-CMoul2an.mjs} +1 -1
  30. package/dist/PEAnalyzer-CB_kaTis.mjs +1 -0
  31. package/dist/PackerDeobfuscator-BpwGjxDL.mjs +7 -0
  32. package/dist/PointerChainEngine-B6SYv6ZM.mjs +1 -0
  33. package/dist/ProcessRegistry-C5W1Tkn9.mjs +1 -0
  34. package/dist/{handlers-mPFiNPe8.mjs → QuickJSSandbox-CIde-jzG.mjs} +2 -5
  35. package/dist/{ResponseBuilder-BfWP-uaT.mjs → ResponseBuilder-BLicSCjn.mjs} +1 -1
  36. package/dist/ReverseEvidenceGraph-DJzk0GQz.mjs +2 -0
  37. package/dist/ServerRuntimeState-DGXNv8Ji.mjs +1 -0
  38. package/dist/Speedhack-MGoeq1ZS.mjs +1 -0
  39. package/dist/StructureAnalyzer-CCTWAXR3.mjs +2 -0
  40. package/dist/ToolHandlerMap-C40EmuLT.mjs +1 -0
  41. package/dist/{ToolProbe-C7ZU2x7M.mjs → ToolProbe-B02GC3ZY.mjs} +1 -1
  42. package/dist/ToolRegistry-CzqQxFqf.mjs +1 -0
  43. package/dist/ToolRouter.policy-Bgb3S8jc.mjs +4 -0
  44. package/dist/TraceRecorder-BfeCTQUj.mjs +407 -0
  45. package/dist/VMDeobfuscator-BHtkV850.mjs +1 -0
  46. package/dist/Win32API-G7QPyckq.mjs +1 -0
  47. package/dist/{Win32Debug-CYrIQBvr.mjs → Win32Debug-6yzmtv5b.mjs} +1 -1
  48. package/dist/allocation-track-CiI-CnaI.mjs +1 -0
  49. package/dist/analysis-CojUzwX-.mjs +27 -0
  50. package/dist/antidebug-CgU84TE1.mjs +1 -0
  51. package/dist/apk-DrPBsOq8.mjs +1 -0
  52. package/dist/artifactRetention-Bk6fW2uF.mjs +1 -0
  53. package/dist/artifacts-Bx9GLx4J.mjs +1 -0
  54. package/dist/ast-bridge-BlOrmVAv.mjs +1 -0
  55. package/dist/ast-utils-B9E5k_v1.mjs +1 -0
  56. package/dist/{betterSqlite3-Brtq-SIQ.mjs → betterSqlite3-Bdo_ifuJ.mjs} +1 -1
  57. package/dist/binary-instrument-DiE1BP0x.mjs +12 -0
  58. package/dist/boringssl-inspector-C6M3sOga.mjs +2 -0
  59. package/dist/browser-QDUu5ML9.mjs +29 -0
  60. package/dist/{handlers-yo_xYzT8.mjs → canvas-g5kmLdY-.mjs} +1098 -24
  61. package/dist/{capabilities-CyXuKUl1.mjs → capabilities-DwzyxL2w.mjs} +1 -1
  62. package/dist/cdp-session-Dy4OwMOP.mjs +1 -0
  63. package/dist/collector-Cld4i-E4.mjs +1 -0
  64. package/dist/config-5ODJ3Aj0.mjs +3 -0
  65. package/dist/constants-nvsLpSri.mjs +1 -0
  66. package/dist/coordination-C6y2gM9O.mjs +98 -0
  67. package/dist/coverage-and-block--cWjjEe5.mjs +1 -0
  68. package/dist/dart-inspector-D4IKxZ6u.mjs +0 -0
  69. package/dist/debugger-C2SpiXoO.mjs +1 -0
  70. package/dist/definitions-0mtilYzG.mjs +1 -0
  71. package/dist/definitions-9csunmeX.mjs +1 -0
  72. package/dist/definitions-B11MudW_.mjs +1 -0
  73. package/dist/definitions-BKpRDjcI.mjs +1 -0
  74. package/dist/definitions-BXE3H4re.mjs +1 -0
  75. package/dist/definitions-BlPHe5DX.mjs +1 -0
  76. package/dist/definitions-Bob4XMxI.mjs +27 -0
  77. package/dist/definitions-BpIQN2nm.mjs +1 -0
  78. package/dist/definitions-BvolWeSu.mjs +1 -0
  79. package/dist/definitions-C-6j3Ejl.mjs +1 -0
  80. package/dist/definitions-C-AdFfFu.mjs +1 -0
  81. package/dist/definitions-CArdw_9T.mjs +1 -0
  82. package/dist/definitions-CCvIcRrT.mjs +1 -0
  83. package/dist/definitions-CJPE5PIl.mjs +1 -0
  84. package/dist/definitions-CbqeW06u.mjs +1 -0
  85. package/dist/definitions-Cexmkypg.mjs +1 -0
  86. package/dist/definitions-D1dxl8qt.mjs +1 -0
  87. package/dist/definitions-D3uT-ZbU.mjs +1 -0
  88. package/dist/definitions-DtOY5iUc.mjs +1 -0
  89. package/dist/{definitions-DxFNRQNK2.mjs → definitions-DvrYdDCJ2.mjs} +1 -1
  90. package/dist/{definitions-Cenu6mxo.mjs → definitions-aeRd5DAR.mjs} +1 -1
  91. package/dist/definitions-ihxOqOC4.mjs +1 -0
  92. package/dist/deopt-trace-qnAcC931.mjs +17 -0
  93. package/dist/disasm-DoxSucGp.mjs +1 -0
  94. package/dist/dumpsys-parser-Du-5ruEe.mjs +2 -0
  95. package/dist/encoding-UMtwgy4M.mjs +2 -0
  96. package/dist/ensure-browser-core-BP70x0TB.mjs +285 -0
  97. package/dist/factory-BeND77hf.mjs +2 -0
  98. package/dist/graphql-CF7QKJME.mjs +68 -0
  99. package/dist/grpc-raw-Dp7ps2sv.mjs +1 -0
  100. package/dist/handlers--qCl9vNv.mjs +1 -0
  101. package/dist/handlers-BHIu1LqA.mjs +1 -0
  102. package/dist/{antidebug-7L3ygj_9.mjs → handlers-BQ4K8Jbr.mjs} +2 -2
  103. package/dist/handlers-BxQv-wtf.mjs +8 -0
  104. package/dist/handlers-ByYG27-5.mjs +1 -0
  105. package/dist/handlers-C0I9-BtX.mjs +5 -0
  106. package/dist/handlers-CL0Iokmw.mjs +1 -0
  107. package/dist/handlers-CNbhIdSK.mjs +4 -0
  108. package/dist/handlers-CnTTSJFs.mjs +109 -0
  109. package/dist/handlers-CoDx6akJ2.mjs +49 -0
  110. package/dist/{handlers-0yKLRIfo.mjs → handlers-DASJI0Pn.mjs} +1 -1
  111. package/dist/handlers-DRKMaA-_.mjs +74 -0
  112. package/dist/handlers-Dalu0olz.mjs +2 -0
  113. package/dist/handlers-KY0g31ny.mjs +9 -0
  114. package/dist/handlers-oGo60aVv.mjs +1 -0
  115. package/dist/handlers.impl-BTXLw6Qc.mjs +1 -0
  116. package/dist/heap-sampling-BqdiU-5j.mjs +1 -0
  117. package/dist/{hooks-D4XLfgtV.mjs → hooks-COK3t5rT.mjs} +52 -33
  118. package/dist/index.mjs +11 -11
  119. package/dist/logger-BGCcd-jJ.mjs +1 -0
  120. package/dist/macro-nUYUjKNZ.mjs +2 -0
  121. package/dist/maintenance-CfnE7ZKU.mjs +4 -0
  122. package/dist/manifest-7EOTUc0D.mjs +1 -0
  123. package/dist/manifest-B5ujuQmf.mjs +1 -0
  124. package/dist/manifest-BErXl3zn.mjs +1 -0
  125. package/dist/manifest-BKA-mD3J.mjs +1 -0
  126. package/dist/manifest-BUXj23bX.mjs +1 -0
  127. package/dist/manifest-BfXt9cau.mjs +1 -0
  128. package/dist/manifest-Bx-tpURK.mjs +1 -0
  129. package/dist/manifest-C0owVAdq.mjs +1 -0
  130. package/dist/manifest-C5XqYc9o.mjs +1 -0
  131. package/dist/manifest-CVKzLjsA.mjs +1 -0
  132. package/dist/manifest-CaeFjdhj.mjs +1 -0
  133. package/dist/manifest-CegBgip0.mjs +1 -0
  134. package/dist/manifest-CoJHqlgS.mjs +1 -0
  135. package/dist/manifest-D0dbtDqd.mjs +1 -0
  136. package/dist/manifest-D5Gr8ujd.mjs +12 -0
  137. package/dist/manifest-D82z-5og.mjs +1 -0
  138. package/dist/manifest-DA2afIwh.mjs +1 -0
  139. package/dist/manifest-DAbiFP5o.mjs +1 -0
  140. package/dist/manifest-DEY0s1O72.mjs +1 -0
  141. package/dist/manifest-DTOqNqiA.mjs +1 -0
  142. package/dist/manifest-DZ6ELNgX.mjs +1 -0
  143. package/dist/manifest-DjHkjddT.mjs +1 -0
  144. package/dist/manifest-DocA_itf2.mjs +1 -0
  145. package/dist/manifest-Dpnhvfq0.mjs +1 -0
  146. package/dist/manifest-DucPMG_a.mjs +1 -0
  147. package/dist/manifest-Dw5yYEac.mjs +1 -0
  148. package/dist/manifest-Ic_Cg66S.mjs +1 -0
  149. package/dist/manifest-JHaG6GMN.mjs +1 -0
  150. package/dist/manifest-QdkIzmYM.mjs +1 -0
  151. package/dist/manifest-YZqaCe25.mjs +1 -0
  152. package/dist/manifest-f0lUeXwq.mjs +1 -0
  153. package/dist/manifest-h-Ebisf8.mjs +1 -0
  154. package/dist/manifest-oOfTymBS.mjs +1 -0
  155. package/dist/manifest-qXqrO6KC.mjs +2 -0
  156. package/dist/mapsParser-DrJoeC0c.mjs +1 -0
  157. package/dist/modules-CC_ADmwi.mjs +333 -0
  158. package/dist/mojo-ipc-kVztXYw-.mjs +140 -0
  159. package/dist/native-D9ouskXO.mjs +961 -0
  160. package/dist/native-bridge-Dzd7hYoq.mjs +1 -0
  161. package/dist/network-C5Y-S87J.mjs +7 -0
  162. package/dist/one-gadget-CiWFE17F.mjs +1 -0
  163. package/dist/outputPaths-CHtELDyi.mjs +1 -0
  164. package/dist/parse-args-B6dwWc9k.mjs +1 -0
  165. package/dist/platform-BIXgJaM3.mjs +94 -0
  166. package/dist/process-aDIfLC0v.mjs +6 -0
  167. package/dist/proxy-DsHsQ1I4.mjs +2 -0
  168. package/dist/registry-7h8jJ9y9.mjs +1 -0
  169. package/dist/{registry-DH4sc1dt.mjs → registry-DJDnkQW2.mjs} +1 -1
  170. package/dist/response-R8ghbZSb.mjs +1 -0
  171. package/dist/retry-policy-DtYv0kDi.mjs +1 -0
  172. package/dist/reverseEngineeringConfig-BhZLOa3C.mjs +1 -0
  173. package/dist/safeOutput-Dt4mfjXA.mjs +1 -0
  174. package/dist/search-defaults-BBRJNAzC.mjs +1 -0
  175. package/dist/server/plugin-api.mjs +1 -1
  176. package/dist/server/search/EmbeddingWorker.d.mts +1 -0
  177. package/dist/server/search/EmbeddingWorker.mjs +1 -0
  178. package/dist/shared-BKtWZDGN.mjs +1 -0
  179. package/dist/sourcemap-2VIeVeKw.mjs +3 -0
  180. package/dist/streaming-DkpE3GGU.mjs +15 -0
  181. package/dist/syscall-DGZoYM_U.mjs +1 -0
  182. package/dist/transform-BJqsBC_-.mjs +105 -0
  183. package/dist/turbofan-graph-CbGHNVtl.mjs +1 -0
  184. package/dist/turbofan-inspect--NdCuYXi.mjs +23 -0
  185. package/dist/types-CWSvzmIh.mjs +1 -0
  186. package/dist/v8-inspector-CTJo08-K.mjs +297 -0
  187. package/dist/wasm-DX4Qm2Vs.mjs +235 -0
  188. package/dist/weakrefs-inspect-CnhaF-rN.mjs +57 -0
  189. package/dist/webgpu-D4-DxbxZ.mjs +6 -0
  190. package/dist/workflow-DHktRNF2.mjs +108 -0
  191. package/package.json +33 -27
  192. package/dist/AntiCheatDetector-B6d4Qe9D.mjs +0 -1
  193. package/dist/CodeInjector-Cll_7bLJ.mjs +0 -1
  194. package/dist/ConsoleMonitor-CxDJV15E.mjs +0 -306
  195. package/dist/DOMInspector-C19J4zeq.mjs +0 -95
  196. package/dist/DarwinAPI-ZfQdpLNI.mjs +0 -1
  197. package/dist/DetailedDataManager-DmQ1LT-W.mjs +0 -1
  198. package/dist/ExtensionManager-BD724zkO.mjs +0 -1
  199. package/dist/ExtensionManager.tools-oVMJgPcN.mjs +0 -1
  200. package/dist/FingerprintManager-DT0EAUEo.mjs +0 -1
  201. package/dist/HardwareBreakpoint-BUfPdp0f.mjs +0 -1
  202. package/dist/HeapAnalyzer-B_aqY8oj.mjs +0 -1
  203. package/dist/InstrumentationSession-D_G1ZPyd.mjs +0 -1
  204. package/dist/MCPServer.search.handlers.domain-BbS-6LnX.mjs +0 -1
  205. package/dist/MemoryController-X1XNSn1n.mjs +0 -2
  206. package/dist/MemoryScanner-g1_L1ub5.mjs +0 -1
  207. package/dist/NativeMemoryManager.impl-DniBe2wf.mjs +0 -1
  208. package/dist/NetworkMonitor-B_-au6aV.mjs +0 -185
  209. package/dist/PEAnalyzer-yWQaGrcx.mjs +0 -1
  210. package/dist/PageController-Dfsm1_o7.mjs +0 -1
  211. package/dist/PointerChainEngine-BhCUkmxY.mjs +0 -1
  212. package/dist/PrerequisiteError-BjCQA-gK.mjs +0 -1
  213. package/dist/ProcessRegistry-C-bN48oR.mjs +0 -1
  214. package/dist/ReverseEvidenceGraph-BhSYYdiI.mjs +0 -2
  215. package/dist/ScriptManager-LWGPTdvD.mjs +0 -7
  216. package/dist/ServerRuntimeState-D2bWHqEE.mjs +0 -1
  217. package/dist/Speedhack-yseDPSZ9.mjs +0 -1
  218. package/dist/StructureAnalyzer-C5lpuZkg.mjs +0 -2
  219. package/dist/ToolCatalog-CYdD9F5f.mjs +0 -1
  220. package/dist/ToolRegistry-C5oB8KP8.mjs +0 -1
  221. package/dist/ToolRouter.policy-CfhJczkt.mjs +0 -4
  222. package/dist/TraceRecorder-BiJWBXHX.mjs +0 -272
  223. package/dist/VersionDetector-CHT36Az0.mjs +0 -9
  224. package/dist/Win32API-eUCF57l_.mjs +0 -1
  225. package/dist/WorkflowEngine-D876meOO.mjs +0 -1
  226. package/dist/analysis-D4swdMvq.mjs +0 -6
  227. package/dist/apk-packer-BqXcInnX.mjs +0 -1
  228. package/dist/artifactRetention-BCPQASm7.mjs +0 -1
  229. package/dist/artifacts-CkodUM4j.mjs +0 -1
  230. package/dist/binary-instrument-DU7V6TUM.mjs +0 -7
  231. package/dist/binary-secrets-PdMVoyt0.mjs +0 -1
  232. package/dist/boringssl-inspector-BBaJwwkU.mjs +0 -2
  233. package/dist/browser-Qqco2rOT.mjs +0 -11
  234. package/dist/collector-Bpl6qy2L.mjs +0 -1
  235. package/dist/constants-BYj8Xek8.mjs +0 -1
  236. package/dist/coordination-CWXW1o8K.mjs +0 -1
  237. package/dist/dart-inspector-7AkPeZ_Q.mjs +0 -0
  238. package/dist/debugger-DyALjYMk.mjs +0 -1
  239. package/dist/definitions-BWxBke3r.mjs +0 -1
  240. package/dist/definitions-BYwATKc-.mjs +0 -1
  241. package/dist/definitions-B_83XfNQ.mjs +0 -1
  242. package/dist/definitions-Bf3H1EwV.mjs +0 -1
  243. package/dist/definitions-BftdXgXI.mjs +0 -1
  244. package/dist/definitions-Bio5XJYy.mjs +0 -1
  245. package/dist/definitions-C3qNgSn1.mjs +0 -1
  246. package/dist/definitions-CB6vmOer.mjs +0 -1
  247. package/dist/definitions-CMZRSy3k.mjs +0 -1
  248. package/dist/definitions-CQd7yCQH.mjs +0 -1
  249. package/dist/definitions-CT8ln6GQ.mjs +0 -1
  250. package/dist/definitions-D4g-MS10.mjs +0 -1
  251. package/dist/definitions-D5wl_8HN.mjs +0 -1
  252. package/dist/definitions-DAQm1Xar.mjs +0 -1
  253. package/dist/definitions-DP1vgxEY.mjs +0 -1
  254. package/dist/definitions-Ibci7e_L.mjs +0 -1
  255. package/dist/definitions-OeLvmlQy.mjs +0 -1
  256. package/dist/definitions-RZYGD_Ey.mjs +0 -1
  257. package/dist/definitions-Tls8c0A0.mjs +0 -1
  258. package/dist/definitions-bybDvnG0.mjs +0 -26
  259. package/dist/definitions-l7TjdE6V.mjs +0 -1
  260. package/dist/encoding-ycOaz8Vr.mjs +0 -2
  261. package/dist/ensure-browser-core-DxWC-NTp.mjs +0 -1
  262. package/dist/factory-CKr4fAE1.mjs +0 -1
  263. package/dist/flat-target-session-DvcQX7J5.mjs +0 -1
  264. package/dist/graphql-B2TiPEow.mjs +0 -62
  265. package/dist/handlers-8zN_vBIz.mjs +0 -1
  266. package/dist/handlers-B62K4FTc.mjs +0 -1
  267. package/dist/handlers-BpDlVVVU.mjs +0 -1
  268. package/dist/handlers-CMJK7m1c.mjs +0 -31
  269. package/dist/handlers-D2ZOul9p.mjs +0 -54
  270. package/dist/handlers-D5E40ssn.mjs +0 -5
  271. package/dist/handlers-DGbdQAgD.mjs +0 -4
  272. package/dist/handlers-DHO3rjsW.mjs +0 -1
  273. package/dist/handlers-FJ80VzUI.mjs +0 -2
  274. package/dist/handlers-VHWrxbM_.mjs +0 -1
  275. package/dist/handlers-l8QIKqBj.mjs +0 -2
  276. package/dist/handlers.impl-D9Hh8Bgl.mjs +0 -1
  277. package/dist/jadx-search-B_Yse0Zh.mjs +0 -5
  278. package/dist/logger-sBC6IdRT.mjs +0 -1
  279. package/dist/maintenance-BUpIukhg.mjs +0 -1
  280. package/dist/manifest-0Jpt_AQa.mjs +0 -1
  281. package/dist/manifest-B3fZbSWR.mjs +0 -1
  282. package/dist/manifest-B7NB2rh2.mjs +0 -1
  283. package/dist/manifest-BDi4nbH1.mjs +0 -1
  284. package/dist/manifest-BLDfkE7n.mjs +0 -1
  285. package/dist/manifest-BcXbB4gf.mjs +0 -1
  286. package/dist/manifest-Bdnc_vrc.mjs +0 -1
  287. package/dist/manifest-BuYKgCnp.mjs +0 -1
  288. package/dist/manifest-CBfNnGPV.mjs +0 -1
  289. package/dist/manifest-CPS1Xv69.mjs +0 -1
  290. package/dist/manifest-CQH9FhwI.mjs +0 -1
  291. package/dist/manifest-CRryuZF4.mjs +0 -1
  292. package/dist/manifest-CctIumog.mjs +0 -1
  293. package/dist/manifest-CvTe5ZGV2.mjs +0 -1
  294. package/dist/manifest-D-5GH0DV.mjs +0 -1
  295. package/dist/manifest-D3Ssf3IC.mjs +0 -1
  296. package/dist/manifest-D5ck3NvC.mjs +0 -1
  297. package/dist/manifest-D9jUUJAu.mjs +0 -1
  298. package/dist/manifest-DCx6w2XV.mjs +0 -1
  299. package/dist/manifest-DG19q-Ld.mjs +0 -1
  300. package/dist/manifest-DLMlD0Zc.mjs +0 -1
  301. package/dist/manifest-DYpn8w_h.mjs +0 -1
  302. package/dist/manifest-DYzWI8Xs.mjs +0 -1
  303. package/dist/manifest-D_obs5F4.mjs +0 -1
  304. package/dist/manifest-DujQqEQR.mjs +0 -2
  305. package/dist/manifest-DwL2ik8P.mjs +0 -1
  306. package/dist/manifest-ItF5P8A12.mjs +0 -1
  307. package/dist/manifest-KZphqIyX.mjs +0 -1
  308. package/dist/manifest-LG42zPLY2.mjs +0 -1
  309. package/dist/manifest-LLdI5m4T.mjs +0 -1
  310. package/dist/manifest-QYbQXJn0.mjs +0 -1
  311. package/dist/manifest-RcpX_MyZ.mjs +0 -123
  312. package/dist/manifest-YgVd8Sgz.mjs +0 -1
  313. package/dist/manifest-Zy7Odg5J.mjs +0 -1
  314. package/dist/manifest-ff1H7Pdp.mjs +0 -1
  315. package/dist/manifest-iuhF6pTL2.mjs +0 -1
  316. package/dist/manifest-nXHmtMSp2.mjs +0 -1
  317. package/dist/manifest-xWfu6iLo.mjs +0 -1
  318. package/dist/manifest-yC16OhL2.mjs +0 -1
  319. package/dist/manifest-ztWJoXy4.mjs +0 -1
  320. package/dist/matchesWildcardPattern-BAG6LvX5.mjs +0 -1
  321. package/dist/modules-BPBcSaM-.mjs +0 -333
  322. package/dist/mojo-ipc-BhwsdVUW.mjs +0 -9
  323. package/dist/native-j8l473zn.mjs +0 -961
  324. package/dist/network-T0VRwNPd.mjs +0 -7
  325. package/dist/outputPaths-B4Ic4RZh.mjs +0 -2
  326. package/dist/parse-args-Bw413PlW.mjs +0 -1
  327. package/dist/platform-CzaQtISh.mjs +0 -93
  328. package/dist/playwright-cdp-fallback-DqFdx9-s.mjs +0 -1
  329. package/dist/process-CWhsCWrf.mjs +0 -2
  330. package/dist/proxy-DZFlDsG3.mjs +0 -2
  331. package/dist/renderer-pid-9tJnZ_9N.mjs +0 -1
  332. package/dist/response-C7rKQst4.mjs +0 -1
  333. package/dist/search-defaults-lYBVn_3L.mjs +0 -1
  334. package/dist/shared-state-board-BSjXLUV1.mjs +0 -1
  335. package/dist/sourcemap-Dh3Ai_ur.mjs +0 -1
  336. package/dist/streaming-BcJ0B6ao.mjs +0 -1
  337. package/dist/transform-DOxzeWPB.mjs +0 -103
  338. package/dist/types-D9EiE5o9.mjs +0 -1
  339. package/dist/wasm-CZ_HTfKR.mjs +0 -174
  340. package/dist/webcrack-C1iYG_EX.mjs +0 -46
  341. package/dist/workflow-BdwQmARn.mjs +0 -101
  342. /package/dist/{CacheAdapters-CsNtQIR8.mjs → CacheAdapters-BlDrQg8f.mjs} +0 -0
  343. /package/dist/{EventBus-DL8iLA09.mjs → EventBus-Cm-t-B65.mjs} +0 -0
  344. /package/dist/{EvidenceGraphBridge-BtbwXsLC.mjs → EvidenceGraphBridge-DBDc0wUA.mjs} +0 -0
  345. /package/dist/{HookGeneratorBuilders.core.generators.storage-DzD6dIJd.mjs → HookGeneratorBuilders.core.generators.storage-CWaWpOHa.mjs} +0 -0
  346. /package/dist/{RingBuffer-Dm54ELKT.mjs → RingBuffer-B6RTHmij.mjs} +0 -0
  347. /package/dist/{StealthVerifier-BmcxfwSF.mjs → StealthVerifier-DMBrtkhN.mjs} +0 -0
  348. /package/dist/{ToolError-DWU_z7gp.mjs → ToolError-g3rjWzhx.mjs} +0 -0
  349. /package/dist/{authorization-schema-BOFwSXUN.mjs → authorization-schema-Jtikc5Yt.mjs} +0 -0
  350. /package/dist/{bind-helpers-m2U8glkF.mjs → bind-helpers-D0mGAOof.mjs} +0 -0
  351. /package/dist/{concurrency-DCr8WQ2M.mjs → concurrency-Dehnw4JC.mjs} +0 -0
  352. /package/dist/{evidence-graph-bridge-CV_UdYqj.mjs → evidence-graph-bridge-eT9icP6a.mjs} +0 -0
  353. /package/dist/{formatAddress-vLA_hOJt.mjs → formatAddress-DAcw4Ckg.mjs} +0 -0
  354. /package/dist/{chunk-C_pMuVsO.mjs → rolldown-runtime-88NL7fhV.mjs} +0 -0
  355. /package/dist/{ssrf-policy-CsIJGkpd.mjs → ssrf-policy-B72vdy23.mjs} +0 -0
  356. /package/dist/{tool-builder-qif8M9-K.mjs → tool-builder-CpLh-UQd.mjs} +0 -0
  357. /package/dist/{types-Fz69RzbZ.mjs → types-BzPBzmVB.mjs} +0 -0
@@ -0,0 +1,407 @@
1
+ import{n as e}from"./rolldown-runtime-88NL7fhV.mjs";import{i as t}from"./artifacts-Bx9GLx4J.mjs";import{t as n}from"./betterSqlite3-Bdo_ifuJ.mjs";import{writeFile as r}from"node:fs/promises";import{randomUUID as i}from"node:crypto";const a={Debugger:[`Debugger.paused`,`Debugger.resumed`,`Debugger.scriptParsed`],Runtime:[`Runtime.consoleAPICalled`,`Runtime.exceptionThrown`],Network:[`Network.requestWillBeSent`,`Network.requestServedFromCache`,`Network.responseReceived`,`Network.dataReceived`,`Network.loadingFinished`,`Network.loadingFailed`,`Network.eventSourceMessageReceived`,`Network.webSocketCreated`,`Network.webSocketWillSendHandshakeRequest`,`Network.webSocketHandshakeResponseReceived`,`Network.webSocketFrameReceived`,`Network.webSocketFrameSent`,`Network.webSocketFrameError`,`Network.webSocketClosed`],Page:[`Page.navigatedWithinDocument`,`Page.loadEventFired`]},o=[`Debugger`,`Runtime`,`Network`,`Page`],s={recordResponseBodies:!0,streamResponseChunks:!0,maxBodyBytes:10*1024*1024,inlineBodyBytes:256*1024},c=16*1024,l=e=>typeof e==`object`&&!!e,u=e=>typeof e==`string`?e:null,d=e=>typeof e==`number`&&Number.isFinite(e)?e:null,f=e=>{let t=d(e);return t===null?null:t>0xe8d4a51000?t:t*1e3},p=e=>l(e)&&typeof e.body==`string`&&typeof e.base64Encoded==`boolean`,m=e=>{let t=Date.now();if(!l(e))return{timestamp:t,wallTime:t,monotonicTime:null};let n=f(e.wallTime),r=f(e.timestamp);return{timestamp:n??t,wallTime:n??t,monotonicTime:r}},h=e=>l(e)&&typeof e.requestId==`string`?e.requestId:null,g=(e,t)=>{let n=null,r=null;if(!l(t))return{scriptId:n,lineNumber:r};`scriptId`in t&&(n=String(t.scriptId)),`lineNumber`in t&&(r=Number(t.lineNumber)||null);let i=_(t.stackTrace);if(i.scriptId!==null&&(n=i.scriptId),i.lineNumber!==null&&(r=i.lineNumber),e===`Runtime.exceptionThrown`&&l(t.exceptionDetails)){let e=t.exceptionDetails;`scriptId`in e&&(n=String(e.scriptId)),`lineNumber`in e&&(r=Number(e.lineNumber)||null);let i=_(e.stackTrace);n===null&&i.scriptId!==null&&(n=i.scriptId),r===null&&i.lineNumber!==null&&(r=i.lineNumber)}if(e===`Debugger.paused`&&Array.isArray(t.callFrames)){let e=t.callFrames[0];if(e){let t=e.location;t&&(n=String(t.scriptId??n),r=Number(t.lineNumber??r)||null)}}return{scriptId:n,lineNumber:r}},_=e=>{if(!l(e)||!Array.isArray(e.callFrames))return{scriptId:null,lineNumber:null};let t=e.callFrames[0];return l(t)?{scriptId:typeof t.scriptId==`string`?t.scriptId:null,lineNumber:d(t.lineNumber)}:{scriptId:null,lineNumber:null}},v=(e,t)=>{if(!l(t))return t??{};let n={...t};if(e===`Network.dataReceived`&&typeof n.data==`string`){let e=n.data;n.hasChunkData=!0,n.chunkDataBytes=Buffer.byteLength(e,`utf8`),n.data=`[captured in network_chunks]`}if(e===`Network.eventSourceMessageReceived`&&typeof n.data==`string`&&Buffer.byteLength(n.data,`utf8`)>c&&(n.data=`${n.data.slice(0,c)}...[truncated]`,n.truncatedData=!0),(e===`Network.webSocketFrameReceived`||e===`Network.webSocketFrameSent`)&&l(n.response)&&typeof n.response.payloadData==`string`){let e={...n.response},t=e.payloadData;Buffer.byteLength(t,`utf8`)>c&&(e.payloadData=`${t.slice(0,c)}...[truncated]`,e.truncatedPayloadData=!0,n.response=e)}return n},y=e=>{let t=u(e.remoteIPAddress),n=d(e.remotePort);return t?n===null?t:`${t}:${n}`:null},b=e=>({requestId:e,url:null,method:null,resourceType:null,requestHeaders:`{}`,requestPostData:null,status:null,statusText:null,responseHeaders:`{}`,mimeType:null,protocol:null,remoteAddress:null,fromDiskCache:!1,fromServiceWorker:!1,startedWallTime:null,responseWallTime:null,finishedWallTime:null,startedMonotonicTime:null,responseMonotonicTime:null,finishedMonotonicTime:null,encodedDataLength:null,receivedDataLength:0,receivedEncodedDataLength:0,chunkCount:0,streamingEnabled:!1,streamingSupported:null,streamingError:null,bodyCaptureState:`none`,bodyInline:null,bodyArtifactPath:null,bodyBase64Encoded:!1,bodySize:null,bodyTruncated:!1,bodyError:null,failed:!1,errorText:null});var x=class{deps;resources=new Map;options={...s};counts={networkRequestCount:0,networkChunkCount:0,networkBodyCount:0};constructor(e){this.deps=e}configure(e){return this.resources.clear(),this.counts={networkRequestCount:0,networkChunkCount:0,networkBodyCount:0},this.options={...s,...e},this.getOptions()}clear(){this.resources.clear(),this.counts={networkRequestCount:0,networkChunkCount:0,networkBodyCount:0}}getOptions(){return{...this.options}}getCounts(){return{...this.counts}}handleEvent(e,t,n){let r=h(t);if(r)switch(e){case`Network.requestWillBeSent`:this.handleRequestWillBeSent(r,t,n);return;case`Network.requestServedFromCache`:this.handleRequestServedFromCache(r);return;case`Network.responseReceived`:this.handleResponseReceived(r,t,n);return;case`Network.dataReceived`:this.handleDataReceived(r,t,n);return;case`Network.loadingFinished`:this.handleLoadingFinished(r,t,n);return;case`Network.loadingFailed`:this.handleLoadingFailed(r,t,n);return;default:return}}handleRequestWillBeSent(e,t,n){let r=this.getOrCreateResource(e),i=l(t)&&l(t.request)?t.request:null;r.url=i?u(i.url):r.url,r.method=i?u(i.method):r.method,r.resourceType=l(t)&&typeof t.type==`string`?t.type:r.resourceType,r.requestHeaders=i?JSON.stringify(i.headers??{}):r.requestHeaders,r.requestPostData=i?u(i.postData):r.requestPostData,r.startedWallTime=n.wallTime??r.startedWallTime??n.timestamp,r.startedMonotonicTime=n.monotonicTime??r.startedMonotonicTime,this.syncResource(r)}handleRequestServedFromCache(e){let t=this.getOrCreateResource(e);t.fromDiskCache=!0,this.syncResource(t)}handleResponseReceived(e,t,n){let r=this.getOrCreateResource(e),i=l(t)&&l(t.response)?t.response:null;r.url=i?u(i.url)??r.url:r.url,r.status=i?d(i.status):r.status,r.statusText=i?u(i.statusText):r.statusText,r.responseHeaders=i?JSON.stringify(i.headers??{}):r.responseHeaders,r.mimeType=i?u(i.mimeType):r.mimeType,r.protocol=i?u(i.protocol):r.protocol,r.remoteAddress=i?y(i):r.remoteAddress,r.fromDiskCache=i?!!i.fromDiskCache:r.fromDiskCache,r.fromServiceWorker=i?!!i.fromServiceWorker:r.fromServiceWorker,r.responseWallTime=n.wallTime??r.responseWallTime??n.timestamp,r.responseMonotonicTime=n.monotonicTime??r.responseMonotonicTime,this.syncResource(r),this.options.streamResponseChunks&&r.streamingSupported===null&&this.deps.trackOperation(this.enableStreamingForRequest(e))}handleDataReceived(e,t,n){let r=this.getOrCreateResource(e),i=l(t)?t:null,a=i?d(i.dataLength)??0:0,o=i?d(i.encodedDataLength)??0:0,s=i?u(i.data):null;r.receivedDataLength+=a,r.receivedEncodedDataLength+=o,r.chunkCount+=1;let c=r.receivedDataLength<=this.options.maxBodyBytes,f={requestId:e,sequence:r.chunkCount,timestamp:n.timestamp,monotonicTime:n.monotonicTime,dataLength:a,encodedDataLength:o,chunkData:c?s:null,chunkIsBase64:s!==null};try{this.deps.getDb()?.insertNetworkChunk(f),this.counts.networkChunkCount++}catch{}this.syncResource(r)}handleLoadingFinished(e,t,n){let r=this.getOrCreateResource(e);r.finishedWallTime=n.wallTime??n.timestamp,r.finishedMonotonicTime=n.monotonicTime??r.finishedMonotonicTime,l(t)&&(r.encodedDataLength=d(t.encodedDataLength)??r.encodedDataLength),this.syncResource(r),this.options.recordResponseBodies&&this.deps.trackOperation(this.captureResponseBody(e))}handleLoadingFailed(e,t,n){let r=this.getOrCreateResource(e);r.finishedWallTime=n.wallTime??n.timestamp,r.finishedMonotonicTime=n.monotonicTime??r.finishedMonotonicTime,r.failed=!0,r.errorText=l(t)?u(t.errorText):null,this.syncResource(r)}async enableStreamingForRequest(e){let t=this.deps.getCdpSession(),n=this.deps.getDb();if(!t||!n||!this.options.streamResponseChunks)return;let r=this.resources.get(e);if(!(!r||r.streamingSupported!==null))try{let i=await t.send(`Network.streamResourceContent`,{requestId:e});if(r.streamingEnabled=!0,r.streamingSupported=!0,r.streamingError=null,l(i)){let t=u(i.bufferedData);if(t){let i=Buffer.from(t,`base64`).length,a={requestId:e,sequence:r.chunkCount+1,timestamp:Date.now(),monotonicTime:r.responseMonotonicTime,dataLength:i,encodedDataLength:i,chunkData:r.receivedDataLength+i<=this.options.maxBodyBytes?t:null,chunkIsBase64:!0};r.chunkCount+=1,r.receivedDataLength+=i,r.receivedEncodedDataLength+=i,n.insertNetworkChunk(a),this.counts.networkChunkCount++}}}catch(e){r.streamingEnabled=!1,r.streamingSupported=!1,r.streamingError=e instanceof Error?e.message:String(e)}finally{this.syncResource(r)}}async captureResponseBody(e){let n=this.deps.getCdpSession();if(!n||!this.deps.getDb()||!this.options.recordResponseBodies)return;let i=this.resources.get(e);if(i)try{let a=await n.send(`Network.getResponseBody`,{requestId:e});if(!p(a))return;if(i.bodyBase64Encoded=a.base64Encoded,i.bodySize=a.base64Encoded?Buffer.from(a.body,`base64`).length:Buffer.byteLength(a.body,`utf8`),i.bodyTruncated=i.bodySize>this.options.maxBodyBytes,i.bodyTruncated)i.bodyCaptureState=`truncated`,i.bodyInline=a.body.slice(0,this.options.inlineBodyBytes),i.bodyArtifactPath=null,i.bodyError=`Body exceeded configured maxBodyBytes (${this.options.maxBodyBytes})`;else if(i.bodySize<=this.options.inlineBodyBytes)i.bodyCaptureState=`inline`,i.bodyInline=a.body,i.bodyArtifactPath=null,i.bodyError=null;else{let n=a.base64Encoded?`b64`:`txt`,{absolutePath:o}=await t({category:`traces`,toolName:`trace_body`,target:e.slice(0,32),ext:n});await r(o,a.body,`utf8`),i.bodyCaptureState=`artifact`,i.bodyInline=null,i.bodyArtifactPath=o,i.bodyError=null}this.counts.networkBodyCount++}catch(e){i.bodyCaptureState=i.bodyCaptureState===`none`?`error`:i.bodyCaptureState,i.bodyError=e instanceof Error?e.message:String(e)}finally{this.syncResource(i)}}getOrCreateResource(e){let t=this.resources.get(e);if(t)return t;let n=b(e);return this.resources.set(e,n),this.counts.networkRequestCount++,n}syncResource(e){try{this.deps.getDb()?.upsertNetworkResource(e)}catch{}}};function S(e){e.exec(`
2
+ CREATE TABLE IF NOT EXISTS events (
3
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
4
+ timestamp REAL NOT NULL,
5
+ category TEXT NOT NULL,
6
+ event_type TEXT NOT NULL,
7
+ data TEXT NOT NULL DEFAULT '{}',
8
+ script_id TEXT,
9
+ line_number INTEGER,
10
+ wall_time REAL,
11
+ monotonic_time REAL,
12
+ request_id TEXT,
13
+ sequence INTEGER
14
+ );
15
+ CREATE INDEX IF NOT EXISTS idx_events_timestamp ON events(timestamp);
16
+ CREATE INDEX IF NOT EXISTS idx_events_category_type ON events(category, event_type);
17
+ CREATE INDEX IF NOT EXISTS idx_events_script_id ON events(script_id);
18
+ CREATE INDEX IF NOT EXISTS idx_events_request_id ON events(request_id);
19
+
20
+ CREATE TABLE IF NOT EXISTS memory_deltas (
21
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
22
+ timestamp REAL NOT NULL,
23
+ address TEXT NOT NULL,
24
+ old_value TEXT NOT NULL,
25
+ new_value TEXT NOT NULL,
26
+ size INTEGER NOT NULL,
27
+ value_type TEXT NOT NULL
28
+ );
29
+ CREATE INDEX IF NOT EXISTS idx_memory_timestamp ON memory_deltas(timestamp);
30
+ CREATE INDEX IF NOT EXISTS idx_memory_address ON memory_deltas(address);
31
+
32
+ CREATE TABLE IF NOT EXISTS heap_snapshots (
33
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
34
+ timestamp REAL NOT NULL,
35
+ snapshot_data BLOB,
36
+ summary TEXT NOT NULL DEFAULT '{}'
37
+ );
38
+
39
+ CREATE TABLE IF NOT EXISTS metadata (
40
+ key TEXT PRIMARY KEY,
41
+ value TEXT NOT NULL
42
+ );
43
+
44
+ CREATE TABLE IF NOT EXISTS network_resources (
45
+ request_id TEXT PRIMARY KEY,
46
+ url TEXT,
47
+ method TEXT,
48
+ resource_type TEXT,
49
+ request_headers TEXT NOT NULL DEFAULT '{}',
50
+ request_post_data TEXT,
51
+ status INTEGER,
52
+ status_text TEXT,
53
+ response_headers TEXT NOT NULL DEFAULT '{}',
54
+ mime_type TEXT,
55
+ protocol TEXT,
56
+ remote_address TEXT,
57
+ from_disk_cache INTEGER NOT NULL DEFAULT 0,
58
+ from_service_worker INTEGER NOT NULL DEFAULT 0,
59
+ started_wall_time REAL,
60
+ response_wall_time REAL,
61
+ finished_wall_time REAL,
62
+ started_monotonic_time REAL,
63
+ response_monotonic_time REAL,
64
+ finished_monotonic_time REAL,
65
+ encoded_data_length INTEGER,
66
+ received_data_length INTEGER NOT NULL DEFAULT 0,
67
+ received_encoded_data_length INTEGER NOT NULL DEFAULT 0,
68
+ chunk_count INTEGER NOT NULL DEFAULT 0,
69
+ streaming_enabled INTEGER NOT NULL DEFAULT 0,
70
+ streaming_supported INTEGER,
71
+ streaming_error TEXT,
72
+ body_capture_state TEXT NOT NULL DEFAULT 'none',
73
+ body_inline TEXT,
74
+ body_artifact_path TEXT,
75
+ body_base64_encoded INTEGER NOT NULL DEFAULT 0,
76
+ body_size INTEGER,
77
+ body_truncated INTEGER NOT NULL DEFAULT 0,
78
+ body_error TEXT,
79
+ failed INTEGER NOT NULL DEFAULT 0,
80
+ error_text TEXT
81
+ );
82
+ CREATE INDEX IF NOT EXISTS idx_network_resources_started_wall_time
83
+ ON network_resources(started_wall_time);
84
+
85
+ CREATE TABLE IF NOT EXISTS network_chunks (
86
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
87
+ request_id TEXT NOT NULL,
88
+ sequence INTEGER NOT NULL,
89
+ timestamp REAL NOT NULL,
90
+ monotonic_time REAL,
91
+ data_length INTEGER NOT NULL,
92
+ encoded_data_length INTEGER NOT NULL,
93
+ chunk_data TEXT,
94
+ chunk_is_base64 INTEGER NOT NULL DEFAULT 0
95
+ );
96
+ CREATE INDEX IF NOT EXISTS idx_network_chunks_request_sequence
97
+ ON network_chunks(request_id, sequence);
98
+ CREATE INDEX IF NOT EXISTS idx_network_chunks_timestamp
99
+ ON network_chunks(timestamp);
100
+
101
+ CREATE TABLE IF NOT EXISTS samples (
102
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
103
+ timestamp REAL NOT NULL,
104
+ self_time REAL NOT NULL,
105
+ aggregate_time REAL NOT NULL,
106
+ function_name TEXT,
107
+ script_id TEXT,
108
+ url TEXT,
109
+ line_number INTEGER,
110
+ column_number INTEGER
111
+ );
112
+ CREATE INDEX IF NOT EXISTS idx_samples_timestamp ON samples(timestamp);
113
+ CREATE INDEX IF NOT EXISTS idx_samples_function ON samples(function_name);
114
+
115
+ CREATE TABLE IF NOT EXISTS console_logs (
116
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
117
+ timestamp REAL NOT NULL,
118
+ wall_time REAL,
119
+ monotonic_time REAL,
120
+ level TEXT NOT NULL,
121
+ text TEXT NOT NULL,
122
+ args TEXT NOT NULL DEFAULT '[]',
123
+ stack_trace TEXT,
124
+ script_id TEXT,
125
+ line_number INTEGER,
126
+ column_number INTEGER,
127
+ execution_context_id INTEGER
128
+ );
129
+ CREATE INDEX IF NOT EXISTS idx_console_logs_timestamp ON console_logs(timestamp);
130
+ CREATE INDEX IF NOT EXISTS idx_console_logs_monotonic_time ON console_logs(monotonic_time);
131
+ CREATE INDEX IF NOT EXISTS idx_console_logs_level ON console_logs(level);
132
+
133
+ CREATE TABLE IF NOT EXISTS exceptions (
134
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
135
+ timestamp REAL NOT NULL,
136
+ wall_time REAL,
137
+ monotonic_time REAL,
138
+ text TEXT NOT NULL,
139
+ exception_id INTEGER,
140
+ url TEXT,
141
+ script_id TEXT,
142
+ line_number INTEGER,
143
+ column_number INTEGER,
144
+ description TEXT,
145
+ stack_trace TEXT,
146
+ execution_context_id INTEGER
147
+ );
148
+ CREATE INDEX IF NOT EXISTS idx_exceptions_timestamp ON exceptions(timestamp);
149
+ CREATE INDEX IF NOT EXISTS idx_exceptions_monotonic_time ON exceptions(monotonic_time);
150
+ CREATE INDEX IF NOT EXISTS idx_exceptions_exception_id ON exceptions(exception_id);
151
+ CREATE INDEX IF NOT EXISTS idx_exceptions_script_id ON exceptions(script_id);
152
+ `),j(e,`events`,`wall_time`,`REAL`),j(e,`events`,`monotonic_time`,`REAL`),j(e,`events`,`request_id`,`TEXT`),j(e,`events`,`sequence`,`INTEGER`)}function C(e){return{insertEventStmt:e.prepare(`
153
+ INSERT INTO events (
154
+ timestamp,
155
+ category,
156
+ event_type,
157
+ data,
158
+ script_id,
159
+ line_number,
160
+ wall_time,
161
+ monotonic_time,
162
+ request_id,
163
+ sequence
164
+ )
165
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
166
+ `),insertDeltaStmt:e.prepare(`
167
+ INSERT INTO memory_deltas (timestamp, address, old_value, new_value, size, value_type)
168
+ VALUES (?, ?, ?, ?, ?, ?)
169
+ `),insertSnapshotStmt:e.prepare(`
170
+ INSERT INTO heap_snapshots (timestamp, snapshot_data, summary)
171
+ VALUES (?, ?, ?)
172
+ `),upsertMetadataStmt:e.prepare(`
173
+ INSERT INTO metadata (key, value) VALUES (?, ?)
174
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value
175
+ `),upsertNetworkResourceStmt:e.prepare(`
176
+ INSERT INTO network_resources (
177
+ request_id,
178
+ url,
179
+ method,
180
+ resource_type,
181
+ request_headers,
182
+ request_post_data,
183
+ status,
184
+ status_text,
185
+ response_headers,
186
+ mime_type,
187
+ protocol,
188
+ remote_address,
189
+ from_disk_cache,
190
+ from_service_worker,
191
+ started_wall_time,
192
+ response_wall_time,
193
+ finished_wall_time,
194
+ started_monotonic_time,
195
+ response_monotonic_time,
196
+ finished_monotonic_time,
197
+ encoded_data_length,
198
+ received_data_length,
199
+ received_encoded_data_length,
200
+ chunk_count,
201
+ streaming_enabled,
202
+ streaming_supported,
203
+ streaming_error,
204
+ body_capture_state,
205
+ body_inline,
206
+ body_artifact_path,
207
+ body_base64_encoded,
208
+ body_size,
209
+ body_truncated,
210
+ body_error,
211
+ failed,
212
+ error_text
213
+ )
214
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
215
+ ON CONFLICT(request_id) DO UPDATE SET
216
+ url = excluded.url,
217
+ method = excluded.method,
218
+ resource_type = excluded.resource_type,
219
+ request_headers = excluded.request_headers,
220
+ request_post_data = excluded.request_post_data,
221
+ status = excluded.status,
222
+ status_text = excluded.status_text,
223
+ response_headers = excluded.response_headers,
224
+ mime_type = excluded.mime_type,
225
+ protocol = excluded.protocol,
226
+ remote_address = excluded.remote_address,
227
+ from_disk_cache = excluded.from_disk_cache,
228
+ from_service_worker = excluded.from_service_worker,
229
+ started_wall_time = excluded.started_wall_time,
230
+ response_wall_time = excluded.response_wall_time,
231
+ finished_wall_time = excluded.finished_wall_time,
232
+ started_monotonic_time = excluded.started_monotonic_time,
233
+ response_monotonic_time = excluded.response_monotonic_time,
234
+ finished_monotonic_time = excluded.finished_monotonic_time,
235
+ encoded_data_length = excluded.encoded_data_length,
236
+ received_data_length = excluded.received_data_length,
237
+ received_encoded_data_length = excluded.received_encoded_data_length,
238
+ chunk_count = excluded.chunk_count,
239
+ streaming_enabled = excluded.streaming_enabled,
240
+ streaming_supported = excluded.streaming_supported,
241
+ streaming_error = excluded.streaming_error,
242
+ body_capture_state = excluded.body_capture_state,
243
+ body_inline = excluded.body_inline,
244
+ body_artifact_path = excluded.body_artifact_path,
245
+ body_base64_encoded = excluded.body_base64_encoded,
246
+ body_size = excluded.body_size,
247
+ body_truncated = excluded.body_truncated,
248
+ body_error = excluded.body_error,
249
+ failed = excluded.failed,
250
+ error_text = excluded.error_text
251
+ `),insertNetworkChunkStmt:e.prepare(`
252
+ INSERT INTO network_chunks (
253
+ request_id,
254
+ sequence,
255
+ timestamp,
256
+ monotonic_time,
257
+ data_length,
258
+ encoded_data_length,
259
+ chunk_data,
260
+ chunk_is_base64
261
+ )
262
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
263
+ `),insertSampleStmt:e.prepare(`
264
+ INSERT INTO samples (
265
+ timestamp,
266
+ self_time,
267
+ aggregate_time,
268
+ function_name,
269
+ script_id,
270
+ url,
271
+ line_number,
272
+ column_number
273
+ )
274
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
275
+ `),insertConsoleLogStmt:e.prepare(`
276
+ INSERT INTO console_logs (
277
+ timestamp,
278
+ wall_time,
279
+ monotonic_time,
280
+ level,
281
+ text,
282
+ args,
283
+ stack_trace,
284
+ script_id,
285
+ line_number,
286
+ column_number,
287
+ execution_context_id
288
+ )
289
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
290
+ `),insertExceptionStmt:e.prepare(`
291
+ INSERT INTO exceptions (
292
+ timestamp,
293
+ wall_time,
294
+ monotonic_time,
295
+ text,
296
+ exception_id,
297
+ url,
298
+ script_id,
299
+ line_number,
300
+ column_number,
301
+ description,
302
+ stack_trace,
303
+ execution_context_id
304
+ )
305
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
306
+ `)}}function w(e){return{id:e.id,timestamp:e.timestamp,category:e.category,eventType:e.event_type,data:e.data,scriptId:e.script_id??null,lineNumber:e.line_number??null,wallTime:e.wall_time??null,monotonicTime:e.monotonic_time??null,requestId:e.request_id??null,sequence:e.sequence??null}}function T(e,t){return{id:e.id,requestId:e.request_id,sequence:e.sequence,timestamp:e.timestamp,monotonicTime:e.monotonic_time??null,dataLength:e.data_length,encodedDataLength:e.encoded_data_length,chunkData:e.chunk_data??null,chunkIsBase64:t(e.chunk_is_base64)}}function E(e,t){return{requestId:e.request_id,url:e.url??null,method:e.method??null,resourceType:e.resource_type??null,requestHeaders:e.request_headers??`{}`,requestPostData:e.request_post_data??null,status:e.status??null,statusText:e.status_text??null,responseHeaders:e.response_headers??`{}`,mimeType:e.mime_type??null,protocol:e.protocol??null,remoteAddress:e.remote_address??null,fromDiskCache:t(e.from_disk_cache),fromServiceWorker:t(e.from_service_worker),startedWallTime:e.started_wall_time??null,responseWallTime:e.response_wall_time??null,finishedWallTime:e.finished_wall_time??null,startedMonotonicTime:e.started_monotonic_time??null,responseMonotonicTime:e.response_monotonic_time??null,finishedMonotonicTime:e.finished_monotonic_time??null,encodedDataLength:e.encoded_data_length??null,receivedDataLength:e.received_data_length??0,receivedEncodedDataLength:e.received_encoded_data_length??0,chunkCount:e.chunk_count??0,streamingEnabled:t(e.streaming_enabled),streamingSupported:e.streaming_supported===null||e.streaming_supported===void 0?null:t(e.streaming_supported),streamingError:e.streaming_error??null,bodyCaptureState:e.body_capture_state??`none`,bodyInline:e.body_inline??null,bodyArtifactPath:e.body_artifact_path??null,bodyBase64Encoded:t(e.body_base64_encoded),bodySize:e.body_size??null,bodyTruncated:t(e.body_truncated),bodyError:e.body_error??null,failed:t(e.failed),errorText:e.error_text??null}}function D(e){return{id:e.id,timestamp:e.timestamp,selfTime:e.self_time,aggregateTime:e.aggregate_time,functionName:e.function_name??null,scriptId:e.script_id??null,url:e.url??null,lineNumber:e.line_number??null,columnNumber:e.column_number??null}}function O(e){return{functionName:e.function_name??`(anonymous)`,selfTime:e.self_time??0,aggregateTime:e.aggregate_time??0,sampleCount:e.sample_count??0,scriptId:e.script_id??null,url:e.url??null,lineNumber:e.line_number??null,columnNumber:e.column_number??null}}function k(e){return{id:e.id,timestamp:e.timestamp,wallTime:e.wall_time??null,monotonicTime:e.monotonic_time??null,level:e.level,text:e.text,args:e.args??`[]`,stackTrace:e.stack_trace??null,scriptId:e.script_id??null,lineNumber:e.line_number??null,columnNumber:e.column_number??null,executionContextId:e.execution_context_id??null}}function A(e){return{id:e.id,timestamp:e.timestamp,wallTime:e.wall_time??null,monotonicTime:e.monotonic_time??null,text:e.text,exceptionId:e.exception_id??null,url:e.url??null,scriptId:e.script_id??null,lineNumber:e.line_number??null,columnNumber:e.column_number??null,description:e.description??null,stackTrace:e.stack_trace??null,executionContextId:e.execution_context_id??null}}function j(e,t,n,r){e.prepare(`PRAGMA table_info(${t})`).all().some(e=>e.name===n)||e.exec(`ALTER TABLE ${t} ADD COLUMN ${n} ${r}`)}let M;try{M=e(`better-sqlite3`)}catch{}const N=/\b(INSERT|UPDATE|DELETE|DROP|ALTER|CREATE|ATTACH|DETACH|REPLACE|PRAGMA)\b/i;var P=class{options;db;batchSize;eventBuffer=[];memoryBuffer=[];networkChunkBuffer=[];closed=!1;insertEventStmt;insertDeltaStmt;insertSnapshotStmt;upsertMetadataStmt;upsertNetworkResourceStmt;insertNetworkChunkStmt;insertSampleStmt;insertConsoleLogStmt;insertExceptionStmt;constructor(e){if(this.options=e,!M)throw Error(n(Error(`Cannot find package 'better-sqlite3'`)));try{this.db=new M(e.dbPath)}catch(e){throw Error(n(e),{cause:e})}this.batchSize=e.batchSize??200,this.db.pragma(`journal_mode = WAL`),this.db.pragma(`synchronous = NORMAL`),S(this.db);let t=C(this.db);this.insertEventStmt=t.insertEventStmt,this.insertDeltaStmt=t.insertDeltaStmt,this.insertSnapshotStmt=t.insertSnapshotStmt,this.upsertMetadataStmt=t.upsertMetadataStmt,this.upsertNetworkResourceStmt=t.upsertNetworkResourceStmt,this.insertNetworkChunkStmt=t.insertNetworkChunkStmt,this.insertSampleStmt=t.insertSampleStmt,this.insertConsoleLogStmt=t.insertConsoleLogStmt,this.insertExceptionStmt=t.insertExceptionStmt}get dbPath(){return this.options.dbPath}insertEvent(e){this.ensureOpen(),this.eventBuffer.push(e),this.eventBuffer.length>=this.batchSize&&this.flush()}insertMemoryDelta(e){this.ensureOpen(),this.memoryBuffer.push(e),this.memoryBuffer.length>=this.batchSize&&this.flush()}insertNetworkChunk(e){this.ensureOpen(),this.networkChunkBuffer.push(e),this.networkChunkBuffer.length>=this.batchSize&&this.flush()}insertSample(e){this.ensureOpen(),this.insertSampleStmt.run(e.timestamp,e.selfTime,e.aggregateTime,e.functionName,e.scriptId,e.url,e.lineNumber,e.columnNumber)}insertConsoleLog(e){this.ensureOpen(),this.insertConsoleLogStmt.run(e.timestamp,e.wallTime,e.monotonicTime,e.level,e.text,e.args,e.stackTrace,e.scriptId,e.lineNumber,e.columnNumber,e.executionContextId)}insertException(e){this.ensureOpen(),this.insertExceptionStmt.run(e.timestamp,e.wallTime,e.monotonicTime,e.text,e.exceptionId,e.url,e.scriptId,e.lineNumber,e.columnNumber,e.description,e.stackTrace,e.executionContextId)}upsertNetworkResource(e){this.ensureOpen(),this.upsertNetworkResourceStmt.run(e.requestId,e.url,e.method,e.resourceType,e.requestHeaders,e.requestPostData,e.status,e.statusText,e.responseHeaders,e.mimeType,e.protocol,e.remoteAddress,+!!e.fromDiskCache,+!!e.fromServiceWorker,e.startedWallTime,e.responseWallTime,e.finishedWallTime,e.startedMonotonicTime,e.responseMonotonicTime,e.finishedMonotonicTime,e.encodedDataLength,e.receivedDataLength,e.receivedEncodedDataLength,e.chunkCount,+!!e.streamingEnabled,e.streamingSupported===null?null:+!!e.streamingSupported,e.streamingError,e.bodyCaptureState,e.bodyInline,e.bodyArtifactPath,+!!e.bodyBase64Encoded,e.bodySize,+!!e.bodyTruncated,e.bodyError,+!!e.failed,e.errorText)}insertHeapSnapshot(e){this.ensureOpen(),this.insertSnapshotStmt.run(e.timestamp,e.snapshotData,e.summary)}setMetadata(e,t){this.ensureOpen(),this.upsertMetadataStmt.run(e,t)}flush(){this.closed||(this.db.transaction(()=>{for(let e of this.eventBuffer)this.insertEventStmt.run(e.timestamp,e.category,e.eventType,e.data,e.scriptId,e.lineNumber,e.wallTime??null,e.monotonicTime??null,e.requestId??null,e.sequence??null);for(let e of this.memoryBuffer)this.insertDeltaStmt.run(e.timestamp,e.address,e.oldValue,e.newValue,e.size,e.valueType);for(let e of this.networkChunkBuffer)this.insertNetworkChunkStmt.run(e.requestId,e.sequence,e.timestamp,e.monotonicTime,e.dataLength,e.encodedDataLength,e.chunkData,+!!e.chunkIsBase64)})(),this.eventBuffer=[],this.memoryBuffer=[],this.networkChunkBuffer=[])}query(e){return this.executeReadQuery(e,[])}queryWithParams(e,t){return this.executeReadQuery(e,t)}getEventsByTimeRange(e,t){return this.ensureOpen(),this.flush(),this.db.prepare(`
307
+ SELECT
308
+ id,
309
+ timestamp,
310
+ category,
311
+ event_type,
312
+ data,
313
+ script_id,
314
+ line_number,
315
+ wall_time,
316
+ monotonic_time,
317
+ request_id,
318
+ sequence
319
+ FROM events
320
+ WHERE timestamp >= ? AND timestamp <= ?
321
+ ORDER BY timestamp ASC, sequence ASC, id ASC
322
+ `).all(e,t).map(w)}getEventsByRequestId(e){return this.ensureOpen(),this.flush(),this.db.prepare(`
323
+ SELECT
324
+ id,
325
+ timestamp,
326
+ category,
327
+ event_type,
328
+ data,
329
+ script_id,
330
+ line_number,
331
+ wall_time,
332
+ monotonic_time,
333
+ request_id,
334
+ sequence
335
+ FROM events
336
+ WHERE request_id = ?
337
+ ORDER BY COALESCE(monotonic_time, timestamp) ASC, sequence ASC, id ASC
338
+ `).all(e).map(w)}getNetworkResource(e){this.ensureOpen(),this.flush();let t=this.db.prepare(`
339
+ SELECT *
340
+ FROM network_resources
341
+ WHERE request_id = ?
342
+ LIMIT 1
343
+ `).get(e);return t?E(t,this.fromSqliteBoolean):null}getNetworkChunks(e,t){this.ensureOpen(),this.flush();let n=`
344
+ SELECT
345
+ id,
346
+ request_id,
347
+ sequence,
348
+ timestamp,
349
+ monotonic_time,
350
+ data_length,
351
+ encoded_data_length,
352
+ chunk_data,
353
+ chunk_is_base64
354
+ FROM network_chunks
355
+ WHERE request_id = ?
356
+ ORDER BY sequence ASC
357
+ ${typeof t==`number`?`LIMIT ?`:``}
358
+ `,r=this.db.prepare(n);return(typeof t==`number`?r.all(e,t):r.all(e)).map(e=>T(e,this.fromSqliteBoolean))}querySamplesByFunction(e,t=50){return this.ensureOpen(),this.flush(),this.db.prepare(`
359
+ SELECT *
360
+ FROM samples
361
+ WHERE function_name = ?
362
+ ORDER BY self_time DESC, aggregate_time DESC, timestamp DESC
363
+ LIMIT ?
364
+ `).all(e,t).map(D)}getSamplesInWindow(e,t,n=50){return this.ensureOpen(),this.flush(),this.db.prepare(`
365
+ SELECT *
366
+ FROM samples
367
+ WHERE timestamp >= ? AND timestamp <= ?
368
+ ORDER BY self_time DESC, aggregate_time DESC, timestamp ASC
369
+ LIMIT ?
370
+ `).all(e-t,e+t,n).map(D)}getTopFunctions(e=20,t,n){this.ensureOpen(),this.flush();let r=typeof t==`number`&&typeof n==`number`,i=this.db.prepare(`
371
+ SELECT
372
+ function_name,
373
+ SUM(self_time) AS self_time,
374
+ SUM(aggregate_time) AS aggregate_time,
375
+ COUNT(*) AS sample_count,
376
+ script_id,
377
+ url,
378
+ line_number,
379
+ column_number
380
+ FROM samples
381
+ WHERE function_name IS NOT NULL
382
+ ${r?`AND timestamp >= ? AND timestamp <= ?`:``}
383
+ GROUP BY function_name
384
+ ORDER BY self_time DESC, aggregate_time DESC, function_name ASC
385
+ LIMIT ?
386
+ `);return(r?i.all(t,n,e):i.all(e)).map(O)}getConsoleLogsByTimeRange(e,t,n=`wall`,r=100){this.ensureOpen(),this.flush();let i=n===`monotonic`?`COALESCE(monotonic_time, timestamp)`:`timestamp`;return this.db.prepare(`
387
+ SELECT *
388
+ FROM console_logs
389
+ WHERE ${i} >= ? AND ${i} <= ?
390
+ ORDER BY ${i} ASC, id ASC
391
+ LIMIT ?
392
+ `).all(e,t,r).map(k)}getExceptionsByTimeRange(e,t,n=`wall`,r=100){this.ensureOpen(),this.flush();let i=n===`monotonic`?`COALESCE(monotonic_time, timestamp)`:`timestamp`;return this.db.prepare(`
393
+ SELECT *
394
+ FROM exceptions
395
+ WHERE ${i} >= ? AND ${i} <= ?
396
+ ORDER BY ${i} ASC, id ASC
397
+ LIMIT ?
398
+ `).all(e,t,r).map(A)}getMemoryDeltasByAddress(e){return this.ensureOpen(),this.flush(),this.db.prepare(`
399
+ SELECT id, timestamp, address, old_value, new_value, size, value_type
400
+ FROM memory_deltas
401
+ WHERE address = ?
402
+ ORDER BY timestamp ASC
403
+ `).all(e).map(e=>({id:e.id,timestamp:e.timestamp,address:e.address,oldValue:e.old_value,newValue:e.new_value,size:e.size,valueType:e.value_type}))}getHeapSnapshots(){return this.ensureOpen(),this.db.prepare(`
404
+ SELECT id, timestamp, snapshot_data, summary
405
+ FROM heap_snapshots
406
+ ORDER BY timestamp ASC
407
+ `).all().map(e=>({id:e.id,timestamp:e.timestamp,snapshotData:e.snapshot_data,summary:e.summary}))}getMetadata(){this.ensureOpen();let e=this.db.prepare(`SELECT key, value FROM metadata`).all(),t={};for(let n of e)t[n.key]=n.value;return t}close(){this.closed||=(this.flush(),this.db.close(),!0)}get isClosed(){return this.closed}fromSqliteBoolean(e){return e===1||e===!0}ensureOpen(){if(this.closed)throw Error(`TraceDB is closed`)}executeReadQuery(e,t){if(this.ensureOpen(),N.test(e))throw Error(`Write operations are not allowed in trace queries. Rejected SQL: ${e.slice(0,100)}`);let n=this.db.prepare(e),r=n.all(...t);if(r.length===0)return{columns:n.columns().map(e=>e.name),rows:[],rowCount:0};let i=Object.keys(r[0]);return{columns:i,rows:r.map(e=>i.map(t=>e[t])),rowCount:r.length}}};const F=64*1024;var I=class{db=null;state=`idle`;session=null;eventBusUnsub=null;cdpListeners=new Map;enabledCdpDomains=new Set;cdpSession=null;ownsCdpSession=!1;profilerActive=!1;profilerListeners=new Map;eventCount=0;memoryDeltaCount=0;heapSnapshotCount=0;eventSequence=0;pendingOperations=new Set;networkCapture=new x({getDb:()=>this.db,getCdpSession:()=>this.cdpSession,trackOperation:e=>this.trackOperation(e)});async start(e,n,r){if(this.state===`recording`)throw Error(`Recording already in progress`);let s=i(),{absolutePath:c}=await t({category:`traces`,toolName:`trace_recorder`,target:s.slice(0,8),ext:`db`}),l=n?(r?.cdpDomains??o).filter(e=>a[e]):[];this.db=new P({dbPath:c}),this.eventCount=0,this.memoryDeltaCount=0,this.heapSnapshotCount=0,this.eventSequence=0,this.pendingOperations.clear(),this.cdpListeners.clear(),this.profilerListeners.clear(),this.enabledCdpDomains.clear(),this.cdpSession=n,this.ownsCdpSession=r?.ownsSession??!1;try{let t=this.networkCapture.configure(r?.network);if(n){for(let e of l)await n.send(`${e}.enable`),this.enabledCdpDomains.add(e);await this.startProfilerCapture(n)}let i=Date.now();if(this.db.setMetadata(`sessionId`,s),this.db.setMetadata(`platform`,process.platform),this.db.setMetadata(`startedAt`,String(i)),this.db.setMetadata(`nodeVersion`,process.version),this.db.setMetadata(`network.recordResponseBodies`,String(t.recordResponseBodies)),this.db.setMetadata(`network.streamResponseChunks`,String(t.streamResponseChunks)),this.db.setMetadata(`network.maxBodyBytes`,String(t.maxBodyBytes)),this.db.setMetadata(`network.inlineBodyBytes`,String(t.inlineBodyBytes)),this.eventBusUnsub=e.onAny(e=>{if(this.state===`recording`)try{let t=Date.now();this.db?.insertEvent({timestamp:t,wallTime:t,monotonicTime:null,category:this.mapEventCategory(String(e.event)),eventType:String(e.event),data:JSON.stringify(e.payload??{}),scriptId:null,lineNumber:null,requestId:null,sequence:this.nextSequence()}),this.eventCount++}catch{}}),n)for(let e of l){let t=a[e]??[];for(let r of t){let t=t=>{if(!(this.state!==`recording`||!this.db))try{let n=m(t),i=h(t),{scriptId:a,lineNumber:o}=g(r,t),s=JSON.stringify(v(r,t));this.db.insertEvent({timestamp:n.timestamp,wallTime:n.wallTime,monotonicTime:n.monotonicTime,category:e.toLowerCase(),eventType:r,data:s,scriptId:a,lineNumber:o,requestId:i,sequence:this.nextSequence()}),this.eventCount++,e===`Runtime`&&this.recordStructuredRuntimeEvent(r,t,n,a,o),e===`Network`&&this.networkCapture.handleEvent(r,t,n)}catch{}};n.on(r,t),this.cdpListeners.set(r,t)}}return this.session={sessionId:s,dbPath:c,startedAt:i,eventCount:0,memoryDeltaCount:0,heapSnapshotCount:0,...this.networkCapture.getCounts()},this.state=`recording`,{...this.session}}catch(e){throw await this.cleanupFailedStart(),e}}recordMemoryDelta(e){if(!(this.state!==`recording`||!this.db))try{this.db.insertMemoryDelta(e),this.memoryDeltaCount++}catch{}}async captureActiveHeapSnapshot(){if(!this.cdpSession)throw Error(`Cannot capture heap snapshot: no active CDP session`);return await this.captureHeapSnapshot(this.cdpSession)}async captureHeapSnapshot(e){if(this.state!==`recording`||!this.db)throw Error(`Cannot capture heap snapshot: not recording`);let t=[],n=!1,r=e=>{if(typeof e==`object`&&e){let n=e.chunk;typeof n==`string`&&t.push(n)}};try{await e.send(`HeapProfiler.enable`),e.on(`HeapProfiler.addHeapSnapshotChunk`,r),n=!0,await e.send(`HeapProfiler.takeHeapSnapshot`,{reportProgress:!1});let i=t.join(``),a=Buffer.from(i,`utf-8`),o=this.extractHeapSummary(i);return this.db.insertHeapSnapshot({timestamp:Date.now(),snapshotData:a,summary:JSON.stringify(o)}),this.heapSnapshotCount++,a.byteLength}finally{n&&e.off(`HeapProfiler.addHeapSnapshotChunk`,r),await e.send(`HeapProfiler.disable`).catch(()=>{})}}async stop(){if(this.state!==`recording`)throw Error(`GRACEFUL: Cannot stop: not currently recording`);if(this.eventBusUnsub&&=(this.eventBusUnsub(),null),this.cdpSession){for(let[e,t]of this.cdpListeners)this.cdpSession.off(e,t);await this.stopProfilerCapture(this.cdpSession)}this.cdpListeners.clear(),this.profilerListeners.clear(),await this.waitForPendingOperations();let e;if(this.cdpSession){if(this.enabledCdpDomains.size>0){let t=Array.from(this.enabledCdpDomains);e=(await Promise.allSettled(t.map(e=>this.cdpSession.send(`${e}.disable`)))).flatMap((e,n)=>e.status===`rejected`?[`${t[n]}.disable failed: ${e.reason instanceof Error?e.reason.message:String(e.reason)}`]:[])}if(this.enabledCdpDomains.clear(),this.ownsCdpSession&&typeof this.cdpSession.detach==`function`)try{await this.cdpSession.detach()}catch(t){(e??=[]).push(`cdpSession.detach failed: ${t instanceof Error?t.message:String(t)}`)}this.cdpSession=null,this.ownsCdpSession=!1}if(this.db){let t=Date.now(),n=this.networkCapture.getCounts();this.db.setMetadata(`stoppedAt`,String(t)),this.db.setMetadata(`eventCount`,String(this.eventCount)),this.db.setMetadata(`memoryDeltaCount`,String(this.memoryDeltaCount)),this.db.setMetadata(`heapSnapshotCount`,String(this.heapSnapshotCount)),this.db.setMetadata(`networkRequestCount`,String(n.networkRequestCount)),this.db.setMetadata(`networkChunkCount`,String(n.networkChunkCount)),this.db.setMetadata(`networkBodyCount`,String(n.networkBodyCount)),this.db.close(),this.session&&(this.session.stoppedAt=t,this.session.eventCount=this.eventCount,this.session.memoryDeltaCount=this.memoryDeltaCount,this.session.heapSnapshotCount=this.heapSnapshotCount,this.session.networkRequestCount=n.networkRequestCount,this.session.networkChunkCount=n.networkChunkCount,this.session.networkBodyCount=n.networkBodyCount,e&&e.length>0?this.session.cleanupErrors=e:delete this.session.cleanupErrors)}this.state=`stopped`;let t=this.session?{...this.session}:this.createEmptySession();return this.db=null,this.networkCapture.clear(),t}getState(){return this.state}getSession(){return this.session?{...this.session}:null}getDB(){return this.db}trackOperation(e){this.pendingOperations.add(e),e.finally(()=>{this.pendingOperations.delete(e)})}async waitForPendingOperations(){for(;this.pendingOperations.size>0;)await Promise.allSettled(Array.from(this.pendingOperations))}async cleanupFailedStart(){if(this.eventBusUnsub&&=(this.eventBusUnsub(),null),this.cdpSession)for(let[e,t]of this.cdpListeners)this.cdpSession.off(e,t);if(this.cdpListeners.clear(),this.cdpSession&&this.enabledCdpDomains.size>0&&await Promise.allSettled(Array.from(this.enabledCdpDomains).map(e=>this.cdpSession.send(`${e}.disable`))),this.cdpSession&&await this.stopProfilerCapture(this.cdpSession),this.enabledCdpDomains.clear(),this.profilerListeners.clear(),this.cdpSession&&this.ownsCdpSession&&typeof this.cdpSession.detach==`function`&&await this.cdpSession.detach().catch(()=>{}),this.cdpSession=null,this.ownsCdpSession=!1,this.db){try{this.db.close()}catch{}this.db=null}this.session=null,this.state=`idle`,this.eventCount=0,this.memoryDeltaCount=0,this.heapSnapshotCount=0,this.eventSequence=0,this.pendingOperations.clear(),this.networkCapture.clear()}nextSequence(){return this.eventSequence+=1,this.eventSequence}recordStructuredRuntimeEvent(e,t,n,r,i){if(this.db){if(e===`Runtime.consoleAPICalled`){let e=this.createConsoleLog(t,n,r,i);e&&this.db.insertConsoleLog(e);return}if(e===`Runtime.exceptionThrown`){let e=this.createException(t,n,r,i);e&&this.db.insertException(e)}}}createConsoleLog(e,t,n,r){if(!l(e))return null;let i=Array.isArray(e.args)?e.args:[],a=this.limitStructuredRuntimeField(i.map(e=>this.remoteObjectToText(e)).filter(Boolean).join(` `)||u(e.type)||`console`),o=this.extractRuntimeLocation(e,n,r);return{timestamp:t.timestamp,wallTime:t.wallTime,monotonicTime:t.monotonicTime,level:u(e.type)??`log`,text:a,args:this.stringifyStructuredRuntimeField(i)??`[]`,stackTrace:this.stringifyStructuredRuntimeField(e.stackTrace),scriptId:o.scriptId,lineNumber:o.lineNumber,columnNumber:o.columnNumber,executionContextId:d(e.executionContextId)}}createException(e,t,n,r){if(!l(e))return null;let i=l(e.exceptionDetails)?e.exceptionDetails:e,a=l(i.exception)?i.exception:null,o=a?this.remoteObjectToText(a):null,s=this.limitStructuredRuntimeField(u(i.text)??o??`Runtime.exceptionThrown`),c=this.extractRuntimeLocation(i,n,r);return{timestamp:t.timestamp,wallTime:t.wallTime,monotonicTime:t.monotonicTime,text:s,exceptionId:d(i.exceptionId),url:u(i.url),scriptId:c.scriptId,lineNumber:c.lineNumber,columnNumber:c.columnNumber,description:o?this.limitStructuredRuntimeField(o):null,stackTrace:this.stringifyStructuredRuntimeField(i.stackTrace??e.stackTrace),executionContextId:d(i.executionContextId)}}extractRuntimeLocation(e,t,n){let r=d(e.lineNumber),i=d(e.columnNumber),a={scriptId:u(e.scriptId)??t,lineNumber:r??n,columnNumber:i},o=this.extractStackTraceLocation(e.stackTrace);return a={scriptId:a.scriptId??o.scriptId,lineNumber:a.lineNumber??o.lineNumber,columnNumber:a.columnNumber??o.columnNumber},a}extractStackTraceLocation(e){if(!l(e)||!Array.isArray(e.callFrames))return{scriptId:null,lineNumber:null,columnNumber:null};let t=e.callFrames[0];return l(t)?{scriptId:u(t.scriptId),lineNumber:d(t.lineNumber),columnNumber:d(t.columnNumber)}:{scriptId:null,lineNumber:null,columnNumber:null}}remoteObjectToText(e){if(!l(e))return e===void 0?``:String(e);if(`value`in e){let t=e.value;if(t===null)return`null`;if(t!==void 0){if(typeof t==`string`)return t;try{return JSON.stringify(t)??String(t)}catch{return String(t)}}}return u(e.unserializableValue)??u(e.description)??u(e.className)??u(e.type)??``}stringifyStructuredRuntimeField(e){if(e==null)return null;try{return this.limitStructuredRuntimeField(JSON.stringify(e))}catch{return this.limitStructuredRuntimeField(String(e))}}limitStructuredRuntimeField(e){return Buffer.byteLength(e,`utf8`)<=F?e:`${e.slice(0,F)}...[truncated]`}async startProfilerCapture(e){try{await e.send(`Profiler.enable`),await e.send(`Profiler.start`),this.profilerActive=!0;let t=e=>{if(this.state!==`recording`||!this.db)return;let t=this.extractProfile(e);t&&this.trackOperation(Promise.resolve().then(()=>{this.ingestCpuProfile(t)}))};for(let n of[`Profiler.consoleProfileFinished`,`Profiler.profileChunk`,`Profiler.cpuProfile`])e.on(n,t),this.profilerListeners.set(n,t)}catch{this.profilerActive=!1;for(let[t,n]of this.profilerListeners)e.off(t,n);this.profilerListeners.clear()}}async stopProfilerCapture(e){for(let[t,n]of this.profilerListeners)e.off(t,n);if(this.profilerListeners.clear(),this.profilerActive)try{let t=await e.send(`Profiler.stop`),n=this.extractProfile(t);n&&this.ingestCpuProfile(n)}catch{}finally{this.profilerActive=!1,await e.send(`Profiler.disable`).catch(()=>{})}}extractProfile(e){if(!e||typeof e!=`object`)return null;let t=e.profile??e;if(!t||typeof t!=`object`)return null;let n=t;return Array.isArray(n.nodes)?n:null}ingestCpuProfile(e){if(!this.db)return;let t=Array.isArray(e.nodes)?e.nodes:[];if(t.length===0)return;let n=new Map;for(let e of t)typeof e.id==`number`&&n.set(e.id,e);let r=new Map,i=Array.isArray(e.samples)?e.samples:[],a=Array.isArray(e.timeDeltas)?e.timeDeltas:[];if(i.length>0)for(let e=0;e<i.length;e++){let t=i[e];if(typeof t!=`number`||!n.has(t))continue;let o=(typeof a[e]==`number`&&Number.isFinite(a[e])?a[e]:0)/1e3,s=r.get(t)??{selfTime:0,aggregateTime:0};s.selfTime+=o,s.aggregateTime+=o,r.set(t,s)}else for(let e of t){if(typeof e.id!=`number`)continue;let t=typeof e.hitCount==`number`&&Number.isFinite(e.hitCount)?e.hitCount:0;t<=0||r.set(e.id,{selfTime:t,aggregateTime:t})}let o=Date.now();for(let[e,t]of r){let r=n.get(e);r&&this.db.insertSample(this.nodeToSample(r,t,o))}}nodeToSample(e,t,n){let r=e.callFrame??{};return{timestamp:n,selfTime:Number(t.selfTime.toFixed(3)),aggregateTime:Number(t.aggregateTime.toFixed(3)),functionName:r.functionName??null,scriptId:r.scriptId??null,url:r.url??null,lineNumber:r.lineNumber??null,columnNumber:r.columnNumber??null}}mapEventCategory(e){let t=e.indexOf(`:`);return t>0?e.substring(0,t):`other`}extractHeapSummary(e){try{let t=JSON.parse(e),n=t.snapshot;if(!n)return{totalSize:0,nodeCount:0,objectCounts:{},objectSizes:{}};let r=n.meta,i=n.node_count??0,a=r?.node_fields,o=r?.node_types,s=t.nodes,c={},l={},u=0;if(a&&s&&o){let e=a.length,n=a.indexOf(`type`),r=a.indexOf(`name`),i=a.indexOf(`self_size`),o=t.strings??[];for(let t=0;t<s.length;t+=e){let e=i>=0?s[t+i]??0:0;if(u+=e,r>=0){let i=o[s[t+r]??0]??`type_${s[t+(n>=0?n:0)]}`;i&&(c[i]=(c[i]??0)+1,l[i]=(l[i]??0)+e)}}}return{totalSize:u,nodeCount:i,objectCounts:c,objectSizes:l}}catch{return{totalSize:0,nodeCount:0,objectCounts:{},objectSizes:{}}}}createEmptySession(){return{sessionId:``,dbPath:``,startedAt:0,eventCount:0,memoryDeltaCount:0,heapSnapshotCount:0,networkRequestCount:0,networkChunkCount:0,networkBodyCount:0}}};export{I as TraceRecorder,E as n,P as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./rolldown-runtime-88NL7fhV.mjs";import{t}from"./logger-BGCcd-jJ.mjs";import*as n from"@babel/parser";import r from"@babel/traverse";import*as i from"@babel/types";var a=e({VMDeobfuscator:()=>o}),o=class{constructor(e){}detectVMProtection(e){let t=[/while\s*\(\s*true\s*\)\s*\{[\s\S]*?switch\s*\(/i,/var\s+\w+\s*=\s*\[\s*\d+(?:\s*,\s*\d+){10,}\s*\]/i,/\w+\[pc\+\+\]/i,/stack\.push|stack\.pop/i].filter(t=>t.test(e)).length;return t>=2?{detected:!0,type:t>=3?`custom-vm`:`simple-vm`,instructionCount:this.countVMInstructions(e)}:{detected:!1,type:`none`,instructionCount:0}}countVMInstructions(e){let t=e.match(/case\s+\d+:/g);return t?t.length:0}async deobfuscateVM(e,n){t.warn(`VM deobfuscation is experimental and may fail`);try{let n=this.analyzeVMStructure(e);n.hasInterpreter&&t.info(`Detected VM interpreter with ${n.instructionTypes.length} instruction types`);let r=this.extractVMComponents(e),i=this.simplifyVMCode(e,r);return{success:i!==e,code:i}}catch(n){return t.error(`VM deobfuscation failed`,n),{success:!1,code:e}}}analyzeVMStructure(e){let t={hasInterpreter:!1,instructionTypes:[],hasStack:!1,hasRegisters:!1};/while\s*\(\s*true\s*\)|for\s*\(\s*;\s*;\s*\)/.test(e)&&(t.hasInterpreter=!0);let n=e.match(/case\s+0x[0-9a-f]+:/gi);return n&&n.length>10&&(t.hasInterpreter=!0,t.instructionTypes=n.map(e=>e.replace(/case\s+/i,``).replace(/:/,``))),/\.push\(|\.pop\(/.test(e)&&(t.hasStack=!0),/r\d+\s*=|reg\[\d+\]/.test(e)&&(t.hasRegisters=!0),t}extractVMComponents(e){let a={};try{r(n.parse(e,{sourceType:`module`,plugins:[`jsx`,`typescript`]}),{VariableDeclarator(e){if(i.isArrayExpression(e.node.init)&&e.node.init.elements.length>50){let t=i.isIdentifier(e.node.id)?e.node.id.name:`unknown`,n=e.node.init.elements[0];i.isNumericLiteral(n)?a.instructionArray=t:i.isStringLiteral(n)&&(a.dataArray=t)}},FunctionDeclaration(e){let t=!1;r(e.node,{SwitchStatement(e){e.node.cases.length>10&&(t=!0)}},e.scope,e),t&&i.isIdentifier(e.node.id)&&(a.interpreterFunction=e.node.id.name)}})}catch(e){t.debug(`Failed to extract VM components:`,e)}return a}simplifyVMCode(e,n){try{let t=e;if(n.interpreterFunction){let e=RegExp(`function\\s+${n.interpreterFunction}\\s*\\([^)]*\\)\\s*\\{[^}]*\\}`,`g`);t=t.replace(e,`/* vm interpreter removed */`)}if(n.instructionArray){let e=RegExp(`var\\s+${n.instructionArray}\\s*=\\s*\\[[^\\]]*\\];`,`g`);t=t.replace(e,`/* vm instruction array removed */`)}return t}catch(n){return t.debug(`Failed to simplify VM code:`,n),e}}};export{a as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./rolldown-runtime-88NL7fhV.mjs";import{t}from"./logger-BGCcd-jJ.mjs";import{Pr as n}from"./constants-nvsLpSri.mjs";import{a as r,i,n as a,o,r as s,s as c}from"./syscall-DGZoYM_U.mjs";import l from"koffi";var u=e({CloseHandle:()=>T,CreateRemoteThread:()=>M,EnumProcessModules:()=>L,GetLastError:()=>F,GetModuleBaseName:()=>R,GetModuleFileNameEx:()=>z,GetModuleHandle:()=>N,GetModuleInformation:()=>B,GetProcAddress:()=>P,MEM:()=>f,NtQueryInformationProcess:()=>I,OpenProcess:()=>w,PAGE:()=>p,PROCESS_ACCESS:()=>d,ReadProcessMemory:()=>E,VirtualAllocEx:()=>A,VirtualFreeEx:()=>j,VirtualProtectEx:()=>k,VirtualQueryEx:()=>O,WriteProcessMemory:()=>D,getKernel32:()=>b,getNtdll:()=>x,isKoffiAvailable:()=>v,isWindows:()=>y,openProcessForMemory:()=>V});const d={TERMINATE:1,CREATE_THREAD:2,SET_SESSIONID:4,VM_OPERATION:8,VM_READ:16,VM_WRITE:32,DUP_HANDLE:64,CREATE_PROCESS:128,SET_QUOTA:256,SET_INFORMATION:512,QUERY_INFORMATION:1024,SUSPEND_RESUME:2048,QUERY_LIMITED_INFORMATION:4096,ALL_ACCESS:2035711},f={COMMIT:4096,RESERVE:8192,DECOMMIT:16384,RELEASE:32768,FREE:65536,PRIVATE:131072,MAPPED:262144,RESET:524288,TOP_DOWN:1048576,WRITE_WATCH:2097152,PHYSICAL:4194304,LARGE_PAGES:536870912},p={NOACCESS:1,READONLY:2,READWRITE:4,WRITECOPY:8,EXECUTE:16,EXECUTE_READ:32,EXECUTE_READWRITE:64,EXECUTE_WRITECOPY:128,GUARD:256,NOCACHE:512,WRITECOMBINE:1024};let m=null,h=null,g=null,_=null;function v(){if(_!==null)return _;try{return l.load(`kernel32.dll`).unload(),_=!0,!0}catch{return _=!1,!1}}function y(){return process.platform===`win32`}function b(){return m||(m=l.load(`kernel32.dll`),t.debug(`Loaded kernel32.dll via koffi`)),m}function x(){return h||(h=l.load(`ntdll.dll`),t.debug(`Loaded ntdll.dll via koffi`)),h}function S(){return g||(g=l.load(`psapi.dll`),t.debug(`Loaded psapi.dll via koffi`)),g}function C(e){return e==null?0n:typeof e==`bigint`?e:typeof e==`number`?BigInt(e):l.address(e)}function w(e,t,n){return C(b().func(`void * OpenProcess(uint32, int, uint32)`)(e,+!!t,n))}function T(e){return b().func(`int CloseHandle(void *)`)(e)!==0}function E(e,t,r){if(n)try{return o(e,t,r)}catch{}let i=b().func(`int ReadProcessMemory(void *, void *, _Out_ uint8_t *, size_t, _Out_ size_t *)`),a=Buffer.alloc(r),s=Buffer.alloc(8);if(i(e,t,a,BigInt(r),s)===0){let e=F();throw Error(`ReadProcessMemory failed. Error: 0x${e.toString(16)}`)}return a}function D(e,t,r){if(n)try{return c(e,t,r)}catch{}let i=b().func(`int WriteProcessMemory(void *, void *, uint8_t *, size_t, _Out_ size_t *)`),a=Buffer.alloc(8);if(i(e,t,r,BigInt(r.length),a)===0){let e=F();throw Error(`WriteProcessMemory failed. Error: 0x${e.toString(16)}`)}return Number(a.readBigUInt64LE())}function O(e,t){let n=b().func(`size_t VirtualQueryEx(void *, void *, _Out_ uint8_t *, size_t)`),r=Buffer.alloc(48),i=n(e,t,r,BigInt(48));return Number(i)===48?{success:!0,info:{BaseAddress:r.readBigUInt64LE(0),AllocationBase:r.readBigUInt64LE(8),AllocationProtect:r.readUInt32LE(16),RegionSize:r.readBigUInt64LE(24),State:r.readUInt32LE(32),Protect:r.readUInt32LE(36),Type:r.readUInt32LE(40)}}:{success:!1,info:{}}}function k(e,t,i,a){if(n)try{return{success:!0,oldProtect:r(e,t,i,a).oldProtect}}catch{}let o=b().func(`int VirtualProtectEx(void *, void *, size_t, uint32, _Out_ uint32 *)`),s=Buffer.alloc(4);return{success:o(e,t,BigInt(i),a,s)!==0,oldProtect:s.readUInt32LE(0)}}function A(e,t,r,i,o){if(n)try{return a(e,r,i,o)}catch{}return C(b().func(`void * VirtualAllocEx(void *, void *, size_t, uint32, uint32)`)(e,t,BigInt(r),i,o))}function j(e,t,r,i){if(n)try{return s(e,t,r,i),!0}catch{}return b().func(`int VirtualFreeEx(void *, void *, size_t, uint32)`)(e,t,BigInt(r),i)!==0}function M(e,t,n){let r=b().func(`void * CreateRemoteThread(void *, void *, size_t, void *, void *, uint32, _Out_ uint32 *)`),i=Buffer.alloc(4);return{handle:C(r(e,null,0n,t,n,0,i)),threadId:i.readUInt32LE(0)}}function N(e){return C(b().func(`void * GetModuleHandleA(char *)`)(e))}function P(e,t){return C(b().func(`void * GetProcAddress(void *, char *)`)(e,t))}function F(){return b().func(`uint32 GetLastError()`)()}function I(e,t){let n=x().func(`int32 NtQueryInformationProcess(void *, uint32, _Out_ void *, uint32, void *)`),r=Buffer.alloc(8);return{status:n(e,t,r,8,null),debugPort:Number(r.readBigUInt64LE())}}function L(e,t=1024){let n=S().func(`int EnumProcessModules(void *, _Out_ void *, uint32, _Out_ uint32 *)`),r=Buffer.alloc(t*8),i=Buffer.alloc(4),a=n(e,r,t*8,i),o=i.readUInt32LE(0),s=Math.floor(o/8),c=[];for(let e=0;e<s;e++)c.push(r.readBigUInt64LE(e*8));return{success:a!==0,modules:c,count:s}}function R(e,t,n=260){let r=S().func(`uint32 GetModuleBaseNameA(void *, void *, _Out_ char *, uint32)`),i=Buffer.alloc(n);r(e,t,i,n);let a=0;for(;a<n&&i[a]!==0;)a++;return i.toString(`utf8`,0,a)}function z(e,t,n=32768){let r=S().func(`uint32 GetModuleFileNameExA(void *, void *, _Out_ char *, uint32)`),i=Buffer.alloc(n),a=r(e,t,i,n);if(typeof a!=`number`||a<=0)return null;let o=0;for(;o<n&&i[o]!==0;)o++;return o>0?i.toString(`utf8`,0,o):null}function B(e,t){let n=S().func(`int GetModuleInformation(void *, void *, _Out_ uint8_t *, uint32)`),r=Buffer.alloc(24),i=n(e,t,r,24),a={lpBaseOfDll:r.readBigUInt64LE(0),SizeOfImage:r.readUInt32LE(8),EntryPoint:r.readBigUInt64LE(16)};return{success:i!==0,info:a}}function V(e,t=!1){let r=t?d.VM_READ|d.VM_WRITE|d.VM_OPERATION|d.QUERY_INFORMATION:d.VM_READ|d.QUERY_INFORMATION;if(n)try{return i(e,r,!1)}catch{}let a=w(r,!1,e);if(a===0n){let t=F();throw Error(`Failed to open process ${e}. Error: 0x${t.toString(16)}. Run as Administrator.`)}return a}export{y as C,v as S,O as _,z as a,b,P as c,p as d,d as f,k as g,j as h,R as i,f as l,A as m,L as n,N as o,E as p,F as r,B as s,T as t,w as u,u as v,V as w,x,D as y};
@@ -1 +1 @@
1
- import{t as e}from"./logger-sBC6IdRT.mjs";import{r as t,t as n}from"./Win32API-eUCF57l_.mjs";import r from"koffi";const i={TERMINATE:1,SUSPEND_RESUME:2,GET_CONTEXT:8,SET_CONTEXT:16,SET_INFORMATION:32,QUERY_INFORMATION:64,SET_THREAD_TOKEN:128,IMPERSONATE:256,DIRECT_IMPERSONATION:512,ALL_ACCESS:2032639},a={AMD64:1048576,CONTROL:1048577,INTEGER:1048578,SEGMENTS:1048580,FLOATING_POINT:1048584,DEBUG_REGISTERS:1048592,FULL:1048587,ALL:1048607},o={EXCEPTION_DEBUG_EVENT:1,CREATE_THREAD_DEBUG_EVENT:2,CREATE_PROCESS_DEBUG_EVENT:3,EXIT_THREAD_DEBUG_EVENT:4,EXIT_PROCESS_DEBUG_EVENT:5,LOAD_DLL_DEBUG_EVENT:6,UNLOAD_DLL_DEBUG_EVENT:7,OUTPUT_DEBUG_STRING_EVENT:8,RIP_EVENT:9},s={SINGLE_STEP:2147483652,BREAKPOINT:2147483651,ACCESS_VIOLATION:3221225477},c={CONTINUE:65538,EXCEPTION_NOT_HANDLED:2147549185,REPLY_LATER:1073807361},l={SNAPHEAPLIST:1,SNAPTHREAD:4,SNAPMODULE:8};function u(e){return{contextFlags:e.readUInt32LE(48),eflags:e.readUInt32LE(68),dr0:e.readBigUInt64LE(72),dr1:e.readBigUInt64LE(80),dr2:e.readBigUInt64LE(88),dr3:e.readBigUInt64LE(96),dr6:e.readBigUInt64LE(104),dr7:e.readBigUInt64LE(112),rax:e.readBigUInt64LE(120),rcx:e.readBigUInt64LE(128),rdx:e.readBigUInt64LE(136),rbx:e.readBigUInt64LE(144),rsp:e.readBigUInt64LE(152),rbp:e.readBigUInt64LE(160),rsi:e.readBigUInt64LE(168),rdi:e.readBigUInt64LE(176),r8:e.readBigUInt64LE(184),r9:e.readBigUInt64LE(192),r10:e.readBigUInt64LE(200),r11:e.readBigUInt64LE(208),r12:e.readBigUInt64LE(216),r13:e.readBigUInt64LE(224),r14:e.readBigUInt64LE(232),r15:e.readBigUInt64LE(240),rip:e.readBigUInt64LE(248)}}function d(e,t){t.contextFlags!==void 0&&e.writeUInt32LE(t.contextFlags,48),t.eflags!==void 0&&e.writeUInt32LE(t.eflags,68),t.dr0!==void 0&&e.writeBigUInt64LE(t.dr0,72),t.dr1!==void 0&&e.writeBigUInt64LE(t.dr1,80),t.dr2!==void 0&&e.writeBigUInt64LE(t.dr2,88),t.dr3!==void 0&&e.writeBigUInt64LE(t.dr3,96),t.dr6!==void 0&&e.writeBigUInt64LE(t.dr6,104),t.dr7!==void 0&&e.writeBigUInt64LE(t.dr7,112),t.rip!==void 0&&e.writeBigUInt64LE(t.rip,248)}let f=null;function p(){return f||(f=r.load(`kernel32.dll`),e.debug(`Loaded kernel32.dll for debug APIs`)),f}function m(e,t,n){return p().func(`void * OpenThread(uint32, int, uint32)`)(e,+!!t,n)}function h(e){let n=p().func(`uint32 SuspendThread(void *)`)(e);if(n===4294967295)throw Error(`SuspendThread failed. Error: 0x${t().toString(16)}`);return n}function g(e){let n=p().func(`uint32 ResumeThread(void *)`)(e);if(n===4294967295)throw Error(`ResumeThread failed. Error: 0x${t().toString(16)}`);return n}function _(e,n){let r=p().func(`int GetThreadContext(void *, _Inout_ uint8_t[1232])`),i=Buffer.alloc(1232);if(i.writeUInt32LE(n,48),r(e,i)===0)throw Error(`GetThreadContext failed. Error: 0x${t().toString(16)}`);return i}function v(e,n){if(p().func(`int SetThreadContext(void *, uint8_t[1232])`)(e,n)===0)throw Error(`SetThreadContext failed. Error: 0x${t().toString(16)}`)}function y(e){if(p().func(`int DebugActiveProcess(uint32)`)(e)===0)throw Error(`DebugActiveProcess failed for pid ${e}. Error: 0x${t().toString(16)}`)}function b(e){if(p().func(`int DebugActiveProcessStop(uint32)`)(e)===0)throw Error(`DebugActiveProcessStop failed. Error: 0x${t().toString(16)}`)}function x(e){p().func(`int DebugSetProcessKillOnExit(int)`)(+!!e)}function S(e){let t=p().func(`int WaitForDebugEvent(_Out_ uint8_t *, uint32)`),n=Buffer.alloc(176);if(t(n,e)===0)return null;let r={debugEventCode:n.readUInt32LE(0),processId:n.readUInt32LE(4),threadId:n.readUInt32LE(8)};return r.debugEventCode===o.EXCEPTION_DEBUG_EVENT&&(r.exceptionCode=n.readUInt32LE(16),r.exceptionAddress=n.readBigUInt64LE(32),r.firstChance=n.readUInt32LE(20)===0),r}function C(e,n,r){if(p().func(`int ContinueDebugEvent(uint32, uint32, uint32)`)(e,n,r)===0)throw Error(`ContinueDebugEvent failed. Error: 0x${t().toString(16)}`)}function w(e,t,n){p().func(`int FlushInstructionCache(void *, void *, size_t)`)(e,t,BigInt(n))}function T(e){let r=p().func(`void * CreateToolhelp32Snapshot(uint32, uint32)`),i=p().func(`int Thread32First(void *, _Inout_ uint8_t[28])`),a=p().func(`int Thread32Next(void *, _Inout_ uint8_t[28])`),o=r(l.SNAPTHREAD,0);if(o===0n||o===BigInt(`0xFFFFFFFFFFFFFFFF`))throw Error(`CreateToolhelp32Snapshot failed. Error: 0x${t().toString(16)}`);let s=[],c=Buffer.alloc(28);c.writeUInt32LE(28,0);try{if(i(o,c)!==0)do c.readUInt32LE(12)===e&&s.push(c.readUInt32LE(8)),c.writeUInt32LE(28,0);while(a(o,c)!==0);n(o)}catch(e){console.error(`[EnumerateProcessThreads] cleanup error:`,e)}return s}function E(e){let n=m(i.SUSPEND_RESUME|i.GET_CONTEXT|i.SET_CONTEXT|i.QUERY_INFORMATION,!1,e);if(n===0n)throw Error(`Failed to open thread ${e}. Error: 0x${t().toString(16)}`);return n}function D(e){let t=0n;for(let n of e){if(!n.enabled)continue;let{drIndex:e,access:r,size:i}=n;t|=1n<<BigInt(e*2);let a=0;switch(r){case`execute`:a=0;break;case`write`:a=1;break;case`readwrite`:case`read`:a=3;break}t|=BigInt(a)<<BigInt(16+e*4);let o=0;switch(i){case 1:o=0;break;case 2:o=1;break;case 4:o=3;break;case 8:o=2;break}t|=BigInt(o)<<BigInt(18+e*4)}return t}export{E as _,b as a,T as c,g as d,v as f,D as g,S as h,y as i,w as l,l as m,C as n,x as o,h as p,c as r,s,a as t,_ as u,u as v,d as y};
1
+ import{t as e}from"./logger-BGCcd-jJ.mjs";import{r as t,t as n}from"./Win32API-G7QPyckq.mjs";import r from"koffi";const i={TERMINATE:1,SUSPEND_RESUME:2,GET_CONTEXT:8,SET_CONTEXT:16,SET_INFORMATION:32,QUERY_INFORMATION:64,SET_THREAD_TOKEN:128,IMPERSONATE:256,DIRECT_IMPERSONATION:512,ALL_ACCESS:2032639},a={AMD64:1048576,CONTROL:1048577,INTEGER:1048578,SEGMENTS:1048580,FLOATING_POINT:1048584,DEBUG_REGISTERS:1048592,FULL:1048587,ALL:1048607},o={EXCEPTION_DEBUG_EVENT:1,CREATE_THREAD_DEBUG_EVENT:2,CREATE_PROCESS_DEBUG_EVENT:3,EXIT_THREAD_DEBUG_EVENT:4,EXIT_PROCESS_DEBUG_EVENT:5,LOAD_DLL_DEBUG_EVENT:6,UNLOAD_DLL_DEBUG_EVENT:7,OUTPUT_DEBUG_STRING_EVENT:8,RIP_EVENT:9},s={SINGLE_STEP:2147483652,BREAKPOINT:2147483651,ACCESS_VIOLATION:3221225477},c={CONTINUE:65538,EXCEPTION_NOT_HANDLED:2147549185,REPLY_LATER:1073807361},l={SNAPHEAPLIST:1,SNAPTHREAD:4,SNAPMODULE:8};function u(e){return{contextFlags:e.readUInt32LE(48),eflags:e.readUInt32LE(68),dr0:e.readBigUInt64LE(72),dr1:e.readBigUInt64LE(80),dr2:e.readBigUInt64LE(88),dr3:e.readBigUInt64LE(96),dr6:e.readBigUInt64LE(104),dr7:e.readBigUInt64LE(112),rax:e.readBigUInt64LE(120),rcx:e.readBigUInt64LE(128),rdx:e.readBigUInt64LE(136),rbx:e.readBigUInt64LE(144),rsp:e.readBigUInt64LE(152),rbp:e.readBigUInt64LE(160),rsi:e.readBigUInt64LE(168),rdi:e.readBigUInt64LE(176),r8:e.readBigUInt64LE(184),r9:e.readBigUInt64LE(192),r10:e.readBigUInt64LE(200),r11:e.readBigUInt64LE(208),r12:e.readBigUInt64LE(216),r13:e.readBigUInt64LE(224),r14:e.readBigUInt64LE(232),r15:e.readBigUInt64LE(240),rip:e.readBigUInt64LE(248)}}function d(e,t){t.contextFlags!==void 0&&e.writeUInt32LE(t.contextFlags,48),t.eflags!==void 0&&e.writeUInt32LE(t.eflags,68),t.dr0!==void 0&&e.writeBigUInt64LE(t.dr0,72),t.dr1!==void 0&&e.writeBigUInt64LE(t.dr1,80),t.dr2!==void 0&&e.writeBigUInt64LE(t.dr2,88),t.dr3!==void 0&&e.writeBigUInt64LE(t.dr3,96),t.dr6!==void 0&&e.writeBigUInt64LE(t.dr6,104),t.dr7!==void 0&&e.writeBigUInt64LE(t.dr7,112),t.rip!==void 0&&e.writeBigUInt64LE(t.rip,248)}let f=null;function p(){return f||(f=r.load(`kernel32.dll`),e.debug(`Loaded kernel32.dll for debug APIs`)),f}function m(e,t,n){return p().func(`void * OpenThread(uint32, int, uint32)`)(e,+!!t,n)}function h(e){let n=p().func(`uint32 SuspendThread(void *)`)(e);if(n===4294967295)throw Error(`SuspendThread failed. Error: 0x${t().toString(16)}`);return n}function g(e){let n=p().func(`uint32 ResumeThread(void *)`)(e);if(n===4294967295)throw Error(`ResumeThread failed. Error: 0x${t().toString(16)}`);return n}function _(e,n){let r=p().func(`int GetThreadContext(void *, _Inout_ uint8_t[1232])`),i=Buffer.alloc(1232);if(i.writeUInt32LE(n,48),r(e,i)===0)throw Error(`GetThreadContext failed. Error: 0x${t().toString(16)}`);return i}function v(e,n){if(p().func(`int SetThreadContext(void *, uint8_t[1232])`)(e,n)===0)throw Error(`SetThreadContext failed. Error: 0x${t().toString(16)}`)}function y(e){if(p().func(`int DebugActiveProcess(uint32)`)(e)===0)throw Error(`DebugActiveProcess failed for pid ${e}. Error: 0x${t().toString(16)}`)}function b(e){if(p().func(`int DebugActiveProcessStop(uint32)`)(e)===0)throw Error(`DebugActiveProcessStop failed. Error: 0x${t().toString(16)}`)}function x(e){p().func(`int DebugSetProcessKillOnExit(int)`)(+!!e)}function S(e){let t=p().func(`int WaitForDebugEvent(_Out_ uint8_t *, uint32)`),n=Buffer.alloc(176);if(t(n,e)===0)return null;let r={debugEventCode:n.readUInt32LE(0),processId:n.readUInt32LE(4),threadId:n.readUInt32LE(8)};return r.debugEventCode===o.EXCEPTION_DEBUG_EVENT&&(r.exceptionCode=n.readUInt32LE(16),r.exceptionAddress=n.readBigUInt64LE(32),r.firstChance=n.readUInt32LE(20)===0),r}function C(e,n,r){if(p().func(`int ContinueDebugEvent(uint32, uint32, uint32)`)(e,n,r)===0)throw Error(`ContinueDebugEvent failed. Error: 0x${t().toString(16)}`)}function w(e,t,n){p().func(`int FlushInstructionCache(void *, void *, size_t)`)(e,t,BigInt(n))}function T(e){let r=p().func(`void * CreateToolhelp32Snapshot(uint32, uint32)`),i=p().func(`int Thread32First(void *, _Out_ uint8_t[28])`),a=p().func(`int Thread32Next(void *, _Out_ uint8_t[28])`),o=r(l.SNAPTHREAD,0);if(o===0n||o===BigInt(`0xFFFFFFFFFFFFFFFF`))throw Error(`CreateToolhelp32Snapshot failed. Error: 0x${t().toString(16)}`);let s=[],c=Buffer.alloc(28);c.writeUInt32LE(28,0);try{if(i(o,c)!==0)do c.readUInt32LE(12)===e&&s.push(c.readUInt32LE(8)),c.writeUInt32LE(28,0);while(a(o,c)!==0);n(o)}catch(e){console.error(`[EnumerateProcessThreads] cleanup error:`,e)}return s}function E(e){let n=m(i.SUSPEND_RESUME|i.GET_CONTEXT|i.SET_CONTEXT|i.QUERY_INFORMATION,!1,e);if(n===0n)throw Error(`Failed to open thread ${e}. Error: 0x${t().toString(16)}`);return n}function D(e){let t=0n;for(let n of e){if(!n.enabled)continue;let{drIndex:e,access:r,size:i}=n;t|=1n<<BigInt(e*2);let a=0;switch(r){case`execute`:a=0;break;case`write`:a=1;break;case`readwrite`:case`read`:a=3;break}t|=BigInt(a)<<BigInt(16+e*4);let o=0;switch(i){case 1:o=0;break;case 2:o=1;break;case 4:o=3;break;case 8:o=2;break}t|=BigInt(o)<<BigInt(18+e*4)}return t}export{a as CONTEXT_FLAGS,C as ContinueDebugEvent,c as DBG,y as DebugActiveProcess,b as DebugActiveProcessStop,x as DebugSetProcessKillOnExit,s as EXCEPTION_CODE,T as EnumerateProcessThreads,w as FlushInstructionCache,_ as GetThreadContext,g as ResumeThread,v as SetThreadContext,h as SuspendThread,l as TH32CS,S as WaitForDebugEvent,D as encodeDR7,E as openThreadForDebug,u as parseContext,d as writeContext};
@@ -0,0 +1 @@
1
+ import{i as e}from"./parse-args-B6dwWc9k.mjs";import{n as t,r as n}from"./cdp-session-Dy4OwMOP.mjs";async function r(r,i){let a=e(r,`durationMs`,3e3),o=Math.min(3e4,Math.max(500,Number.isFinite(a)?a:3e3)),s=Math.min(500,Math.max(1,e(r,`topN`,50))),{session:c,owned:l}=await n(t(i));if(!c)return{success:!1,error:`No CDP session available — browser must be connected via browser_launch or browser_attach`,durationMs:0,trackedCount:0,returnedCount:0,totalLiveBytes:0,allocations:[],summary:`CDP session unavailable`};let u=Date.now(),d=[],f=c,p=e=>{typeof e?.lastSeenObjectId==`number`&&d.push(e.lastSeenObjectId)};try{await c.send(`HeapProfiler.enable`),typeof f.on==`function`&&f.on(`HeapProfiler.lastSeenObjectId`,p),await c.send(`HeapProfiler.startObjectTracking`,{trackAllocations:!0}),await new Promise(e=>setTimeout(e,o));let e=await c.send(`HeapProfiler.stopObjectTracking`),t=(Array.isArray(e?.entries)?e.entries:[]).map((e,t)=>({objectId:d[t]??t,sizeBytes:typeof e.bytes==`number`?e.bytes:0,functionName:`(unknown)`,scriptId:`?`,url:``,lineNumber:-1})),n=t.reduce((e,t)=>e+t.sizeBytes,0);t.sort((e,t)=>t.sizeBytes-e.sizeBytes);let r=t.slice(0,s);return{success:!0,durationMs:Date.now()-u,trackedCount:d.length,returnedCount:r.length,totalLiveBytes:n,allocations:r,summary:`${r.length} live objects (${n} bytes) survived the ${o}ms window`}}catch(e){return{success:!1,error:e instanceof Error?e.message:String(e),durationMs:Date.now()-u,trackedCount:0,returnedCount:0,totalLiveBytes:0,allocations:[],summary:`Allocation tracking failed`}}finally{typeof f.off==`function`&&f.off(`HeapProfiler.lastSeenObjectId`,p),await c.send(`HeapProfiler.stopObjectTracking`).catch(()=>void 0),l&&await c.detach().catch(()=>void 0)}}export{r as handleAllocationTrack};