browser-debugger-cli 0.1.0 → 0.3.0

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 (442) hide show
  1. package/dist/__testfixtures__/cdpMessages.d.ts +1 -1
  2. package/dist/__testfixtures__/connectionTargets.d.ts +1 -1
  3. package/dist/__tests__/fixtures/schema-v0.2.1.golden.json +47 -0
  4. package/dist/__tests__/schema.contract.test.d.ts +19 -0
  5. package/dist/__tests__/schema.contract.test.d.ts.map +1 -0
  6. package/dist/__tests__/schema.contract.test.js +236 -0
  7. package/dist/__tests__/schema.contract.test.js.map +1 -0
  8. package/dist/__testutils__/assertions.d.ts +1 -1
  9. package/dist/__testutils__/testFixtures.d.ts +1 -1
  10. package/dist/cli/commands/cdp.js +1 -1
  11. package/dist/cli/commands/cleanup.d.ts.map +1 -1
  12. package/dist/cli/commands/cleanup.js +12 -13
  13. package/dist/cli/commands/cleanup.js.map +1 -1
  14. package/dist/cli/commands/console.js +2 -2
  15. package/dist/cli/commands/details.js +3 -3
  16. package/dist/cli/commands/details.js.map +1 -1
  17. package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +1 -1
  18. package/dist/cli/commands/dom/helpers/errorHandler.js +4 -3
  19. package/dist/cli/commands/dom/helpers/errorHandler.js.map +1 -1
  20. package/dist/cli/commands/dom/index.js +1 -1
  21. package/dist/cli/commands/dom.d.ts.map +1 -0
  22. package/dist/cli/commands/dom.js +257 -0
  23. package/dist/cli/commands/dom.js.map +1 -0
  24. package/dist/cli/commands/domErrorHandler.d.ts +45 -0
  25. package/dist/cli/commands/domErrorHandler.d.ts.map +1 -0
  26. package/dist/cli/commands/domErrorHandler.js +71 -0
  27. package/dist/cli/commands/domErrorHandler.js.map +1 -0
  28. package/dist/cli/commands/domEvalHelpers.d.ts +52 -0
  29. package/dist/cli/commands/domEvalHelpers.d.ts.map +1 -0
  30. package/dist/cli/commands/domEvalHelpers.js +76 -0
  31. package/dist/cli/commands/domEvalHelpers.js.map +1 -0
  32. package/dist/cli/commands/domOptionsBuilder.d.ts +35 -0
  33. package/dist/cli/commands/domOptionsBuilder.d.ts.map +1 -0
  34. package/dist/cli/commands/domOptionsBuilder.js +51 -0
  35. package/dist/cli/commands/domOptionsBuilder.js.map +1 -0
  36. package/dist/cli/{collectors/helpers/selectorParser.d.ts → commands/domSelectorParser.d.ts} +1 -1
  37. package/dist/cli/commands/domSelectorParser.d.ts.map +1 -0
  38. package/dist/cli/{collectors/helpers/selectorParser.js → commands/domSelectorParser.js} +1 -1
  39. package/dist/cli/commands/domSelectorParser.js.map +1 -0
  40. package/dist/cli/commands/network.d.ts.map +1 -1
  41. package/dist/cli/commands/network.js +8 -5
  42. package/dist/cli/commands/network.js.map +1 -1
  43. package/dist/cli/commands/peek.d.ts.map +1 -1
  44. package/dist/cli/commands/peek.js +7 -7
  45. package/dist/cli/commands/peek.js.map +1 -1
  46. package/dist/cli/commands/start.d.ts.map +1 -1
  47. package/dist/cli/commands/start.js +19 -2
  48. package/dist/cli/commands/start.js.map +1 -1
  49. package/dist/cli/commands/status.d.ts.map +1 -1
  50. package/dist/cli/commands/status.js +13 -10
  51. package/dist/cli/commands/status.js.map +1 -1
  52. package/dist/cli/commands/stop.d.ts.map +1 -1
  53. package/dist/cli/commands/stop.js +7 -6
  54. package/dist/cli/commands/stop.js.map +1 -1
  55. package/dist/cli/formatters/detailsFormatter.d.ts +1 -1
  56. package/dist/cli/formatters/previewFormatter.d.ts +1 -1
  57. package/dist/cli/formatters/previewFormatter.js +1 -1
  58. package/dist/cli/formatters/previewFormatter.js.map +1 -1
  59. package/dist/cli/formatters/statusFormatter.d.ts +6 -1
  60. package/dist/cli/formatters/statusFormatter.d.ts.map +1 -1
  61. package/dist/cli/formatters/statusFormatter.js +49 -4
  62. package/dist/cli/formatters/statusFormatter.js.map +1 -1
  63. package/dist/cli/handlers/CommandRunner.d.ts.map +1 -1
  64. package/dist/cli/handlers/CommandRunner.js +5 -5
  65. package/dist/cli/handlers/CommandRunner.js.map +1 -1
  66. package/dist/cli/handlers/OutputBuilder.d.ts +1 -1
  67. package/dist/cli/handlers/daemonSessionController.d.ts +1 -1
  68. package/dist/cli/handlers/daemonSessionController.d.ts.map +1 -1
  69. package/dist/cli/handlers/daemonSessionController.js +16 -45
  70. package/dist/cli/handlers/daemonSessionController.js.map +1 -1
  71. package/dist/cli/handlers/landingPage.d.ts +8 -0
  72. package/dist/cli/handlers/landingPage.d.ts.map +1 -0
  73. package/dist/cli/handlers/landingPage.js +8 -0
  74. package/dist/cli/handlers/landingPage.js.map +1 -0
  75. package/dist/cli/registry.js +10 -10
  76. package/dist/cli/registry.js.map +1 -1
  77. package/dist/collectors/__tests__/network.contract.test.js +25 -10
  78. package/dist/collectors/__tests__/network.contract.test.js.map +1 -1
  79. package/dist/collectors/console.d.ts +1 -1
  80. package/dist/collectors/console.js.map +1 -1
  81. package/dist/collectors/dom.d.ts +1 -1
  82. package/dist/collectors/network.d.ts +1 -1
  83. package/dist/collectors/network.js.map +1 -1
  84. package/dist/commandRegistry.d.ts +11 -0
  85. package/dist/commandRegistry.d.ts.map +1 -0
  86. package/dist/commandRegistry.js +45 -0
  87. package/dist/commandRegistry.js.map +1 -0
  88. package/dist/commands/__tests__/cdp.contract.test.d.ts +24 -0
  89. package/dist/commands/__tests__/cdp.contract.test.d.ts.map +1 -0
  90. package/dist/commands/__tests__/cdp.contract.test.js +466 -0
  91. package/dist/commands/__tests__/cdp.contract.test.js.map +1 -0
  92. package/dist/commands/__tests__/domEval.contract.test.d.ts +17 -0
  93. package/dist/commands/__tests__/domEval.contract.test.d.ts.map +1 -0
  94. package/dist/commands/__tests__/domEval.contract.test.js +231 -0
  95. package/dist/commands/__tests__/domEval.contract.test.js.map +1 -0
  96. package/dist/commands/cdp.d.ts +8 -0
  97. package/dist/commands/cdp.d.ts.map +1 -0
  98. package/dist/commands/cdp.js +45 -0
  99. package/dist/commands/cdp.js.map +1 -0
  100. package/dist/commands/cleanup.d.ts +8 -0
  101. package/dist/commands/cleanup.d.ts.map +1 -0
  102. package/dist/commands/cleanup.js +170 -0
  103. package/dist/commands/cleanup.js.map +1 -0
  104. package/dist/commands/console.d.ts +8 -0
  105. package/dist/commands/console.d.ts.map +1 -0
  106. package/dist/commands/console.js +92 -0
  107. package/dist/commands/console.js.map +1 -0
  108. package/dist/commands/details.d.ts +8 -0
  109. package/dist/commands/details.d.ts.map +1 -0
  110. package/dist/commands/details.js +68 -0
  111. package/dist/commands/details.js.map +1 -0
  112. package/dist/commands/dom.d.ts +8 -0
  113. package/dist/commands/dom.d.ts.map +1 -0
  114. package/dist/commands/dom.js +249 -0
  115. package/dist/commands/dom.js.map +1 -0
  116. package/dist/commands/domErrorHandler.d.ts +45 -0
  117. package/dist/commands/domErrorHandler.d.ts.map +1 -0
  118. package/dist/commands/domErrorHandler.js +71 -0
  119. package/dist/commands/domErrorHandler.js.map +1 -0
  120. package/dist/commands/domEvalHelpers.d.ts +48 -0
  121. package/dist/commands/domEvalHelpers.d.ts.map +1 -0
  122. package/dist/commands/domEvalHelpers.js +72 -0
  123. package/dist/commands/domEvalHelpers.js.map +1 -0
  124. package/dist/commands/domOptionsBuilder.d.ts +35 -0
  125. package/dist/commands/domOptionsBuilder.d.ts.map +1 -0
  126. package/dist/commands/domOptionsBuilder.js +51 -0
  127. package/dist/commands/domOptionsBuilder.js.map +1 -0
  128. package/dist/commands/domSelectorParser.d.ts +20 -0
  129. package/dist/commands/domSelectorParser.d.ts.map +1 -0
  130. package/dist/commands/domSelectorParser.js +20 -0
  131. package/dist/commands/domSelectorParser.js.map +1 -0
  132. package/dist/commands/network.d.ts +8 -0
  133. package/dist/commands/network.d.ts.map +1 -0
  134. package/dist/commands/network.js +41 -0
  135. package/dist/commands/network.js.map +1 -0
  136. package/dist/commands/peek.d.ts +8 -0
  137. package/dist/commands/peek.d.ts.map +1 -0
  138. package/dist/commands/peek.js +115 -0
  139. package/dist/commands/peek.js.map +1 -0
  140. package/dist/commands/shared/CommandRunner.d.ts +62 -0
  141. package/dist/commands/shared/CommandRunner.d.ts.map +1 -0
  142. package/dist/commands/shared/CommandRunner.js +97 -0
  143. package/dist/commands/shared/CommandRunner.js.map +1 -0
  144. package/dist/commands/shared/OutputBuilder.d.ts +60 -0
  145. package/dist/commands/shared/OutputBuilder.d.ts.map +1 -0
  146. package/dist/commands/shared/OutputBuilder.js +138 -0
  147. package/dist/commands/shared/OutputBuilder.js.map +1 -0
  148. package/dist/commands/shared/commonOptions.d.ts +54 -0
  149. package/dist/commands/shared/commonOptions.d.ts.map +1 -0
  150. package/dist/commands/shared/commonOptions.js +65 -0
  151. package/dist/commands/shared/commonOptions.js.map +1 -0
  152. package/dist/commands/shared/daemonSessionController.d.ts +23 -0
  153. package/dist/commands/shared/daemonSessionController.d.ts.map +1 -0
  154. package/dist/commands/shared/daemonSessionController.js +79 -0
  155. package/dist/commands/shared/daemonSessionController.js.map +1 -0
  156. package/dist/commands/shared/landingPage.d.ts +8 -0
  157. package/dist/commands/shared/landingPage.d.ts.map +1 -0
  158. package/dist/commands/shared/landingPage.js +8 -0
  159. package/dist/commands/shared/landingPage.js.map +1 -0
  160. package/dist/commands/shared/sessionController.d.ts +21 -0
  161. package/dist/commands/shared/sessionController.d.ts.map +1 -0
  162. package/dist/commands/shared/sessionController.js +54 -0
  163. package/dist/commands/shared/sessionController.js.map +1 -0
  164. package/dist/commands/start.d.ts +9 -0
  165. package/dist/commands/start.d.ts.map +1 -0
  166. package/dist/commands/start.js +85 -0
  167. package/dist/commands/start.js.map +1 -0
  168. package/dist/{cli/commands/query.d.ts → commands/status.d.ts} +3 -3
  169. package/dist/commands/status.d.ts.map +1 -0
  170. package/dist/commands/status.js +88 -0
  171. package/dist/commands/status.js.map +1 -0
  172. package/dist/commands/stop.d.ts +8 -0
  173. package/dist/commands/stop.d.ts.map +1 -0
  174. package/dist/commands/stop.js +152 -0
  175. package/dist/commands/stop.js.map +1 -0
  176. package/dist/commands.d.ts +11 -0
  177. package/dist/commands.d.ts.map +1 -0
  178. package/dist/commands.js +45 -0
  179. package/dist/commands.js.map +1 -0
  180. package/dist/connection/__tests__/cdp.contract.test.d.ts.map +1 -1
  181. package/dist/connection/__tests__/cdp.contract.test.js +1 -2
  182. package/dist/connection/__tests__/cdp.contract.test.js.map +1 -1
  183. package/dist/connection/__tests__/finder.contract.test.js +1 -1
  184. package/dist/connection/__tests__/finder.contract.test.js.map +1 -1
  185. package/dist/connection/cdp.d.ts +1 -1
  186. package/dist/connection/cdp.js.map +1 -1
  187. package/dist/connection/domOperations.d.ts +48 -0
  188. package/dist/connection/domOperations.d.ts.map +1 -0
  189. package/dist/connection/domOperations.js +104 -0
  190. package/dist/connection/domOperations.js.map +1 -0
  191. package/dist/connection/finder.js.map +1 -1
  192. package/dist/connection/launcher.d.ts +7 -3
  193. package/dist/connection/launcher.d.ts.map +1 -1
  194. package/dist/connection/launcher.js +82 -21
  195. package/dist/connection/launcher.js.map +1 -1
  196. package/dist/constants.d.ts +17 -0
  197. package/dist/constants.d.ts.map +1 -1
  198. package/dist/constants.js +28 -0
  199. package/dist/constants.js.map +1 -1
  200. package/dist/daemon/__tests__/ipcServer.contract.test.js +25 -11
  201. package/dist/daemon/__tests__/ipcServer.contract.test.js.map +1 -1
  202. package/dist/daemon/ipcServer.d.ts.map +1 -1
  203. package/dist/daemon/ipcServer.js +86 -6
  204. package/dist/daemon/ipcServer.js.map +1 -1
  205. package/dist/daemon/launcher.d.ts.map +1 -1
  206. package/dist/daemon/launcher.js +8 -6
  207. package/dist/daemon/launcher.js.map +1 -1
  208. package/dist/daemon/startSession.d.ts +2 -2
  209. package/dist/daemon/startSession.d.ts.map +1 -1
  210. package/dist/daemon/startSession.js +14 -11
  211. package/dist/daemon/startSession.js.map +1 -1
  212. package/dist/daemon/worker.d.ts +1 -1
  213. package/dist/daemon/worker.js +179 -52
  214. package/dist/daemon/worker.js.map +1 -1
  215. package/dist/{cli/collectors/helpers/domCache.d.ts → dom/cache.d.ts} +1 -5
  216. package/dist/dom/cache.d.ts.map +1 -0
  217. package/dist/{cli/collectors/helpers/domCache.js → dom/cache.js} +5 -19
  218. package/dist/dom/cache.js.map +1 -0
  219. package/dist/dom/index.d.ts +9 -0
  220. package/dist/dom/index.d.ts.map +1 -0
  221. package/dist/dom/index.js +9 -0
  222. package/dist/dom/index.js.map +1 -0
  223. package/dist/{cli/collectors/helpers/domQuery.d.ts → dom/query.d.ts} +5 -2
  224. package/dist/dom/query.d.ts.map +1 -0
  225. package/dist/{cli/collectors/helpers/domQuery.js → dom/query.js} +11 -7
  226. package/dist/dom/query.js.map +1 -0
  227. package/dist/index.js +117 -35
  228. package/dist/index.js.map +1 -1
  229. package/dist/ipc/__tests__/client.contract.test.js +11 -1
  230. package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
  231. package/dist/ipc/client.d.ts +17 -4
  232. package/dist/ipc/client.d.ts.map +1 -1
  233. package/dist/ipc/client.js +26 -6
  234. package/dist/ipc/client.js.map +1 -1
  235. package/dist/ipc/commands.d.ts +52 -1
  236. package/dist/ipc/commands.d.ts.map +1 -1
  237. package/dist/ipc/commands.js +8 -0
  238. package/dist/ipc/commands.js.map +1 -1
  239. package/dist/ipc/types.d.ts +34 -3
  240. package/dist/ipc/types.d.ts.map +1 -1
  241. package/dist/ipc/types.js.map +1 -1
  242. package/dist/session/metadata.d.ts +2 -2
  243. package/dist/session/metadata.d.ts.map +1 -1
  244. package/dist/session/output.d.ts +1 -1
  245. package/dist/session/process.d.ts.map +1 -1
  246. package/dist/session/process.js +4 -3
  247. package/dist/session/process.js.map +1 -1
  248. package/dist/session/queryCache.d.ts +36 -0
  249. package/dist/session/queryCache.d.ts.map +1 -0
  250. package/dist/session/queryCache.js +66 -0
  251. package/dist/session/queryCache.js.map +1 -0
  252. package/dist/telemetry/__tests__/network.contract.test.d.ts +28 -0
  253. package/dist/telemetry/__tests__/network.contract.test.d.ts.map +1 -0
  254. package/dist/telemetry/__tests__/network.contract.test.js +540 -0
  255. package/dist/telemetry/__tests__/network.contract.test.js.map +1 -0
  256. package/dist/telemetry/console.d.ts +19 -0
  257. package/dist/telemetry/console.d.ts.map +1 -0
  258. package/dist/telemetry/console.js +87 -0
  259. package/dist/telemetry/console.js.map +1 -0
  260. package/dist/telemetry/dom.d.ts +21 -0
  261. package/dist/telemetry/dom.d.ts.map +1 -0
  262. package/dist/telemetry/dom.js +99 -0
  263. package/dist/telemetry/dom.js.map +1 -0
  264. package/dist/telemetry/network.d.ts +33 -0
  265. package/dist/telemetry/network.d.ts.map +1 -0
  266. package/dist/telemetry/network.js +191 -0
  267. package/dist/telemetry/network.js.map +1 -0
  268. package/dist/types.d.ts +25 -1
  269. package/dist/types.d.ts.map +1 -1
  270. package/dist/ui/errors.d.ts +39 -0
  271. package/dist/ui/errors.d.ts.map +1 -0
  272. package/dist/ui/errors.js +48 -0
  273. package/dist/ui/errors.js.map +1 -0
  274. package/dist/ui/formatters/cookies.d.ts +32 -0
  275. package/dist/ui/formatters/cookies.d.ts.map +1 -0
  276. package/dist/ui/formatters/cookies.js +45 -0
  277. package/dist/ui/formatters/cookies.js.map +1 -0
  278. package/dist/ui/formatters/details.d.ts +10 -0
  279. package/dist/ui/formatters/details.d.ts.map +1 -0
  280. package/dist/ui/formatters/details.js +61 -0
  281. package/dist/ui/formatters/details.js.map +1 -0
  282. package/dist/ui/formatters/dom.d.ts +135 -0
  283. package/dist/ui/formatters/dom.d.ts.map +1 -0
  284. package/dist/ui/formatters/dom.js +193 -0
  285. package/dist/ui/formatters/dom.js.map +1 -0
  286. package/dist/ui/formatters/index.d.ts +11 -0
  287. package/dist/ui/formatters/index.d.ts.map +1 -0
  288. package/dist/ui/formatters/index.js +11 -0
  289. package/dist/ui/formatters/index.js.map +1 -0
  290. package/dist/ui/formatters/preview.d.ts +25 -0
  291. package/dist/ui/formatters/preview.d.ts.map +1 -0
  292. package/dist/ui/formatters/preview.js +182 -0
  293. package/dist/ui/formatters/preview.js.map +1 -0
  294. package/dist/ui/formatters/status.d.ts +39 -0
  295. package/dist/ui/formatters/status.d.ts.map +1 -0
  296. package/dist/ui/formatters/status.js +153 -0
  297. package/dist/ui/formatters/status.js.map +1 -0
  298. package/dist/ui/formatting.d.ts +300 -0
  299. package/dist/ui/formatting.d.ts.map +1 -0
  300. package/dist/ui/formatting.js +454 -0
  301. package/dist/ui/formatting.js.map +1 -0
  302. package/dist/ui/messages/chrome.d.ts +172 -0
  303. package/dist/ui/messages/chrome.d.ts.map +1 -0
  304. package/dist/ui/messages/chrome.js +253 -0
  305. package/dist/ui/messages/chrome.js.map +1 -0
  306. package/dist/ui/messages/commands.d.ts +88 -0
  307. package/dist/ui/messages/commands.d.ts.map +1 -0
  308. package/dist/ui/messages/commands.js +150 -0
  309. package/dist/ui/messages/commands.js.map +1 -0
  310. package/dist/ui/messages/consoleMessages.d.ts +39 -0
  311. package/dist/ui/messages/consoleMessages.d.ts.map +1 -0
  312. package/dist/ui/messages/consoleMessages.js +48 -0
  313. package/dist/ui/messages/consoleMessages.js.map +1 -0
  314. package/dist/ui/messages/debug.d.ts +182 -0
  315. package/dist/ui/messages/debug.d.ts.map +1 -0
  316. package/dist/ui/messages/debug.js +243 -0
  317. package/dist/ui/messages/debug.js.map +1 -0
  318. package/dist/ui/messages/errors.d.ts +91 -0
  319. package/dist/ui/messages/errors.d.ts.map +1 -0
  320. package/dist/ui/messages/errors.js +135 -0
  321. package/dist/ui/messages/errors.js.map +1 -0
  322. package/dist/ui/messages/index.d.ts +12 -0
  323. package/dist/ui/messages/index.d.ts.map +1 -0
  324. package/dist/ui/messages/index.js +12 -0
  325. package/dist/ui/messages/index.js.map +1 -0
  326. package/dist/ui/messages/internal.d.ts +30 -0
  327. package/dist/ui/messages/internal.d.ts.map +1 -0
  328. package/dist/ui/messages/internal.js +42 -0
  329. package/dist/ui/messages/internal.js.map +1 -0
  330. package/dist/ui/messages/preview.d.ts +51 -0
  331. package/dist/ui/messages/preview.d.ts.map +1 -0
  332. package/dist/ui/messages/preview.js +76 -0
  333. package/dist/ui/messages/preview.js.map +1 -0
  334. package/dist/ui/messages/session.d.ts +54 -0
  335. package/dist/ui/messages/session.d.ts.map +1 -0
  336. package/dist/ui/messages/session.js +77 -0
  337. package/dist/ui/messages/session.js.map +1 -0
  338. package/dist/ui/messages/validation.d.ts +34 -0
  339. package/dist/ui/messages/validation.d.ts.map +1 -0
  340. package/dist/ui/messages/validation.js +38 -0
  341. package/dist/ui/messages/validation.js.map +1 -0
  342. package/dist/utils/__tests__/filters.unit.test.js +1 -1
  343. package/dist/utils/cdpHandlers.d.ts +1 -1
  344. package/dist/utils/cdpHandlers.js +1 -1
  345. package/dist/utils/chromeDiagnostics.d.ts +0 -12
  346. package/dist/utils/chromeDiagnostics.d.ts.map +1 -1
  347. package/dist/utils/chromeDiagnostics.js +0 -51
  348. package/dist/utils/chromeDiagnostics.js.map +1 -1
  349. package/dist/utils/filters.js +1 -1
  350. package/dist/utils/filters.js.map +1 -1
  351. package/dist/utils/http.d.ts +1 -1
  352. package/dist/utils/http.js.map +1 -1
  353. package/dist/utils/logger.d.ts +68 -12
  354. package/dist/utils/logger.d.ts.map +1 -1
  355. package/dist/utils/logger.js +62 -12
  356. package/dist/utils/logger.js.map +1 -1
  357. package/dist/utils/pageReadiness.d.ts +46 -0
  358. package/dist/utils/pageReadiness.d.ts.map +1 -0
  359. package/dist/utils/pageReadiness.js +271 -0
  360. package/dist/utils/pageReadiness.js.map +1 -0
  361. package/dist/utils/ui.d.ts +36 -0
  362. package/dist/utils/ui.d.ts.map +1 -0
  363. package/dist/utils/ui.js +47 -0
  364. package/dist/utils/ui.js.map +1 -0
  365. package/dist/utils/url.d.ts +60 -26
  366. package/dist/utils/url.d.ts.map +1 -1
  367. package/dist/utils/url.js +130 -84
  368. package/dist/utils/url.js.map +1 -1
  369. package/package.json +2 -5
  370. package/dist/cli/collectors/dom.d.ts.map +0 -1
  371. package/dist/cli/collectors/dom.js +0 -361
  372. package/dist/cli/collectors/dom.js.map +0 -1
  373. package/dist/cli/collectors/helpers/domCache.d.ts.map +0 -1
  374. package/dist/cli/collectors/helpers/domCache.js.map +0 -1
  375. package/dist/cli/collectors/helpers/domQuery.d.ts.map +0 -1
  376. package/dist/cli/collectors/helpers/domQuery.js.map +0 -1
  377. package/dist/cli/collectors/helpers/selectorParser.d.ts.map +0 -1
  378. package/dist/cli/collectors/helpers/selectorParser.js.map +0 -1
  379. package/dist/cli/commands/__tests__/ipcTest.test.d.ts +0 -2
  380. package/dist/cli/commands/__tests__/ipcTest.test.d.ts.map +0 -1
  381. package/dist/cli/commands/__tests__/ipcTest.test.js +0 -37
  382. package/dist/cli/commands/__tests__/ipcTest.test.js.map +0 -1
  383. package/dist/cli/commands/ipcTest.d.ts +0 -23
  384. package/dist/cli/commands/ipcTest.d.ts.map +0 -1
  385. package/dist/cli/commands/ipcTest.js +0 -181
  386. package/dist/cli/commands/ipcTest.js.map +0 -1
  387. package/dist/cli/commands/query.d.ts.map +0 -1
  388. package/dist/cli/commands/query.js +0 -127
  389. package/dist/cli/commands/query.js.map +0 -1
  390. package/dist/cli/handlers/ChromeBootstrap.d.ts +0 -24
  391. package/dist/cli/handlers/ChromeBootstrap.d.ts.map +0 -1
  392. package/dist/cli/handlers/ChromeBootstrap.js +0 -50
  393. package/dist/cli/handlers/ChromeBootstrap.js.map +0 -1
  394. package/dist/cli/handlers/OutputWriter.d.ts +0 -15
  395. package/dist/cli/handlers/OutputWriter.d.ts.map +0 -1
  396. package/dist/cli/handlers/OutputWriter.js +0 -34
  397. package/dist/cli/handlers/OutputWriter.js.map +0 -1
  398. package/dist/cli/handlers/PreviewWriter.d.ts +0 -52
  399. package/dist/cli/handlers/PreviewWriter.d.ts.map +0 -1
  400. package/dist/cli/handlers/PreviewWriter.js +0 -119
  401. package/dist/cli/handlers/PreviewWriter.js.map +0 -1
  402. package/dist/cli/handlers/SessionLock.d.ts +0 -16
  403. package/dist/cli/handlers/SessionLock.d.ts.map +0 -1
  404. package/dist/cli/handlers/SessionLock.js +0 -38
  405. package/dist/cli/handlers/SessionLock.js.map +0 -1
  406. package/dist/cli/handlers/SessionLoop.d.ts +0 -19
  407. package/dist/cli/handlers/SessionLoop.d.ts.map +0 -1
  408. package/dist/cli/handlers/SessionLoop.js +0 -47
  409. package/dist/cli/handlers/SessionLoop.js.map +0 -1
  410. package/dist/cli/handlers/ShutdownController.d.ts +0 -38
  411. package/dist/cli/handlers/ShutdownController.d.ts.map +0 -1
  412. package/dist/cli/handlers/ShutdownController.js +0 -83
  413. package/dist/cli/handlers/ShutdownController.js.map +0 -1
  414. package/dist/cli/handlers/SignalHandler.d.ts +0 -35
  415. package/dist/cli/handlers/SignalHandler.d.ts.map +0 -1
  416. package/dist/cli/handlers/SignalHandler.js +0 -81
  417. package/dist/cli/handlers/SignalHandler.js.map +0 -1
  418. package/dist/cli/handlers/TargetSetup.d.ts +0 -42
  419. package/dist/cli/handlers/TargetSetup.d.ts.map +0 -1
  420. package/dist/cli/handlers/TargetSetup.js +0 -87
  421. package/dist/cli/handlers/TargetSetup.js.map +0 -1
  422. package/dist/connection/__tests__/tabs.contract.test.d.ts +0 -2
  423. package/dist/connection/__tests__/tabs.contract.test.d.ts.map +0 -1
  424. package/dist/connection/__tests__/tabs.contract.test.js +0 -137
  425. package/dist/connection/__tests__/tabs.contract.test.js.map +0 -1
  426. package/dist/connection/tabs.d.ts +0 -82
  427. package/dist/connection/tabs.d.ts.map +0 -1
  428. package/dist/connection/tabs.js +0 -577
  429. package/dist/connection/tabs.js.map +0 -1
  430. package/dist/session/BdgSession.d.ts +0 -129
  431. package/dist/session/BdgSession.d.ts.map +0 -1
  432. package/dist/session/BdgSession.js +0 -270
  433. package/dist/session/BdgSession.js.map +0 -1
  434. package/dist/session/index.d.ts +0 -15
  435. package/dist/session/index.d.ts.map +0 -1
  436. package/dist/session/index.js +0 -23
  437. package/dist/session/index.js.map +0 -1
  438. package/dist/utils/validation.d.ts +0 -12
  439. package/dist/utils/validation.d.ts.map +0 -1
  440. package/dist/utils/validation.js +0 -20
  441. package/dist/utils/validation.js.map +0 -1
  442. /package/dist/cli/{collectors → commands}/dom.d.ts +0 -0
@@ -0,0 +1,68 @@
1
+ import { runCommand } from '../commands/shared/CommandRunner.js';
2
+ import { jsonOption } from '../commands/shared/commonOptions.js';
3
+ import { getDetails } from '../ipc/client.js';
4
+ import { validateIPCResponse } from '../ipc/responseValidator.js';
5
+ import { formatNetworkDetails, formatConsoleDetails } from '../ui/formatters/details.js';
6
+ import { EXIT_CODES } from '../utils/exitCodes.js';
7
+ /**
8
+ * Format details for human-readable output.
9
+ * Dispatches to the appropriate formatter based on type.
10
+ *
11
+ * @param data - Details result containing item and type
12
+ */
13
+ function formatDetails(data) {
14
+ if (data.type === 'network') {
15
+ return formatNetworkDetails(data.item);
16
+ }
17
+ else {
18
+ return formatConsoleDetails(data.item);
19
+ }
20
+ }
21
+ /**
22
+ * Register details command.
23
+ *
24
+ * @param program - Commander.js Command instance to register commands on
25
+ */
26
+ export function registerDetailsCommand(program) {
27
+ program
28
+ .command('details')
29
+ .description('Get detailed information for a specific request or console message')
30
+ .argument('<type>', 'Type of item: "network" or "console"')
31
+ .argument('<id>', 'Request ID (for network) or index (for console)')
32
+ .addOption(jsonOption)
33
+ .action(async (type, id, options) => {
34
+ // Store arguments in options for handler (type assertion safe due to validation below)
35
+ options.type = type;
36
+ options.id = id;
37
+ await runCommand(async (opts) => {
38
+ // Validate type argument
39
+ if (opts.type !== 'network' && opts.type !== 'console') {
40
+ return {
41
+ success: false,
42
+ error: `Unknown type: ${String(opts.type)}. Valid types: network, console`,
43
+ exitCode: EXIT_CODES.INVALID_ARGUMENTS,
44
+ };
45
+ }
46
+ // Fetch details via IPC from daemon/worker
47
+ const response = await getDetails(opts.type, opts.id);
48
+ // Validate IPC response (throws on error)
49
+ validateIPCResponse(response);
50
+ // Check for data in response
51
+ if (!response.data?.item) {
52
+ return {
53
+ success: false,
54
+ error: 'No data in response',
55
+ exitCode: EXIT_CODES.RESOURCE_NOT_FOUND,
56
+ };
57
+ }
58
+ return {
59
+ success: true,
60
+ data: {
61
+ item: response.data.item,
62
+ type: opts.type,
63
+ },
64
+ };
65
+ }, options, formatDetails);
66
+ });
67
+ }
68
+ //# sourceMappingURL=details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"details.js","sourceRoot":"","sources":["../../src/commands/details.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAsBlD;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAsB,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,OAAO,oBAAoB,CAAC,IAAI,CAAC,IAAsB,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,oEAAoE,CAAC;SACjF,QAAQ,CAAC,QAAQ,EAAE,sCAAsC,CAAC;SAC1D,QAAQ,CAAC,MAAM,EAAE,iDAAiD,CAAC;SACnE,SAAS,CAAC,UAAU,CAAC;SACrB,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAU,EAAE,OAAuB,EAAE,EAAE;QAClE,uFAAuF;QACvF,OAAO,CAAC,IAAI,GAAG,IAA6B,CAAC;QAC7C,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAEhB,MAAM,UAAU,CACd,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,yBAAyB;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC;oBAC1E,QAAQ,EAAE,UAAU,CAAC,iBAAiB;iBACvC,CAAC;YACJ,CAAC;YAED,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAEtD,0CAA0C;YAC1C,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAE9B,6BAA6B;YAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,qBAAqB;oBAC5B,QAAQ,EAAE,UAAU,CAAC,kBAAkB;iBACxC,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAkD;oBACtE,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB;aACF,CAAC;QACJ,CAAC,EACD,OAAO,EACP,aAAa,CACd,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Command } from 'commander';
2
+ /**
3
+ * Register DOM telemetry commands
4
+ *
5
+ * @param program - Commander.js Command instance
6
+ */
7
+ export declare function registerDomCommands(program: Command): void;
8
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/commands/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAySzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgE1D"}
@@ -0,0 +1,249 @@
1
+ import { runCommand } from '../commands/shared/CommandRunner.js';
2
+ import { queryDOM, highlightDOM, getDOM, captureScreenshot } from '../ipc/client.js';
3
+ import { formatDomQuery, formatDomHighlight, formatDomGet, formatDomEval, formatDomScreenshot, } from '../ui/formatters/dom.js';
4
+ import { filterDefined } from '../utils/objects.js';
5
+ import { buildSelectorOptions } from './domOptionsBuilder.js';
6
+ /**
7
+ * Handle bdg dom query <selector> command
8
+ *
9
+ * Queries the DOM using a CSS selector and displays matching elements.
10
+ * Results are cached for 5 minutes to enable index-based references in other commands.
11
+ *
12
+ * @param selector - CSS selector to query (e.g., ".error", "#app", "button")
13
+ * @param options - Command options
14
+ */
15
+ async function handleDomQuery(selector, options) {
16
+ await runCommand(async () => {
17
+ const response = await queryDOM(selector);
18
+ if (response.status === 'error') {
19
+ return {
20
+ success: false,
21
+ error: response.error ?? 'Unknown error',
22
+ };
23
+ }
24
+ if (!response.data) {
25
+ return {
26
+ success: false,
27
+ error: 'No data in response',
28
+ };
29
+ }
30
+ return {
31
+ success: true,
32
+ data: response.data,
33
+ };
34
+ }, options, formatDomQuery);
35
+ }
36
+ /**
37
+ * Handle bdg dom highlight command
38
+ *
39
+ * Highlights elements in the browser with visual overlay. Accepts CSS selector,
40
+ * cached index from previous query, or direct nodeId.
41
+ *
42
+ * @param selectorOrIndex - CSS selector (e.g., ".error") or index from cached query (e.g., "2")
43
+ * @param options - Command options including color, opacity, targeting flags, and nodeId
44
+ */
45
+ async function handleDomHighlight(selectorOrIndex, options) {
46
+ await runCommand(async () => {
47
+ // Build base IPC request options (color, opacity, targeting)
48
+ const ipcOptions = {
49
+ ...(options.color !== undefined && { color: options.color }),
50
+ ...(options.opacity !== undefined && { opacity: options.opacity }),
51
+ ...(options.first !== undefined && { first: options.first }),
52
+ ...(options.nth !== undefined && { nth: options.nth }),
53
+ };
54
+ // Add selector/index/nodeId using shared helper
55
+ const selectorOptions = buildSelectorOptions(selectorOrIndex, options.nodeId);
56
+ Object.assign(ipcOptions, selectorOptions);
57
+ const response = await highlightDOM(ipcOptions);
58
+ if (response.status === 'error') {
59
+ return {
60
+ success: false,
61
+ error: response.error ?? 'Unknown error',
62
+ };
63
+ }
64
+ if (!response.data) {
65
+ return {
66
+ success: false,
67
+ error: 'No data in response',
68
+ };
69
+ }
70
+ return {
71
+ success: true,
72
+ data: response.data,
73
+ };
74
+ }, options, formatDomHighlight);
75
+ }
76
+ /**
77
+ * Handle bdg dom get command
78
+ *
79
+ * Retrieves full HTML and attributes for DOM elements. Accepts CSS selector,
80
+ * cached index from previous query, or direct nodeId.
81
+ *
82
+ * @param selectorOrIndex - CSS selector (e.g., ".error") or index from cached query (e.g., "2")
83
+ * @param options - Command options including --all, --nth, and nodeId
84
+ */
85
+ async function handleDomGet(selectorOrIndex, options) {
86
+ await runCommand(async () => {
87
+ // Build base IPC request options (targeting flags)
88
+ const ipcOptions = {
89
+ ...(options.all !== undefined && { all: options.all }),
90
+ ...(options.nth !== undefined && { nth: options.nth }),
91
+ };
92
+ // Add selector/index/nodeId using shared helper
93
+ const selectorOptions = buildSelectorOptions(selectorOrIndex, options.nodeId);
94
+ Object.assign(ipcOptions, selectorOptions);
95
+ const response = await getDOM(ipcOptions);
96
+ if (response.status === 'error') {
97
+ return {
98
+ success: false,
99
+ error: response.error ?? 'Unknown error',
100
+ };
101
+ }
102
+ if (!response.data) {
103
+ return {
104
+ success: false,
105
+ error: 'No data in response',
106
+ };
107
+ }
108
+ return {
109
+ success: true,
110
+ data: response.data,
111
+ };
112
+ }, options, formatDomGet);
113
+ }
114
+ /**
115
+ * Handle bdg dom screenshot <path> command
116
+ *
117
+ * Captures a screenshot of the current page and saves it to disk.
118
+ * Supports PNG and JPEG formats with customizable quality and viewport options.
119
+ *
120
+ * @param path - Output file path (absolute or relative)
121
+ * @param options - Screenshot options (format, quality, fullPage)
122
+ */
123
+ async function handleDomScreenshot(path, options) {
124
+ await runCommand(async () => {
125
+ const screenshotOptions = filterDefined({
126
+ format: options.format,
127
+ quality: options.quality,
128
+ fullPage: options.fullPage,
129
+ });
130
+ const response = await captureScreenshot(path, screenshotOptions);
131
+ if (response.status === 'error') {
132
+ return {
133
+ success: false,
134
+ error: response.error ?? 'Unknown error',
135
+ };
136
+ }
137
+ if (!response.data) {
138
+ return {
139
+ success: false,
140
+ error: 'No data in response',
141
+ };
142
+ }
143
+ return {
144
+ success: true,
145
+ data: response.data,
146
+ };
147
+ }, options, formatDomScreenshot);
148
+ }
149
+ /**
150
+ * Handle bdg dom eval <script> command
151
+ *
152
+ * Evaluates arbitrary JavaScript in the browser context and returns the result.
153
+ * Requires an active session. Uses CDP Runtime.evaluate with async support.
154
+ * Note: This command uses direct CDP connection (not IPC) so it follows a different pattern.
155
+ *
156
+ * @param script - JavaScript expression to evaluate (e.g., "document.title", "window.location.href")
157
+ * @param options - Command options including port and json formatting
158
+ */
159
+ async function handleDomEval(script, options) {
160
+ await runCommand(async () => {
161
+ // Lazy load CDP connection (only needed for eval command)
162
+ const { CDPConnection } = await import('../connection/cdp.js');
163
+ const { validateActiveSession, getValidatedSessionMetadata, verifyTargetExists, executeScript, } = await import('./domEvalHelpers.js');
164
+ // Validate session is running
165
+ validateActiveSession();
166
+ // Get and validate session metadata
167
+ const metadata = getValidatedSessionMetadata();
168
+ // Verify target still exists
169
+ const port = parseInt(options.port ?? '9222', 10);
170
+ await verifyTargetExists(metadata, port);
171
+ // Create temporary CDP connection and execute script
172
+ const cdp = new CDPConnection();
173
+ // getValidatedSessionMetadata ensures webSocketDebuggerUrl is defined
174
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
175
+ await cdp.connect(metadata.webSocketDebuggerUrl);
176
+ const result = await executeScript(cdp, script);
177
+ cdp.close();
178
+ return {
179
+ success: true,
180
+ data: { result: result.result?.value },
181
+ };
182
+ }, options, formatDomEval);
183
+ }
184
+ /**
185
+ * Register DOM telemetry commands
186
+ *
187
+ * @param program - Commander.js Command instance
188
+ */
189
+ export function registerDomCommands(program) {
190
+ const dom = program.command('dom').description('DOM inspection and manipulation');
191
+ // bdg dom query <selector>
192
+ dom
193
+ .command('query')
194
+ .description('Find elements by CSS selector')
195
+ .argument('<selector>', 'CSS selector (e.g., ".error", "#app", "button")')
196
+ .option('-j, --json', 'Output as JSON')
197
+ .action(async (selector, options) => {
198
+ await handleDomQuery(selector, options);
199
+ });
200
+ // bdg dom eval <script>
201
+ dom
202
+ .command('eval')
203
+ .description('Evaluate JavaScript expression in the page context')
204
+ .argument('<script>', 'JavaScript to execute (e.g., "document.title", "window.location.href")')
205
+ .option('-p, --port <number>', 'Chrome debugging port (default: 9222)')
206
+ .option('-j, --json', 'Wrap result in version/success format')
207
+ .action(async (script, options) => {
208
+ await handleDomEval(script, options);
209
+ });
210
+ // bdg dom highlight <selector|index>
211
+ dom
212
+ .command('highlight')
213
+ .description('Highlight elements in browser')
214
+ .argument('<selector|index>', 'CSS selector or index from last query')
215
+ .option('--first', 'Target first match only')
216
+ .option('--nth <n>', 'Target nth match', parseInt)
217
+ .option('--node-id <id>', 'Use nodeId directly (advanced)', parseInt)
218
+ .option('--color <color>', 'Highlight color (red, blue, green, yellow, orange, purple)')
219
+ .option('--opacity <value>', 'Highlight opacity (0.0 - 1.0)', parseFloat)
220
+ .option('-j, --json', 'Output as JSON')
221
+ .action(async (selectorOrIndex, options) => {
222
+ await handleDomHighlight(selectorOrIndex, options);
223
+ });
224
+ // bdg dom get <selector|index>
225
+ dom
226
+ .command('get')
227
+ .description('Get full HTML and attributes for elements')
228
+ .argument('<selector|index>', 'CSS selector or index from last query')
229
+ .option('--all', 'Target all matches')
230
+ .option('--nth <n>', 'Target nth match', parseInt)
231
+ .option('--node-id <id>', 'Use nodeId directly (advanced)', parseInt)
232
+ .option('-j, --json', 'Output as JSON')
233
+ .action(async (selectorOrIndex, options) => {
234
+ await handleDomGet(selectorOrIndex, options);
235
+ });
236
+ // bdg dom screenshot <path>
237
+ dom
238
+ .command('screenshot')
239
+ .description('Capture page screenshot')
240
+ .argument('<path>', 'Output file path (e.g., "./screenshot.png")')
241
+ .option('--format <format>', 'Image format: png or jpeg (default: png)')
242
+ .option('--quality <number>', 'JPEG quality 0-100 (default: 90)', parseInt)
243
+ .option('--no-full-page', 'Capture viewport only (default: full page)')
244
+ .option('-j, --json', 'Output as JSON')
245
+ .action(async (path, options) => {
246
+ await handleDomScreenshot(path, options);
247
+ });
248
+ }
249
+ //# sourceMappingURL=dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/commands/dom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Handle command errors with consistent formatting
3
+ *
4
+ * Outputs error message in JSON or human-readable format and exits with error code.
5
+ * This function never returns - it always calls process.exit().
6
+ *
7
+ * @param error - Error object or message
8
+ * @param json - Whether to output JSON format
9
+ * @param exitCode - Exit code to use (defaults to UNHANDLED_EXCEPTION)
10
+ * @throws never This function always exits the process
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * try {
15
+ * await someOperation();
16
+ * } catch (error) {
17
+ * handleCommandError(error, options.json);
18
+ * }
19
+ * ```
20
+ */
21
+ export declare function handleCommandError(error: unknown, json: boolean, exitCode?: number): never;
22
+ /**
23
+ * Handle command errors with additional context
24
+ *
25
+ * Similar to handleCommandError but allows adding suggestion or note metadata
26
+ * to JSON error output for better user guidance.
27
+ *
28
+ * @param error - Error object or message
29
+ * @param json - Whether to output JSON format
30
+ * @param metadata - Additional context (suggestion, note, etc.)
31
+ * @param exitCode - Exit code to use (defaults to UNHANDLED_EXCEPTION)
32
+ * @throws never This function always exits the process
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * handleCommandErrorWithContext(
37
+ * 'Session not found',
38
+ * options.json,
39
+ * { suggestion: 'Start a session with: bdg <url>' },
40
+ * EXIT_CODES.RESOURCE_NOT_FOUND
41
+ * );
42
+ * ```
43
+ */
44
+ export declare function handleCommandErrorWithContext(error: unknown, json: boolean, metadata: Record<string, string>, exitCode?: number): never;
45
+ //# sourceMappingURL=domErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domErrorHandler.d.ts","sourceRoot":"","sources":["../../src/commands/domErrorHandler.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,EACb,QAAQ,GAAE,MAAuC,GAChD,KAAK,CAQP;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,GAAE,MAAuC,GAChD,KAAK,CAYP"}
@@ -0,0 +1,71 @@
1
+ import { OutputBuilder } from '../commands/shared/OutputBuilder.js';
2
+ import { genericError } from '../ui/messages/errors.js';
3
+ import { getErrorMessage } from '../utils/errors.js';
4
+ import { EXIT_CODES } from '../utils/exitCodes.js';
5
+ /**
6
+ * Handle command errors with consistent formatting
7
+ *
8
+ * Outputs error message in JSON or human-readable format and exits with error code.
9
+ * This function never returns - it always calls process.exit().
10
+ *
11
+ * @param error - Error object or message
12
+ * @param json - Whether to output JSON format
13
+ * @param exitCode - Exit code to use (defaults to UNHANDLED_EXCEPTION)
14
+ * @throws never This function always exits the process
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * try {
19
+ * await someOperation();
20
+ * } catch (error) {
21
+ * handleCommandError(error, options.json);
22
+ * }
23
+ * ```
24
+ */
25
+ export function handleCommandError(error, json, exitCode = EXIT_CODES.UNHANDLED_EXCEPTION) {
26
+ const errorMsg = getErrorMessage(error);
27
+ if (json) {
28
+ console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg), null, 2));
29
+ }
30
+ else {
31
+ console.error(genericError(errorMsg));
32
+ }
33
+ process.exit(exitCode);
34
+ }
35
+ /**
36
+ * Handle command errors with additional context
37
+ *
38
+ * Similar to handleCommandError but allows adding suggestion or note metadata
39
+ * to JSON error output for better user guidance.
40
+ *
41
+ * @param error - Error object or message
42
+ * @param json - Whether to output JSON format
43
+ * @param metadata - Additional context (suggestion, note, etc.)
44
+ * @param exitCode - Exit code to use (defaults to UNHANDLED_EXCEPTION)
45
+ * @throws never This function always exits the process
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * handleCommandErrorWithContext(
50
+ * 'Session not found',
51
+ * options.json,
52
+ * { suggestion: 'Start a session with: bdg <url>' },
53
+ * EXIT_CODES.RESOURCE_NOT_FOUND
54
+ * );
55
+ * ```
56
+ */
57
+ export function handleCommandErrorWithContext(error, json, metadata, exitCode = EXIT_CODES.UNHANDLED_EXCEPTION) {
58
+ const errorMsg = getErrorMessage(error);
59
+ if (json) {
60
+ console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg, metadata), null, 2));
61
+ }
62
+ else {
63
+ console.error(genericError(errorMsg));
64
+ // Output metadata as additional help text
65
+ for (const value of Object.values(metadata)) {
66
+ console.error(`${value}`);
67
+ }
68
+ }
69
+ process.exit(exitCode);
70
+ }
71
+ //# sourceMappingURL=domErrorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domErrorHandler.js","sourceRoot":"","sources":["../../src/commands/domErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,IAAa,EACb,WAAmB,UAAU,CAAC,mBAAmB;IAEjD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAc,EACd,IAAa,EACb,QAAgC,EAChC,WAAmB,UAAU,CAAC,mBAAmB;IAEjD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtC,0CAA0C;QAC1C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { CDPConnection } from '../connection/cdp.js';
2
+ import { type SessionMetadata } from '../session/metadata.js';
3
+ /**
4
+ * CDP Runtime.evaluate result
5
+ */
6
+ interface RuntimeEvaluateResult {
7
+ exceptionDetails?: {
8
+ exception?: {
9
+ description?: string;
10
+ };
11
+ };
12
+ result?: {
13
+ value?: unknown;
14
+ };
15
+ }
16
+ /**
17
+ * Validate that an active session is running
18
+ *
19
+ * @returns PID of running session
20
+ * @throws Error When no active session is found
21
+ */
22
+ export declare function validateActiveSession(): number;
23
+ /**
24
+ * Get session metadata with validation
25
+ *
26
+ * @returns Session metadata including targetId and webSocketDebuggerUrl
27
+ * @throws Error When metadata is invalid or missing required fields
28
+ */
29
+ export declare function getValidatedSessionMetadata(): SessionMetadata;
30
+ /**
31
+ * Verify that the CDP target still exists
32
+ *
33
+ * @param metadata - Session metadata containing targetId
34
+ * @param port - CDP port number
35
+ * @throws Error When CDP response is invalid or target not found
36
+ */
37
+ export declare function verifyTargetExists(metadata: SessionMetadata, port: number): Promise<void>;
38
+ /**
39
+ * Execute JavaScript in browser context via CDP
40
+ *
41
+ * @param cdp - CDP connection instance
42
+ * @param script - JavaScript expression to execute
43
+ * @returns Execution result
44
+ * @throws Error When script execution throws exception
45
+ */
46
+ export declare function executeScript(cdp: CDPConnection, script: string): Promise<RuntimeEvaluateResult>;
47
+ export {};
48
+ //# sourceMappingURL=domEvalHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domEvalHelpers.d.ts","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAclF;;GAEG;AACH,UAAU,qBAAqB;IAC7B,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE;YACV,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAU9C;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,eAAe,CAY7D;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/F;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC,CAehC"}
@@ -0,0 +1,72 @@
1
+ import { readSessionMetadata } from '../session/metadata.js';
2
+ import { readPid } from '../session/pid.js';
3
+ import { isProcessAlive } from '../session/process.js';
4
+ import { CommandError } from '../ui/errors.js';
5
+ import { invalidCDPResponseError } from '../ui/messages/errors.js';
6
+ import { EXIT_CODES } from '../utils/exitCodes.js';
7
+ /**
8
+ * Validate that an active session is running
9
+ *
10
+ * @returns PID of running session
11
+ * @throws Error When no active session is found
12
+ */
13
+ export function validateActiveSession() {
14
+ const pid = readPid();
15
+ if (!pid || !isProcessAlive(pid)) {
16
+ throw new CommandError('No active session running', { suggestion: 'Start a session with: bdg <url>' }, EXIT_CODES.RESOURCE_NOT_FOUND);
17
+ }
18
+ return pid;
19
+ }
20
+ /**
21
+ * Get session metadata with validation
22
+ *
23
+ * @returns Session metadata including targetId and webSocketDebuggerUrl
24
+ * @throws Error When metadata is invalid or missing required fields
25
+ */
26
+ export function getValidatedSessionMetadata() {
27
+ const metadata = readSessionMetadata();
28
+ if (!metadata?.targetId || !metadata.webSocketDebuggerUrl) {
29
+ throw new CommandError('No target information in session metadata', { note: 'Session may have been started with an older version' }, EXIT_CODES.SESSION_FILE_ERROR);
30
+ }
31
+ return metadata;
32
+ }
33
+ /**
34
+ * Verify that the CDP target still exists
35
+ *
36
+ * @param metadata - Session metadata containing targetId
37
+ * @param port - CDP port number
38
+ * @throws Error When CDP response is invalid or target not found
39
+ */
40
+ export async function verifyTargetExists(metadata, port) {
41
+ const response = await fetch(`http://127.0.0.1:${port}/json/list`);
42
+ const targetsData = await response.json();
43
+ if (!Array.isArray(targetsData)) {
44
+ throw new Error(invalidCDPResponseError());
45
+ }
46
+ const target = targetsData.find((t) => t.id === metadata.targetId);
47
+ if (!target) {
48
+ throw new CommandError('Session target not found (tab may have been closed)', { suggestion: 'Start a new session with: bdg <url>' }, EXIT_CODES.RESOURCE_NOT_FOUND);
49
+ }
50
+ }
51
+ /**
52
+ * Execute JavaScript in browser context via CDP
53
+ *
54
+ * @param cdp - CDP connection instance
55
+ * @param script - JavaScript expression to execute
56
+ * @returns Execution result
57
+ * @throws Error When script execution throws exception
58
+ */
59
+ export async function executeScript(cdp, script) {
60
+ const result = (await cdp.send('Runtime.evaluate', {
61
+ expression: script,
62
+ returnByValue: true,
63
+ awaitPromise: true,
64
+ }));
65
+ // Check for execution exceptions
66
+ if (result.exceptionDetails) {
67
+ const errorMsg = result.exceptionDetails.exception?.description ?? 'Unknown error executing script';
68
+ throw new Error(errorMsg);
69
+ }
70
+ return result;
71
+ }
72
+ //# sourceMappingURL=domEvalHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domEvalHelpers.js","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAuBlD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,YAAY,CACpB,2BAA2B,EAC3B,EAAE,UAAU,EAAE,iCAAiC,EAAE,EACjD,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IAEvC,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAC1D,MAAM,IAAI,YAAY,CACpB,2CAA2C,EAC3C,EAAE,IAAI,EAAE,qDAAqD,EAAE,EAC/D,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAyB,EAAE,IAAY;IAC9E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,YAAY,CAAC,CAAC;IACnE,MAAM,WAAW,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,MAAM,GAAI,WAA2B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEpF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,YAAY,CACpB,qDAAqD,EACrD,EAAE,UAAU,EAAE,qCAAqC,EAAE,EACrD,UAAU,CAAC,kBAAkB,CAC9B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAkB,EAClB,MAAc;IAEd,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;QACjD,UAAU,EAAE,MAAM;QAClB,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAA0B,CAAC;IAE7B,iCAAiC;IACjC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,QAAQ,GACZ,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,IAAI,gCAAgC,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Base interface for IPC options that accept selector, index, or nodeId
3
+ */
4
+ export interface SelectorBasedOptions {
5
+ selector?: string;
6
+ index?: number;
7
+ nodeId?: number;
8
+ }
9
+ /**
10
+ * Build IPC request options from selector/index argument
11
+ *
12
+ * Handles three input methods:
13
+ * 1. Direct nodeId (advanced users) - sets nodeId field
14
+ * 2. Index from previous query - looks up nodeId from cache, sets index field
15
+ * 3. CSS selector - sets selector field
16
+ *
17
+ * @param selectorOrIndex - CSS selector string or numeric index
18
+ * @param nodeId - Optional direct nodeId (overrides selectorOrIndex)
19
+ * @returns Options object with selector, index, or nodeId set
20
+ * @throws Error When index is used but no cached element found at that index
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * // Direct nodeId (advanced)
25
+ * buildSelectorOptions('.error', 123) // → { nodeId: 123 }
26
+ *
27
+ * // Index from cache
28
+ * buildSelectorOptions('2', undefined) // → { index: 2 } (if cache has index 2)
29
+ *
30
+ * // CSS selector
31
+ * buildSelectorOptions('.error', undefined) // → { selector: '.error' }
32
+ * ```
33
+ */
34
+ export declare function buildSelectorOptions<T extends SelectorBasedOptions>(selectorOrIndex: string, nodeId: number | undefined): T;
35
+ //# sourceMappingURL=domOptionsBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domOptionsBuilder.d.ts","sourceRoot":"","sources":["../../src/commands/domOptionsBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,oBAAoB,EACjE,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,CAAC,CA2BH"}