browser-debugger-cli 0.2.0 → 0.5.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 (554) hide show
  1. package/README.md +137 -126
  2. package/dist/__tests__/fixtures/schema-v0.2.1.golden.json +47 -0
  3. package/dist/__tests__/schema.contract.test.d.ts +19 -0
  4. package/dist/__tests__/schema.contract.test.d.ts.map +1 -0
  5. package/dist/__tests__/schema.contract.test.js +236 -0
  6. package/dist/__tests__/schema.contract.test.js.map +1 -0
  7. package/dist/__tests__/smoke/error-handling.smoke.test.d.ts +8 -0
  8. package/dist/__tests__/smoke/error-handling.smoke.test.d.ts.map +1 -0
  9. package/dist/__tests__/smoke/error-handling.smoke.test.js +106 -0
  10. package/dist/__tests__/smoke/error-handling.smoke.test.js.map +1 -0
  11. package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts +8 -0
  12. package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts.map +1 -0
  13. package/dist/__tests__/smoke/session-lifecycle.smoke.test.js +109 -0
  14. package/dist/__tests__/smoke/session-lifecycle.smoke.test.js.map +1 -0
  15. package/dist/__testutils__/commandRunner.d.ts +45 -0
  16. package/dist/__testutils__/commandRunner.d.ts.map +1 -0
  17. package/dist/__testutils__/commandRunner.js +108 -0
  18. package/dist/__testutils__/commandRunner.js.map +1 -0
  19. package/dist/__testutils__/daemonHelpers.d.ts +81 -0
  20. package/dist/__testutils__/daemonHelpers.d.ts.map +1 -0
  21. package/dist/__testutils__/daemonHelpers.js +206 -0
  22. package/dist/__testutils__/daemonHelpers.js.map +1 -0
  23. package/dist/__testutils__/index.d.ts +1 -0
  24. package/dist/__testutils__/index.d.ts.map +1 -1
  25. package/dist/__testutils__/index.js +1 -0
  26. package/dist/__testutils__/index.js.map +1 -1
  27. package/dist/__testutils__/testCleanup.d.ts +45 -0
  28. package/dist/__testutils__/testCleanup.d.ts.map +1 -0
  29. package/dist/__testutils__/testCleanup.js +87 -0
  30. package/dist/__testutils__/testCleanup.js.map +1 -0
  31. package/dist/__testutils__/testHome.d.ts +26 -0
  32. package/dist/__testutils__/testHome.d.ts.map +1 -0
  33. package/dist/__testutils__/testHome.js +57 -0
  34. package/dist/__testutils__/testHome.js.map +1 -0
  35. package/dist/__testutils__/testProcess.d.ts.map +1 -1
  36. package/dist/__testutils__/testProcess.js +11 -3
  37. package/dist/__testutils__/testProcess.js.map +1 -1
  38. package/dist/cli/commands/__tests__/start.unit.test.d.ts +2 -0
  39. package/dist/cli/commands/__tests__/start.unit.test.d.ts.map +1 -0
  40. package/dist/cli/commands/__tests__/start.unit.test.js +131 -0
  41. package/dist/cli/commands/__tests__/start.unit.test.js.map +1 -0
  42. package/dist/cli/commands/cleanup.d.ts +1 -0
  43. package/dist/cli/commands/cleanup.d.ts.map +1 -1
  44. package/dist/cli/commands/cleanup.js +80 -61
  45. package/dist/cli/commands/cleanup.js.map +1 -1
  46. package/dist/cli/commands/details.d.ts +2 -1
  47. package/dist/cli/commands/details.d.ts.map +1 -1
  48. package/dist/cli/commands/details.js +104 -52
  49. package/dist/cli/commands/details.js.map +1 -1
  50. package/dist/cli/commands/peek.d.ts +2 -1
  51. package/dist/cli/commands/peek.d.ts.map +1 -1
  52. package/dist/cli/commands/peek.js +22 -67
  53. package/dist/cli/commands/peek.js.map +1 -1
  54. package/dist/cli/commands/query.d.ts +9 -0
  55. package/dist/cli/commands/query.d.ts.map +1 -0
  56. package/dist/cli/commands/query.js +125 -0
  57. package/dist/cli/commands/query.js.map +1 -0
  58. package/dist/cli/commands/start.d.ts +74 -0
  59. package/dist/cli/commands/start.d.ts.map +1 -1
  60. package/dist/cli/commands/start.js +147 -38
  61. package/dist/cli/commands/start.js.map +1 -1
  62. package/dist/cli/commands/status.d.ts.map +1 -1
  63. package/dist/cli/commands/status.js +37 -49
  64. package/dist/cli/commands/status.js.map +1 -1
  65. package/dist/cli/commands/stop.d.ts +1 -0
  66. package/dist/cli/commands/stop.d.ts.map +1 -1
  67. package/dist/cli/commands/stop.js +106 -120
  68. package/dist/cli/commands/stop.js.map +1 -1
  69. package/dist/cli/formatters/detailsFormatter.d.ts +1 -1
  70. package/dist/cli/formatters/previewFormatter.d.ts +7 -7
  71. package/dist/cli/formatters/previewFormatter.d.ts.map +1 -1
  72. package/dist/cli/formatters/previewFormatter.js +5 -10
  73. package/dist/cli/formatters/previewFormatter.js.map +1 -1
  74. package/dist/cli/formatters/statusFormatter.d.ts +13 -10
  75. package/dist/cli/formatters/statusFormatter.d.ts.map +1 -1
  76. package/dist/cli/formatters/statusFormatter.js +26 -53
  77. package/dist/cli/formatters/statusFormatter.js.map +1 -1
  78. package/dist/cli/handlers/ChromeBootstrap.d.ts +24 -0
  79. package/dist/cli/handlers/ChromeBootstrap.d.ts.map +1 -0
  80. package/dist/cli/handlers/ChromeBootstrap.js +50 -0
  81. package/dist/cli/handlers/ChromeBootstrap.js.map +1 -0
  82. package/dist/cli/handlers/OutputBuilder.d.ts +2 -3
  83. package/dist/cli/handlers/OutputBuilder.d.ts.map +1 -1
  84. package/dist/cli/handlers/OutputBuilder.js +2 -4
  85. package/dist/cli/handlers/OutputBuilder.js.map +1 -1
  86. package/dist/cli/handlers/OutputWriter.d.ts +15 -0
  87. package/dist/cli/handlers/OutputWriter.d.ts.map +1 -0
  88. package/dist/cli/handlers/OutputWriter.js +34 -0
  89. package/dist/cli/handlers/OutputWriter.js.map +1 -0
  90. package/dist/cli/handlers/PreviewWriter.d.ts +52 -0
  91. package/dist/cli/handlers/PreviewWriter.d.ts.map +1 -0
  92. package/dist/cli/handlers/PreviewWriter.js +118 -0
  93. package/dist/cli/handlers/PreviewWriter.js.map +1 -0
  94. package/dist/cli/handlers/SessionLock.d.ts +16 -0
  95. package/dist/cli/handlers/SessionLock.d.ts.map +1 -0
  96. package/dist/cli/handlers/SessionLock.js +35 -0
  97. package/dist/cli/handlers/SessionLock.js.map +1 -0
  98. package/dist/cli/handlers/SessionLoop.d.ts +19 -0
  99. package/dist/cli/handlers/SessionLoop.d.ts.map +1 -0
  100. package/dist/cli/handlers/SessionLoop.js +47 -0
  101. package/dist/cli/handlers/SessionLoop.js.map +1 -0
  102. package/dist/cli/handlers/ShutdownController.d.ts +41 -0
  103. package/dist/cli/handlers/ShutdownController.d.ts.map +1 -0
  104. package/dist/cli/handlers/ShutdownController.js +94 -0
  105. package/dist/cli/handlers/ShutdownController.js.map +1 -0
  106. package/dist/cli/handlers/SignalHandler.d.ts +35 -0
  107. package/dist/cli/handlers/SignalHandler.d.ts.map +1 -0
  108. package/dist/cli/handlers/SignalHandler.js +81 -0
  109. package/dist/cli/handlers/SignalHandler.js.map +1 -0
  110. package/dist/cli/handlers/TargetSetup.d.ts +42 -0
  111. package/dist/cli/handlers/TargetSetup.d.ts.map +1 -0
  112. package/dist/cli/handlers/TargetSetup.js +87 -0
  113. package/dist/cli/handlers/TargetSetup.js.map +1 -0
  114. package/dist/cli/handlers/sessionController.d.ts +41 -0
  115. package/dist/cli/handlers/sessionController.d.ts.map +1 -1
  116. package/dist/cli/handlers/sessionController.js +266 -5
  117. package/dist/cli/handlers/sessionController.js.map +1 -1
  118. package/dist/cli/registry.d.ts +2 -2
  119. package/dist/cli/registry.d.ts.map +1 -1
  120. package/dist/cli/registry.js +12 -37
  121. package/dist/cli/registry.js.map +1 -1
  122. package/dist/collectors/console.d.ts +1 -1
  123. package/dist/collectors/console.js +2 -2
  124. package/dist/collectors/console.js.map +1 -1
  125. package/dist/collectors/dom.d.ts +1 -1
  126. package/dist/collectors/network.d.ts +1 -2
  127. package/dist/collectors/network.d.ts.map +1 -1
  128. package/dist/collectors/network.js +3 -3
  129. package/dist/collectors/network.js.map +1 -1
  130. package/dist/commands/__tests__/cdp.contract.test.d.ts.map +1 -1
  131. package/dist/commands/__tests__/cdp.contract.test.js +0 -1
  132. package/dist/commands/__tests__/cdp.contract.test.js.map +1 -1
  133. package/dist/commands/__tests__/domEval.contract.test.d.ts +17 -0
  134. package/dist/commands/__tests__/domEval.contract.test.d.ts.map +1 -0
  135. package/dist/commands/__tests__/domEval.contract.test.js +231 -0
  136. package/dist/commands/__tests__/domEval.contract.test.js.map +1 -0
  137. package/dist/commands/cdp.js +1 -1
  138. package/dist/commands/cdp.js.map +1 -1
  139. package/dist/commands/cleanup.d.ts.map +1 -1
  140. package/dist/commands/cleanup.js +51 -13
  141. package/dist/commands/cleanup.js.map +1 -1
  142. package/dist/commands/console.d.ts.map +1 -1
  143. package/dist/commands/console.js +8 -8
  144. package/dist/commands/console.js.map +1 -1
  145. package/dist/commands/details.js +2 -2
  146. package/dist/commands/details.js.map +1 -1
  147. package/dist/commands/dom.d.ts.map +1 -1
  148. package/dist/commands/dom.js +114 -128
  149. package/dist/commands/dom.js.map +1 -1
  150. package/dist/commands/domEvalHelpers.d.ts +7 -11
  151. package/dist/commands/domEvalHelpers.d.ts.map +1 -1
  152. package/dist/commands/domEvalHelpers.js +67 -22
  153. package/dist/commands/domEvalHelpers.js.map +1 -1
  154. package/dist/commands/domOptionsBuilder.d.ts +32 -0
  155. package/dist/commands/domOptionsBuilder.d.ts.map +1 -1
  156. package/dist/commands/domOptionsBuilder.js +35 -0
  157. package/dist/commands/domOptionsBuilder.js.map +1 -1
  158. package/dist/commands/machineReadableHelp.d.ts +98 -0
  159. package/dist/commands/machineReadableHelp.d.ts.map +1 -0
  160. package/dist/commands/machineReadableHelp.js +137 -0
  161. package/dist/commands/machineReadableHelp.js.map +1 -0
  162. package/dist/commands/network.d.ts.map +1 -1
  163. package/dist/commands/network.js +2 -4
  164. package/dist/commands/network.js.map +1 -1
  165. package/dist/commands/peek.d.ts.map +1 -1
  166. package/dist/commands/peek.js +3 -2
  167. package/dist/commands/peek.js.map +1 -1
  168. package/dist/commands/shared/CommandRunner.d.ts +4 -2
  169. package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
  170. package/dist/commands/shared/CommandRunner.js +18 -3
  171. package/dist/commands/shared/CommandRunner.js.map +1 -1
  172. package/dist/commands/shared/OutputBuilder.js +1 -1
  173. package/dist/commands/shared/OutputBuilder.js.map +1 -1
  174. package/dist/commands/shared/commonOptions.d.ts.map +1 -1
  175. package/dist/commands/shared/commonOptions.js +10 -3
  176. package/dist/commands/shared/commonOptions.js.map +1 -1
  177. package/dist/commands/shared/daemonSessionController.d.ts +2 -0
  178. package/dist/commands/shared/daemonSessionController.d.ts.map +1 -1
  179. package/dist/commands/shared/daemonSessionController.js +13 -16
  180. package/dist/commands/shared/daemonSessionController.js.map +1 -1
  181. package/dist/commands/shared/sessionController.d.ts.map +1 -1
  182. package/dist/commands/shared/sessionController.js +8 -9
  183. package/dist/commands/shared/sessionController.js.map +1 -1
  184. package/dist/commands/start.d.ts.map +1 -1
  185. package/dist/commands/start.js +16 -1
  186. package/dist/commands/start.js.map +1 -1
  187. package/dist/commands/status.d.ts.map +1 -1
  188. package/dist/commands/status.js +72 -54
  189. package/dist/commands/status.js.map +1 -1
  190. package/dist/commands/stop.d.ts.map +1 -1
  191. package/dist/commands/stop.js +16 -28
  192. package/dist/commands/stop.js.map +1 -1
  193. package/dist/commands/tail.d.ts +11 -0
  194. package/dist/commands/tail.d.ts.map +1 -0
  195. package/dist/commands/tail.js +114 -0
  196. package/dist/commands/tail.js.map +1 -0
  197. package/dist/commands.d.ts.map +1 -1
  198. package/dist/commands.js +2 -0
  199. package/dist/commands.js.map +1 -1
  200. package/dist/connection/__tests__/cdp.contract.test.d.ts.map +1 -1
  201. package/dist/connection/__tests__/cdp.contract.test.js +0 -1
  202. package/dist/connection/__tests__/cdp.contract.test.js.map +1 -1
  203. package/dist/connection/cdp.d.ts +46 -2
  204. package/dist/connection/cdp.d.ts.map +1 -1
  205. package/dist/connection/cdp.js +71 -5
  206. package/dist/connection/cdp.js.map +1 -1
  207. package/dist/connection/diagnostics.d.ts +16 -0
  208. package/dist/connection/diagnostics.d.ts.map +1 -0
  209. package/dist/connection/diagnostics.js +37 -0
  210. package/dist/connection/diagnostics.js.map +1 -0
  211. package/dist/connection/errors.d.ts +74 -0
  212. package/dist/connection/errors.d.ts.map +1 -0
  213. package/dist/connection/errors.js +83 -0
  214. package/dist/connection/errors.js.map +1 -0
  215. package/dist/connection/handlers.d.ts +31 -0
  216. package/dist/connection/handlers.d.ts.map +1 -0
  217. package/dist/connection/handlers.js +38 -0
  218. package/dist/connection/handlers.js.map +1 -0
  219. package/dist/connection/launcher.d.ts +3 -20
  220. package/dist/connection/launcher.d.ts.map +1 -1
  221. package/dist/connection/launcher.js +140 -32
  222. package/dist/connection/launcher.js.map +1 -1
  223. package/dist/connection/pageReadiness.d.ts +46 -0
  224. package/dist/connection/pageReadiness.d.ts.map +1 -0
  225. package/dist/connection/pageReadiness.js +270 -0
  226. package/dist/connection/pageReadiness.js.map +1 -0
  227. package/dist/connection/tabs.d.ts +52 -0
  228. package/dist/connection/tabs.d.ts.map +1 -0
  229. package/dist/connection/tabs.js +227 -0
  230. package/dist/connection/tabs.js.map +1 -0
  231. package/dist/constants.d.ts +20 -40
  232. package/dist/constants.d.ts.map +1 -1
  233. package/dist/constants.js +26 -40
  234. package/dist/constants.js.map +1 -1
  235. package/dist/daemon/ipcServer.d.ts +5 -7
  236. package/dist/daemon/ipcServer.d.ts.map +1 -1
  237. package/dist/daemon/ipcServer.js +178 -143
  238. package/dist/daemon/ipcServer.js.map +1 -1
  239. package/dist/daemon/launcher.js +1 -1
  240. package/dist/daemon/launcher.js.map +1 -1
  241. package/dist/daemon/server/SocketServer.d.ts +22 -0
  242. package/dist/daemon/server/SocketServer.d.ts.map +1 -0
  243. package/dist/daemon/server/SocketServer.js +67 -0
  244. package/dist/daemon/server/SocketServer.js.map +1 -0
  245. package/dist/daemon/server/WorkerManager.d.ts +36 -0
  246. package/dist/daemon/server/WorkerManager.d.ts.map +1 -0
  247. package/dist/daemon/server/WorkerManager.js +98 -0
  248. package/dist/daemon/server/WorkerManager.js.map +1 -0
  249. package/dist/daemon/startSession.d.ts +2 -0
  250. package/dist/daemon/startSession.d.ts.map +1 -1
  251. package/dist/daemon/startSession.js +9 -5
  252. package/dist/daemon/startSession.js.map +1 -1
  253. package/dist/daemon/worker/TelemetryStore.d.ts +18 -0
  254. package/dist/daemon/worker/TelemetryStore.d.ts.map +1 -0
  255. package/dist/daemon/worker/TelemetryStore.js +49 -0
  256. package/dist/daemon/worker/TelemetryStore.js.map +1 -0
  257. package/dist/daemon/worker/collectors.d.ts +8 -0
  258. package/dist/daemon/worker/collectors.d.ts.map +1 -0
  259. package/dist/daemon/worker/collectors.js +19 -0
  260. package/dist/daemon/worker/collectors.js.map +1 -0
  261. package/dist/daemon/worker/commandRegistry.d.ts +10 -0
  262. package/dist/daemon/worker/commandRegistry.d.ts.map +1 -0
  263. package/dist/daemon/worker/commandRegistry.js +289 -0
  264. package/dist/daemon/worker/commandRegistry.js.map +1 -0
  265. package/dist/daemon/worker/plugins.d.ts +21 -0
  266. package/dist/daemon/worker/plugins.d.ts.map +1 -0
  267. package/dist/daemon/worker/plugins.js +71 -0
  268. package/dist/daemon/worker/plugins.js.map +1 -0
  269. package/dist/daemon/worker/types.d.ts +13 -0
  270. package/dist/daemon/worker/types.d.ts.map +1 -0
  271. package/dist/daemon/worker/types.js +2 -0
  272. package/dist/daemon/worker/types.js.map +1 -0
  273. package/dist/daemon/worker.js +232 -484
  274. package/dist/daemon/worker.js.map +1 -1
  275. package/dist/help/machineReadableHelp.d.ts +100 -0
  276. package/dist/help/machineReadableHelp.d.ts.map +1 -0
  277. package/dist/help/machineReadableHelp.js +139 -0
  278. package/dist/help/machineReadableHelp.js.map +1 -0
  279. package/dist/index.js +18 -9
  280. package/dist/index.js.map +1 -1
  281. package/dist/ipc/__tests__/client.contract.test.js +2 -2
  282. package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
  283. package/dist/ipc/client.d.ts +16 -1
  284. package/dist/ipc/client.d.ts.map +1 -1
  285. package/dist/ipc/client.js +40 -11
  286. package/dist/ipc/client.js.map +1 -1
  287. package/dist/ipc/commands.d.ts +20 -0
  288. package/dist/ipc/commands.d.ts.map +1 -1
  289. package/dist/ipc/commands.js +4 -0
  290. package/dist/ipc/commands.js.map +1 -1
  291. package/dist/ipc/types.d.ts +2 -0
  292. package/dist/ipc/types.d.ts.map +1 -1
  293. package/dist/session/BdgSession.d.ts +91 -0
  294. package/dist/session/BdgSession.d.ts.map +1 -0
  295. package/dist/session/BdgSession.js +230 -0
  296. package/dist/session/BdgSession.js.map +1 -0
  297. package/dist/session/cleanup.d.ts.map +1 -1
  298. package/dist/session/cleanup.js +67 -65
  299. package/dist/session/cleanup.js.map +1 -1
  300. package/dist/session/fileOps.d.ts +25 -0
  301. package/dist/session/fileOps.d.ts.map +1 -0
  302. package/dist/session/fileOps.js +39 -0
  303. package/dist/session/fileOps.js.map +1 -0
  304. package/dist/session/metadata.js +2 -2
  305. package/dist/session/metadata.js.map +1 -1
  306. package/dist/session/paths.d.ts +2 -7
  307. package/dist/session/paths.d.ts.map +1 -1
  308. package/dist/session/paths.js +8 -8
  309. package/dist/session/paths.js.map +1 -1
  310. package/dist/session/queryCache.js +1 -1
  311. package/dist/session/queryCache.js.map +1 -1
  312. package/dist/telemetry/__tests__/filters.unit.test.d.ts +2 -0
  313. package/dist/telemetry/__tests__/filters.unit.test.d.ts.map +1 -0
  314. package/dist/telemetry/__tests__/filters.unit.test.js +239 -0
  315. package/dist/telemetry/__tests__/filters.unit.test.js.map +1 -0
  316. package/dist/telemetry/console.d.ts +1 -1
  317. package/dist/telemetry/console.d.ts.map +1 -1
  318. package/dist/telemetry/console.js +5 -3
  319. package/dist/telemetry/console.js.map +1 -1
  320. package/dist/telemetry/dialogs.d.ts +27 -0
  321. package/dist/telemetry/dialogs.d.ts.map +1 -0
  322. package/dist/telemetry/dialogs.js +51 -0
  323. package/dist/telemetry/dialogs.js.map +1 -0
  324. package/dist/telemetry/filters.d.ts +148 -0
  325. package/dist/telemetry/filters.d.ts.map +1 -0
  326. package/dist/telemetry/filters.js +358 -0
  327. package/dist/telemetry/filters.js.map +1 -0
  328. package/dist/telemetry/navigation.d.ts +49 -0
  329. package/dist/telemetry/navigation.d.ts.map +1 -0
  330. package/dist/telemetry/navigation.js +69 -0
  331. package/dist/telemetry/navigation.js.map +1 -0
  332. package/dist/telemetry/network.d.ts +1 -0
  333. package/dist/telemetry/network.d.ts.map +1 -1
  334. package/dist/telemetry/network.js +23 -34
  335. package/dist/telemetry/network.js.map +1 -1
  336. package/dist/types.d.ts +26 -0
  337. package/dist/types.d.ts.map +1 -1
  338. package/dist/ui/errors/CommandError.d.ts +39 -0
  339. package/dist/ui/errors/CommandError.d.ts.map +1 -0
  340. package/dist/ui/errors/CommandError.js +48 -0
  341. package/dist/ui/errors/CommandError.js.map +1 -0
  342. package/dist/ui/errors/SystemErrors.d.ts +22 -0
  343. package/dist/ui/errors/SystemErrors.d.ts.map +1 -0
  344. package/dist/ui/errors/SystemErrors.js +23 -0
  345. package/dist/ui/errors/SystemErrors.js.map +1 -0
  346. package/dist/ui/errors/index.d.ts +9 -0
  347. package/dist/ui/errors/index.d.ts.map +1 -0
  348. package/dist/ui/errors/index.js +12 -0
  349. package/dist/ui/errors/index.js.map +1 -0
  350. package/dist/ui/errors/utils.d.ts +24 -0
  351. package/dist/ui/errors/utils.d.ts.map +1 -0
  352. package/dist/ui/errors/utils.js +28 -0
  353. package/dist/ui/errors/utils.js.map +1 -0
  354. package/dist/ui/errors.d.ts +39 -0
  355. package/dist/ui/errors.d.ts.map +1 -0
  356. package/dist/ui/errors.js +48 -0
  357. package/dist/ui/errors.js.map +1 -0
  358. package/dist/ui/formatters/cookies.d.ts.map +1 -1
  359. package/dist/ui/formatters/cookies.js +18 -21
  360. package/dist/ui/formatters/cookies.js.map +1 -1
  361. package/dist/ui/formatters/details.d.ts.map +1 -1
  362. package/dist/ui/formatters/details.js +34 -36
  363. package/dist/ui/formatters/details.js.map +1 -1
  364. package/dist/ui/formatters/dom.d.ts +135 -0
  365. package/dist/ui/formatters/dom.d.ts.map +1 -0
  366. package/dist/ui/formatters/dom.js +193 -0
  367. package/dist/ui/formatters/dom.js.map +1 -0
  368. package/dist/ui/formatters/index.d.ts +1 -0
  369. package/dist/ui/formatters/index.d.ts.map +1 -1
  370. package/dist/ui/formatters/index.js +1 -0
  371. package/dist/ui/formatters/index.js.map +1 -1
  372. package/dist/ui/formatters/preview.js +43 -38
  373. package/dist/ui/formatters/preview.js.map +1 -1
  374. package/dist/ui/formatters/status.d.ts.map +1 -1
  375. package/dist/ui/formatters/status.js +45 -45
  376. package/dist/ui/formatters/status.js.map +1 -1
  377. package/dist/ui/formatting.d.ts +104 -1
  378. package/dist/ui/formatting.d.ts.map +1 -1
  379. package/dist/ui/formatting.js +138 -2
  380. package/dist/ui/formatting.js.map +1 -1
  381. package/dist/ui/logging/index.d.ts +7 -0
  382. package/dist/ui/logging/index.d.ts.map +1 -0
  383. package/dist/ui/logging/index.js +7 -0
  384. package/dist/ui/logging/index.js.map +1 -0
  385. package/dist/ui/logging/logger.d.ts +98 -0
  386. package/dist/ui/logging/logger.d.ts.map +1 -0
  387. package/dist/ui/logging/logger.js +93 -0
  388. package/dist/ui/logging/logger.js.map +1 -0
  389. package/dist/ui/messages/chrome.d.ts +120 -1
  390. package/dist/ui/messages/chrome.d.ts.map +1 -1
  391. package/dist/ui/messages/chrome.js +168 -0
  392. package/dist/ui/messages/chrome.js.map +1 -1
  393. package/dist/ui/messages/debug.d.ts +4 -2
  394. package/dist/ui/messages/debug.d.ts.map +1 -1
  395. package/dist/ui/messages/debug.js +31 -29
  396. package/dist/ui/messages/debug.js.map +1 -1
  397. package/dist/ui/messages/deprecation.d.ts +30 -0
  398. package/dist/ui/messages/deprecation.d.ts.map +1 -0
  399. package/dist/ui/messages/deprecation.js +49 -0
  400. package/dist/ui/messages/deprecation.js.map +1 -0
  401. package/dist/ui/messages/errors.d.ts +11 -0
  402. package/dist/ui/messages/errors.d.ts.map +1 -1
  403. package/dist/ui/messages/errors.js +13 -0
  404. package/dist/ui/messages/errors.js.map +1 -1
  405. package/dist/ui/messages/preview.d.ts +24 -0
  406. package/dist/ui/messages/preview.d.ts.map +1 -1
  407. package/dist/ui/messages/preview.js +32 -1
  408. package/dist/ui/messages/preview.js.map +1 -1
  409. package/dist/ui/messages/session.d.ts.map +1 -1
  410. package/dist/ui/messages/session.js +21 -7
  411. package/dist/ui/messages/session.js.map +1 -1
  412. package/dist/ui/messages/validation.d.ts +14 -0
  413. package/dist/ui/messages/validation.d.ts.map +1 -1
  414. package/dist/ui/messages/validation.js +16 -0
  415. package/dist/ui/messages/validation.js.map +1 -1
  416. package/dist/utils/__tests__/session.contract.test.js +15 -1
  417. package/dist/utils/__tests__/session.contract.test.js.map +1 -1
  418. package/dist/utils/filters.d.ts +40 -0
  419. package/dist/utils/filters.d.ts.map +1 -1
  420. package/dist/utils/filters.js +55 -1
  421. package/dist/utils/filters.js.map +1 -1
  422. package/dist/utils/pageReadiness.d.ts +9 -14
  423. package/dist/utils/pageReadiness.d.ts.map +1 -1
  424. package/dist/utils/pageReadiness.js +40 -41
  425. package/dist/utils/pageReadiness.js.map +1 -1
  426. package/dist/utils/session.d.ts +200 -0
  427. package/dist/utils/session.d.ts.map +1 -0
  428. package/dist/utils/session.js +498 -0
  429. package/dist/utils/session.js.map +1 -0
  430. package/dist/utils/url.d.ts +58 -6
  431. package/dist/utils/url.d.ts.map +1 -1
  432. package/dist/utils/url.js +137 -20
  433. package/dist/utils/url.js.map +1 -1
  434. package/dist/utils/validation.d.ts +12 -0
  435. package/dist/utils/validation.d.ts.map +1 -0
  436. package/dist/utils/validation.js +20 -0
  437. package/dist/utils/validation.js.map +1 -0
  438. package/package.json +3 -5
  439. package/dist/cli/commands/__tests__/cdp.contract.test.d.ts +0 -24
  440. package/dist/cli/commands/__tests__/cdp.contract.test.d.ts.map +0 -1
  441. package/dist/cli/commands/__tests__/cdp.contract.test.js +0 -467
  442. package/dist/cli/commands/__tests__/cdp.contract.test.js.map +0 -1
  443. package/dist/cli/commands/cdp.d.ts +0 -8
  444. package/dist/cli/commands/cdp.d.ts.map +0 -1
  445. package/dist/cli/commands/cdp.js +0 -45
  446. package/dist/cli/commands/cdp.js.map +0 -1
  447. package/dist/cli/commands/console.d.ts +0 -8
  448. package/dist/cli/commands/console.d.ts.map +0 -1
  449. package/dist/cli/commands/console.js +0 -97
  450. package/dist/cli/commands/console.js.map +0 -1
  451. package/dist/cli/commands/dom/helpers/domCache.d.ts +0 -36
  452. package/dist/cli/commands/dom/helpers/domCache.d.ts.map +0 -1
  453. package/dist/cli/commands/dom/helpers/domCache.js +0 -65
  454. package/dist/cli/commands/dom/helpers/domCache.js.map +0 -1
  455. package/dist/cli/commands/dom/helpers/domQuery.d.ts +0 -48
  456. package/dist/cli/commands/dom/helpers/domQuery.d.ts.map +0 -1
  457. package/dist/cli/commands/dom/helpers/domQuery.js +0 -104
  458. package/dist/cli/commands/dom/helpers/domQuery.js.map +0 -1
  459. package/dist/cli/commands/dom/helpers/errorHandler.d.ts +0 -45
  460. package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +0 -1
  461. package/dist/cli/commands/dom/helpers/errorHandler.js +0 -71
  462. package/dist/cli/commands/dom/helpers/errorHandler.js.map +0 -1
  463. package/dist/cli/commands/dom/helpers/evalHelpers.d.ts +0 -52
  464. package/dist/cli/commands/dom/helpers/evalHelpers.d.ts.map +0 -1
  465. package/dist/cli/commands/dom/helpers/evalHelpers.js +0 -75
  466. package/dist/cli/commands/dom/helpers/evalHelpers.js.map +0 -1
  467. package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts +0 -35
  468. package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts.map +0 -1
  469. package/dist/cli/commands/dom/helpers/optionsBuilder.js +0 -51
  470. package/dist/cli/commands/dom/helpers/optionsBuilder.js.map +0 -1
  471. package/dist/cli/commands/dom/helpers/selectorParser.d.ts +0 -20
  472. package/dist/cli/commands/dom/helpers/selectorParser.d.ts.map +0 -1
  473. package/dist/cli/commands/dom/helpers/selectorParser.js +0 -20
  474. package/dist/cli/commands/dom/helpers/selectorParser.js.map +0 -1
  475. package/dist/cli/commands/dom/index.d.ts +0 -8
  476. package/dist/cli/commands/dom/index.d.ts.map +0 -1
  477. package/dist/cli/commands/dom/index.js +0 -257
  478. package/dist/cli/commands/dom/index.js.map +0 -1
  479. package/dist/cli/commands/dom.d.ts +0 -8
  480. package/dist/cli/commands/dom.d.ts.map +0 -1
  481. package/dist/cli/commands/dom.js +0 -257
  482. package/dist/cli/commands/dom.js.map +0 -1
  483. package/dist/cli/commands/domErrorHandler.d.ts +0 -45
  484. package/dist/cli/commands/domErrorHandler.d.ts.map +0 -1
  485. package/dist/cli/commands/domErrorHandler.js +0 -71
  486. package/dist/cli/commands/domErrorHandler.js.map +0 -1
  487. package/dist/cli/commands/domEvalHelpers.d.ts +0 -52
  488. package/dist/cli/commands/domEvalHelpers.d.ts.map +0 -1
  489. package/dist/cli/commands/domEvalHelpers.js +0 -76
  490. package/dist/cli/commands/domEvalHelpers.js.map +0 -1
  491. package/dist/cli/commands/domOptionsBuilder.d.ts +0 -35
  492. package/dist/cli/commands/domOptionsBuilder.d.ts.map +0 -1
  493. package/dist/cli/commands/domOptionsBuilder.js +0 -51
  494. package/dist/cli/commands/domOptionsBuilder.js.map +0 -1
  495. package/dist/cli/commands/domSelectorParser.d.ts +0 -20
  496. package/dist/cli/commands/domSelectorParser.d.ts.map +0 -1
  497. package/dist/cli/commands/domSelectorParser.js +0 -20
  498. package/dist/cli/commands/domSelectorParser.js.map +0 -1
  499. package/dist/cli/commands/network.d.ts +0 -8
  500. package/dist/cli/commands/network.d.ts.map +0 -1
  501. package/dist/cli/commands/network.js +0 -43
  502. package/dist/cli/commands/network.js.map +0 -1
  503. package/dist/cli/handlers/CommandRunner.d.ts +0 -60
  504. package/dist/cli/handlers/CommandRunner.d.ts.map +0 -1
  505. package/dist/cli/handlers/CommandRunner.js +0 -81
  506. package/dist/cli/handlers/CommandRunner.js.map +0 -1
  507. package/dist/cli/handlers/commonOptions.d.ts +0 -54
  508. package/dist/cli/handlers/commonOptions.d.ts.map +0 -1
  509. package/dist/cli/handlers/commonOptions.js +0 -64
  510. package/dist/cli/handlers/commonOptions.js.map +0 -1
  511. package/dist/cli/handlers/daemonSessionController.d.ts +0 -23
  512. package/dist/cli/handlers/daemonSessionController.d.ts.map +0 -1
  513. package/dist/cli/handlers/daemonSessionController.js +0 -79
  514. package/dist/cli/handlers/daemonSessionController.js.map +0 -1
  515. package/dist/cli/handlers/landingPage.d.ts +0 -8
  516. package/dist/cli/handlers/landingPage.d.ts.map +0 -1
  517. package/dist/cli/handlers/landingPage.js +0 -8
  518. package/dist/cli/handlers/landingPage.js.map +0 -1
  519. package/dist/collectors/__tests__/network.contract.test.d.ts +0 -28
  520. package/dist/collectors/__tests__/network.contract.test.d.ts.map +0 -1
  521. package/dist/collectors/__tests__/network.contract.test.js +0 -540
  522. package/dist/collectors/__tests__/network.contract.test.js.map +0 -1
  523. package/dist/commandRegistry.d.ts +0 -11
  524. package/dist/commandRegistry.d.ts.map +0 -1
  525. package/dist/commandRegistry.js +0 -45
  526. package/dist/commandRegistry.js.map +0 -1
  527. package/dist/commands/domErrorHandler.d.ts +0 -45
  528. package/dist/commands/domErrorHandler.d.ts.map +0 -1
  529. package/dist/commands/domErrorHandler.js +0 -71
  530. package/dist/commands/domErrorHandler.js.map +0 -1
  531. package/dist/dom/cache.d.ts +0 -36
  532. package/dist/dom/cache.d.ts.map +0 -1
  533. package/dist/dom/cache.js +0 -65
  534. package/dist/dom/cache.js.map +0 -1
  535. package/dist/dom/index.d.ts +0 -9
  536. package/dist/dom/index.d.ts.map +0 -1
  537. package/dist/dom/index.js +0 -9
  538. package/dist/dom/index.js.map +0 -1
  539. package/dist/dom/query.d.ts +0 -48
  540. package/dist/dom/query.d.ts.map +0 -1
  541. package/dist/dom/query.js +0 -104
  542. package/dist/dom/query.js.map +0 -1
  543. package/dist/utils/formatters/network.d.ts +0 -23
  544. package/dist/utils/formatters/network.d.ts.map +0 -1
  545. package/dist/utils/formatters/network.js +0 -35
  546. package/dist/utils/formatters/network.js.map +0 -1
  547. package/dist/utils/ui.d.ts +0 -36
  548. package/dist/utils/ui.d.ts.map +0 -1
  549. package/dist/utils/ui.js +0 -47
  550. package/dist/utils/ui.js.map +0 -1
  551. package/dist/utils/url/safeParseUrl.d.ts +0 -63
  552. package/dist/utils/url/safeParseUrl.d.ts.map +0 -1
  553. package/dist/utils/url/safeParseUrl.js +0 -84
  554. package/dist/utils/url/safeParseUrl.js.map +0 -1
@@ -1,540 +0,0 @@
1
- /**
2
- * Network collector contract tests
3
- *
4
- * Tests the public API behavior of startNetworkCollection WITHOUT testing implementation details.
5
- * Follows the testing philosophy: "Test the contract, not the implementation"
6
- *
7
- * Coverage:
8
- * 1. Request/response pairing - Normal flow with matching IDs
9
- * 2. Out-of-order events - Response arrives before request
10
- * 3. Stale requests - Incomplete requests after timeout
11
- * 4. Failed requests - Network.loadingFailed events
12
- * 5. Request limits - MAX_NETWORK_REQUESTS enforcement
13
- * 6. Cleanup - Handler removal and state cleanup
14
- * 7. Domain filtering - Tracking/analytics exclusion
15
- * 8. Body fetching - Size limits and MIME type handling
16
- *
17
- * What we test:
18
- * ✅ Behavior: Given CDP events → expect NetworkRequest array contents
19
- * ✅ Invariants: "Requests are paired with responses", "Cleanup removes all handlers"
20
- * ✅ Edge cases: Out-of-order, stale, limits, failures
21
- *
22
- * What we DON'T test:
23
- * ❌ Internal requestMap structure
24
- * ❌ Internal function calls (tryExactMatch, normalizeUrl, etc.)
25
- * ❌ Implementation details (Map vs Set, event handler IDs)
26
- */
27
- import assert from 'node:assert/strict';
28
- import { afterEach, beforeEach, describe, it } from 'node:test';
29
- import { useFakeClock } from '../../__testutils__/testClock.js';
30
- import { startNetworkCollection } from '../../collectors/network.js';
31
- /**
32
- * Mock CDP connection for testing network collector.
33
- * Only mocks the CDP boundary - all collector logic is real.
34
- */
35
- class MockCDPConnection {
36
- eventHandlers = new Map();
37
- nextHandlerId = 0;
38
- sendCalls = [];
39
- /**
40
- * Mock CDP send - records calls for verification
41
- */
42
- send(method, params) {
43
- this.sendCalls.push({ method, params });
44
- return Promise.resolve({});
45
- }
46
- /**
47
- * Mock CDP event subscription
48
- */
49
- on(event, handler) {
50
- if (!this.eventHandlers.has(event)) {
51
- this.eventHandlers.set(event, new Map());
52
- }
53
- const id = this.nextHandlerId++;
54
- const handlers = this.eventHandlers.get(event);
55
- if (handlers) {
56
- handlers.set(id, handler);
57
- }
58
- return id;
59
- }
60
- /**
61
- * Mock CDP event unsubscription
62
- */
63
- off(event, handlerId) {
64
- this.eventHandlers.get(event)?.delete(handlerId);
65
- }
66
- /**
67
- * Test helper: Emit CDP event to registered handlers
68
- */
69
- emit(event, params) {
70
- const handlers = this.eventHandlers.get(event);
71
- if (handlers) {
72
- handlers.forEach((handler) => handler(params));
73
- }
74
- }
75
- /**
76
- * Test helper: Verify Network.enable was called
77
- */
78
- wasNetworkEnabled() {
79
- return this.sendCalls.some((call) => call.method === 'Network.enable');
80
- }
81
- /**
82
- * Test helper: Get event handler count for verification
83
- */
84
- getHandlerCount(event) {
85
- return this.eventHandlers.get(event)?.size ?? 0;
86
- }
87
- /**
88
- * Test helper: Clear all state
89
- */
90
- reset() {
91
- this.eventHandlers.clear();
92
- this.sendCalls = [];
93
- this.nextHandlerId = 0;
94
- }
95
- }
96
- void describe('Network collector contract', () => {
97
- let mockCDP;
98
- let requests;
99
- beforeEach(() => {
100
- mockCDP = new MockCDPConnection();
101
- requests = [];
102
- });
103
- afterEach(() => {
104
- void mockCDP.reset();
105
- });
106
- void describe('Basic request/response pairing', () => {
107
- void it('should pair request with response by requestId', async () => {
108
- // Arrange: Start collection
109
- const cleanup = await startNetworkCollection(mockCDP, requests);
110
- // Act: Simulate CDP events for a complete request/response cycle
111
- mockCDP.emit('Network.requestWillBeSent', {
112
- requestId: 'req-1',
113
- request: {
114
- url: 'https://api.example.com/users',
115
- method: 'GET',
116
- headers: { 'User-Agent': 'Test' },
117
- },
118
- timestamp: 1000,
119
- type: 'XHR',
120
- frameId: 'frame-1',
121
- loaderId: 'loader-1',
122
- });
123
- mockCDP.emit('Network.responseReceived', {
124
- requestId: 'req-1',
125
- response: {
126
- url: 'https://api.example.com/users',
127
- status: 200,
128
- statusText: 'OK',
129
- headers: { 'Content-Type': 'application/json' },
130
- mimeType: 'application/json',
131
- },
132
- timestamp: 1050,
133
- type: 'XHR',
134
- frameId: 'frame-1',
135
- loaderId: 'loader-1',
136
- });
137
- mockCDP.emit('Network.loadingFinished', {
138
- requestId: 'req-1',
139
- timestamp: 1100,
140
- encodedDataLength: 1234,
141
- });
142
- // Assert: Request is paired with response
143
- assert.equal(requests.length, 1, 'Should have one network request');
144
- const request = requests[0];
145
- assert.ok(request, 'Request should exist');
146
- assert.equal(request.requestId, 'req-1');
147
- assert.equal(request.url, 'https://api.example.com/users');
148
- assert.equal(request.method, 'GET');
149
- assert.equal(request.status, 200);
150
- assert.equal(request.mimeType, 'application/json');
151
- assert.ok(request.requestHeaders, 'Should have request headers');
152
- assert.ok(request.responseHeaders, 'Should have response headers');
153
- // Cleanup
154
- void cleanup();
155
- });
156
- void it('should handle multiple concurrent requests', async () => {
157
- // Arrange
158
- const cleanup = await startNetworkCollection(mockCDP, requests);
159
- // Act: Simulate 3 concurrent requests
160
- for (let i = 1; i <= 3; i++) {
161
- mockCDP.emit('Network.requestWillBeSent', {
162
- requestId: `req-${i}`,
163
- request: {
164
- url: `https://api.example.com/resource-${i}`,
165
- method: 'GET',
166
- headers: {},
167
- },
168
- timestamp: 1000 + i,
169
- type: 'XHR',
170
- frameId: 'frame-1',
171
- loaderId: 'loader-1',
172
- });
173
- }
174
- // Responses arrive in different order (3, 1, 2)
175
- for (const i of [3, 1, 2]) {
176
- mockCDP.emit('Network.responseReceived', {
177
- requestId: `req-${i}`,
178
- response: {
179
- url: `https://api.example.com/resource-${i}`,
180
- status: 200,
181
- statusText: 'OK',
182
- headers: {},
183
- mimeType: 'application/json',
184
- },
185
- timestamp: 2000 + i,
186
- type: 'XHR',
187
- frameId: 'frame-1',
188
- loaderId: 'loader-1',
189
- });
190
- mockCDP.emit('Network.loadingFinished', {
191
- requestId: `req-${i}`,
192
- timestamp: 3000 + i,
193
- encodedDataLength: 100,
194
- });
195
- }
196
- // Assert: All requests paired correctly despite out-of-order responses
197
- assert.equal(requests.length, 3);
198
- assert.ok(requests[0], 'First request should exist');
199
- assert.ok(requests[1], 'Second request should exist');
200
- assert.ok(requests[2], 'Third request should exist');
201
- assert.equal(requests[0].requestId, 'req-3');
202
- assert.equal(requests[1].requestId, 'req-1');
203
- assert.equal(requests[2].requestId, 'req-2');
204
- void cleanup();
205
- });
206
- });
207
- void describe('Edge case: Out-of-order events', () => {
208
- void it('should handle response arriving before request', async () => {
209
- // This is a real race condition that can happen in CDP
210
- // Current behavior: Response event is ignored if request doesn't exist yet
211
- // The second responseReceived event (after request) sets the status correctly
212
- const cleanup = await startNetworkCollection(mockCDP, requests);
213
- // Act: Response arrives BEFORE request (early response is ignored)
214
- mockCDP.emit('Network.responseReceived', {
215
- requestId: 'req-1',
216
- response: {
217
- url: 'https://api.example.com/users',
218
- status: 200,
219
- statusText: 'OK',
220
- headers: {},
221
- mimeType: 'application/json',
222
- },
223
- timestamp: 1000,
224
- type: 'XHR',
225
- frameId: 'frame-1',
226
- loaderId: 'loader-1',
227
- });
228
- // Request arrives later
229
- mockCDP.emit('Network.requestWillBeSent', {
230
- requestId: 'req-1',
231
- request: {
232
- url: 'https://api.example.com/users',
233
- method: 'GET',
234
- headers: {},
235
- },
236
- timestamp: 1050,
237
- type: 'XHR',
238
- frameId: 'frame-1',
239
- loaderId: 'loader-1',
240
- });
241
- // Response arrives again (normal order) - this one actually sets status
242
- mockCDP.emit('Network.responseReceived', {
243
- requestId: 'req-1',
244
- response: {
245
- url: 'https://api.example.com/users',
246
- status: 200,
247
- statusText: 'OK',
248
- headers: {},
249
- mimeType: 'application/json',
250
- },
251
- timestamp: 1075,
252
- type: 'XHR',
253
- frameId: 'frame-1',
254
- loaderId: 'loader-1',
255
- });
256
- mockCDP.emit('Network.loadingFinished', {
257
- requestId: 'req-1',
258
- timestamp: 1100,
259
- encodedDataLength: 100,
260
- });
261
- // Assert: Request is tracked correctly with response data from second response event
262
- assert.equal(requests.length, 1, 'Should have one request');
263
- const request = requests[0];
264
- assert.ok(request, 'Request should exist');
265
- assert.equal(request.status, 200, 'Status should be set from second response event');
266
- assert.equal(request.url, 'https://api.example.com/users');
267
- assert.equal(request.mimeType, 'application/json', 'MIME type should be set');
268
- void cleanup();
269
- });
270
- });
271
- void describe('Edge case: Failed requests', () => {
272
- void it('should handle Network.loadingFailed events', async () => {
273
- const cleanup = await startNetworkCollection(mockCDP, requests);
274
- // Act: Request fails instead of succeeding
275
- mockCDP.emit('Network.requestWillBeSent', {
276
- requestId: 'req-1',
277
- request: {
278
- url: 'https://api.example.com/fail',
279
- method: 'GET',
280
- headers: {},
281
- },
282
- timestamp: 1000,
283
- type: 'XHR',
284
- frameId: 'frame-1',
285
- loaderId: 'loader-1',
286
- });
287
- mockCDP.emit('Network.loadingFailed', {
288
- requestId: 'req-1',
289
- timestamp: 1100,
290
- type: 'XHR',
291
- errorText: 'net::ERR_CONNECTION_REFUSED',
292
- });
293
- // Assert: Failed request is recorded with status 0
294
- assert.equal(requests.length, 1);
295
- const request = requests[0];
296
- assert.ok(request, 'Request should exist');
297
- assert.equal(request.status, 0, 'Failed requests should have status 0');
298
- assert.equal(request.url, 'https://api.example.com/fail');
299
- void cleanup();
300
- });
301
- });
302
- void describe('Edge case: Stale request cleanup', () => {
303
- void it('should clean up stale requests after timeout', async () => {
304
- // Use fake clock to control time
305
- const clockHelper = useFakeClock();
306
- const cleanup = await startNetworkCollection(mockCDP, requests);
307
- // Act: Create request but never finish it
308
- mockCDP.emit('Network.requestWillBeSent', {
309
- requestId: 'stale-req',
310
- request: {
311
- url: 'https://api.example.com/hanging',
312
- method: 'GET',
313
- headers: {},
314
- },
315
- timestamp: 1000,
316
- type: 'XHR',
317
- frameId: 'frame-1',
318
- loaderId: 'loader-1',
319
- });
320
- // Fast-forward past stale timeout (60s) + cleanup interval (30s)
321
- await clockHelper.tickAndFlush(91_000);
322
- // Assert: Stale request is NOT in final output (removed from tracking)
323
- assert.equal(requests.length, 0, 'Stale requests should not appear in output (removed from tracking)');
324
- void cleanup();
325
- clockHelper.restore();
326
- });
327
- });
328
- void describe('Request limit enforcement', () => {
329
- void it('should enforce MAX_NETWORK_REQUESTS limit', async () => {
330
- const cleanup = await startNetworkCollection(mockCDP, requests, { includeAll: true } // Disable domain filtering for this test
331
- );
332
- const MAX_REQUESTS = 10_000;
333
- // Act: Try to collect more than the limit
334
- for (let i = 1; i <= MAX_REQUESTS + 100; i++) {
335
- mockCDP.emit('Network.requestWillBeSent', {
336
- requestId: `req-${i}`,
337
- request: {
338
- url: `https://api.example.com/item-${i}`,
339
- method: 'GET',
340
- headers: {},
341
- },
342
- timestamp: 1000 + i,
343
- type: 'XHR',
344
- frameId: 'frame-1',
345
- loaderId: 'loader-1',
346
- });
347
- mockCDP.emit('Network.loadingFinished', {
348
- requestId: `req-${i}`,
349
- timestamp: 2000 + i,
350
- encodedDataLength: 100,
351
- });
352
- }
353
- // Assert: Should never exceed MAX_NETWORK_REQUESTS
354
- assert.ok(requests.length <= MAX_REQUESTS, `Should not exceed ${MAX_REQUESTS} requests, got ${requests.length}`);
355
- void cleanup();
356
- });
357
- });
358
- void describe('Cleanup behavior', () => {
359
- void it('should remove all event handlers on cleanup', async () => {
360
- // Arrange
361
- const cleanup = await startNetworkCollection(mockCDP, requests);
362
- // Assert: Handlers registered during start
363
- assert.ok(mockCDP.getHandlerCount('Network.requestWillBeSent') > 0, 'Should have requestWillBeSent handler');
364
- assert.ok(mockCDP.getHandlerCount('Network.responseReceived') > 0, 'Should have responseReceived handler');
365
- assert.ok(mockCDP.getHandlerCount('Network.loadingFinished') > 0, 'Should have loadingFinished handler');
366
- assert.ok(mockCDP.getHandlerCount('Network.loadingFailed') > 0, 'Should have loadingFailed handler');
367
- // Act: Call cleanup
368
- void cleanup();
369
- // Assert: All handlers removed
370
- assert.equal(mockCDP.getHandlerCount('Network.requestWillBeSent'), 0, 'Should remove requestWillBeSent handler');
371
- assert.equal(mockCDP.getHandlerCount('Network.responseReceived'), 0, 'Should remove responseReceived handler');
372
- assert.equal(mockCDP.getHandlerCount('Network.loadingFinished'), 0, 'Should remove loadingFinished handler');
373
- assert.equal(mockCDP.getHandlerCount('Network.loadingFailed'), 0, 'Should remove loadingFailed handler');
374
- });
375
- void it('should be idempotent (safe to call multiple times)', async () => {
376
- const cleanup = await startNetworkCollection(mockCDP, requests);
377
- // Act: Call cleanup multiple times
378
- void cleanup();
379
- void cleanup();
380
- void cleanup();
381
- // Assert: No errors thrown, handlers remain removed
382
- assert.equal(mockCDP.getHandlerCount('Network.requestWillBeSent'), 0);
383
- });
384
- });
385
- void describe('Domain filtering', () => {
386
- void it('should exclude default tracking domains by default', async () => {
387
- const cleanup = await startNetworkCollection(mockCDP, requests
388
- // includeAll defaults to false
389
- );
390
- // Act: Send requests to tracking domains
391
- const trackingDomains = [
392
- 'https://www.google-analytics.com/collect',
393
- 'https://connect.facebook.net/en_US/fbevents.js',
394
- 'https://www.googletagmanager.com/gtag/js',
395
- ];
396
- for (const url of trackingDomains) {
397
- mockCDP.emit('Network.requestWillBeSent', {
398
- requestId: `req-${url}`,
399
- request: { url, method: 'GET', headers: {} },
400
- timestamp: 1000,
401
- type: 'Script',
402
- frameId: 'frame-1',
403
- loaderId: 'loader-1',
404
- });
405
- mockCDP.emit('Network.loadingFinished', {
406
- requestId: `req-${url}`,
407
- timestamp: 2000,
408
- encodedDataLength: 100,
409
- });
410
- }
411
- // Assert: Tracking requests are filtered out
412
- assert.equal(requests.length, 0, 'Tracking domains should be filtered by default');
413
- void cleanup();
414
- });
415
- void it('should include tracking domains when includeAll=true', async () => {
416
- const cleanup = await startNetworkCollection(mockCDP, requests, {
417
- includeAll: true,
418
- });
419
- // Act: Send request to tracking domain
420
- mockCDP.emit('Network.requestWillBeSent', {
421
- requestId: 'req-1',
422
- request: {
423
- url: 'https://www.google-analytics.com/collect',
424
- method: 'GET',
425
- headers: {},
426
- },
427
- timestamp: 1000,
428
- type: 'Script',
429
- frameId: 'frame-1',
430
- loaderId: 'loader-1',
431
- });
432
- mockCDP.emit('Network.loadingFinished', {
433
- requestId: 'req-1',
434
- timestamp: 2000,
435
- encodedDataLength: 100,
436
- });
437
- // Assert: Request included when includeAll=true
438
- assert.equal(requests.length, 1);
439
- const request = requests[0];
440
- assert.ok(request, 'Request should exist');
441
- assert.ok(request.url.includes('google-analytics.com'));
442
- void cleanup();
443
- });
444
- });
445
- void describe('Response body fetching', () => {
446
- void it('should fetch body for JSON responses under size limit', async () => {
447
- const cleanup = await startNetworkCollection(mockCDP, requests, { fetchAllBodies: true } // Force fetch all bodies for this test
448
- );
449
- // Act: JSON response under 5MB
450
- mockCDP.emit('Network.requestWillBeSent', {
451
- requestId: 'req-1',
452
- request: {
453
- url: 'https://api.example.com/data.json',
454
- method: 'GET',
455
- headers: {},
456
- },
457
- timestamp: 1000,
458
- type: 'XHR',
459
- frameId: 'frame-1',
460
- loaderId: 'loader-1',
461
- });
462
- mockCDP.emit('Network.responseReceived', {
463
- requestId: 'req-1',
464
- response: {
465
- url: 'https://api.example.com/data.json',
466
- status: 200,
467
- statusText: 'OK',
468
- headers: {},
469
- mimeType: 'application/json',
470
- },
471
- timestamp: 1050,
472
- type: 'XHR',
473
- frameId: 'frame-1',
474
- loaderId: 'loader-1',
475
- });
476
- mockCDP.emit('Network.loadingFinished', {
477
- requestId: 'req-1',
478
- timestamp: 1100,
479
- encodedDataLength: 1024, // 1KB - under limit
480
- });
481
- // Wait for async body fetch
482
- await new Promise((resolve) => setTimeout(resolve, 10));
483
- // Assert: Should attempt to fetch body (mock doesn't actually fetch, but real code would)
484
- assert.equal(requests.length, 1);
485
- void cleanup();
486
- });
487
- void it('should skip body for large responses', async () => {
488
- const cleanup = await startNetworkCollection(mockCDP, requests, { maxBodySize: 1024 } // 1KB limit for testing
489
- );
490
- // Act: JSON response over size limit
491
- mockCDP.emit('Network.requestWillBeSent', {
492
- requestId: 'req-1',
493
- request: {
494
- url: 'https://api.example.com/large.json',
495
- method: 'GET',
496
- headers: {},
497
- },
498
- timestamp: 1000,
499
- type: 'XHR',
500
- frameId: 'frame-1',
501
- loaderId: 'loader-1',
502
- });
503
- mockCDP.emit('Network.responseReceived', {
504
- requestId: 'req-1',
505
- response: {
506
- url: 'https://api.example.com/large.json',
507
- status: 200,
508
- statusText: 'OK',
509
- headers: {},
510
- mimeType: 'application/json',
511
- },
512
- timestamp: 1050,
513
- type: 'XHR',
514
- frameId: 'frame-1',
515
- loaderId: 'loader-1',
516
- });
517
- mockCDP.emit('Network.loadingFinished', {
518
- requestId: 'req-1',
519
- timestamp: 1100,
520
- encodedDataLength: 10 * 1024 * 1024, // 10MB - over 1KB limit
521
- });
522
- // Assert: Body should be marked as skipped
523
- assert.equal(requests.length, 1);
524
- const request = requests[0];
525
- assert.ok(request, 'Request should exist');
526
- assert.ok(request.responseBody?.includes('[SKIPPED: Response too large'), 'Large response should have skip marker');
527
- void cleanup();
528
- });
529
- });
530
- void describe('Initialization', () => {
531
- void it('should enable Network domain on start', async () => {
532
- // Act
533
- const cleanup = await startNetworkCollection(mockCDP, requests);
534
- // Assert: Network.enable was called
535
- assert.ok(mockCDP.wasNetworkEnabled(), 'Should call Network.enable');
536
- void cleanup();
537
- });
538
- });
539
- });
540
- //# sourceMappingURL=network.contract.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"network.contract.test.js","sourceRoot":"","sources":["../../../src/collectors/__tests__/network.contract.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import type { Command } from 'commander';
2
- /**
3
- * Command registration function type
4
- */
5
- export type CommandRegistrar = (program: Command) => void;
6
- /**
7
- * Registry of all CLI commands with grouping
8
- * Order matters: groups organize commands in help output
9
- */
10
- export declare const commandRegistry: CommandRegistrar[];
11
- //# sourceMappingURL=commandRegistry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commandRegistry.d.ts","sourceRoot":"","sources":["../src/commandRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAW1D;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,EA0B7C,CAAC"}
@@ -1,45 +0,0 @@
1
- import { registerCdpCommand } from './commands/cdp.js';
2
- import { registerCleanupCommand } from './commands/cleanup.js';
3
- import { registerConsoleCommand } from './commands/console.js';
4
- import { registerDetailsCommand } from './commands/details.js';
5
- import { registerDomCommands } from './commands/dom.js';
6
- import { registerNetworkCommands } from './commands/network.js';
7
- import { registerPeekCommand } from './commands/peek.js';
8
- import { registerStartCommands } from './commands/start.js';
9
- import { registerStatusCommand } from './commands/status.js';
10
- import { registerStopCommand } from './commands/stop.js';
11
- /**
12
- * Helper to add a command group
13
- */
14
- const addCommandGroup = (groupName) => {
15
- return (program) => {
16
- program.commandsGroup(groupName);
17
- };
18
- };
19
- /**
20
- * Registry of all CLI commands with grouping
21
- * Order matters: groups organize commands in help output
22
- */
23
- export const commandRegistry = [
24
- registerStartCommands,
25
- // Session Management Commands
26
- addCommandGroup('Session Management:'),
27
- registerStatusCommand,
28
- registerStopCommand,
29
- registerCleanupCommand,
30
- // Data Inspection Commands
31
- addCommandGroup('Data Inspection:'),
32
- registerPeekCommand,
33
- registerDetailsCommand,
34
- registerDomCommands,
35
- // CDP Commands
36
- addCommandGroup('CDP Commands:'),
37
- registerCdpCommand,
38
- // Network Commands
39
- addCommandGroup('Network Commands:'),
40
- registerNetworkCommands,
41
- // Console Commands
42
- addCommandGroup('Console Commands:'),
43
- registerConsoleCommand,
44
- ];
45
- //# sourceMappingURL=commandRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commandRegistry.js","sourceRoot":"","sources":["../src/commandRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAOzD;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAoB,EAAE;IAC9D,OAAO,CAAC,OAAgB,EAAE,EAAE;QAC1B,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAuB;IACjD,qBAAqB;IAErB,8BAA8B;IAC9B,eAAe,CAAC,qBAAqB,CAAC;IACtC,qBAAqB;IACrB,mBAAmB;IACnB,sBAAsB;IAEtB,2BAA2B;IAC3B,eAAe,CAAC,kBAAkB,CAAC;IACnC,mBAAmB;IACnB,sBAAsB;IACtB,mBAAmB;IAEnB,eAAe;IACf,eAAe,CAAC,eAAe,CAAC;IAChC,kBAAkB;IAElB,mBAAmB;IACnB,eAAe,CAAC,mBAAmB,CAAC;IACpC,uBAAuB;IAEvB,mBAAmB;IACnB,eAAe,CAAC,mBAAmB,CAAC;IACpC,sBAAsB;CACvB,CAAC"}