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,31 @@
1
+ import type { CDPConnection } from '../connection/cdp.js';
2
+ /**
3
+ * Registry for managing CDP event handlers with automatic cleanup.
4
+ *
5
+ * Provides a centralized way to register and clean up CDP event handlers,
6
+ * eliminating the boilerplate code repeated across all collectors.
7
+ */
8
+ export declare class CDPHandlerRegistry {
9
+ private handlers;
10
+ /**
11
+ * Register a CDP event handler and track it for cleanup.
12
+ *
13
+ * @param cdp - CDP connection instance
14
+ * @param event - CDP event name (e.g., 'Network.requestWillBeSent')
15
+ * @param handler - Event handler function
16
+ */
17
+ register<T>(cdp: CDPConnection, event: string, handler: (params: T) => void): void;
18
+ /**
19
+ * Remove all registered event handlers and clear the registry.
20
+ *
21
+ * @param cdp - CDP connection instance
22
+ */
23
+ cleanup(cdp: CDPConnection): void;
24
+ /**
25
+ * Get the number of registered handlers.
26
+ *
27
+ * @returns Number of active handlers
28
+ */
29
+ size(): number;
30
+ }
31
+ //# sourceMappingURL=cdpHandlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdpHandlers.d.ts","sourceRoot":"","sources":["../../src/utils/cdpHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAA4C;IAE5D;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAKlF;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAKjC;;;;OAIG;IACH,IAAI,IAAI,MAAM;CAGf"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Registry for managing CDP event handlers with automatic cleanup.
3
+ *
4
+ * Provides a centralized way to register and clean up CDP event handlers,
5
+ * eliminating the boilerplate code repeated across all collectors.
6
+ */
7
+ export class CDPHandlerRegistry {
8
+ handlers = [];
9
+ /**
10
+ * Register a CDP event handler and track it for cleanup.
11
+ *
12
+ * @param cdp - CDP connection instance
13
+ * @param event - CDP event name (e.g., 'Network.requestWillBeSent')
14
+ * @param handler - Event handler function
15
+ */
16
+ register(cdp, event, handler) {
17
+ const id = cdp.on(event, handler);
18
+ this.handlers.push({ event, id });
19
+ }
20
+ /**
21
+ * Remove all registered event handlers and clear the registry.
22
+ *
23
+ * @param cdp - CDP connection instance
24
+ */
25
+ cleanup(cdp) {
26
+ this.handlers.forEach(({ event, id }) => cdp.off(event, id));
27
+ this.handlers.length = 0;
28
+ }
29
+ /**
30
+ * Get the number of registered handlers.
31
+ *
32
+ * @returns Number of active handlers
33
+ */
34
+ size() {
35
+ return this.handlers.length;
36
+ }
37
+ }
38
+ //# sourceMappingURL=cdpHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdpHandlers.js","sourceRoot":"","sources":["../../src/utils/cdpHandlers.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACrB,QAAQ,GAAyC,EAAE,CAAC;IAE5D;;;;;;OAMG;IACH,QAAQ,CAAI,GAAkB,EAAE,KAAa,EAAE,OAA4B;QACzE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,GAAkB;QACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Chrome installation diagnostics information
3
+ */
4
+ export interface ChromeDiagnostics {
5
+ defaultPath: string | null;
6
+ installations: string[];
7
+ installationCount: number;
8
+ }
9
+ /**
10
+ * Get Chrome installation diagnostics.
11
+ * Results are cached for the lifetime of the process to avoid expensive filesystem scans.
12
+ *
13
+ * @returns Chrome diagnostics information
14
+ */
15
+ export declare function getChromeDiagnostics(): ChromeDiagnostics;
16
+ /**
17
+ * Format diagnostics for error reporting when Chrome launch fails.
18
+ * @param diagnostics - Chrome diagnostics information
19
+ * @returns Formatted error message with troubleshooting steps
20
+ */
21
+ export declare function formatDiagnosticsForError(diagnostics: ChromeDiagnostics): string[];
22
+ /**
23
+ * Format diagnostics for verbose status output (bdg status --verbose).
24
+ * @param diagnostics - Chrome diagnostics information
25
+ * @returns Array of formatted status lines
26
+ */
27
+ export declare function formatDiagnosticsForStatus(diagnostics: ChromeDiagnostics): string[];
28
+ //# sourceMappingURL=chromeDiagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromeDiagnostics.d.ts","sourceRoot":"","sources":["../../src/utils/chromeDiagnostics.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAOD;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CA0BxD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAwBlF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAmBnF"}
@@ -0,0 +1,88 @@
1
+ import * as chromeLauncher from 'chrome-launcher';
2
+ /**
3
+ * Cached diagnostics result to avoid repeated filesystem scans
4
+ */
5
+ let cachedDiagnostics = null;
6
+ /**
7
+ * Get Chrome installation diagnostics.
8
+ * Results are cached for the lifetime of the process to avoid expensive filesystem scans.
9
+ *
10
+ * @returns Chrome diagnostics information
11
+ */
12
+ export function getChromeDiagnostics() {
13
+ if (cachedDiagnostics) {
14
+ return cachedDiagnostics;
15
+ }
16
+ let defaultPath = null;
17
+ try {
18
+ defaultPath = chromeLauncher.getChromePath();
19
+ }
20
+ catch {
21
+ // getChromePath() may throw if no Chrome found
22
+ }
23
+ let installations = [];
24
+ try {
25
+ installations = chromeLauncher.Launcher.getInstallations();
26
+ }
27
+ catch {
28
+ // getInstallations() may throw on detection failure
29
+ }
30
+ cachedDiagnostics = {
31
+ defaultPath,
32
+ installations,
33
+ installationCount: installations.length,
34
+ };
35
+ return cachedDiagnostics;
36
+ }
37
+ /**
38
+ * Format diagnostics for error reporting when Chrome launch fails.
39
+ * @param diagnostics - Chrome diagnostics information
40
+ * @returns Formatted error message with troubleshooting steps
41
+ */
42
+ export function formatDiagnosticsForError(diagnostics) {
43
+ const lines = [];
44
+ if (diagnostics.installationCount === 0) {
45
+ lines.push('Error: No Chrome installations detected\n');
46
+ lines.push('Install Chrome from:');
47
+ lines.push(' https://www.google.com/chrome/\n');
48
+ }
49
+ else {
50
+ lines.push(`Found ${diagnostics.installationCount} Chrome installation${diagnostics.installationCount > 1 ? 's' : ''}:\n`);
51
+ diagnostics.installations.forEach((path, index) => {
52
+ lines.push(` ${index + 1}. ${path}`);
53
+ });
54
+ lines.push('');
55
+ if (diagnostics.defaultPath) {
56
+ lines.push(`Default binary: ${diagnostics.defaultPath}\n`);
57
+ }
58
+ else {
59
+ lines.push('Default binary: Could not determine\n');
60
+ }
61
+ }
62
+ return lines;
63
+ }
64
+ /**
65
+ * Format diagnostics for verbose status output (bdg status --verbose).
66
+ * @param diagnostics - Chrome diagnostics information
67
+ * @returns Array of formatted status lines
68
+ */
69
+ export function formatDiagnosticsForStatus(diagnostics) {
70
+ const lines = [];
71
+ if (diagnostics.defaultPath) {
72
+ lines.push(`Binary: ${diagnostics.defaultPath}`);
73
+ }
74
+ else {
75
+ lines.push('Binary: Could not determine');
76
+ }
77
+ lines.push(`Installations: ${diagnostics.installationCount} found`);
78
+ if (diagnostics.installationCount > 0 && diagnostics.installationCount <= 3) {
79
+ diagnostics.installations.forEach((path, index) => {
80
+ lines.push(` ${index + 1}. ${path}`);
81
+ });
82
+ }
83
+ else if (diagnostics.installationCount > 3) {
84
+ lines.push(` (Use 'bdg cleanup --aggressive' to see all)`);
85
+ }
86
+ return lines;
87
+ }
88
+ //# sourceMappingURL=chromeDiagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromeDiagnostics.js","sourceRoot":"","sources":["../../src/utils/chromeDiagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Custom error classes for bdg CLI.
3
+ *
4
+ * Provides structured error handling with error codes and categorization
5
+ * for better debugging and user-friendly error messages.
6
+ */
7
+ /**
8
+ * Base error class for all bdg errors.
9
+ *
10
+ * Extends native Error with:
11
+ * - Error codes for programmatic handling
12
+ * - Category for filtering (system/user/external)
13
+ * - Exit code for semantic exit codes (80-99 user errors, 100-119 software errors)
14
+ * - Cause chaining for nested errors
15
+ */
16
+ export declare abstract class BdgError extends Error {
17
+ abstract readonly code: string;
18
+ abstract readonly category: 'system' | 'user' | 'external';
19
+ abstract readonly exitCode: number;
20
+ constructor(message: string, cause?: Error);
21
+ }
22
+ /**
23
+ * CDP connection failed (network/protocol issues).
24
+ *
25
+ * Examples:
26
+ * - WebSocket connection refused
27
+ * - Chrome not running on specified port
28
+ * - Protocol version mismatch
29
+ */
30
+ export declare class CDPConnectionError extends BdgError {
31
+ readonly code = "CDP_CONNECTION_ERROR";
32
+ readonly category: "external";
33
+ readonly exitCode = 101;
34
+ }
35
+ /**
36
+ * Chrome launch failed.
37
+ *
38
+ * Examples:
39
+ * - Chrome binary not found
40
+ * - Insufficient permissions
41
+ * - Port already in use
42
+ */
43
+ export declare class ChromeLaunchError extends BdgError {
44
+ readonly code = "CHROME_LAUNCH_ERROR";
45
+ readonly category: "system";
46
+ readonly exitCode = 100;
47
+ }
48
+ /**
49
+ * CDP command timed out.
50
+ *
51
+ * Examples:
52
+ * - Command took longer than 30s
53
+ * - Browser became unresponsive
54
+ */
55
+ export declare class CDPTimeoutError extends BdgError {
56
+ readonly code = "CDP_TIMEOUT_ERROR";
57
+ readonly category: "external";
58
+ readonly exitCode = 102;
59
+ }
60
+ /**
61
+ * Extract error message from unknown error type.
62
+ *
63
+ * Safely extracts error messages from various error types:
64
+ * - Error instances → error.message
65
+ * - Unknown types → String(error)
66
+ *
67
+ * Useful for error handling when error type is unknown.
68
+ *
69
+ * @param error - Error of unknown type
70
+ * @returns Error message string
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * try {
75
+ * await someOperation();
76
+ * } catch (error) {
77
+ * throw new ChromeLaunchError(`Failed: ${getErrorMessage(error)}`, error);
78
+ * }
79
+ * ```
80
+ */
81
+ export declare function getErrorMessage(error: unknown): string;
82
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,8BAAsB,QAAS,SAAQ,KAAK;IAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAC3D,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK3C;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,QAAQ,CAAC,IAAI,0BAA0B;IACvC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IACxC,QAAQ,CAAC,QAAQ,OAAO;CACzB;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,QAAQ,CAAC,IAAI,yBAAyB;IACtC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,QAAQ,OAAO;CACzB;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IACxC,QAAQ,CAAC,QAAQ,OAAO;CACzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKtD"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Custom error classes for bdg CLI.
3
+ *
4
+ * Provides structured error handling with error codes and categorization
5
+ * for better debugging and user-friendly error messages.
6
+ */
7
+ /**
8
+ * Base error class for all bdg errors.
9
+ *
10
+ * Extends native Error with:
11
+ * - Error codes for programmatic handling
12
+ * - Category for filtering (system/user/external)
13
+ * - Exit code for semantic exit codes (80-99 user errors, 100-119 software errors)
14
+ * - Cause chaining for nested errors
15
+ */
16
+ export class BdgError extends Error {
17
+ constructor(message, cause) {
18
+ super(message);
19
+ this.name = this.constructor.name;
20
+ this.cause = cause;
21
+ }
22
+ }
23
+ /**
24
+ * CDP connection failed (network/protocol issues).
25
+ *
26
+ * Examples:
27
+ * - WebSocket connection refused
28
+ * - Chrome not running on specified port
29
+ * - Protocol version mismatch
30
+ */
31
+ export class CDPConnectionError extends BdgError {
32
+ code = 'CDP_CONNECTION_ERROR';
33
+ category = 'external';
34
+ exitCode = 101; // CDP_CONNECTION_FAILURE
35
+ }
36
+ /**
37
+ * Chrome launch failed.
38
+ *
39
+ * Examples:
40
+ * - Chrome binary not found
41
+ * - Insufficient permissions
42
+ * - Port already in use
43
+ */
44
+ export class ChromeLaunchError extends BdgError {
45
+ code = 'CHROME_LAUNCH_ERROR';
46
+ category = 'system';
47
+ exitCode = 100; // CHROME_LAUNCH_FAILURE
48
+ }
49
+ /**
50
+ * CDP command timed out.
51
+ *
52
+ * Examples:
53
+ * - Command took longer than 30s
54
+ * - Browser became unresponsive
55
+ */
56
+ export class CDPTimeoutError extends BdgError {
57
+ code = 'CDP_TIMEOUT_ERROR';
58
+ category = 'external';
59
+ exitCode = 102; // CDP_TIMEOUT
60
+ }
61
+ /**
62
+ * Extract error message from unknown error type.
63
+ *
64
+ * Safely extracts error messages from various error types:
65
+ * - Error instances → error.message
66
+ * - Unknown types → String(error)
67
+ *
68
+ * Useful for error handling when error type is unknown.
69
+ *
70
+ * @param error - Error of unknown type
71
+ * @returns Error message string
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * try {
76
+ * await someOperation();
77
+ * } catch (error) {
78
+ * throw new ChromeLaunchError(`Failed: ${getErrorMessage(error)}`, error);
79
+ * }
80
+ * ```
81
+ */
82
+ export function getErrorMessage(error) {
83
+ if (error instanceof Error) {
84
+ return error.message;
85
+ }
86
+ return String(error);
87
+ }
88
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,MAAM,OAAgB,QAAS,SAAQ,KAAK;IAK1C,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IACrC,IAAI,GAAG,sBAAsB,CAAC;IAC9B,QAAQ,GAAG,UAAmB,CAAC;IAC/B,QAAQ,GAAG,GAAG,CAAC,CAAC,yBAAyB;CACnD;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IACpC,IAAI,GAAG,qBAAqB,CAAC;IAC7B,QAAQ,GAAG,QAAiB,CAAC;IAC7B,QAAQ,GAAG,GAAG,CAAC,CAAC,wBAAwB;CAClD;AAED;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAClC,IAAI,GAAG,mBAAmB,CAAC;IAC3B,QAAQ,GAAG,UAAmB,CAAC;IAC/B,QAAQ,GAAG,GAAG,CAAC,CAAC,cAAc;CACxC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Semantic exit codes for agent-friendly error handling.
3
+ *
4
+ * Based on Square Engineering's semantic exit code system:
5
+ * - 0: Success
6
+ * - 1: Generic failure (backward compatibility)
7
+ * - 80-99: User errors (invalid input, permissions, resource issues)
8
+ * - 100-119: Software errors (bugs, integration failures, timeouts)
9
+ *
10
+ * Reference: https://developer.squareup.com/blog/command-line-observability-with-semantic-exit-codes/
11
+ */
12
+ /**
13
+ * Exit code constants following semantic ranges.
14
+ */
15
+ export declare const EXIT_CODES: {
16
+ readonly SUCCESS: 0;
17
+ readonly GENERIC_FAILURE: 1;
18
+ readonly INVALID_URL: 80;
19
+ readonly INVALID_ARGUMENTS: 81;
20
+ readonly PERMISSION_DENIED: 82;
21
+ readonly RESOURCE_NOT_FOUND: 83;
22
+ readonly RESOURCE_ALREADY_EXISTS: 84;
23
+ readonly RESOURCE_BUSY: 85;
24
+ readonly DAEMON_ALREADY_RUNNING: 86;
25
+ readonly CHROME_LAUNCH_FAILURE: 100;
26
+ readonly CDP_CONNECTION_FAILURE: 101;
27
+ readonly CDP_TIMEOUT: 102;
28
+ readonly SESSION_FILE_ERROR: 103;
29
+ readonly UNHANDLED_EXCEPTION: 104;
30
+ readonly SIGNAL_HANDLER_ERROR: 105;
31
+ };
32
+ //# sourceMappingURL=exitCodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exitCodes.d.ts","sourceRoot":"","sources":["../../src/utils/exitCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAuBb,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Semantic exit codes for agent-friendly error handling.
3
+ *
4
+ * Based on Square Engineering's semantic exit code system:
5
+ * - 0: Success
6
+ * - 1: Generic failure (backward compatibility)
7
+ * - 80-99: User errors (invalid input, permissions, resource issues)
8
+ * - 100-119: Software errors (bugs, integration failures, timeouts)
9
+ *
10
+ * Reference: https://developer.squareup.com/blog/command-line-observability-with-semantic-exit-codes/
11
+ */
12
+ /**
13
+ * Exit code constants following semantic ranges.
14
+ */
15
+ export const EXIT_CODES = {
16
+ // Success
17
+ SUCCESS: 0,
18
+ // Generic failure (backward compatibility)
19
+ GENERIC_FAILURE: 1,
20
+ // User errors (80-99)
21
+ INVALID_URL: 80,
22
+ INVALID_ARGUMENTS: 81,
23
+ PERMISSION_DENIED: 82,
24
+ RESOURCE_NOT_FOUND: 83,
25
+ RESOURCE_ALREADY_EXISTS: 84,
26
+ RESOURCE_BUSY: 85,
27
+ DAEMON_ALREADY_RUNNING: 86,
28
+ // Software/Integration errors (100-119)
29
+ CHROME_LAUNCH_FAILURE: 100,
30
+ CDP_CONNECTION_FAILURE: 101,
31
+ CDP_TIMEOUT: 102,
32
+ SESSION_FILE_ERROR: 103,
33
+ UNHANDLED_EXCEPTION: 104,
34
+ SIGNAL_HANDLER_ERROR: 105,
35
+ };
36
+ //# sourceMappingURL=exitCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exitCodes.js","sourceRoot":"","sources":["../../src/utils/exitCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,UAAU;IACV,OAAO,EAAE,CAAC;IAEV,2CAA2C;IAC3C,eAAe,EAAE,CAAC;IAElB,sBAAsB;IACtB,WAAW,EAAE,EAAE;IACf,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,kBAAkB,EAAE,EAAE;IACtB,uBAAuB,EAAE,EAAE;IAC3B,aAAa,EAAE,EAAE;IACjB,sBAAsB,EAAE,EAAE;IAE1B,wCAAwC;IACxC,qBAAqB,EAAE,GAAG;IAC1B,sBAAsB,EAAE,GAAG;IAC3B,WAAW,EAAE,GAAG;IAChB,kBAAkB,EAAE,GAAG;IACvB,mBAAmB,EAAE,GAAG;IACxB,oBAAoB,EAAE,GAAG;CACjB,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Default filters for reducing noise in collected data
3
+ */
4
+ /**
5
+ * Domains to exclude by default (common tracking/analytics)
6
+ * These generate high volume but are rarely useful for debugging
7
+ */
8
+ export declare const DEFAULT_EXCLUDED_DOMAINS: string[];
9
+ /**
10
+ * Console message types to exclude by default (Redux/React DevTools noise)
11
+ */
12
+ export declare const DEFAULT_EXCLUDED_CONSOLE_TYPES: string[];
13
+ /**
14
+ * Console message patterns to exclude by default (dev server noise)
15
+ */
16
+ export declare const DEFAULT_EXCLUDED_CONSOLE_PATTERNS: string[];
17
+ /**
18
+ * File patterns to skip body fetching by default (assets unlikely to be useful for debugging)
19
+ * These reduce data volume significantly without losing critical debugging information.
20
+ */
21
+ export declare const DEFAULT_SKIP_BODY_PATTERNS: string[];
22
+ /**
23
+ * MIME types to skip body fetching by default
24
+ * This catches resources that may not have obvious file extensions (e.g., CSS with query params)
25
+ */
26
+ export declare const DEFAULT_SKIP_BODY_MIME_TYPES: string[];
27
+ /**
28
+ * Check if a URL should be excluded based on domain filtering.
29
+ *
30
+ * @param url - URL to check against exclusion list
31
+ * @param includeAll - If true, disables all filtering
32
+ * @returns True if the URL's domain matches an excluded domain
33
+ */
34
+ export declare function shouldExcludeDomain(url: string, includeAll?: boolean): boolean;
35
+ /**
36
+ * Check if a console message should be excluded based on type and pattern filtering
37
+ */
38
+ export declare function shouldExcludeConsoleMessage(text: string, type: string, includeAll?: boolean): boolean;
39
+ /**
40
+ * Simple wildcard pattern matcher.
41
+ * Supports only the * wildcard character.
42
+ *
43
+ * Examples:
44
+ * matchesWildcard("api.json", "*.json") → true
45
+ * matchesWildcard("api/users", "*api*") → true
46
+ * matchesWildcard("index.html", "*.js") → false
47
+ *
48
+ * @param str - The string to test
49
+ * @param pattern - The pattern with * wildcards
50
+ * @returns True if the string matches the pattern
51
+ */
52
+ export declare function matchesWildcard(str: string, pattern: string): boolean;
53
+ /**
54
+ * Check if a URL matches any pattern in a list.
55
+ *
56
+ * Matches against both bare hostname and hostname+pathname to support:
57
+ * - Bare hostname patterns: `api.example.com` matches all requests to that host
58
+ * - Hostname wildcard patterns: `*analytics*` matches "analytics.google.com/collect"
59
+ * - Path patterns: `*\/api\/*` matches "example.com/api/users"
60
+ * - Combined patterns: `api.example.com\/users` matches specific endpoint
61
+ *
62
+ * @param url - The URL to check
63
+ * @param patterns - Array of wildcard patterns
64
+ * @returns True if URL matches any pattern
65
+ */
66
+ /**
67
+ * Determine if a response body should be fetched based on URL, MIME type, and patterns.
68
+ *
69
+ * Pattern precedence (follows include-trumps-exclude rule):
70
+ * 1. If URL matches includePatterns → FETCH (even if it also matches excludePatterns)
71
+ * 2. If includePatterns specified but URL doesn't match → SKIP (whitelist mode)
72
+ * 3. If URL matches excludePatterns → SKIP
73
+ * 4. If fetchAllBodies flag is true → FETCH
74
+ * 5. If MIME type matches DEFAULT_SKIP_BODY_MIME_TYPES → SKIP
75
+ * 6. If URL matches DEFAULT_SKIP_BODY_PATTERNS → SKIP
76
+ * 7. Otherwise → FETCH (default behavior)
77
+ *
78
+ * @param url - The request URL
79
+ * @param mimeType - The response MIME type (for MIME-based skipping)
80
+ * @param options - Configuration options
81
+ * @returns True if the body should be fetched
82
+ */
83
+ export declare function shouldFetchBody(url: string, mimeType: string | undefined, options?: {
84
+ fetchAllBodies?: boolean;
85
+ includePatterns?: string[];
86
+ excludePatterns?: string[];
87
+ }): boolean;
88
+ /**
89
+ * Determine if a network request should be excluded based on URL patterns.
90
+ *
91
+ * Pattern precedence (follows include-trumps-exclude rule):
92
+ * 1. If URL matches includePatterns → CAPTURE (even if it also matches excludePatterns)
93
+ * 2. If includePatterns specified but URL doesn't match → EXCLUDE (whitelist mode)
94
+ * 3. If URL matches excludePatterns → EXCLUDE
95
+ * 4. Otherwise → CAPTURE (default behavior)
96
+ *
97
+ * Note: This function is separate from domain filtering (shouldExcludeDomain).
98
+ * Both filters can be applied: domain filtering happens first, then URL pattern filtering.
99
+ *
100
+ * @param url - The request URL
101
+ * @param options - Configuration options
102
+ * @returns True if the request should be excluded
103
+ */
104
+ export declare function shouldExcludeUrl(url: string, options?: {
105
+ includePatterns?: string[];
106
+ excludePatterns?: string[];
107
+ }): boolean;
108
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/utils/filters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,eAAO,MAAM,wBAAwB,UA6CpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,UAAoD,CAAC;AAEhG;;GAEG;AACH,eAAO,MAAM,iCAAiC,UAS7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,UAuCtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,UAqBxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAOrF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,OAAe,GAC1B,OAAO,CAeT;AAoDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GACL,OAAO,CA8CT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GACL,OAAO,CAST"}