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,63 @@
1
+ /**
2
+ * Safe URL parsing utilities with automatic protocol detection.
3
+ *
4
+ * Provides centralized URL parsing that gracefully handles:
5
+ * - Missing protocols (adds http://)
6
+ * - Malformed URLs (returns null)
7
+ * - Localhost and bare hostnames
8
+ *
9
+ * WHY: Eliminates duplicated try/catch blocks across 4+ files
10
+ * (filters.ts, url.ts, collectors, connection layer).
11
+ */
12
+ /**
13
+ * Safely parse a URL string with automatic protocol detection.
14
+ *
15
+ * Attempts to parse the URL in two passes:
16
+ * 1. As-is (supports full URLs with protocols)
17
+ * 2. With 'http://' prefix (supports localhost:3000, example.com, etc.)
18
+ *
19
+ * @param input - URL string to parse (may lack protocol)
20
+ * @returns Parsed URL object, or null if parsing fails both attempts
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * safeParseUrl('https://example.com') // → URL { ... }
25
+ * safeParseUrl('localhost:3000') // → URL { protocol: 'http:', ... }
26
+ * safeParseUrl('example.com/path') // → URL { protocol: 'http:', ... }
27
+ * safeParseUrl('not a url') // → null
28
+ * safeParseUrl('file:///path/to/file.html') // → URL { protocol: 'file:', ... }
29
+ * ```
30
+ */
31
+ export declare function safeParseUrl(input: string): URL | null;
32
+ /**
33
+ * Extract hostname from a URL string safely.
34
+ *
35
+ * @param input - URL string to extract hostname from
36
+ * @returns Hostname (e.g., 'example.com'), or original input if parsing fails
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * extractHostname('https://example.com/path') // → 'example.com'
41
+ * extractHostname('localhost:3000') // → 'localhost'
42
+ * extractHostname('invalid') // → 'invalid'
43
+ * ```
44
+ */
45
+ export declare function extractHostname(input: string): string;
46
+ /**
47
+ * Extract hostname with pathname from a URL string safely.
48
+ *
49
+ * Useful for pattern matching that needs both hostname and path segments.
50
+ *
51
+ * @param input - URL string to extract hostname+pathname from
52
+ * @returns Hostname with pathname (e.g., 'example.com/api/users'), or original input if parsing fails
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * extractHostnameWithPath('https://api.example.com/v1/users?id=123')
57
+ * // → 'api.example.com/v1/users'
58
+ * extractHostnameWithPath('localhost:3000/dashboard')
59
+ * // → 'localhost/dashboard'
60
+ * ```
61
+ */
62
+ export declare function extractHostnameWithPath(input: string): string;
63
+ //# sourceMappingURL=safeParseUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeParseUrl.d.ts","sourceRoot":"","sources":["../../../src/utils/url/safeParseUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAatD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG7D"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Safe URL parsing utilities with automatic protocol detection.
3
+ *
4
+ * Provides centralized URL parsing that gracefully handles:
5
+ * - Missing protocols (adds http://)
6
+ * - Malformed URLs (returns null)
7
+ * - Localhost and bare hostnames
8
+ *
9
+ * WHY: Eliminates duplicated try/catch blocks across 4+ files
10
+ * (filters.ts, url.ts, collectors, connection layer).
11
+ */
12
+ /**
13
+ * Safely parse a URL string with automatic protocol detection.
14
+ *
15
+ * Attempts to parse the URL in two passes:
16
+ * 1. As-is (supports full URLs with protocols)
17
+ * 2. With 'http://' prefix (supports localhost:3000, example.com, etc.)
18
+ *
19
+ * @param input - URL string to parse (may lack protocol)
20
+ * @returns Parsed URL object, or null if parsing fails both attempts
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * safeParseUrl('https://example.com') // → URL { ... }
25
+ * safeParseUrl('localhost:3000') // → URL { protocol: 'http:', ... }
26
+ * safeParseUrl('example.com/path') // → URL { protocol: 'http:', ... }
27
+ * safeParseUrl('not a url') // → null
28
+ * safeParseUrl('file:///path/to/file.html') // → URL { protocol: 'file:', ... }
29
+ * ```
30
+ */
31
+ export function safeParseUrl(input) {
32
+ // First attempt: parse as-is (handles full URLs with protocols)
33
+ try {
34
+ return new URL(input);
35
+ }
36
+ catch {
37
+ // Second attempt: add http:// prefix for protocol-less URLs
38
+ try {
39
+ return new URL(`http://${input}`);
40
+ }
41
+ catch {
42
+ // Both attempts failed - invalid URL
43
+ return null;
44
+ }
45
+ }
46
+ }
47
+ /**
48
+ * Extract hostname from a URL string safely.
49
+ *
50
+ * @param input - URL string to extract hostname from
51
+ * @returns Hostname (e.g., 'example.com'), or original input if parsing fails
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * extractHostname('https://example.com/path') // → 'example.com'
56
+ * extractHostname('localhost:3000') // → 'localhost'
57
+ * extractHostname('invalid') // → 'invalid'
58
+ * ```
59
+ */
60
+ export function extractHostname(input) {
61
+ const parsed = safeParseUrl(input);
62
+ return parsed?.hostname ?? input;
63
+ }
64
+ /**
65
+ * Extract hostname with pathname from a URL string safely.
66
+ *
67
+ * Useful for pattern matching that needs both hostname and path segments.
68
+ *
69
+ * @param input - URL string to extract hostname+pathname from
70
+ * @returns Hostname with pathname (e.g., 'example.com/api/users'), or original input if parsing fails
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * extractHostnameWithPath('https://api.example.com/v1/users?id=123')
75
+ * // → 'api.example.com/v1/users'
76
+ * extractHostnameWithPath('localhost:3000/dashboard')
77
+ * // → 'localhost/dashboard'
78
+ * ```
79
+ */
80
+ export function extractHostnameWithPath(input) {
81
+ const parsed = safeParseUrl(input);
82
+ return parsed ? parsed.hostname + parsed.pathname : input;
83
+ }
84
+ //# sourceMappingURL=safeParseUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safeParseUrl.js","sourceRoot":"","sources":["../../../src/utils/url/safeParseUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,gEAAgE;IAChE,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;QAC5D,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5D,CAAC"}
@@ -1,6 +1,68 @@
1
1
  /**
2
- * Normalize a URL by adding http:// protocol if missing
2
+ * Normalize a URL by adding http:// protocol if missing.
3
+ *
3
4
  * Supports: localhost:3000, example.com, http://localhost, file:// URLs
5
+ * Preserves special browser protocols: about:, chrome:, data:, javascript:, blob:
6
+ *
7
+ * @param url - URL string to normalize
8
+ * @returns Normalized URL with protocol
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * normalizeUrl('localhost:3000') // → 'http://localhost:3000'
13
+ * normalizeUrl('https://example.com') // → 'https://example.com'
14
+ * normalizeUrl('example.com/path') // → 'http://example.com/path'
15
+ * normalizeUrl('about:blank') // → 'about:blank' (unchanged)
16
+ * normalizeUrl('chrome://settings') // → 'chrome://settings' (unchanged)
17
+ * ```
4
18
  */
5
19
  export declare function normalizeUrl(url: string): string;
20
+ /**
21
+ * Truncate a URL for compact display.
22
+ *
23
+ * Removes www. prefix, shortens long paths with ellipsis, and truncates to maxLength.
24
+ *
25
+ * @param url - URL string to truncate
26
+ * @param maxLength - Maximum length of output (default: 60)
27
+ * @returns Truncated URL for display
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * truncateUrl('https://i.clarity.ms/collect')
32
+ * // → 'clarity.ms/collect'
33
+ * truncateUrl('https://aswpapius.com/api/web-channels/47d7def8-d602-49ec-bfdb-c959b1346774')
34
+ * // → 'aswpapius.com/.../47d7def8'
35
+ * ```
36
+ */
37
+ export declare function truncateUrl(url: string, maxLength?: number): string;
38
+ /**
39
+ * Truncate console message text (especially stack traces)
40
+ * @param text - The console message text
41
+ * @param maxLines - Maximum number of lines to show (default: 3)
42
+ */
43
+ export declare function truncateText(text: string, maxLines?: number): string;
44
+ /**
45
+ * Validate that a URL is valid and usable for Chrome navigation.
46
+ *
47
+ * WHY: Provides clear error messages before attempting to launch Chrome.
48
+ *
49
+ * @param url - URL string to validate
50
+ * @returns Object with valid flag and error message if invalid
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * const result = validateUrl('not-a-url');
55
+ * if (!result.valid) {
56
+ * console.error(result.error);
57
+ * // → "Invalid URL format: 'not-a-url'"
58
+ * console.error(result.suggestion);
59
+ * // → "URLs must include a valid protocol (http:// or https://)"
60
+ * }
61
+ * ```
62
+ */
63
+ export declare function validateUrl(url: string): {
64
+ valid: boolean;
65
+ error?: string;
66
+ suggestion?: string;
67
+ };
6
68
  //# sourceMappingURL=url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBhD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,MAAW,GAAG,MAAM,CAuCvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAWvE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CA4CA"}
package/dist/utils/url.js CHANGED
@@ -1,11 +1,161 @@
1
+ import { safeParseUrl } from './url/safeParseUrl.js';
1
2
  /**
2
- * Normalize a URL by adding http:// protocol if missing
3
+ * Normalize a URL by adding http:// protocol if missing.
4
+ *
3
5
  * Supports: localhost:3000, example.com, http://localhost, file:// URLs
6
+ * Preserves special browser protocols: about:, chrome:, data:, javascript:, blob:
7
+ *
8
+ * @param url - URL string to normalize
9
+ * @returns Normalized URL with protocol
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * normalizeUrl('localhost:3000') // → 'http://localhost:3000'
14
+ * normalizeUrl('https://example.com') // → 'https://example.com'
15
+ * normalizeUrl('example.com/path') // → 'http://example.com/path'
16
+ * normalizeUrl('about:blank') // → 'about:blank' (unchanged)
17
+ * normalizeUrl('chrome://settings') // → 'chrome://settings' (unchanged)
18
+ * ```
4
19
  */
5
20
  export function normalizeUrl(url) {
6
- if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith('file://')) {
21
+ // Check for protocols that should not be modified
22
+ if (url.startsWith('http://') ||
23
+ url.startsWith('https://') ||
24
+ url.startsWith('file://') ||
25
+ url.startsWith('about:') ||
26
+ url.startsWith('chrome:') ||
27
+ url.startsWith('data:') ||
28
+ url.startsWith('javascript:') ||
29
+ url.startsWith('vbscript:') ||
30
+ url.startsWith('blob:')) {
7
31
  return url;
8
32
  }
9
33
  return `http://${url}`;
10
34
  }
35
+ /**
36
+ * Truncate a URL for compact display.
37
+ *
38
+ * Removes www. prefix, shortens long paths with ellipsis, and truncates to maxLength.
39
+ *
40
+ * @param url - URL string to truncate
41
+ * @param maxLength - Maximum length of output (default: 60)
42
+ * @returns Truncated URL for display
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * truncateUrl('https://i.clarity.ms/collect')
47
+ * // → 'clarity.ms/collect'
48
+ * truncateUrl('https://aswpapius.com/api/web-channels/47d7def8-d602-49ec-bfdb-c959b1346774')
49
+ * // → 'aswpapius.com/.../47d7def8'
50
+ * ```
51
+ */
52
+ export function truncateUrl(url, maxLength = 60) {
53
+ const parsed = safeParseUrl(url);
54
+ if (!parsed) {
55
+ // Fallback: simple string truncation if URL parsing fails
56
+ return url.length > maxLength ? url.substring(0, maxLength - 3) + '...' : url;
57
+ }
58
+ // Remove www. prefix
59
+ const domain = parsed.hostname.replace(/^www\./, '');
60
+ // Get path without leading slash
61
+ const path = parsed.pathname.substring(1);
62
+ // Start with domain + path
63
+ let result = domain + (path ? `/${path}` : '');
64
+ // If still too long, truncate the path
65
+ if (result.length > maxLength) {
66
+ const pathParts = path.split('/');
67
+ if (pathParts.length > 2) {
68
+ // Show first part, ellipsis, and last part
69
+ const first = pathParts[0];
70
+ const last = pathParts[pathParts.length - 1];
71
+ if (first && last) {
72
+ result = `${domain}/${first}/.../${last}`;
73
+ // If still too long, truncate the last part
74
+ if (result.length > maxLength) {
75
+ const truncatedLast = last.substring(0, 8);
76
+ result = `${domain}/${first}/.../${truncatedLast}`;
77
+ }
78
+ }
79
+ }
80
+ else {
81
+ // Simple truncation
82
+ result = result.substring(0, maxLength - 3) + '...';
83
+ }
84
+ }
85
+ return result;
86
+ }
87
+ /**
88
+ * Truncate console message text (especially stack traces)
89
+ * @param text - The console message text
90
+ * @param maxLines - Maximum number of lines to show (default: 3)
91
+ */
92
+ export function truncateText(text, maxLines = 3) {
93
+ const lines = text.split('\n');
94
+ if (lines.length <= maxLines) {
95
+ return text;
96
+ }
97
+ const truncated = lines.slice(0, maxLines).join('\n');
98
+ const hiddenCount = lines.length - maxLines;
99
+ return `${truncated}\n ... (${hiddenCount} more lines)`;
100
+ }
101
+ /**
102
+ * Validate that a URL is valid and usable for Chrome navigation.
103
+ *
104
+ * WHY: Provides clear error messages before attempting to launch Chrome.
105
+ *
106
+ * @param url - URL string to validate
107
+ * @returns Object with valid flag and error message if invalid
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * const result = validateUrl('not-a-url');
112
+ * if (!result.valid) {
113
+ * console.error(result.error);
114
+ * // → "Invalid URL format: 'not-a-url'"
115
+ * console.error(result.suggestion);
116
+ * // → "URLs must include a valid protocol (http:// or https://)"
117
+ * }
118
+ * ```
119
+ */
120
+ export function validateUrl(url) {
121
+ // Empty URL
122
+ if (!url || url.trim().length === 0) {
123
+ return {
124
+ valid: false,
125
+ error: 'URL cannot be empty',
126
+ suggestion: 'Provide a valid URL, e.g.: http://localhost:3000',
127
+ };
128
+ }
129
+ // Normalize first (adds http:// if missing)
130
+ const normalized = normalizeUrl(url);
131
+ // Try to parse as URL
132
+ try {
133
+ const parsed = new URL(normalized);
134
+ // Check for valid protocol
135
+ const validProtocols = ['http:', 'https:', 'file:', 'about:', 'chrome:', 'data:'];
136
+ if (!validProtocols.includes(parsed.protocol)) {
137
+ return {
138
+ valid: false,
139
+ error: `Invalid protocol: '${parsed.protocol}'`,
140
+ suggestion: 'URLs must use http://, https://, or other valid protocols',
141
+ };
142
+ }
143
+ // Check for valid hostname (for http/https)
144
+ if ((parsed.protocol === 'http:' || parsed.protocol === 'https:') && !parsed.hostname) {
145
+ return {
146
+ valid: false,
147
+ error: `Invalid URL format: '${url}' (missing hostname)`,
148
+ suggestion: 'URLs must include a valid hostname, e.g.: http://example.com',
149
+ };
150
+ }
151
+ return { valid: true };
152
+ }
153
+ catch {
154
+ return {
155
+ valid: false,
156
+ error: `Invalid URL format: '${url}'`,
157
+ suggestion: 'URLs must include a valid protocol (http:// or https://)',
158
+ };
159
+ }
160
+ }
11
161
  //# sourceMappingURL=url.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACzF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,UAAU,GAAG,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,kDAAkD;IAClD,IACE,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;QAC1B,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;QAC7B,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EACvB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,UAAU,GAAG,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,YAAoB,EAAE;IAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,0DAA0D;QAC1D,OAAO,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAChF,CAAC;IAED,qBAAqB;IACrB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAErD,iCAAiC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE1C,2BAA2B;IAC3B,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE/C,uCAAuC;IACvC,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,2CAA2C;YAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,MAAM,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC;gBAE1C,4CAA4C;gBAC5C,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;oBAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,KAAK,QAAQ,aAAa,EAAE,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,WAAmB,CAAC;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;IAE5C,OAAO,GAAG,SAAS,YAAY,WAAW,cAAc,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IAKrC,YAAY;IACZ,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,qBAAqB;YAC5B,UAAU,EAAE,kDAAkD;SAC/D,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAErC,sBAAsB;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnC,2BAA2B;QAC3B,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAClF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,sBAAsB,MAAM,CAAC,QAAQ,GAAG;gBAC/C,UAAU,EAAE,2DAA2D;aACxE,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtF,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,wBAAwB,GAAG,sBAAsB;gBACxD,UAAU,EAAE,8DAA8D;aAC3E,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,wBAAwB,GAAG,GAAG;YACrC,UAAU,EAAE,0DAA0D;SACvE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { CollectorType } from '../types.js';
1
+ import type { CollectorType } from '../types.js';
2
2
  /**
3
3
  * Validate that a collector type is valid
4
4
  * @throws Error if collector type is invalid
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,aAAa,CAMjF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,EAAE,CAIxF"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,aAAa,CAMjF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,EAAE,CAIxF"}
@@ -0,0 +1,3 @@
1
+ export declare function getVersion(): string;
2
+ export declare const VERSION: string;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAUA,wBAAgB,UAAU,IAAI,MAAM,CAiBnC;AAED,eAAO,MAAM,OAAO,EAAE,MAAqB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { readFileSync } from 'fs';
2
+ import { dirname, join } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ /**
5
+ * Get the package version.
6
+ * Reads package.json once and caches the result.
7
+ */
8
+ let cachedVersion = '';
9
+ export function getVersion() {
10
+ if (cachedVersion) {
11
+ return cachedVersion;
12
+ }
13
+ try {
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = dirname(__filename);
16
+ const pkgPath = join(__dirname, '../../package.json');
17
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
18
+ cachedVersion = pkg.version ?? '0.0.0';
19
+ }
20
+ catch {
21
+ // Fallback if package.json cannot be read
22
+ cachedVersion = '0.0.0';
23
+ }
24
+ return cachedVersion;
25
+ }
26
+ export const VERSION = getVersion();
27
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;GAGG;AACH,IAAI,aAAa,GAAW,EAAE,CAAC;AAE/B,MAAM,UAAU,UAAU;IACxB,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAyB,CAAC;QAC/E,aAAa,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;QAC1C,aAAa,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAW,UAAU,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,16 +1,36 @@
1
1
  {
2
2
  "name": "browser-debugger-cli",
3
- "version": "0.0.1-alpha.0",
3
+ "version": "0.1.0-alpha.1",
4
4
  "description": "Browser telemetry via Chrome DevTools Protocol",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "bdg": "dist/index.js"
8
8
  },
9
9
  "scripts": {
10
- "build": "tsc",
11
- "dev": "tsc && node dist/index.js",
12
- "watch": "tsc --watch",
13
- "prepublishOnly": "npm run build"
10
+ "build": "tsc && tsc-alias",
11
+ "postbuild": "node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"",
12
+ "dev": "tsc && tsc-alias && node dist/index.js",
13
+ "watch": "concurrently \"npm:watch:tsc\" \"npm:watch:alias\"",
14
+ "watch:tsc": "tsc --watch",
15
+ "watch:alias": "tsc-alias --watch",
16
+ "type-check": "tsc --noEmit",
17
+ "lint": "eslint src --ext .ts",
18
+ "lint:fix": "eslint src --ext .ts --fix",
19
+ "format": "prettier --write \"src/**/*.ts\" \"*.{js,json}\"",
20
+ "format:check": "prettier --check \"src/**/*.ts\" \"*.{js,json}\"",
21
+ "knip": "knip",
22
+ "knip:production": "knip --production",
23
+ "clean": "rm -rf dist",
24
+ "rebuild": "npm run clean && npm run build",
25
+ "lint:imports": "echo '✓ Import paths checked by main lint'",
26
+ "validate:module-type": "node -e \"const pkg = require('./package.json'); if (pkg.type !== 'module') { console.error('Package must have type: module'); process.exit(1); } else { console.log('✅ Package type is module'); }\"",
27
+ "validate:ts-version": "node -e \"const ts = require('typescript'); const v = ts.version.split('.'); if (parseInt(v[0]) < 5 || (parseInt(v[0]) === 5 && parseInt(v[1]) < 6)) { console.error('Requires TypeScript 5.6+, found:', ts.version); process.exit(1); } else { console.log('✅ TypeScript version:', ts.version); }\"",
28
+ "check": "npm run format:check && npm run type-check && npm run lint",
29
+ "check:enhanced": "npm run format:check && npm run type-check && npm run lint && npm run validate:module-type && npm run validate:ts-version",
30
+ "test": "tsx --test src/**/__tests__/*.test.ts src/**/__tests__/*.contract.test.ts src/__tests__/integration/*.test.ts",
31
+ "test:watch": "tsx --test --watch src/**/__tests__/*.test.ts src/**/__tests__/*.contract.test.ts src/__tests__/integration/*.test.ts",
32
+ "prepublishOnly": "npm run build",
33
+ "prepare": "husky"
14
34
  },
15
35
  "keywords": [
16
36
  "cdp",
@@ -23,16 +43,34 @@
23
43
  "license": "MIT",
24
44
  "dependencies": {
25
45
  "chrome-launcher": "^1.2.1",
26
- "commander": "^12.1.0",
46
+ "commander": "^14.0.2",
27
47
  "ws": "^8.18.0"
28
48
  },
29
49
  "devDependencies": {
30
- "@types/node": "^20.0.0",
50
+ "@eslint/js": "^9.39.0",
51
+ "@types/node": "^22.19.0",
31
52
  "@types/ws": "^8.5.10",
53
+ "@typescript-eslint/eslint-plugin": "^8.46.2",
54
+ "@typescript-eslint/parser": "^8.46.2",
55
+ "concurrently": "^9.2.1",
56
+ "eslint": "^9.39.0",
57
+ "eslint-config-prettier": "^10.1.8",
58
+ "eslint-import-resolver-typescript": "^4.4.4",
59
+ "eslint-plugin-import": "^2.32.0",
60
+ "eslint-plugin-no-relative-import-paths": "^1.6.1",
61
+ "eslint-plugin-tsdoc": "^0.4.0",
62
+ "eslint-plugin-unused-imports": "^4.3.0",
63
+ "globals": "^16.5.0",
64
+ "husky": "^9.1.7",
65
+ "knip": "^5.67.1",
66
+ "lint-staged": "^16.2.6",
67
+ "prettier": "^3.6.2",
68
+ "tsc-alias": "^1.8.9",
69
+ "tsx": "^4.19.0",
32
70
  "typescript": "^5.6.0"
33
71
  },
34
72
  "engines": {
35
- "node": ">=18.0.0"
73
+ "node": ">=20.0.0"
36
74
  },
37
75
  "author": {
38
76
  "name": "Kumak",
@@ -40,7 +78,7 @@
40
78
  },
41
79
  "repository": {
42
80
  "type": "git",
43
- "url": "https://github.com/szymdzum/browser-debugger-cli.git"
81
+ "url": "git+https://github.com/szymdzum/browser-debugger-cli.git"
44
82
  },
45
83
  "homepage": "https://github.com/szymdzum/browser-debugger-cli#readme",
46
84
  "bugs": {
@@ -52,5 +90,14 @@
52
90
  "files": [
53
91
  "dist",
54
92
  "README.md"
55
- ]
93
+ ],
94
+ "lint-staged": {
95
+ "src/**/*.ts": [
96
+ "prettier --write",
97
+ "eslint --fix"
98
+ ],
99
+ "*.{js,json}": [
100
+ "prettier --write"
101
+ ]
102
+ }
56
103
  }
@@ -1,21 +0,0 @@
1
- import { CDPConnection } from '../connection/cdp.js';
2
- export interface PageLoadOptions {
3
- /**
4
- * Maximum time to wait for page load (ms)
5
- * @default 30000
6
- */
7
- timeout?: number;
8
- /**
9
- * Time to wait with no network activity before considering page idle (ms)
10
- * @default 2000
11
- */
12
- networkIdleTime?: number;
13
- }
14
- /**
15
- * Waits for the page to fully load including:
16
- * - DOM content loaded
17
- * - Load event fired
18
- * - Network idle (no new requests for specified time)
19
- */
20
- export declare function waitForPageLoad(cdp: CDPConnection, options?: PageLoadOptions): Promise<void>;
21
- //# sourceMappingURL=pageLoad.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pageLoad.d.ts","sourceRoot":"","sources":["../../src/utils/pageLoad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA0Ff"}