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
@@ -0,0 +1,51 @@
1
+ import { CDPHandlerRegistry } from '../connection/handlers.js';
2
+ import { createLogger } from '../ui/logging/index.js';
3
+ const log = createLogger('dialogs');
4
+ /**
5
+ * Start auto-dismissing JavaScript dialogs to prevent collection blocking.
6
+ *
7
+ * Automatically accepts all alert(), confirm(), and prompt() dialogs that appear
8
+ * during collection. Without this, dialogs would block the page and prevent
9
+ * further telemetry collection.
10
+ *
11
+ * @param cdp - CDP connection instance
12
+ * @returns Cleanup function to remove event handlers
13
+ *
14
+ * @remarks
15
+ * - All dialogs are automatically accepted (user cannot interact)
16
+ * - Prompt dialogs receive empty string as input
17
+ * - beforeunload dialogs are accepted to allow navigation
18
+ * - Dialog occurrences are logged in debug mode for visibility
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const cleanup = await startDialogHandling(cdp);
23
+ * // ... page may show alert("Hello") - automatically dismissed
24
+ * cleanup(); // Stop handling dialogs
25
+ * ```
26
+ */
27
+ export async function startDialogHandling(cdp) {
28
+ const registry = new CDPHandlerRegistry();
29
+ // Enable Page domain to receive dialog events
30
+ await cdp.send('Page.enable');
31
+ // Listen for JavaScript dialog opening events
32
+ registry.register(cdp, 'Page.javascriptDialogOpening', (params) => {
33
+ log.debug(`Auto-dismissing ${params.type} dialog: "${params.message}" from ${params.url}`);
34
+ // Auto-accept all dialogs to prevent blocking
35
+ // For prompt dialogs, use empty string as input
36
+ // Fire and forget - we don't await the response but handle errors
37
+ void cdp
38
+ .send('Page.handleJavaScriptDialog', {
39
+ accept: true,
40
+ promptText: params.type === 'prompt' ? '' : undefined,
41
+ })
42
+ .catch((error) => {
43
+ log.debug(`Failed to dismiss dialog: ${error.message}`);
44
+ });
45
+ });
46
+ // Return cleanup function
47
+ return () => {
48
+ registry.cleanup(cdp);
49
+ };
50
+ }
51
+ //# sourceMappingURL=dialogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialogs.js","sourceRoot":"","sources":["../../src/telemetry/dialogs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAkBpC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAkB;IAC1D,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAE1C,8CAA8C;IAC9C,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE9B,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CACf,GAAG,EACH,8BAA8B,EAC9B,CAAC,MAAwC,EAAE,EAAE;QAC3C,GAAG,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3F,8CAA8C;QAC9C,gDAAgD;QAChD,kEAAkE;QAClE,KAAK,GAAG;aACL,IAAI,CAAC,6BAA6B,EAAE;YACnC,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC;aACD,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;YACtB,GAAG,CAAC,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC,CACF,CAAC;IAEF,0BAA0B;IAC1B,OAAO,GAAG,EAAE;QACV,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Default filters for reducing noise in collected data
3
+ */
4
+ /**
5
+ * Decision object for whether to fetch a response body.
6
+ */
7
+ export interface BodyFetchDecision {
8
+ /** Whether the body should be fetched */
9
+ should: boolean;
10
+ /** Reason why the body was skipped (if should is false) */
11
+ reason?: string;
12
+ }
13
+ /**
14
+ * Domains to exclude by default (common tracking/analytics)
15
+ * These generate high volume but are rarely useful for debugging
16
+ */
17
+ export declare const DEFAULT_EXCLUDED_DOMAINS: string[];
18
+ /**
19
+ * Console message types to exclude by default (Redux/React DevTools noise)
20
+ */
21
+ export declare const DEFAULT_EXCLUDED_CONSOLE_TYPES: string[];
22
+ /**
23
+ * Console message patterns to exclude by default (dev server noise)
24
+ */
25
+ export declare const DEFAULT_EXCLUDED_CONSOLE_PATTERNS: string[];
26
+ /**
27
+ * File patterns to skip body fetching by default (assets unlikely to be useful for debugging)
28
+ * These reduce data volume significantly without losing critical debugging information.
29
+ */
30
+ export declare const DEFAULT_SKIP_BODY_PATTERNS: string[];
31
+ /**
32
+ * MIME types to skip body fetching by default
33
+ * This catches resources that may not have obvious file extensions (e.g., CSS with query params)
34
+ */
35
+ export declare const DEFAULT_SKIP_BODY_MIME_TYPES: string[];
36
+ /**
37
+ * Check if a URL should be excluded based on domain filtering.
38
+ *
39
+ * @param url - URL to check against exclusion list
40
+ * @param includeAll - If true, disables all filtering
41
+ * @returns True if the URL's domain matches an excluded domain
42
+ */
43
+ export declare function shouldExcludeDomain(url: string, includeAll?: boolean): boolean;
44
+ /**
45
+ * Check if a console message should be excluded based on type and pattern filtering
46
+ */
47
+ export declare function shouldExcludeConsoleMessage(text: string, type: string, includeAll?: boolean): boolean;
48
+ /**
49
+ * Simple wildcard pattern matcher.
50
+ * Supports only the * wildcard character.
51
+ *
52
+ * Examples:
53
+ * matchesWildcard("api.json", "*.json") → true
54
+ * matchesWildcard("api/users", "*api*") → true
55
+ * matchesWildcard("index.html", "*.js") → false
56
+ *
57
+ * @param str - The string to test
58
+ * @param pattern - The pattern with * wildcards
59
+ * @returns True if the string matches the pattern
60
+ */
61
+ export declare function matchesWildcard(str: string, pattern: string): boolean;
62
+ /**
63
+ * Check if a URL matches any pattern in a list.
64
+ *
65
+ * Matches against both bare hostname and hostname+pathname to support:
66
+ * - Bare hostname patterns: `api.example.com` matches all requests to that host
67
+ * - Hostname wildcard patterns: `*analytics*` matches "analytics.google.com/collect"
68
+ * - Path patterns: `*\/api\/*` matches "example.com/api/users"
69
+ * - Combined patterns: `api.example.com\/users` matches specific endpoint
70
+ *
71
+ * @param url - The URL to check
72
+ * @param patterns - Array of wildcard patterns
73
+ * @returns True if URL matches any pattern
74
+ */
75
+ /**
76
+ * Determine if a response body should be fetched based on URL, MIME type, and patterns.
77
+ *
78
+ * Pattern precedence (follows include-trumps-exclude rule):
79
+ * 1. If URL matches includePatterns → FETCH (even if it also matches excludePatterns)
80
+ * 2. If includePatterns specified but URL doesn't match → SKIP (whitelist mode)
81
+ * 3. If URL matches excludePatterns → SKIP
82
+ * 4. If fetchAllBodies flag is true → FETCH
83
+ * 5. If MIME type matches DEFAULT_SKIP_BODY_MIME_TYPES → SKIP
84
+ * 6. If URL matches DEFAULT_SKIP_BODY_PATTERNS → SKIP
85
+ * 7. Otherwise → FETCH (default behavior)
86
+ *
87
+ * @param url - The request URL
88
+ * @param mimeType - The response MIME type (for MIME-based skipping)
89
+ * @param options - Configuration options
90
+ * @returns True if the body should be fetched
91
+ */
92
+ export declare function shouldFetchBody(url: string, mimeType: string | undefined, options?: {
93
+ fetchAllBodies?: boolean;
94
+ includePatterns?: string[];
95
+ excludePatterns?: string[];
96
+ }): boolean;
97
+ /**
98
+ * Determine if a response body should be fetched with detailed reason.
99
+ *
100
+ * Combines all decision logic: MIME type, size limits, smart defaults, and fetch flags.
101
+ * Returns a decision object with reason string for logging/debugging.
102
+ *
103
+ * @param url - Request URL
104
+ * @param mimeType - Response MIME type
105
+ * @param encodedDataLength - Response size in bytes
106
+ * @param options - Configuration options
107
+ * @returns Decision object with should boolean and optional reason
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * const decision = shouldFetchBodyWithReason(
112
+ * 'https://api.example.com/data',
113
+ * 'application/json',
114
+ * 1024,
115
+ * { maxBodySize: 5 * 1024 * 1024 }
116
+ * );
117
+ * if (!decision.should) {
118
+ * console.log(`Skipped: ${decision.reason}`);
119
+ * }
120
+ * ```
121
+ */
122
+ export declare function shouldFetchBodyWithReason(url: string, mimeType: string | undefined, encodedDataLength: number, options?: {
123
+ fetchAllBodies?: boolean;
124
+ includePatterns?: string[];
125
+ excludePatterns?: string[];
126
+ maxBodySize?: number;
127
+ }): BodyFetchDecision;
128
+ /**
129
+ * Determine if a network request should be excluded based on URL patterns.
130
+ *
131
+ * Pattern precedence (follows include-trumps-exclude rule):
132
+ * 1. If URL matches includePatterns → CAPTURE (even if it also matches excludePatterns)
133
+ * 2. If includePatterns specified but URL doesn't match → EXCLUDE (whitelist mode)
134
+ * 3. If URL matches excludePatterns → EXCLUDE
135
+ * 4. Otherwise → CAPTURE (default behavior)
136
+ *
137
+ * Note: This function is separate from domain filtering (shouldExcludeDomain).
138
+ * Both filters can be applied: domain filtering happens first, then URL pattern filtering.
139
+ *
140
+ * @param url - The request URL
141
+ * @param options - Configuration options
142
+ * @returns True if the request should be excluded
143
+ */
144
+ export declare function shouldExcludeUrl(url: string, options?: {
145
+ includePatterns?: string[];
146
+ excludePatterns?: string[];
147
+ }): boolean;
148
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/telemetry/filters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,UA6CpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,UAAoD,CAAC;AAEhG;;GAEG;AACH,eAAO,MAAM,iCAAiC,UAS7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,UAuCtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,UAqBxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAOrF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,OAAe,GAC1B,OAAO,CAeT;AAoDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GACL,OAAO,CA8CT;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL,iBAAiB,CAmCnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GACL,OAAO,CAST"}
@@ -0,0 +1,358 @@
1
+ /**
2
+ * Default filters for reducing noise in collected data
3
+ */
4
+ import { extractHostname, extractHostnameWithPath } from '../utils/url.js';
5
+ /**
6
+ * Domains to exclude by default (common tracking/analytics)
7
+ * These generate high volume but are rarely useful for debugging
8
+ */
9
+ export const DEFAULT_EXCLUDED_DOMAINS = [
10
+ // Google Analytics & Ads
11
+ 'analytics.google.com',
12
+ 'googletagmanager.com',
13
+ 'googleadservices.com',
14
+ 'doubleclick.net',
15
+ 'google-analytics.com',
16
+ // Microsoft/Bing
17
+ 'clarity.ms',
18
+ 'bat.bing.com',
19
+ // Social Media Tracking
20
+ 'facebook.com',
21
+ 'connect.facebook.net',
22
+ 'tiktok.com',
23
+ 'linkedin.com',
24
+ 'twitter.com',
25
+ 'snapchat.com',
26
+ // Product Analytics
27
+ 'mixpanel.com',
28
+ 'segment.com',
29
+ 'segment.io',
30
+ 'amplitude.com',
31
+ 'heap.io',
32
+ // Session Recording & Heatmaps
33
+ 'fullstory.com',
34
+ 'hotjar.com',
35
+ 'logrocket.com',
36
+ 'smartlook.com',
37
+ // Ad Networks & Attribution
38
+ 'exactag.com',
39
+ 'criteo.com',
40
+ 'adroll.com',
41
+ 'outbrain.com',
42
+ 'taboola.com',
43
+ // Other Analytics
44
+ 'confirmit.com',
45
+ 'newrelic.com',
46
+ 'datadoghq.com',
47
+ 'sentry.io',
48
+ ];
49
+ /**
50
+ * Console message types to exclude by default (Redux/React DevTools noise)
51
+ */
52
+ export const DEFAULT_EXCLUDED_CONSOLE_TYPES = ['startGroup', 'startGroupCollapsed', 'endGroup'];
53
+ /**
54
+ * Console message patterns to exclude by default (dev server noise)
55
+ */
56
+ export const DEFAULT_EXCLUDED_CONSOLE_PATTERNS = [
57
+ 'webpack-dev-server',
58
+ '[HMR]',
59
+ '[WDS]',
60
+ 'Download the React DevTools',
61
+ '@@redux', // Redux actions
62
+ '%c prev state', // Redux logger
63
+ '%c action', // Redux logger
64
+ '%c next state', // Redux logger
65
+ ];
66
+ /**
67
+ * File patterns to skip body fetching by default (assets unlikely to be useful for debugging)
68
+ * These reduce data volume significantly without losing critical debugging information.
69
+ */
70
+ export const DEFAULT_SKIP_BODY_PATTERNS = [
71
+ // Images
72
+ '*.png',
73
+ '*.jpg',
74
+ '*.jpeg',
75
+ '*.gif',
76
+ '*.svg',
77
+ '*.ico',
78
+ '*.webp',
79
+ '*.bmp',
80
+ '*.tiff',
81
+ // Fonts
82
+ '*.woff',
83
+ '*.woff2',
84
+ '*.ttf',
85
+ '*.eot',
86
+ '*.otf',
87
+ // Stylesheets
88
+ '*.css',
89
+ // Source maps (can be large and rarely needed)
90
+ '*.map',
91
+ '*.js.map',
92
+ '*.css.map',
93
+ // Videos
94
+ '*.mp4',
95
+ '*.webm',
96
+ '*.ogg',
97
+ '*.avi',
98
+ '*.mov',
99
+ // Audio
100
+ '*.mp3',
101
+ '*.wav',
102
+ '*.flac',
103
+ '*.aac',
104
+ ];
105
+ /**
106
+ * MIME types to skip body fetching by default
107
+ * This catches resources that may not have obvious file extensions (e.g., CSS with query params)
108
+ */
109
+ export const DEFAULT_SKIP_BODY_MIME_TYPES = [
110
+ 'text/css',
111
+ 'image/svg+xml',
112
+ 'image/png',
113
+ 'image/jpeg',
114
+ 'image/gif',
115
+ 'image/webp',
116
+ 'image/avif',
117
+ 'image/bmp',
118
+ 'image/tiff',
119
+ 'font/woff',
120
+ 'font/woff2',
121
+ 'font/ttf',
122
+ 'font/eot',
123
+ 'font/otf',
124
+ 'application/font-woff',
125
+ 'application/font-woff2',
126
+ 'video/mp4',
127
+ 'video/webm',
128
+ 'audio/mpeg',
129
+ 'audio/wav',
130
+ ];
131
+ /**
132
+ * Check if a URL should be excluded based on domain filtering.
133
+ *
134
+ * @param url - URL to check against exclusion list
135
+ * @param includeAll - If true, disables all filtering
136
+ * @returns True if the URL's domain matches an excluded domain
137
+ */
138
+ export function shouldExcludeDomain(url, includeAll = false) {
139
+ if (includeAll) {
140
+ return false; // Don't filter anything if --include-all flag is set
141
+ }
142
+ const hostname = extractHostname(url).toLowerCase();
143
+ return DEFAULT_EXCLUDED_DOMAINS.some((domain) => hostname.includes(domain.toLowerCase()));
144
+ }
145
+ /**
146
+ * Check if a console message should be excluded based on type and pattern filtering
147
+ */
148
+ export function shouldExcludeConsoleMessage(text, type, includeAll = false) {
149
+ if (includeAll) {
150
+ return false; // Don't filter anything if --include-all flag is set
151
+ }
152
+ // Check if message type should be excluded (e.g., group messages)
153
+ if (DEFAULT_EXCLUDED_CONSOLE_TYPES.includes(type)) {
154
+ return true;
155
+ }
156
+ const lowerText = text.toLowerCase();
157
+ return DEFAULT_EXCLUDED_CONSOLE_PATTERNS.some((pattern) => lowerText.includes(pattern.toLowerCase()));
158
+ }
159
+ /**
160
+ * Evaluate whether a URL matches pattern rules using include-trumps-exclude logic.
161
+ *
162
+ * Provides centralized pattern matching with consistent precedence rules:
163
+ * 1. If URL matches includePatterns → true (even if it also matches excludePatterns)
164
+ * 2. If includePatterns specified but URL doesn't match → false (whitelist mode)
165
+ * 3. If URL matches excludePatterns → false
166
+ * 4. Otherwise → use defaultBehavior
167
+ *
168
+ * This function consolidates the URL parsing and wildcard matching logic that was
169
+ * previously duplicated across multiple filter functions.
170
+ *
171
+ * @param url - The URL to check against patterns
172
+ * @param config - Pattern matching configuration with include/exclude patterns
173
+ * @returns True if the URL should be included based on pattern rules
174
+ */
175
+ function evaluatePatternMatch(url, config) {
176
+ const { includePatterns = [], excludePatterns = [], defaultBehavior = 'include' } = config;
177
+ // Parse URL once for all pattern checks
178
+ const hostname = extractHostname(url);
179
+ const hostnameWithPath = extractHostnameWithPath(url);
180
+ // Helper: check if any pattern matches hostname or hostname+path
181
+ const matchesAny = (patterns) => patterns.some((pattern) => matchesWildcard(hostname, pattern) || matchesWildcard(hostnameWithPath, pattern));
182
+ // Compute match states
183
+ const includeSpecified = includePatterns.length > 0;
184
+ const includeMatch = includeSpecified && matchesAny(includePatterns);
185
+ const excludeMatch = excludePatterns.length > 0 && matchesAny(excludePatterns);
186
+ // Decision logic: include trumps exclude, then whitelist mode, then exclude, then default
187
+ return includeMatch || (!includeSpecified && !excludeMatch && defaultBehavior === 'include');
188
+ }
189
+ /**
190
+ * Simple wildcard pattern matcher.
191
+ * Supports only the * wildcard character.
192
+ *
193
+ * Examples:
194
+ * matchesWildcard("api.json", "*.json") → true
195
+ * matchesWildcard("api/users", "*api*") → true
196
+ * matchesWildcard("index.html", "*.js") → false
197
+ *
198
+ * @param str - The string to test
199
+ * @param pattern - The pattern with * wildcards
200
+ * @returns True if the string matches the pattern
201
+ */
202
+ export function matchesWildcard(str, pattern) {
203
+ // Escape special regex characters except *
204
+ const regexPattern = pattern
205
+ .replace(/[.+?^${}()|[\]\\]/g, '\\$&') // Escape special chars
206
+ .replace(/\*/g, '.*'); // Replace * with .*
207
+ const regex = new RegExp(`^${regexPattern}$`, 'i'); // Case-insensitive
208
+ return regex.test(str);
209
+ }
210
+ /**
211
+ * Check if a URL matches any pattern in a list.
212
+ *
213
+ * Matches against both bare hostname and hostname+pathname to support:
214
+ * - Bare hostname patterns: `api.example.com` matches all requests to that host
215
+ * - Hostname wildcard patterns: `*analytics*` matches "analytics.google.com/collect"
216
+ * - Path patterns: `*\/api\/*` matches "example.com/api/users"
217
+ * - Combined patterns: `api.example.com\/users` matches specific endpoint
218
+ *
219
+ * @param url - The URL to check
220
+ * @param patterns - Array of wildcard patterns
221
+ * @returns True if URL matches any pattern
222
+ */
223
+ /**
224
+ * Determine if a response body should be fetched based on URL, MIME type, and patterns.
225
+ *
226
+ * Pattern precedence (follows include-trumps-exclude rule):
227
+ * 1. If URL matches includePatterns → FETCH (even if it also matches excludePatterns)
228
+ * 2. If includePatterns specified but URL doesn't match → SKIP (whitelist mode)
229
+ * 3. If URL matches excludePatterns → SKIP
230
+ * 4. If fetchAllBodies flag is true → FETCH
231
+ * 5. If MIME type matches DEFAULT_SKIP_BODY_MIME_TYPES → SKIP
232
+ * 6. If URL matches DEFAULT_SKIP_BODY_PATTERNS → SKIP
233
+ * 7. Otherwise → FETCH (default behavior)
234
+ *
235
+ * @param url - The request URL
236
+ * @param mimeType - The response MIME type (for MIME-based skipping)
237
+ * @param options - Configuration options
238
+ * @returns True if the body should be fetched
239
+ */
240
+ export function shouldFetchBody(url, mimeType, options = {}) {
241
+ const { fetchAllBodies = false, includePatterns = [], excludePatterns = [] } = options;
242
+ // If includePatterns specified, act as whitelist (trumps everything else)
243
+ if (includePatterns.length > 0) {
244
+ return evaluatePatternMatch(url, {
245
+ includePatterns,
246
+ defaultBehavior: 'exclude',
247
+ });
248
+ }
249
+ // If excludePatterns specified and URL matches → skip (trumps fetchAllBodies)
250
+ if (excludePatterns.length > 0) {
251
+ const matchesExclude = evaluatePatternMatch(url, {
252
+ includePatterns: excludePatterns,
253
+ defaultBehavior: 'exclude',
254
+ });
255
+ if (matchesExclude) {
256
+ return false;
257
+ }
258
+ }
259
+ // If fetchAllBodies flag is set → fetch everything
260
+ if (fetchAllBodies) {
261
+ return true;
262
+ }
263
+ // Check MIME type against default skip list (case-insensitive)
264
+ if (mimeType) {
265
+ const normalizedMimeType = mimeType.toLowerCase().split(';')[0]?.trim() ?? ''; // Remove charset etc.
266
+ if (normalizedMimeType &&
267
+ DEFAULT_SKIP_BODY_MIME_TYPES.some((skipType) => normalizedMimeType === skipType.toLowerCase())) {
268
+ return false;
269
+ }
270
+ }
271
+ // Apply default auto-skip URL patterns
272
+ const matchesDefaultSkip = evaluatePatternMatch(url, {
273
+ includePatterns: DEFAULT_SKIP_BODY_PATTERNS,
274
+ defaultBehavior: 'exclude',
275
+ });
276
+ // Default: fetch the body unless it matches default skip patterns
277
+ return !matchesDefaultSkip;
278
+ }
279
+ /**
280
+ * Determine if a response body should be fetched with detailed reason.
281
+ *
282
+ * Combines all decision logic: MIME type, size limits, smart defaults, and fetch flags.
283
+ * Returns a decision object with reason string for logging/debugging.
284
+ *
285
+ * @param url - Request URL
286
+ * @param mimeType - Response MIME type
287
+ * @param encodedDataLength - Response size in bytes
288
+ * @param options - Configuration options
289
+ * @returns Decision object with should boolean and optional reason
290
+ *
291
+ * @example
292
+ * ```typescript
293
+ * const decision = shouldFetchBodyWithReason(
294
+ * 'https://api.example.com/data',
295
+ * 'application/json',
296
+ * 1024,
297
+ * { maxBodySize: 5 * 1024 * 1024 }
298
+ * );
299
+ * if (!decision.should) {
300
+ * console.log(`Skipped: ${decision.reason}`);
301
+ * }
302
+ * ```
303
+ */
304
+ export function shouldFetchBodyWithReason(url, mimeType, encodedDataLength, options = {}) {
305
+ const { maxBodySize = 5 * 1024 * 1024 } = options;
306
+ // Check if response is text-based
307
+ const isTextResponse = (mimeType?.includes('json') ?? false) ||
308
+ (mimeType?.includes('javascript') ?? false) ||
309
+ (mimeType?.includes('text') ?? false) ||
310
+ (mimeType?.includes('html') ?? false);
311
+ if (!isTextResponse) {
312
+ return { should: false, reason: 'Non-text response type' };
313
+ }
314
+ // Check size limits
315
+ if (encodedDataLength > maxBodySize) {
316
+ const sizeStr = `${(encodedDataLength / 1024 / 1024).toFixed(2)}MB`;
317
+ const limitStr = `${(maxBodySize / 1024 / 1024).toFixed(2)}MB`;
318
+ return {
319
+ should: false,
320
+ reason: `Response too large (${sizeStr} > ${limitStr})`,
321
+ };
322
+ }
323
+ // Use existing shouldFetchBody for pattern matching
324
+ const shouldFetch = shouldFetchBody(url, mimeType, options);
325
+ if (!shouldFetch) {
326
+ return {
327
+ should: false,
328
+ reason: 'Auto-optimization (see DEFAULT_SKIP_BODY_PATTERNS)',
329
+ };
330
+ }
331
+ return { should: true };
332
+ }
333
+ /**
334
+ * Determine if a network request should be excluded based on URL patterns.
335
+ *
336
+ * Pattern precedence (follows include-trumps-exclude rule):
337
+ * 1. If URL matches includePatterns → CAPTURE (even if it also matches excludePatterns)
338
+ * 2. If includePatterns specified but URL doesn't match → EXCLUDE (whitelist mode)
339
+ * 3. If URL matches excludePatterns → EXCLUDE
340
+ * 4. Otherwise → CAPTURE (default behavior)
341
+ *
342
+ * Note: This function is separate from domain filtering (shouldExcludeDomain).
343
+ * Both filters can be applied: domain filtering happens first, then URL pattern filtering.
344
+ *
345
+ * @param url - The request URL
346
+ * @param options - Configuration options
347
+ * @returns True if the request should be excluded
348
+ */
349
+ export function shouldExcludeUrl(url, options = {}) {
350
+ const { includePatterns = [], excludePatterns = [] } = options;
351
+ // Use unified pattern matching - invert result since we want exclusion logic
352
+ return !evaluatePatternMatch(url, {
353
+ includePatterns,
354
+ excludePatterns,
355
+ defaultBehavior: 'include',
356
+ });
357
+ }
358
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/telemetry/filters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { CDPConnection } from '../connection/cdp.js';
2
+ import type { CleanupFunction } from '../types';
3
+ /**
4
+ * Navigation event information.
5
+ */
6
+ export interface NavigationEvent {
7
+ /** URL navigated to */
8
+ url: string;
9
+ /** Timestamp of navigation */
10
+ timestamp: number;
11
+ /** Navigation counter (increments with each main frame navigation) */
12
+ navigationId: number;
13
+ }
14
+ /**
15
+ * Start tracking page navigation events.
16
+ *
17
+ * Monitors main frame navigations (page loads, URL changes) and maintains
18
+ * a navigation counter that increments with each navigation. This counter
19
+ * can be used to detect stale references (e.g., network request indices
20
+ * from a previous page load).
21
+ *
22
+ * @param cdp - CDP connection instance
23
+ * @param navigations - Array to populate with navigation events
24
+ * @returns Object with cleanup function and getCurrentNavigationId getter
25
+ *
26
+ * @remarks
27
+ * - Only tracks main frame navigations (ignores iframe navigations)
28
+ * - Navigation ID starts at 0 and increments with each navigation
29
+ * - Initial page load counts as navigation 0
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const navs: NavigationEvent[] = [];
34
+ * const { cleanup, getCurrentNavigationId } = await startNavigationTracking(cdp, navs);
35
+ *
36
+ * // Later, validate if a reference is stale:
37
+ * const currentNavId = getCurrentNavigationId();
38
+ * if (referenceNavId !== currentNavId) {
39
+ * throw new Error('Stale reference - page has navigated');
40
+ * }
41
+ *
42
+ * cleanup();
43
+ * ```
44
+ */
45
+ export declare function startNavigationTracking(cdp: CDPConnection, navigations: NavigationEvent[]): Promise<{
46
+ cleanup: CleanupFunction;
47
+ getCurrentNavigationId: () => number;
48
+ }>;
49
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/telemetry/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAK/C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;CACtB;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,eAAe,EAAE,GAC7B,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,sBAAsB,EAAE,MAAM,MAAM,CAAA;CAAE,CAAC,CA4C7E"}