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,220 @@
1
+ /**
2
+ * IPC Client - Minimal JSONL handshake MVP
3
+ *
4
+ * Connects to the daemon's Unix domain socket and performs handshake.
5
+ */
6
+ import { randomUUID } from 'crypto';
7
+ import { connect } from 'net';
8
+ import { IPCServer } from '../daemon/ipcServer.js';
9
+ import { getErrorMessage } from '../utils/errors.js';
10
+ /**
11
+ * Generic IPC request sender that handles connection, timeout, and error handling.
12
+ * Supports both traditional IPC messages (handshake, status, etc.) and command messages (DOM commands).
13
+ *
14
+ * @param request - The IPC request to send (either IPCRequest or ClientRequest<T>)
15
+ * @param requestName - Human-readable name for logging (e.g., 'status', 'peek')
16
+ * @returns Promise that resolves with the response
17
+ */
18
+ async function sendRequest(request, requestName) {
19
+ const socketPath = IPCServer.getSocketPath();
20
+ return new Promise((resolve, reject) => {
21
+ const socket = connect(socketPath);
22
+ let buffer = '';
23
+ let resolved = false;
24
+ // Set request timeout
25
+ const timeout = setTimeout(() => {
26
+ if (!resolved) {
27
+ resolved = true;
28
+ socket.destroy();
29
+ reject(new Error(`${requestName} request timeout after 5s`));
30
+ }
31
+ }, 5000);
32
+ socket.on('connect', () => {
33
+ console.error(`[client] Connected to daemon for ${requestName} request`);
34
+ socket.write(JSON.stringify(request) + '\n');
35
+ console.error(`[client] ${requestName} request sent`);
36
+ });
37
+ socket.on('data', (chunk) => {
38
+ buffer += chunk.toString('utf-8');
39
+ // Process complete JSONL frames
40
+ const lines = buffer.split('\n');
41
+ buffer = lines.pop() ?? '';
42
+ for (const line of lines) {
43
+ if (line.trim() && !resolved) {
44
+ try {
45
+ const response = JSON.parse(line);
46
+ console.error(`[client] ${requestName} response received`);
47
+ resolved = true;
48
+ clearTimeout(timeout);
49
+ socket.destroy();
50
+ resolve(response);
51
+ }
52
+ catch (error) {
53
+ if (!resolved) {
54
+ resolved = true;
55
+ clearTimeout(timeout);
56
+ socket.destroy();
57
+ reject(new Error(`Failed to parse ${requestName} response: ${getErrorMessage(error)}`));
58
+ }
59
+ }
60
+ }
61
+ }
62
+ });
63
+ socket.on('error', (err) => {
64
+ if (!resolved) {
65
+ resolved = true;
66
+ clearTimeout(timeout);
67
+ reject(new Error(`Connection error: ${err.message}`));
68
+ }
69
+ });
70
+ socket.on('end', () => {
71
+ if (!resolved) {
72
+ resolved = true;
73
+ clearTimeout(timeout);
74
+ reject(new Error(`Connection closed before ${requestName} response received`));
75
+ }
76
+ });
77
+ });
78
+ }
79
+ /**
80
+ * Connect to the daemon and perform handshake.
81
+ *
82
+ * @returns Handshake response from daemon
83
+ * @throws Error if connection fails or handshake times out
84
+ */
85
+ export async function connectToDaemon() {
86
+ const request = {
87
+ type: 'handshake_request',
88
+ sessionId: randomUUID(),
89
+ };
90
+ return sendRequest(request, 'handshake');
91
+ }
92
+ /**
93
+ * Request status information from the daemon.
94
+ *
95
+ * @returns Status response with daemon and session metadata
96
+ * @throws Error if connection fails, daemon is not running, or request times out
97
+ */
98
+ export async function getStatus() {
99
+ const request = {
100
+ type: 'status_request',
101
+ sessionId: randomUUID(),
102
+ };
103
+ return sendRequest(request, 'status');
104
+ }
105
+ /**
106
+ * Request preview data from the daemon.
107
+ *
108
+ * @returns Peek response with session preview data
109
+ * @throws Error if connection fails, daemon is not running, or request times out
110
+ */
111
+ export async function getPeek() {
112
+ const request = {
113
+ type: 'peek_request',
114
+ sessionId: randomUUID(),
115
+ };
116
+ return sendRequest(request, 'peek');
117
+ }
118
+ /**
119
+ * Request daemon to start a new browser session.
120
+ *
121
+ * @param url - Target URL to navigate to
122
+ * @param options - Session configuration options
123
+ * @returns Start session response with worker and Chrome metadata
124
+ * @throws Error if connection fails, daemon is not running, or request times out
125
+ */
126
+ export async function startSession(url, options) {
127
+ const request = {
128
+ type: 'start_session_request',
129
+ sessionId: randomUUID(),
130
+ url,
131
+ ...(options?.port !== undefined && { port: options.port }),
132
+ ...(options?.timeout !== undefined && { timeout: options.timeout }),
133
+ ...(options?.collectors !== undefined && { collectors: options.collectors }),
134
+ ...(options?.includeAll !== undefined && { includeAll: options.includeAll }),
135
+ ...(options?.userDataDir !== undefined && { userDataDir: options.userDataDir }),
136
+ ...(options?.maxBodySize !== undefined && { maxBodySize: options.maxBodySize }),
137
+ };
138
+ return sendRequest(request, 'start session');
139
+ }
140
+ /**
141
+ * Request session stop from the daemon.
142
+ *
143
+ * @returns Stop session response with success/error status
144
+ * @throws Error if connection fails, daemon is not running, or request times out
145
+ */
146
+ export async function stopSession() {
147
+ const request = {
148
+ type: 'stop_session_request',
149
+ sessionId: randomUUID(),
150
+ };
151
+ return sendRequest(request, 'stop session');
152
+ }
153
+ /**
154
+ * Generic command sender - works for any registered command in the COMMANDS registry.
155
+ *
156
+ * @param commandName - Name of the command from the COMMANDS registry
157
+ * @param params - Command parameters matching the command's request schema
158
+ * @returns Promise that resolves with the command response
159
+ */
160
+ async function sendCommand(commandName, params) {
161
+ const request = {
162
+ type: `${commandName}_request`,
163
+ sessionId: randomUUID(),
164
+ ...params,
165
+ };
166
+ return sendRequest(request, commandName);
167
+ }
168
+ /**
169
+ * Query DOM elements by CSS selector via the daemon's worker.
170
+ *
171
+ * @param selector - CSS selector to query
172
+ * @returns DOM query response with matched elements
173
+ * @throws Error if connection fails, daemon is not running, or request times out
174
+ */
175
+ export async function queryDOM(selector) {
176
+ return sendCommand('dom_query', { selector });
177
+ }
178
+ /**
179
+ * Highlight DOM elements in the browser via the daemon's worker.
180
+ *
181
+ * @param options - Highlight options (selector, index, nodeId, color, etc.)
182
+ * @returns DOM highlight response with highlighted node information
183
+ * @throws Error if connection fails, daemon is not running, or request times out
184
+ */
185
+ export async function highlightDOM(options) {
186
+ return sendCommand('dom_highlight', options);
187
+ }
188
+ /**
189
+ * Get full HTML and attributes for DOM elements via the daemon's worker.
190
+ *
191
+ * @param options - Get options (selector, index, nodeId, all, nth)
192
+ * @returns DOM get response with node information
193
+ * @throws Error if connection fails, daemon is not running, or request times out
194
+ */
195
+ export async function getDOM(options) {
196
+ return sendCommand('dom_get', options);
197
+ }
198
+ /**
199
+ * Get details for a specific network request or console message via the daemon's worker.
200
+ *
201
+ * @param type - Type of item: 'network' or 'console'
202
+ * @param id - Request ID for network, index for console
203
+ * @returns Worker details response with full object (including bodies/args)
204
+ * @throws Error if connection fails, daemon is not running, or request times out
205
+ */
206
+ export async function getDetails(type, id) {
207
+ return sendCommand('worker_details', { itemType: type, id });
208
+ }
209
+ /**
210
+ * Execute arbitrary CDP method via the daemon's worker.
211
+ *
212
+ * @param method - CDP method name (e.g., 'Network.getCookies', 'Runtime.evaluate')
213
+ * @param params - CDP method parameters (optional)
214
+ * @returns CDP call response with method result
215
+ * @throws Error if connection fails, daemon is not running, or request times out
216
+ */
217
+ export async function callCDP(method, params) {
218
+ return sendCommand('cdp_call', { method, ...(params && { params }) });
219
+ }
220
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ipc/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Unified Command Registry - Single Source of Truth
3
+ *
4
+ * This file defines all IPC commands and their schemas. Command types are defined once here,
5
+ * and utility types add sessionId/requestId at the boundaries (client/worker).
6
+ *
7
+ * Benefits:
8
+ * - No type duplication between client and worker
9
+ * - Adding a new command only requires updating this file and the handler
10
+ * - Type safety maintained throughout the stack
11
+ */
12
+ /**
13
+ * DOM Query Command - Find elements by CSS selector
14
+ */
15
+ export interface DomQueryCommand {
16
+ selector: string;
17
+ }
18
+ export interface DomQueryData {
19
+ selector: string;
20
+ count: number;
21
+ nodes: Array<{
22
+ index: number;
23
+ nodeId: number;
24
+ tag?: string;
25
+ classes?: string[];
26
+ preview?: string;
27
+ }>;
28
+ }
29
+ /**
30
+ * DOM Highlight Command - Highlight elements in browser
31
+ */
32
+ export interface DomHighlightCommand {
33
+ selector?: string;
34
+ index?: number;
35
+ nodeId?: number;
36
+ first?: boolean;
37
+ nth?: number;
38
+ color?: string;
39
+ opacity?: number;
40
+ }
41
+ export interface DomHighlightData {
42
+ highlighted: number;
43
+ nodeIds: number[];
44
+ }
45
+ /**
46
+ * DOM Get Command - Get full HTML and attributes for elements
47
+ */
48
+ export interface DomGetCommand {
49
+ selector?: string;
50
+ index?: number;
51
+ nodeId?: number;
52
+ all?: boolean;
53
+ nth?: number;
54
+ }
55
+ export interface DomGetData {
56
+ nodes: Array<{
57
+ nodeId: number;
58
+ tag?: string;
59
+ attributes?: Record<string, unknown>;
60
+ classes?: string[];
61
+ outerHTML?: string;
62
+ }>;
63
+ }
64
+ /**
65
+ * Worker Peek Command - Get lightweight preview of collected data
66
+ */
67
+ export interface WorkerPeekCommand {
68
+ lastN?: number;
69
+ }
70
+ export interface WorkerPeekData {
71
+ version: string;
72
+ startTime: number;
73
+ duration: number;
74
+ target: {
75
+ url: string;
76
+ title: string;
77
+ };
78
+ activeCollectors: string[];
79
+ network: Array<{
80
+ requestId: string;
81
+ timestamp: number;
82
+ method: string;
83
+ url: string;
84
+ status?: number;
85
+ mimeType?: string;
86
+ }>;
87
+ console: Array<{
88
+ timestamp: number;
89
+ type: string;
90
+ text: string;
91
+ }>;
92
+ }
93
+ /**
94
+ * Worker Details Command - Get full object for specific network/console item
95
+ */
96
+ export interface WorkerDetailsCommand {
97
+ itemType: 'network' | 'console';
98
+ id: string;
99
+ }
100
+ export interface WorkerDetailsData {
101
+ item: unknown;
102
+ }
103
+ /**
104
+ * CDP Call Command - Execute arbitrary CDP method
105
+ */
106
+ export interface CdpCallCommand {
107
+ method: string;
108
+ params?: Record<string, unknown>;
109
+ }
110
+ export interface CdpCallData {
111
+ result: unknown;
112
+ }
113
+ /**
114
+ * Registry of all available commands.
115
+ * Each command has a request schema and response schema.
116
+ */
117
+ export declare const COMMANDS: {
118
+ readonly dom_query: {
119
+ readonly requestSchema: DomQueryCommand;
120
+ readonly responseSchema: DomQueryData;
121
+ };
122
+ readonly dom_highlight: {
123
+ readonly requestSchema: DomHighlightCommand;
124
+ readonly responseSchema: DomHighlightData;
125
+ };
126
+ readonly dom_get: {
127
+ readonly requestSchema: DomGetCommand;
128
+ readonly responseSchema: DomGetData;
129
+ };
130
+ readonly worker_peek: {
131
+ readonly requestSchema: WorkerPeekCommand;
132
+ readonly responseSchema: WorkerPeekData;
133
+ };
134
+ readonly worker_details: {
135
+ readonly requestSchema: WorkerDetailsCommand;
136
+ readonly responseSchema: WorkerDetailsData;
137
+ };
138
+ readonly cdp_call: {
139
+ readonly requestSchema: CdpCallCommand;
140
+ readonly responseSchema: CdpCallData;
141
+ };
142
+ };
143
+ export type CommandName = keyof typeof COMMANDS;
144
+ /**
145
+ * Worker Request - Command with requestId (daemon -\> worker via stdin)
146
+ */
147
+ export type WorkerRequest<T extends CommandName> = {
148
+ type: `${T}_request`;
149
+ requestId: string;
150
+ } & (typeof COMMANDS)[T]['requestSchema'];
151
+ /**
152
+ * Worker Response - Command result with requestId (worker -\> daemon via stdout)
153
+ */
154
+ export type WorkerResponse<T extends CommandName> = {
155
+ type: `${T}_response`;
156
+ requestId: string;
157
+ success: boolean;
158
+ data?: (typeof COMMANDS)[T]['responseSchema'];
159
+ error?: string;
160
+ };
161
+ /**
162
+ * Client Request - Command with sessionId (CLI -\> daemon via Unix socket)
163
+ */
164
+ export type ClientRequest<T extends CommandName> = {
165
+ type: `${T}_request`;
166
+ sessionId: string;
167
+ } & (typeof COMMANDS)[T]['requestSchema'];
168
+ /**
169
+ * Client Response - Command result with sessionId (daemon -\> CLI via Unix socket)
170
+ */
171
+ export type ClientResponse<T extends CommandName> = {
172
+ type: `${T}_response`;
173
+ sessionId: string;
174
+ status: 'ok' | 'error';
175
+ data?: (typeof COMMANDS)[T]['responseSchema'];
176
+ error?: string;
177
+ };
178
+ /**
179
+ * Union of all possible worker request types
180
+ */
181
+ export type WorkerRequestUnion = {
182
+ [K in CommandName]: WorkerRequest<K>;
183
+ }[CommandName];
184
+ /**
185
+ * Union of all possible worker response types
186
+ */
187
+ export type WorkerResponseUnion = {
188
+ [K in CommandName]: WorkerResponse<K>;
189
+ }[CommandName];
190
+ /**
191
+ * Union of all possible client request types
192
+ */
193
+ export type ClientRequestUnion = {
194
+ [K in CommandName]: ClientRequest<K>;
195
+ }[CommandName];
196
+ /**
197
+ * Check if a message type corresponds to a registered command
198
+ */
199
+ export declare function isCommandRequest(type: string): type is `${CommandName}_request`;
200
+ /**
201
+ * Check if a message type corresponds to a command response
202
+ */
203
+ export declare function isCommandResponse(type: string): type is `${CommandName}_response`;
204
+ /**
205
+ * Extract command name from message type
206
+ */
207
+ export declare function getCommandName(type: string): CommandName | null;
208
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/ipc/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Unified Command Registry - Single Source of Truth
3
+ *
4
+ * This file defines all IPC commands and their schemas. Command types are defined once here,
5
+ * and utility types add sessionId/requestId at the boundaries (client/worker).
6
+ *
7
+ * Benefits:
8
+ * - No type duplication between client and worker
9
+ * - Adding a new command only requires updating this file and the handler
10
+ * - Type safety maintained throughout the stack
11
+ */
12
+ // =============================================================================
13
+ // Command Registry - Single Source of Truth
14
+ // =============================================================================
15
+ /**
16
+ * Registry of all available commands.
17
+ * Each command has a request schema and response schema.
18
+ */
19
+ export const COMMANDS = {
20
+ dom_query: {
21
+ requestSchema: {},
22
+ responseSchema: {},
23
+ },
24
+ dom_highlight: {
25
+ requestSchema: {},
26
+ responseSchema: {},
27
+ },
28
+ dom_get: {
29
+ requestSchema: {},
30
+ responseSchema: {},
31
+ },
32
+ worker_peek: {
33
+ requestSchema: {},
34
+ responseSchema: {},
35
+ },
36
+ worker_details: {
37
+ requestSchema: {},
38
+ responseSchema: {},
39
+ },
40
+ cdp_call: {
41
+ requestSchema: {},
42
+ responseSchema: {},
43
+ },
44
+ };
45
+ // =============================================================================
46
+ // Type Guards
47
+ // =============================================================================
48
+ /**
49
+ * Check if a message type corresponds to a registered command
50
+ */
51
+ export function isCommandRequest(type) {
52
+ const commandName = type.replace('_request', '');
53
+ return commandName in COMMANDS;
54
+ }
55
+ /**
56
+ * Check if a message type corresponds to a command response
57
+ */
58
+ export function isCommandResponse(type) {
59
+ const commandName = type.replace('_response', '');
60
+ return commandName in COMMANDS;
61
+ }
62
+ /**
63
+ * Extract command name from message type
64
+ */
65
+ export function getCommandName(type) {
66
+ const commandName = type.replace(/_request|_response/, '');
67
+ return commandName in COMMANDS ? commandName : null;
68
+ }
69
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/ipc/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuHH,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE;QACT,aAAa,EAAE,EAAqB;QACpC,cAAc,EAAE,EAAkB;KACnC;IACD,aAAa,EAAE;QACb,aAAa,EAAE,EAAyB;QACxC,cAAc,EAAE,EAAsB;KACvC;IACD,OAAO,EAAE;QACP,aAAa,EAAE,EAAmB;QAClC,cAAc,EAAE,EAAgB;KACjC;IACD,WAAW,EAAE;QACX,aAAa,EAAE,EAAuB;QACtC,cAAc,EAAE,EAAoB;KACrC;IACD,cAAc,EAAE;QACd,aAAa,EAAE,EAA0B;QACzC,cAAc,EAAE,EAAuB;KACxC;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,EAAoB;QACnC,cAAc,EAAE,EAAiB;KAClC;CACO,CAAC;AAuEX,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAgB,CAAC;IAChE,OAAO,WAAW,IAAI,QAAQ,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAgB,CAAC;IACjE,OAAO,WAAW,IAAI,QAAQ,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAgB,CAAC;IAC1E,OAAO,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Base response interface for validation.
3
+ * Both IPCResponse and ClientResponse follow this structure.
4
+ */
5
+ interface BaseResponse {
6
+ status: 'ok' | 'error';
7
+ error?: string;
8
+ }
9
+ /**
10
+ * Response type with success status.
11
+ * Used for type narrowing after validation.
12
+ */
13
+ type SuccessResponse<T extends BaseResponse> = T & {
14
+ status: 'ok';
15
+ };
16
+ /**
17
+ * Validate IPC response and throw on error.
18
+ * Standardizes error handling for all IPC/CDP calls.
19
+ *
20
+ * This function:
21
+ * - Checks if response.status === 'error'
22
+ * - Throws Error with response.error message if present
23
+ * - Narrows TypeScript type to exclude error status after validation
24
+ *
25
+ * Works with both IPCResponse (legacy) and ClientResponse (new) types.
26
+ *
27
+ * @param response - IPC or CDP response from daemon
28
+ * @throws Error if response.status === 'error'
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * const response = await callCDP('Network.getCookies', params);
33
+ * validateIPCResponse(response); // Throws if error
34
+ * // TypeScript now knows response.status === 'ok'
35
+ * const cookies = response.data?.result.cookies;
36
+ * ```
37
+ */
38
+ export declare function validateIPCResponse<T extends BaseResponse>(response: T): asserts response is SuccessResponse<T>;
39
+ export {};
40
+ //# sourceMappingURL=responseValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseValidator.d.ts","sourceRoot":"","sources":["../../src/ipc/responseValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,UAAU,YAAY;IACpB,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,KAAK,eAAe,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,GAAG;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,YAAY,EACxD,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,CAIxC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Validate IPC response and throw on error.
3
+ * Standardizes error handling for all IPC/CDP calls.
4
+ *
5
+ * This function:
6
+ * - Checks if response.status === 'error'
7
+ * - Throws Error with response.error message if present
8
+ * - Narrows TypeScript type to exclude error status after validation
9
+ *
10
+ * Works with both IPCResponse (legacy) and ClientResponse (new) types.
11
+ *
12
+ * @param response - IPC or CDP response from daemon
13
+ * @throws Error if response.status === 'error'
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const response = await callCDP('Network.getCookies', params);
18
+ * validateIPCResponse(response); // Throws if error
19
+ * // TypeScript now knows response.status === 'ok'
20
+ * const cookies = response.data?.result.cookies;
21
+ * ```
22
+ */
23
+ export function validateIPCResponse(response) {
24
+ if (response.status === 'error') {
25
+ throw new Error(response.error ?? 'Unknown IPC error');
26
+ }
27
+ }
28
+ //# sourceMappingURL=responseValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseValidator.js","sourceRoot":"","sources":["../../src/ipc/responseValidator.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAW;IAEX,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}