browser-debugger-cli 0.0.1-alpha.0 → 0.1.0-alpha.1

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 (421) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +167 -52
  3. package/dist/__testfixtures__/cdpMessages.d.ts +43 -0
  4. package/dist/__testfixtures__/cdpMessages.d.ts.map +1 -0
  5. package/dist/__testfixtures__/cdpMessages.js +118 -0
  6. package/dist/__testfixtures__/cdpMessages.js.map +1 -0
  7. package/dist/__testfixtures__/connectionTargets.d.ts +21 -0
  8. package/dist/__testfixtures__/connectionTargets.d.ts.map +1 -0
  9. package/dist/__testfixtures__/connectionTargets.js +59 -0
  10. package/dist/__testfixtures__/connectionTargets.js.map +1 -0
  11. package/dist/__tests__/integration/session-files.integration.test.d.ts +2 -0
  12. package/dist/__tests__/integration/session-files.integration.test.d.ts.map +1 -0
  13. package/dist/__tests__/integration/session-files.integration.test.js +66 -0
  14. package/dist/__tests__/integration/session-files.integration.test.js.map +1 -0
  15. package/dist/__testutils__/FakeClock.d.ts +67 -0
  16. package/dist/__testutils__/FakeClock.d.ts.map +1 -0
  17. package/dist/__testutils__/FakeClock.js +132 -0
  18. package/dist/__testutils__/FakeClock.js.map +1 -0
  19. package/dist/__testutils__/FakeWebSocket.d.ts +106 -0
  20. package/dist/__testutils__/FakeWebSocket.d.ts.map +1 -0
  21. package/dist/__testutils__/FakeWebSocket.js +213 -0
  22. package/dist/__testutils__/FakeWebSocket.js.map +1 -0
  23. package/dist/__testutils__/assertions.d.ts +33 -0
  24. package/dist/__testutils__/assertions.d.ts.map +1 -0
  25. package/dist/__testutils__/assertions.js +57 -0
  26. package/dist/__testutils__/assertions.js.map +1 -0
  27. package/dist/__testutils__/index.d.ts +15 -0
  28. package/dist/__testutils__/index.d.ts.map +1 -0
  29. package/dist/__testutils__/index.js +15 -0
  30. package/dist/__testutils__/index.js.map +1 -0
  31. package/dist/__testutils__/testClock.d.ts +28 -0
  32. package/dist/__testutils__/testClock.d.ts.map +1 -0
  33. package/dist/__testutils__/testClock.js +81 -0
  34. package/dist/__testutils__/testClock.js.map +1 -0
  35. package/dist/__testutils__/testFixtures.d.ts +15 -0
  36. package/dist/__testutils__/testFixtures.d.ts.map +1 -0
  37. package/dist/__testutils__/testFixtures.js +23 -0
  38. package/dist/__testutils__/testFixtures.js.map +1 -0
  39. package/dist/__testutils__/testProcess.d.ts +46 -0
  40. package/dist/__testutils__/testProcess.d.ts.map +1 -0
  41. package/dist/__testutils__/testProcess.js +77 -0
  42. package/dist/__testutils__/testProcess.js.map +1 -0
  43. package/dist/cli/collectors/dom.d.ts +8 -0
  44. package/dist/cli/collectors/dom.d.ts.map +1 -0
  45. package/dist/cli/collectors/dom.js +361 -0
  46. package/dist/cli/collectors/dom.js.map +1 -0
  47. package/dist/cli/collectors/helpers/domCache.d.ts +40 -0
  48. package/dist/cli/collectors/helpers/domCache.d.ts.map +1 -0
  49. package/dist/cli/collectors/helpers/domCache.js +79 -0
  50. package/dist/cli/collectors/helpers/domCache.js.map +1 -0
  51. package/dist/cli/collectors/helpers/domQuery.d.ts +45 -0
  52. package/dist/cli/collectors/helpers/domQuery.d.ts.map +1 -0
  53. package/dist/cli/collectors/helpers/domQuery.js +100 -0
  54. package/dist/cli/collectors/helpers/domQuery.js.map +1 -0
  55. package/dist/cli/collectors/helpers/selectorParser.d.ts +20 -0
  56. package/dist/cli/collectors/helpers/selectorParser.d.ts.map +1 -0
  57. package/dist/cli/collectors/helpers/selectorParser.js +20 -0
  58. package/dist/cli/collectors/helpers/selectorParser.js.map +1 -0
  59. package/dist/cli/commands/__tests__/cdp.contract.test.d.ts +24 -0
  60. package/dist/cli/commands/__tests__/cdp.contract.test.d.ts.map +1 -0
  61. package/dist/cli/commands/__tests__/cdp.contract.test.js +467 -0
  62. package/dist/cli/commands/__tests__/cdp.contract.test.js.map +1 -0
  63. package/dist/cli/commands/__tests__/ipcTest.test.d.ts +2 -0
  64. package/dist/cli/commands/__tests__/ipcTest.test.d.ts.map +1 -0
  65. package/dist/cli/commands/__tests__/ipcTest.test.js +37 -0
  66. package/dist/cli/commands/__tests__/ipcTest.test.js.map +1 -0
  67. package/dist/cli/commands/cdp.d.ts +8 -0
  68. package/dist/cli/commands/cdp.d.ts.map +1 -0
  69. package/dist/cli/commands/cdp.js +45 -0
  70. package/dist/cli/commands/cdp.js.map +1 -0
  71. package/dist/cli/commands/cleanup.d.ts +8 -0
  72. package/dist/cli/commands/cleanup.d.ts.map +1 -0
  73. package/dist/cli/commands/cleanup.js +130 -0
  74. package/dist/cli/commands/cleanup.js.map +1 -0
  75. package/dist/cli/commands/console.d.ts +8 -0
  76. package/dist/cli/commands/console.d.ts.map +1 -0
  77. package/dist/cli/commands/console.js +97 -0
  78. package/dist/cli/commands/console.js.map +1 -0
  79. package/dist/cli/commands/details.d.ts +8 -0
  80. package/dist/cli/commands/details.d.ts.map +1 -0
  81. package/dist/cli/commands/details.js +68 -0
  82. package/dist/cli/commands/details.js.map +1 -0
  83. package/dist/cli/commands/dom/helpers/domCache.d.ts +36 -0
  84. package/dist/cli/commands/dom/helpers/domCache.d.ts.map +1 -0
  85. package/dist/cli/commands/dom/helpers/domCache.js +65 -0
  86. package/dist/cli/commands/dom/helpers/domCache.js.map +1 -0
  87. package/dist/cli/commands/dom/helpers/domQuery.d.ts +48 -0
  88. package/dist/cli/commands/dom/helpers/domQuery.d.ts.map +1 -0
  89. package/dist/cli/commands/dom/helpers/domQuery.js +104 -0
  90. package/dist/cli/commands/dom/helpers/domQuery.js.map +1 -0
  91. package/dist/cli/commands/dom/helpers/errorHandler.d.ts +45 -0
  92. package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +1 -0
  93. package/dist/cli/commands/dom/helpers/errorHandler.js +70 -0
  94. package/dist/cli/commands/dom/helpers/errorHandler.js.map +1 -0
  95. package/dist/cli/commands/dom/helpers/evalHelpers.d.ts +52 -0
  96. package/dist/cli/commands/dom/helpers/evalHelpers.d.ts.map +1 -0
  97. package/dist/cli/commands/dom/helpers/evalHelpers.js +75 -0
  98. package/dist/cli/commands/dom/helpers/evalHelpers.js.map +1 -0
  99. package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts +35 -0
  100. package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts.map +1 -0
  101. package/dist/cli/commands/dom/helpers/optionsBuilder.js +51 -0
  102. package/dist/cli/commands/dom/helpers/optionsBuilder.js.map +1 -0
  103. package/dist/cli/commands/dom/helpers/selectorParser.d.ts +20 -0
  104. package/dist/cli/commands/dom/helpers/selectorParser.d.ts.map +1 -0
  105. package/dist/cli/commands/dom/helpers/selectorParser.js +20 -0
  106. package/dist/cli/commands/dom/helpers/selectorParser.js.map +1 -0
  107. package/dist/cli/commands/dom/index.d.ts +8 -0
  108. package/dist/cli/commands/dom/index.d.ts.map +1 -0
  109. package/dist/cli/commands/dom/index.js +257 -0
  110. package/dist/cli/commands/dom/index.js.map +1 -0
  111. package/dist/cli/commands/ipcTest.d.ts +23 -0
  112. package/dist/cli/commands/ipcTest.d.ts.map +1 -0
  113. package/dist/cli/commands/ipcTest.js +181 -0
  114. package/dist/cli/commands/ipcTest.js.map +1 -0
  115. package/dist/cli/commands/network.d.ts +8 -0
  116. package/dist/cli/commands/network.d.ts.map +1 -0
  117. package/dist/cli/commands/network.js +40 -0
  118. package/dist/cli/commands/network.js.map +1 -0
  119. package/dist/cli/commands/peek.d.ts +8 -0
  120. package/dist/cli/commands/peek.d.ts.map +1 -0
  121. package/dist/cli/commands/peek.js +109 -0
  122. package/dist/cli/commands/peek.js.map +1 -0
  123. package/dist/cli/commands/query.d.ts +9 -0
  124. package/dist/cli/commands/query.d.ts.map +1 -0
  125. package/dist/cli/commands/query.js +127 -0
  126. package/dist/cli/commands/query.js.map +1 -0
  127. package/dist/cli/commands/start.d.ts +9 -0
  128. package/dist/cli/commands/start.d.ts.map +1 -0
  129. package/dist/cli/commands/start.js +78 -0
  130. package/dist/cli/commands/start.js.map +1 -0
  131. package/dist/cli/commands/status.d.ts +9 -0
  132. package/dist/cli/commands/status.d.ts.map +1 -0
  133. package/dist/cli/commands/status.js +84 -0
  134. package/dist/cli/commands/status.js.map +1 -0
  135. package/dist/cli/commands/stop.d.ts +8 -0
  136. package/dist/cli/commands/stop.d.ts.map +1 -0
  137. package/dist/cli/commands/stop.js +146 -0
  138. package/dist/cli/commands/stop.js.map +1 -0
  139. package/dist/cli/formatters/detailsFormatter.d.ts +10 -0
  140. package/dist/cli/formatters/detailsFormatter.d.ts.map +1 -0
  141. package/dist/cli/formatters/detailsFormatter.js +63 -0
  142. package/dist/cli/formatters/detailsFormatter.js.map +1 -0
  143. package/dist/cli/formatters/previewFormatter.d.ts +27 -0
  144. package/dist/cli/formatters/previewFormatter.d.ts.map +1 -0
  145. package/dist/cli/formatters/previewFormatter.js +160 -0
  146. package/dist/cli/formatters/previewFormatter.js.map +1 -0
  147. package/dist/cli/formatters/statusFormatter.d.ts +34 -0
  148. package/dist/cli/formatters/statusFormatter.d.ts.map +1 -0
  149. package/dist/cli/formatters/statusFormatter.js +108 -0
  150. package/dist/cli/formatters/statusFormatter.js.map +1 -0
  151. package/dist/cli/handlers/ChromeBootstrap.d.ts +24 -0
  152. package/dist/cli/handlers/ChromeBootstrap.d.ts.map +1 -0
  153. package/dist/cli/handlers/ChromeBootstrap.js +50 -0
  154. package/dist/cli/handlers/ChromeBootstrap.js.map +1 -0
  155. package/dist/cli/handlers/CommandRunner.d.ts +60 -0
  156. package/dist/cli/handlers/CommandRunner.d.ts.map +1 -0
  157. package/dist/cli/handlers/CommandRunner.js +81 -0
  158. package/dist/cli/handlers/CommandRunner.js.map +1 -0
  159. package/dist/cli/handlers/OutputBuilder.d.ts +60 -0
  160. package/dist/cli/handlers/OutputBuilder.d.ts.map +1 -0
  161. package/dist/cli/handlers/OutputBuilder.js +138 -0
  162. package/dist/cli/handlers/OutputBuilder.js.map +1 -0
  163. package/dist/cli/handlers/OutputWriter.d.ts +15 -0
  164. package/dist/cli/handlers/OutputWriter.d.ts.map +1 -0
  165. package/dist/cli/handlers/OutputWriter.js +34 -0
  166. package/dist/cli/handlers/OutputWriter.js.map +1 -0
  167. package/dist/cli/handlers/PreviewWriter.d.ts +52 -0
  168. package/dist/cli/handlers/PreviewWriter.d.ts.map +1 -0
  169. package/dist/cli/handlers/PreviewWriter.js +119 -0
  170. package/dist/cli/handlers/PreviewWriter.js.map +1 -0
  171. package/dist/cli/handlers/SessionLock.d.ts +16 -0
  172. package/dist/cli/handlers/SessionLock.d.ts.map +1 -0
  173. package/dist/cli/handlers/SessionLock.js +38 -0
  174. package/dist/cli/handlers/SessionLock.js.map +1 -0
  175. package/dist/cli/handlers/SessionLoop.d.ts +19 -0
  176. package/dist/cli/handlers/SessionLoop.d.ts.map +1 -0
  177. package/dist/cli/handlers/SessionLoop.js +47 -0
  178. package/dist/cli/handlers/SessionLoop.js.map +1 -0
  179. package/dist/cli/handlers/ShutdownController.d.ts +38 -0
  180. package/dist/cli/handlers/ShutdownController.d.ts.map +1 -0
  181. package/dist/cli/handlers/ShutdownController.js +83 -0
  182. package/dist/cli/handlers/ShutdownController.js.map +1 -0
  183. package/dist/cli/handlers/SignalHandler.d.ts +35 -0
  184. package/dist/cli/handlers/SignalHandler.d.ts.map +1 -0
  185. package/dist/cli/handlers/SignalHandler.js +81 -0
  186. package/dist/cli/handlers/SignalHandler.js.map +1 -0
  187. package/dist/cli/handlers/TargetSetup.d.ts +42 -0
  188. package/dist/cli/handlers/TargetSetup.d.ts.map +1 -0
  189. package/dist/cli/handlers/TargetSetup.js +87 -0
  190. package/dist/cli/handlers/TargetSetup.js.map +1 -0
  191. package/dist/cli/handlers/commonOptions.d.ts +54 -0
  192. package/dist/cli/handlers/commonOptions.d.ts.map +1 -0
  193. package/dist/cli/handlers/commonOptions.js +64 -0
  194. package/dist/cli/handlers/commonOptions.js.map +1 -0
  195. package/dist/cli/handlers/daemonSessionController.d.ts +23 -0
  196. package/dist/cli/handlers/daemonSessionController.d.ts.map +1 -0
  197. package/dist/cli/handlers/daemonSessionController.js +108 -0
  198. package/dist/cli/handlers/daemonSessionController.js.map +1 -0
  199. package/dist/cli/handlers/sessionController.d.ts +21 -0
  200. package/dist/cli/handlers/sessionController.d.ts.map +1 -0
  201. package/dist/cli/handlers/sessionController.js +55 -0
  202. package/dist/cli/handlers/sessionController.js.map +1 -0
  203. package/dist/cli/registry.d.ts +11 -0
  204. package/dist/cli/registry.d.ts.map +1 -0
  205. package/dist/cli/registry.js +46 -0
  206. package/dist/cli/registry.js.map +1 -0
  207. package/dist/collectors/__tests__/network.contract.test.d.ts +28 -0
  208. package/dist/collectors/__tests__/network.contract.test.d.ts.map +1 -0
  209. package/dist/collectors/__tests__/network.contract.test.js +525 -0
  210. package/dist/collectors/__tests__/network.contract.test.js.map +1 -0
  211. package/dist/collectors/console.d.ts +5 -3
  212. package/dist/collectors/console.d.ts.map +1 -1
  213. package/dist/collectors/console.js +48 -26
  214. package/dist/collectors/console.js.map +1 -1
  215. package/dist/collectors/dom.d.ts +2 -2
  216. package/dist/collectors/dom.d.ts.map +1 -1
  217. package/dist/collectors/dom.js +23 -12
  218. package/dist/collectors/dom.js.map +1 -1
  219. package/dist/collectors/network.d.ts +18 -4
  220. package/dist/collectors/network.d.ts.map +1 -1
  221. package/dist/collectors/network.js +111 -34
  222. package/dist/collectors/network.js.map +1 -1
  223. package/dist/connection/__tests__/cdp.contract.test.d.ts +16 -0
  224. package/dist/connection/__tests__/cdp.contract.test.d.ts.map +1 -0
  225. package/dist/connection/__tests__/cdp.contract.test.js +378 -0
  226. package/dist/connection/__tests__/cdp.contract.test.js.map +1 -0
  227. package/dist/connection/__tests__/finder.contract.test.d.ts +2 -0
  228. package/dist/connection/__tests__/finder.contract.test.d.ts.map +1 -0
  229. package/dist/connection/__tests__/finder.contract.test.js +239 -0
  230. package/dist/connection/__tests__/finder.contract.test.js.map +1 -0
  231. package/dist/connection/__tests__/tabs.contract.test.d.ts +2 -0
  232. package/dist/connection/__tests__/tabs.contract.test.d.ts.map +1 -0
  233. package/dist/connection/__tests__/tabs.contract.test.js +137 -0
  234. package/dist/connection/__tests__/tabs.contract.test.js.map +1 -0
  235. package/dist/connection/cdp.d.ts +165 -16
  236. package/dist/connection/cdp.d.ts.map +1 -1
  237. package/dist/connection/cdp.js +342 -122
  238. package/dist/connection/cdp.js.map +1 -1
  239. package/dist/connection/finder.d.ts +5 -4
  240. package/dist/connection/finder.d.ts.map +1 -1
  241. package/dist/connection/finder.js +10 -16
  242. package/dist/connection/finder.js.map +1 -1
  243. package/dist/connection/launcher.d.ts +18 -11
  244. package/dist/connection/launcher.d.ts.map +1 -1
  245. package/dist/connection/launcher.js +148 -82
  246. package/dist/connection/launcher.js.map +1 -1
  247. package/dist/connection/tabs.d.ts +47 -14
  248. package/dist/connection/tabs.d.ts.map +1 -1
  249. package/dist/connection/tabs.js +493 -132
  250. package/dist/connection/tabs.js.map +1 -1
  251. package/dist/constants.d.ts +209 -0
  252. package/dist/constants.d.ts.map +1 -0
  253. package/dist/constants.js +232 -0
  254. package/dist/constants.js.map +1 -0
  255. package/dist/daemon/__tests__/ipcServer.contract.test.d.ts +23 -0
  256. package/dist/daemon/__tests__/ipcServer.contract.test.d.ts.map +1 -0
  257. package/dist/daemon/__tests__/ipcServer.contract.test.js +401 -0
  258. package/dist/daemon/__tests__/ipcServer.contract.test.js.map +1 -0
  259. package/dist/daemon/__tests__/launcher.unit.test.d.ts +8 -0
  260. package/dist/daemon/__tests__/launcher.unit.test.d.ts.map +1 -0
  261. package/dist/daemon/__tests__/launcher.unit.test.js +20 -0
  262. package/dist/daemon/__tests__/launcher.unit.test.js.map +1 -0
  263. package/dist/daemon/ipcServer.d.ts +83 -0
  264. package/dist/daemon/ipcServer.d.ts.map +1 -0
  265. package/dist/daemon/ipcServer.js +670 -0
  266. package/dist/daemon/ipcServer.js.map +1 -0
  267. package/dist/daemon/launcher.d.ts +31 -0
  268. package/dist/daemon/launcher.d.ts.map +1 -0
  269. package/dist/daemon/launcher.js +137 -0
  270. package/dist/daemon/launcher.js.map +1 -0
  271. package/dist/daemon/startSession.d.ts +51 -0
  272. package/dist/daemon/startSession.d.ts.map +1 -0
  273. package/dist/daemon/startSession.js +149 -0
  274. package/dist/daemon/startSession.js.map +1 -0
  275. package/dist/daemon/worker.d.ts +18 -0
  276. package/dist/daemon/worker.d.ts.map +1 -0
  277. package/dist/daemon/worker.js +623 -0
  278. package/dist/daemon/worker.js.map +1 -0
  279. package/dist/daemon/workerIpc.d.ts +33 -0
  280. package/dist/daemon/workerIpc.d.ts.map +1 -0
  281. package/dist/daemon/workerIpc.js +8 -0
  282. package/dist/daemon/workerIpc.js.map +1 -0
  283. package/dist/daemon.d.ts +10 -0
  284. package/dist/daemon.d.ts.map +1 -0
  285. package/dist/daemon.js +32 -0
  286. package/dist/daemon.js.map +1 -0
  287. package/dist/index.js +41 -420
  288. package/dist/index.js.map +1 -1
  289. package/dist/ipc/__tests__/client.contract.test.d.ts +23 -0
  290. package/dist/ipc/__tests__/client.contract.test.d.ts.map +1 -0
  291. package/dist/ipc/__tests__/client.contract.test.js +466 -0
  292. package/dist/ipc/__tests__/client.contract.test.js.map +1 -0
  293. package/dist/ipc/client.d.ts +109 -0
  294. package/dist/ipc/client.d.ts.map +1 -0
  295. package/dist/ipc/client.js +220 -0
  296. package/dist/ipc/client.js.map +1 -0
  297. package/dist/ipc/commands.d.ts +208 -0
  298. package/dist/ipc/commands.d.ts.map +1 -0
  299. package/dist/ipc/commands.js +69 -0
  300. package/dist/ipc/commands.js.map +1 -0
  301. package/dist/ipc/responseValidator.d.ts +40 -0
  302. package/dist/ipc/responseValidator.d.ts.map +1 -0
  303. package/dist/ipc/responseValidator.js +28 -0
  304. package/dist/ipc/responseValidator.js.map +1 -0
  305. package/dist/ipc/types.d.ts +193 -0
  306. package/dist/ipc/types.d.ts.map +1 -0
  307. package/dist/ipc/types.js +21 -0
  308. package/dist/ipc/types.js.map +1 -0
  309. package/dist/session/BdgSession.d.ts +71 -4
  310. package/dist/session/BdgSession.d.ts.map +1 -1
  311. package/dist/session/BdgSession.js +173 -75
  312. package/dist/session/BdgSession.js.map +1 -1
  313. package/dist/session/chrome.d.ts +46 -0
  314. package/dist/session/chrome.d.ts.map +1 -0
  315. package/dist/session/chrome.js +92 -0
  316. package/dist/session/chrome.js.map +1 -0
  317. package/dist/session/cleanup.d.ts +45 -0
  318. package/dist/session/cleanup.d.ts.map +1 -0
  319. package/dist/session/cleanup.js +230 -0
  320. package/dist/session/cleanup.js.map +1 -0
  321. package/dist/session/index.d.ts +15 -0
  322. package/dist/session/index.d.ts.map +1 -0
  323. package/dist/session/index.js +23 -0
  324. package/dist/session/index.js.map +1 -0
  325. package/dist/session/lock.d.ts +57 -0
  326. package/dist/session/lock.d.ts.map +1 -0
  327. package/dist/session/lock.js +154 -0
  328. package/dist/session/lock.js.map +1 -0
  329. package/dist/session/metadata.d.ts +59 -0
  330. package/dist/session/metadata.d.ts.map +1 -0
  331. package/dist/session/metadata.js +71 -0
  332. package/dist/session/metadata.js.map +1 -0
  333. package/dist/session/output.d.ts +18 -0
  334. package/dist/session/output.d.ts.map +1 -0
  335. package/dist/session/output.js +24 -0
  336. package/dist/session/output.js.map +1 -0
  337. package/dist/session/paths.d.ts +73 -0
  338. package/dist/session/paths.d.ts.map +1 -0
  339. package/dist/session/paths.js +84 -0
  340. package/dist/session/paths.js.map +1 -0
  341. package/dist/session/pid.d.ts +40 -0
  342. package/dist/session/pid.d.ts.map +1 -0
  343. package/dist/session/pid.js +73 -0
  344. package/dist/session/pid.js.map +1 -0
  345. package/dist/session/process.d.ts +45 -0
  346. package/dist/session/process.d.ts.map +1 -0
  347. package/dist/session/process.js +88 -0
  348. package/dist/session/process.js.map +1 -0
  349. package/dist/types.d.ts +114 -38
  350. package/dist/types.d.ts.map +1 -1
  351. package/dist/utils/__tests__/filters.unit.test.d.ts +2 -0
  352. package/dist/utils/__tests__/filters.unit.test.d.ts.map +1 -0
  353. package/dist/utils/__tests__/filters.unit.test.js +239 -0
  354. package/dist/utils/__tests__/filters.unit.test.js.map +1 -0
  355. package/dist/utils/__tests__/session.contract.test.d.ts +2 -0
  356. package/dist/utils/__tests__/session.contract.test.d.ts.map +1 -0
  357. package/dist/utils/__tests__/session.contract.test.js +234 -0
  358. package/dist/utils/__tests__/session.contract.test.js.map +1 -0
  359. package/dist/utils/atomicFile.d.ts +38 -0
  360. package/dist/utils/atomicFile.d.ts.map +1 -0
  361. package/dist/utils/atomicFile.js +71 -0
  362. package/dist/utils/atomicFile.js.map +1 -0
  363. package/dist/utils/cdpHandlers.d.ts +31 -0
  364. package/dist/utils/cdpHandlers.d.ts.map +1 -0
  365. package/dist/utils/cdpHandlers.js +38 -0
  366. package/dist/utils/cdpHandlers.js.map +1 -0
  367. package/dist/utils/chromeDiagnostics.d.ts +28 -0
  368. package/dist/utils/chromeDiagnostics.d.ts.map +1 -0
  369. package/dist/utils/chromeDiagnostics.js +88 -0
  370. package/dist/utils/chromeDiagnostics.js.map +1 -0
  371. package/dist/utils/errors.d.ts +82 -0
  372. package/dist/utils/errors.d.ts.map +1 -0
  373. package/dist/utils/errors.js +88 -0
  374. package/dist/utils/errors.js.map +1 -0
  375. package/dist/utils/exitCodes.d.ts +32 -0
  376. package/dist/utils/exitCodes.d.ts.map +1 -0
  377. package/dist/utils/exitCodes.js +36 -0
  378. package/dist/utils/exitCodes.js.map +1 -0
  379. package/dist/utils/filters.d.ts +108 -0
  380. package/dist/utils/filters.d.ts.map +1 -0
  381. package/dist/utils/filters.js +304 -0
  382. package/dist/utils/filters.js.map +1 -0
  383. package/dist/utils/formatters/network.d.ts +23 -0
  384. package/dist/utils/formatters/network.d.ts.map +1 -0
  385. package/dist/utils/formatters/network.js +35 -0
  386. package/dist/utils/formatters/network.js.map +1 -0
  387. package/dist/utils/http.d.ts +34 -0
  388. package/dist/utils/http.d.ts.map +1 -0
  389. package/dist/utils/http.js +48 -0
  390. package/dist/utils/http.js.map +1 -0
  391. package/dist/utils/logger.d.ts +42 -0
  392. package/dist/utils/logger.d.ts.map +1 -0
  393. package/dist/utils/logger.js +43 -0
  394. package/dist/utils/logger.js.map +1 -0
  395. package/dist/utils/objects.d.ts +23 -0
  396. package/dist/utils/objects.d.ts.map +1 -0
  397. package/dist/utils/objects.js +25 -0
  398. package/dist/utils/objects.js.map +1 -0
  399. package/dist/utils/url/safeParseUrl.d.ts +63 -0
  400. package/dist/utils/url/safeParseUrl.d.ts.map +1 -0
  401. package/dist/utils/url/safeParseUrl.js +84 -0
  402. package/dist/utils/url/safeParseUrl.js.map +1 -0
  403. package/dist/utils/url.d.ts +63 -1
  404. package/dist/utils/url.d.ts.map +1 -1
  405. package/dist/utils/url.js +152 -2
  406. package/dist/utils/url.js.map +1 -1
  407. package/dist/utils/validation.d.ts +1 -1
  408. package/dist/utils/validation.d.ts.map +1 -1
  409. package/dist/utils/version.d.ts +3 -0
  410. package/dist/utils/version.d.ts.map +1 -0
  411. package/dist/utils/version.js +27 -0
  412. package/dist/utils/version.js.map +1 -0
  413. package/package.json +57 -10
  414. package/dist/utils/pageLoad.d.ts +0 -21
  415. package/dist/utils/pageLoad.d.ts.map +0 -1
  416. package/dist/utils/pageLoad.js +0 -85
  417. package/dist/utils/pageLoad.js.map +0 -1
  418. package/dist/utils/session.d.ts +0 -104
  419. package/dist/utils/session.d.ts.map +0 -1
  420. package/dist/utils/session.js +0 -244
  421. package/dist/utils/session.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finder.contract.test.js","sourceRoot":"","sources":["../../../src/connection/__tests__/finder.contract.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tabs.contract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.contract.test.d.ts","sourceRoot":"","sources":["../../../src/connection/__tests__/tabs.contract.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,137 @@
1
+ import assert from 'node:assert/strict';
2
+ import { describe, it, beforeEach, afterEach } from 'node:test';
3
+ import { createMockTarget, mockCDPCreateTargetResponse, mockHTTPCreateResponse, } from '../../__testfixtures__/connectionTargets.js';
4
+ import { createNewTab } from '../tabs.js';
5
+ // Mock fetch globally for HTTP endpoints
6
+ let originalFetch;
7
+ let fetchMockResponses;
8
+ let fetchCallCount;
9
+ function setupFetchMock() {
10
+ originalFetch = global.fetch;
11
+ fetchMockResponses = [];
12
+ fetchCallCount = 0;
13
+ global.fetch = (() => {
14
+ const responseIndex = fetchCallCount++;
15
+ const response = fetchMockResponses[responseIndex];
16
+ if (response) {
17
+ return response;
18
+ }
19
+ return Promise.reject(new Error(`Unexpected fetch call ${responseIndex + 1}`));
20
+ });
21
+ }
22
+ function mockFetchResponse(response) {
23
+ fetchMockResponses.push(response);
24
+ }
25
+ function createSuccessResponse(data) {
26
+ return {
27
+ ok: true,
28
+ status: 200,
29
+ json: () => Promise.resolve(data),
30
+ };
31
+ }
32
+ function createFailureResponse(status, statusText) {
33
+ return {
34
+ ok: false,
35
+ status,
36
+ statusText,
37
+ };
38
+ }
39
+ function createMockCDP(overrides = {}) {
40
+ return {
41
+ send: () => Promise.resolve(mockCDPCreateTargetResponse),
42
+ getPort: () => 9222,
43
+ isConnected: () => true,
44
+ ...overrides,
45
+ };
46
+ }
47
+ void describe('Tab Creation Contract', () => {
48
+ let mockCDP;
49
+ beforeEach(() => {
50
+ setupFetchMock();
51
+ mockCDP = createMockCDP();
52
+ });
53
+ afterEach(() => {
54
+ global.fetch = originalFetch;
55
+ });
56
+ void describe('createNewTab - Happy Path', () => {
57
+ void it('creates tab via CDP strategy and returns target', async () => {
58
+ // Arrange: Mock successful CDP creation and verification
59
+ const expectedTarget = createMockTarget({
60
+ id: mockCDPCreateTargetResponse.targetId,
61
+ url: 'http://localhost:3000/test',
62
+ });
63
+ // Mock verification endpoint returning the target immediately
64
+ mockFetchResponse(createSuccessResponse([expectedTarget]));
65
+ // Act
66
+ const result = await createNewTab('http://localhost:3000/test', mockCDP);
67
+ // Assert: Returns the created target
68
+ assert.equal(result.id, mockCDPCreateTargetResponse.targetId);
69
+ assert.equal(result.url, 'http://localhost:3000/test');
70
+ });
71
+ void it('handles URLs without protocol', async () => {
72
+ // Arrange: Mock successful CDP creation
73
+ let capturedUrl = '';
74
+ mockCDP.send = (...args) => {
75
+ const params = args[1];
76
+ const typedParams = params;
77
+ capturedUrl = typedParams?.url ?? '';
78
+ return Promise.resolve(mockCDPCreateTargetResponse);
79
+ };
80
+ const expectedTarget = createMockTarget({
81
+ id: mockCDPCreateTargetResponse.targetId,
82
+ url: 'http://localhost:3000', // Normalized with protocol
83
+ });
84
+ mockFetchResponse(createSuccessResponse([expectedTarget]));
85
+ // Act: Pass URL without protocol
86
+ const result = await createNewTab('localhost:3000', mockCDP);
87
+ // Assert: Works correctly with normalized URL
88
+ assert.equal(result.id, mockCDPCreateTargetResponse.targetId);
89
+ // Verify CDP was called with normalized URL (normalizeUrl should add http://)
90
+ assert.ok(capturedUrl.includes('localhost:3000'));
91
+ });
92
+ });
93
+ void describe('createNewTab - Error Handling', () => {
94
+ void it('falls back to HTTP when CDP fails', async () => {
95
+ // Arrange: CDP creation fails
96
+ mockCDP.send = () => Promise.reject(new Error('CDP connection lost'));
97
+ // Mock HTTP creation to succeed
98
+ mockFetchResponse(createSuccessResponse(mockHTTPCreateResponse));
99
+ // Act
100
+ const result = await createNewTab('http://localhost:3000/test', mockCDP);
101
+ // Assert: Falls back to HTTP and succeeds
102
+ assert.equal(result.id, mockHTTPCreateResponse.id);
103
+ assert.equal(result.url, mockHTTPCreateResponse.url);
104
+ });
105
+ void it('handles malformed CDP responses gracefully', async () => {
106
+ // Arrange: CDP returns malformed response (missing targetId)
107
+ mockCDP.send = () => Promise.reject(new Error('Malformed response'));
108
+ // Mock HTTP creation to succeed (fallback)
109
+ mockFetchResponse(createSuccessResponse(mockHTTPCreateResponse));
110
+ // Act
111
+ const result = await createNewTab('http://localhost:3000/test', mockCDP);
112
+ // Assert: Falls back to HTTP
113
+ assert.equal(result.id, mockHTTPCreateResponse.id);
114
+ });
115
+ void it('throws meaningful error when all strategies fail', async () => {
116
+ // Arrange: CDP creation fails
117
+ mockCDP.send = () => Promise.reject(new Error('CDP failed'));
118
+ // Mock HTTP creation to also fail
119
+ mockFetchResponse(createFailureResponse(500, 'Internal Server Error'));
120
+ // Act & Assert: Should throw after both strategies fail
121
+ await assert.rejects(() => createNewTab('http://localhost:3000/test', mockCDP), /Failed to create new tab/);
122
+ });
123
+ });
124
+ });
125
+ // NOTE: createOrFindTarget tests removed due to complex mocking requirements
126
+ // This function combines target discovery with creation, making it difficult to test
127
+ // in isolation without extensive mocking of the verification process.
128
+ //
129
+ // Coverage is provided indirectly through:
130
+ // 1. Individual createNewTab tests (creation logic)
131
+ // 2. Target validation tests in finder.contract.test.ts (discovery logic)
132
+ // 3. Integration tests that exercise the full workflow
133
+ //
134
+ // This follows our testing philosophy of testing complex logic (createNewTab, validateTarget)
135
+ // while avoiding testing of simple orchestration functions that primarily combine
136
+ // other tested behaviors.
137
+ //# sourceMappingURL=tabs.contract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.contract.test.js","sourceRoot":"","sources":["../../../src/connection/__tests__/tabs.contract.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { ConnectionOptions } from '../types.js';
1
+ import WebSocket from 'ws';
2
+ import type { ConnectionOptions } from '../types.js';
2
3
  /**
3
4
  * Chrome DevTools Protocol WebSocket connection manager.
4
5
  *
@@ -8,6 +9,16 @@ import { ConnectionOptions } from '../types.js';
8
9
  * - Connection lifecycle (connect, reconnect, keepalive)
9
10
  * - Graceful error handling and cleanup
10
11
  */
12
+ /**
13
+ * Factory function for creating WebSocket instances.
14
+ *
15
+ * Allows dependency injection for testing by providing mock WebSocket
16
+ * implementations while using real WebSocket in production.
17
+ *
18
+ * @param url - WebSocket URL to connect to
19
+ * @returns WebSocket instance
20
+ */
21
+ type WebSocketFactory = (url: string) => WebSocket;
11
22
  export declare class CDPConnection {
12
23
  private ws;
13
24
  private messageId;
@@ -17,58 +28,192 @@ export declare class CDPConnection {
17
28
  private pingInterval;
18
29
  private pongTimeout;
19
30
  private missedPongs;
20
- private readonly MAX_MISSED_PONGS;
21
31
  private wsUrl;
22
32
  private autoReconnect;
23
33
  private reconnectAttempts;
24
- private readonly MAX_RECONNECT_ATTEMPTS;
25
34
  private isIntentionallyClosed;
26
35
  private onReconnect?;
36
+ private onDisconnect?;
37
+ private connectionOptions;
38
+ private readonly createWebSocket;
39
+ constructor(createWebSocket?: WebSocketFactory);
27
40
  /**
28
41
  * Connect to Chrome via WebSocket.
29
42
  *
43
+ * We retry with exponential backoff because Chrome startup can be slow and
44
+ * network conditions may cause temporary failures. Auto-reconnect defaults
45
+ * to false for CLI tools where connection loss should fail fast rather than
46
+ * continue indefinitely.
47
+ *
30
48
  * @param wsUrl - WebSocket debugger URL from CDP target
31
49
  * @param options - Connection configuration options
32
50
  * @throws Error if connection fails after all retries
33
51
  */
34
52
  connect(wsUrl: string, options?: ConnectionOptions): Promise<void>;
53
+ /**
54
+ * Attempt a single WebSocket connection with timeout.
55
+ *
56
+ * We use a connection timeout because WebSocket connections can hang
57
+ * indefinitely without it, especially in network failure scenarios.
58
+ *
59
+ * @param wsUrl - WebSocket URL to connect to
60
+ * @param options - Connection configuration options
61
+ * @returns Promise that resolves when connection is established
62
+ * @throws CDPTimeoutError if connection times out
63
+ * @throws Error if WebSocket connection fails
64
+ */
35
65
  private attemptConnection;
66
+ /**
67
+ * Configure WebSocket event handlers for connection lifecycle.
68
+ *
69
+ * We handle close events asynchronously to prevent blocking the WebSocket
70
+ * event loop during cleanup and reconnection attempts.
71
+ *
72
+ * @param resolve - Promise resolve function for successful connection
73
+ * @param reject - Promise reject function for connection failure
74
+ * @param connectTimeout - Timeout handle to clear on success/failure
75
+ * @param options - Connection options for keepalive configuration
76
+ */
77
+ private setupWebSocketHandlers;
78
+ /**
79
+ * Parse and route incoming CDP messages.
80
+ *
81
+ * We handle both responses (with ID) and events (with method) in the same
82
+ * message stream. Error handling is liberal to prevent one bad message
83
+ * from breaking the entire connection. Uses separate error handling for
84
+ * conversion, parsing, and routing stages for better debugging.
85
+ *
86
+ * @param incomingData - Raw WebSocket message data to parse
87
+ */
88
+ private parseIncomingMessage;
89
+ /**
90
+ * Convert WebSocket raw data to string using appropriate method.
91
+ *
92
+ * Handles all WebSocket data types with a clean conversion strategy.
93
+ * Uses a lookup approach for better maintainability and performance.
94
+ *
95
+ * @param data - Raw WebSocket data to convert
96
+ * @returns Converted string message
97
+ * @throws Error if data type is unsupported
98
+ */
99
+ private convertRawDataToString;
100
+ /**
101
+ * Parse JSON string into CDP message object.
102
+ *
103
+ * Validates basic message structure to ensure we have a valid CDP message
104
+ * before attempting to route it.
105
+ *
106
+ * @param messageText - JSON string to parse
107
+ * @returns Parsed CDP message object
108
+ * @throws Error if JSON is invalid or message structure is malformed
109
+ */
110
+ private parseJSONMessage;
111
+ /**
112
+ * Route CDP message to appropriate handler based on message type.
113
+ *
114
+ * CDP messages are either responses (have ID) or events (have method).
115
+ * Some messages may have both, which is valid and should be handled.
116
+ *
117
+ * @param message - Parsed CDP message to route
118
+ * @throws Error if routing fails
119
+ */
120
+ private routeCDPMessage;
121
+ /**
122
+ * Handle CDP command responses by resolving pending promises.
123
+ *
124
+ * @param message - CDP message containing response data
125
+ */
126
+ private handleCDPResponse;
127
+ /**
128
+ * Handle CDP events by notifying registered handlers.
129
+ *
130
+ * @param message - CDP message containing event data
131
+ */
132
+ private handleCDPEvent;
133
+ /**
134
+ * Calculate exponential backoff delay with maximum cap.
135
+ *
136
+ * We use exponential backoff to avoid thundering herd problems when many
137
+ * clients reconnect simultaneously. The maximum cap prevents extremely
138
+ * long delays that would make the tool unusable.
139
+ *
140
+ * @param attempt - Current attempt number (0-based)
141
+ * @param maxDelay - Maximum delay in milliseconds
142
+ * @returns Calculated delay in milliseconds (base delay * 2^attempt, capped at maxDelay)
143
+ */
144
+ private calculateBackoffDelay;
145
+ /**
146
+ * Clear all pending command promises with the given error.
147
+ *
148
+ * We reject pending messages rather than letting them hang indefinitely
149
+ * because callers need to know that their commands failed due to connection
150
+ * loss so they can handle the error appropriately.
151
+ *
152
+ * @param error - Error to reject all pending promises with
153
+ */
154
+ private clearPendingMessages;
155
+ /**
156
+ * Attempt to reconnect to the WebSocket after connection loss.
157
+ *
158
+ * Uses exponential backoff with longer delays than initial connection
159
+ * attempts because reconnection typically indicates more serious issues.
160
+ * Calls the onReconnect callback after successful reconnection to allow
161
+ * callers to re-enable CDP domains or reinitialize state.
162
+ *
163
+ * @throws Never throws - errors are logged but not propagated to avoid
164
+ * breaking reconnection loops
165
+ */
36
166
  private attemptReconnection;
167
+ /**
168
+ * Start keepalive ping/pong mechanism.
169
+ *
170
+ * We use 3 missed pongs as the threshold because network conditions can
171
+ * cause occasional packet loss, but 3 consecutive failures likely indicates
172
+ * a dead connection that should be terminated rather than waiting longer.
173
+ */
37
174
  private startKeepalive;
38
175
  private stopKeepalive;
39
176
  /**
40
177
  * Get the CDP port from the WebSocket URL.
41
178
  *
179
+ * Used by other modules that need to make HTTP requests to the same
180
+ * Chrome instance (e.g., fetching target list via /json/list endpoint).
181
+ *
42
182
  * @returns CDP port number
43
- * @throws Error if not connected or URL is invalid
183
+ * @throws CDPConnectionError if not connected or URL is invalid
44
184
  */
45
185
  getPort(): number;
46
186
  /**
47
187
  * Send a CDP command and wait for the response.
48
188
  *
189
+ * Return type is unknown because CDP response structures vary dramatically
190
+ * by method (DOM.getDocument vs Page.navigate vs Runtime.evaluate all return
191
+ * completely different object shapes). Callers must type-assert based on
192
+ * the specific method being called. 30-second timeout balances responsiveness
193
+ * with allowing time for heavy operations like DOM traversal.
194
+ *
49
195
  * @param method - CDP method name (e.g., 'Page.navigate', 'DOM.getDocument')
50
196
  * @param params - Method parameters
51
197
  * @param sessionId - Optional session ID for commands sent to specific targets
198
+ * (used when controlling specific frames or workers)
52
199
  * @returns Promise resolving to the command result
53
- * @throws Error if not connected or command times out (30s)
54
- *
55
- * @remarks
56
- * Return type is `any` because CDP response structures vary by method.
57
- * Callers should type-assert the result based on the specific method called.
200
+ * @throws CDPConnectionError if not connected to browser
201
+ * @throws CDPTimeoutError if command times out (30s)
58
202
  */
59
- send(method: string, params?: Record<string, any>, sessionId?: string): Promise<any>;
203
+ send(method: string, params?: Record<string, unknown>, sessionId?: string): Promise<unknown>;
60
204
  /**
61
205
  * Register an event handler for CDP events.
62
206
  *
207
+ * Type casting is safe because we store handlers as (params: unknown) \> void
208
+ * and always invoke them with unknown parameters. The generic T is only for
209
+ * caller convenience and type checking at the call site.
210
+ *
63
211
  * @param event - CDP event name (e.g., 'Network.requestWillBeSent')
64
212
  * @param handler - Callback function to handle the event
65
213
  * @returns Handler ID for later removal with off()
66
- *
67
- * @remarks
68
- * Handler parameter type is `any` for flexibility. Callers should use typed
69
- * event parameter interfaces (e.g., `CDPNetworkRequestParams`) at call site.
214
+ * @typeParam T - Type of event parameters for type safety at call site
70
215
  */
71
- on(event: string, handler: (params: any) => void): number;
216
+ on<T = unknown>(event: string, handler: (params: T) => void): number;
72
217
  /**
73
218
  * Remove a specific event handler.
74
219
  *
@@ -85,6 +230,9 @@ export declare class CDPConnection {
85
230
  /**
86
231
  * Close the WebSocket connection and clean up resources.
87
232
  *
233
+ * Performs complete cleanup including stopping keepalive, rejecting pending
234
+ * messages, closing WebSocket, and removing all event handlers.
235
+ *
88
236
  * @param code - WebSocket close code (default: 1000 for normal closure)
89
237
  * @param reason - Human-readable close reason
90
238
  */
@@ -92,8 +240,9 @@ export declare class CDPConnection {
92
240
  /**
93
241
  * Check if the WebSocket connection is open and ready.
94
242
  *
95
- * @returns True if connected and ready to send/receive
243
+ * @returns True if connected and ready to send/receive messages
96
244
  */
97
245
  isConnected(): boolean;
98
246
  }
247
+ export {};
99
248
  //# sourceMappingURL=cdp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/connection/cdp.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAIlB;IACL,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAyD;IAG9E,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAK;IAGtC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAK;IAC5C,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,WAAW,CAAC,CAAsB;IAE1C;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B5E,OAAO,CAAC,iBAAiB;YAoFX,mBAAmB;IAqBjC,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,aAAa;IAWrB;;;;;OAKG;IACH,OAAO,IAAI,MAAM;IAajB;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAsC9F;;;;;;;;;;OAUG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM;IASzD;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAU3C;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQxC;;;;;OAKG;IACH,KAAK,CAAC,IAAI,SAAO,EAAE,MAAM,SAAmB,GAAG,IAAI;IAoBnD;;;;OAIG;IACH,WAAW,IAAI,OAAO;CAGvB"}
1
+ {"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/connection/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAiB3B,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAoC7D;;;;;;;;GAQG;AAEH;;;;;;;;GAQG;AACH,KAAK,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;AAEnD,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAOnB;IACJ,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAA6D;IAElF,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,WAAW,CAAC,CAAoC;IACxD,OAAO,CAAC,YAAY,CAAC,CAAuE;IAC5F,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;gBAEvC,eAAe,GAAE,gBAAsD;IAInF;;;;;;;;;;;OAWG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5E;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,sBAAsB;IA2D9B;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAStB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;;;;;OAUG;YACW,mBAAmB;IAuBjC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,aAAa;IAWrB;;;;;;;;OAQG;IACH,OAAO,IAAI,MAAM;IAajB;;;;;;;;;;;;;;;;OAgBG;IACG,IAAI,CACR,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC;IAoCnB;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM;IAWpE;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAU3C;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQxC;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,SAA2B,EAAE,MAAM,SAAwB,GAAG,IAAI;IAe5E;;;;OAIG;IACH,WAAW,IAAI,OAAO;CAGvB"}