browser-debugger-cli 0.3.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 (484) hide show
  1. package/README.md +137 -126
  2. package/dist/__tests__/smoke/error-handling.smoke.test.d.ts +8 -0
  3. package/dist/__tests__/smoke/error-handling.smoke.test.d.ts.map +1 -0
  4. package/dist/__tests__/smoke/error-handling.smoke.test.js +106 -0
  5. package/dist/__tests__/smoke/error-handling.smoke.test.js.map +1 -0
  6. package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts +8 -0
  7. package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts.map +1 -0
  8. package/dist/__tests__/smoke/session-lifecycle.smoke.test.js +109 -0
  9. package/dist/__tests__/smoke/session-lifecycle.smoke.test.js.map +1 -0
  10. package/dist/__testutils__/commandRunner.d.ts +45 -0
  11. package/dist/__testutils__/commandRunner.d.ts.map +1 -0
  12. package/dist/__testutils__/commandRunner.js +108 -0
  13. package/dist/__testutils__/commandRunner.js.map +1 -0
  14. package/dist/__testutils__/daemonHelpers.d.ts +81 -0
  15. package/dist/__testutils__/daemonHelpers.d.ts.map +1 -0
  16. package/dist/__testutils__/daemonHelpers.js +206 -0
  17. package/dist/__testutils__/daemonHelpers.js.map +1 -0
  18. package/dist/__testutils__/index.d.ts +1 -0
  19. package/dist/__testutils__/index.d.ts.map +1 -1
  20. package/dist/__testutils__/index.js +1 -0
  21. package/dist/__testutils__/index.js.map +1 -1
  22. package/dist/__testutils__/testCleanup.d.ts +45 -0
  23. package/dist/__testutils__/testCleanup.d.ts.map +1 -0
  24. package/dist/__testutils__/testCleanup.js +87 -0
  25. package/dist/__testutils__/testCleanup.js.map +1 -0
  26. package/dist/__testutils__/testHome.d.ts +26 -0
  27. package/dist/__testutils__/testHome.d.ts.map +1 -0
  28. package/dist/__testutils__/testHome.js +57 -0
  29. package/dist/__testutils__/testHome.js.map +1 -0
  30. package/dist/__testutils__/testProcess.d.ts.map +1 -1
  31. package/dist/__testutils__/testProcess.js +11 -3
  32. package/dist/__testutils__/testProcess.js.map +1 -1
  33. package/dist/cli/commands/__tests__/start.unit.test.d.ts +2 -0
  34. package/dist/cli/commands/__tests__/start.unit.test.d.ts.map +1 -0
  35. package/dist/cli/commands/__tests__/start.unit.test.js +131 -0
  36. package/dist/cli/commands/__tests__/start.unit.test.js.map +1 -0
  37. package/dist/cli/commands/cleanup.d.ts +1 -0
  38. package/dist/cli/commands/cleanup.d.ts.map +1 -1
  39. package/dist/cli/commands/cleanup.js +80 -61
  40. package/dist/cli/commands/cleanup.js.map +1 -1
  41. package/dist/cli/commands/details.d.ts +2 -1
  42. package/dist/cli/commands/details.d.ts.map +1 -1
  43. package/dist/cli/commands/details.js +104 -52
  44. package/dist/cli/commands/details.js.map +1 -1
  45. package/dist/cli/commands/peek.d.ts +2 -1
  46. package/dist/cli/commands/peek.d.ts.map +1 -1
  47. package/dist/cli/commands/peek.js +22 -67
  48. package/dist/cli/commands/peek.js.map +1 -1
  49. package/dist/cli/commands/query.d.ts +9 -0
  50. package/dist/cli/commands/query.d.ts.map +1 -0
  51. package/dist/cli/commands/query.js +125 -0
  52. package/dist/cli/commands/query.js.map +1 -0
  53. package/dist/cli/commands/start.d.ts +74 -0
  54. package/dist/cli/commands/start.d.ts.map +1 -1
  55. package/dist/cli/commands/start.js +147 -38
  56. package/dist/cli/commands/start.js.map +1 -1
  57. package/dist/cli/commands/status.d.ts.map +1 -1
  58. package/dist/cli/commands/status.js +37 -49
  59. package/dist/cli/commands/status.js.map +1 -1
  60. package/dist/cli/commands/stop.d.ts +1 -0
  61. package/dist/cli/commands/stop.d.ts.map +1 -1
  62. package/dist/cli/commands/stop.js +106 -120
  63. package/dist/cli/commands/stop.js.map +1 -1
  64. package/dist/cli/formatters/detailsFormatter.d.ts +1 -1
  65. package/dist/cli/formatters/previewFormatter.d.ts +7 -7
  66. package/dist/cli/formatters/previewFormatter.d.ts.map +1 -1
  67. package/dist/cli/formatters/previewFormatter.js +5 -10
  68. package/dist/cli/formatters/previewFormatter.js.map +1 -1
  69. package/dist/cli/formatters/statusFormatter.d.ts +13 -10
  70. package/dist/cli/formatters/statusFormatter.d.ts.map +1 -1
  71. package/dist/cli/formatters/statusFormatter.js +26 -53
  72. package/dist/cli/formatters/statusFormatter.js.map +1 -1
  73. package/dist/cli/handlers/ChromeBootstrap.d.ts +24 -0
  74. package/dist/cli/handlers/ChromeBootstrap.d.ts.map +1 -0
  75. package/dist/cli/handlers/ChromeBootstrap.js +50 -0
  76. package/dist/cli/handlers/ChromeBootstrap.js.map +1 -0
  77. package/dist/cli/handlers/OutputBuilder.d.ts +2 -3
  78. package/dist/cli/handlers/OutputBuilder.d.ts.map +1 -1
  79. package/dist/cli/handlers/OutputBuilder.js +2 -4
  80. package/dist/cli/handlers/OutputBuilder.js.map +1 -1
  81. package/dist/cli/handlers/OutputWriter.d.ts +15 -0
  82. package/dist/cli/handlers/OutputWriter.d.ts.map +1 -0
  83. package/dist/cli/handlers/OutputWriter.js +34 -0
  84. package/dist/cli/handlers/OutputWriter.js.map +1 -0
  85. package/dist/cli/handlers/PreviewWriter.d.ts +52 -0
  86. package/dist/cli/handlers/PreviewWriter.d.ts.map +1 -0
  87. package/dist/cli/handlers/PreviewWriter.js +118 -0
  88. package/dist/cli/handlers/PreviewWriter.js.map +1 -0
  89. package/dist/cli/handlers/SessionLock.d.ts +16 -0
  90. package/dist/cli/handlers/SessionLock.d.ts.map +1 -0
  91. package/dist/cli/handlers/SessionLock.js +35 -0
  92. package/dist/cli/handlers/SessionLock.js.map +1 -0
  93. package/dist/cli/handlers/SessionLoop.d.ts +19 -0
  94. package/dist/cli/handlers/SessionLoop.d.ts.map +1 -0
  95. package/dist/cli/handlers/SessionLoop.js +47 -0
  96. package/dist/cli/handlers/SessionLoop.js.map +1 -0
  97. package/dist/cli/handlers/ShutdownController.d.ts +41 -0
  98. package/dist/cli/handlers/ShutdownController.d.ts.map +1 -0
  99. package/dist/cli/handlers/ShutdownController.js +94 -0
  100. package/dist/cli/handlers/ShutdownController.js.map +1 -0
  101. package/dist/cli/handlers/SignalHandler.d.ts +35 -0
  102. package/dist/cli/handlers/SignalHandler.d.ts.map +1 -0
  103. package/dist/cli/handlers/SignalHandler.js +81 -0
  104. package/dist/cli/handlers/SignalHandler.js.map +1 -0
  105. package/dist/cli/handlers/TargetSetup.d.ts +42 -0
  106. package/dist/cli/handlers/TargetSetup.d.ts.map +1 -0
  107. package/dist/cli/handlers/TargetSetup.js +87 -0
  108. package/dist/cli/handlers/TargetSetup.js.map +1 -0
  109. package/dist/cli/handlers/sessionController.d.ts +41 -0
  110. package/dist/cli/handlers/sessionController.d.ts.map +1 -1
  111. package/dist/cli/handlers/sessionController.js +266 -5
  112. package/dist/cli/handlers/sessionController.js.map +1 -1
  113. package/dist/cli/registry.d.ts +2 -2
  114. package/dist/cli/registry.d.ts.map +1 -1
  115. package/dist/cli/registry.js +12 -37
  116. package/dist/cli/registry.js.map +1 -1
  117. package/dist/collectors/console.d.ts +1 -1
  118. package/dist/collectors/console.js +2 -2
  119. package/dist/collectors/console.js.map +1 -1
  120. package/dist/collectors/dom.d.ts +1 -1
  121. package/dist/collectors/network.d.ts +1 -2
  122. package/dist/collectors/network.d.ts.map +1 -1
  123. package/dist/collectors/network.js +3 -3
  124. package/dist/collectors/network.js.map +1 -1
  125. package/dist/commands/cdp.js +1 -1
  126. package/dist/commands/cdp.js.map +1 -1
  127. package/dist/commands/cleanup.d.ts.map +1 -1
  128. package/dist/commands/cleanup.js +12 -15
  129. package/dist/commands/cleanup.js.map +1 -1
  130. package/dist/commands/dom.d.ts.map +1 -1
  131. package/dist/commands/dom.js +13 -19
  132. package/dist/commands/dom.js.map +1 -1
  133. package/dist/commands/domEvalHelpers.d.ts +1 -1
  134. package/dist/commands/domEvalHelpers.d.ts.map +1 -1
  135. package/dist/commands/domEvalHelpers.js +56 -7
  136. package/dist/commands/domEvalHelpers.js.map +1 -1
  137. package/dist/commands/domOptionsBuilder.d.ts +32 -0
  138. package/dist/commands/domOptionsBuilder.d.ts.map +1 -1
  139. package/dist/commands/domOptionsBuilder.js +35 -0
  140. package/dist/commands/domOptionsBuilder.js.map +1 -1
  141. package/dist/commands/machineReadableHelp.d.ts +98 -0
  142. package/dist/commands/machineReadableHelp.d.ts.map +1 -0
  143. package/dist/commands/machineReadableHelp.js +137 -0
  144. package/dist/commands/machineReadableHelp.js.map +1 -0
  145. package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
  146. package/dist/commands/shared/CommandRunner.js +2 -3
  147. package/dist/commands/shared/CommandRunner.js.map +1 -1
  148. package/dist/commands/shared/OutputBuilder.js +1 -1
  149. package/dist/commands/shared/OutputBuilder.js.map +1 -1
  150. package/dist/commands/shared/commonOptions.d.ts.map +1 -1
  151. package/dist/commands/shared/commonOptions.js +9 -3
  152. package/dist/commands/shared/commonOptions.js.map +1 -1
  153. package/dist/commands/shared/daemonSessionController.d.ts +2 -0
  154. package/dist/commands/shared/daemonSessionController.d.ts.map +1 -1
  155. package/dist/commands/shared/daemonSessionController.js +13 -16
  156. package/dist/commands/shared/daemonSessionController.js.map +1 -1
  157. package/dist/commands/shared/sessionController.js +1 -1
  158. package/dist/commands/shared/sessionController.js.map +1 -1
  159. package/dist/commands/start.d.ts.map +1 -1
  160. package/dist/commands/start.js +16 -1
  161. package/dist/commands/start.js.map +1 -1
  162. package/dist/commands/status.d.ts.map +1 -1
  163. package/dist/commands/status.js +72 -55
  164. package/dist/commands/status.js.map +1 -1
  165. package/dist/commands/stop.d.ts.map +1 -1
  166. package/dist/commands/stop.js +11 -25
  167. package/dist/commands/stop.js.map +1 -1
  168. package/dist/commands/tail.d.ts +11 -0
  169. package/dist/commands/tail.d.ts.map +1 -0
  170. package/dist/commands/tail.js +114 -0
  171. package/dist/commands/tail.js.map +1 -0
  172. package/dist/commands.d.ts.map +1 -1
  173. package/dist/commands.js +2 -0
  174. package/dist/commands.js.map +1 -1
  175. package/dist/connection/cdp.d.ts +46 -2
  176. package/dist/connection/cdp.d.ts.map +1 -1
  177. package/dist/connection/cdp.js +71 -5
  178. package/dist/connection/cdp.js.map +1 -1
  179. package/dist/connection/diagnostics.d.ts +16 -0
  180. package/dist/connection/diagnostics.d.ts.map +1 -0
  181. package/dist/connection/diagnostics.js +37 -0
  182. package/dist/connection/diagnostics.js.map +1 -0
  183. package/dist/connection/errors.d.ts +74 -0
  184. package/dist/connection/errors.d.ts.map +1 -0
  185. package/dist/connection/errors.js +83 -0
  186. package/dist/connection/errors.js.map +1 -0
  187. package/dist/connection/handlers.d.ts +31 -0
  188. package/dist/connection/handlers.d.ts.map +1 -0
  189. package/dist/connection/handlers.js +38 -0
  190. package/dist/connection/handlers.js.map +1 -0
  191. package/dist/connection/launcher.d.ts +3 -20
  192. package/dist/connection/launcher.d.ts.map +1 -1
  193. package/dist/connection/launcher.js +130 -32
  194. package/dist/connection/launcher.js.map +1 -1
  195. package/dist/connection/pageReadiness.d.ts +46 -0
  196. package/dist/connection/pageReadiness.d.ts.map +1 -0
  197. package/dist/connection/pageReadiness.js +270 -0
  198. package/dist/connection/pageReadiness.js.map +1 -0
  199. package/dist/connection/tabs.d.ts +52 -0
  200. package/dist/connection/tabs.d.ts.map +1 -0
  201. package/dist/connection/tabs.js +227 -0
  202. package/dist/connection/tabs.js.map +1 -0
  203. package/dist/constants.d.ts +20 -40
  204. package/dist/constants.d.ts.map +1 -1
  205. package/dist/constants.js +26 -40
  206. package/dist/constants.js.map +1 -1
  207. package/dist/daemon/ipcServer.d.ts +5 -7
  208. package/dist/daemon/ipcServer.d.ts.map +1 -1
  209. package/dist/daemon/ipcServer.js +178 -143
  210. package/dist/daemon/ipcServer.js.map +1 -1
  211. package/dist/daemon/launcher.js +1 -1
  212. package/dist/daemon/launcher.js.map +1 -1
  213. package/dist/daemon/server/SocketServer.d.ts +22 -0
  214. package/dist/daemon/server/SocketServer.d.ts.map +1 -0
  215. package/dist/daemon/server/SocketServer.js +67 -0
  216. package/dist/daemon/server/SocketServer.js.map +1 -0
  217. package/dist/daemon/server/WorkerManager.d.ts +36 -0
  218. package/dist/daemon/server/WorkerManager.d.ts.map +1 -0
  219. package/dist/daemon/server/WorkerManager.js +98 -0
  220. package/dist/daemon/server/WorkerManager.js.map +1 -0
  221. package/dist/daemon/startSession.d.ts +2 -0
  222. package/dist/daemon/startSession.d.ts.map +1 -1
  223. package/dist/daemon/startSession.js +4 -2
  224. package/dist/daemon/startSession.js.map +1 -1
  225. package/dist/daemon/worker/TelemetryStore.d.ts +18 -0
  226. package/dist/daemon/worker/TelemetryStore.d.ts.map +1 -0
  227. package/dist/daemon/worker/TelemetryStore.js +49 -0
  228. package/dist/daemon/worker/TelemetryStore.js.map +1 -0
  229. package/dist/daemon/worker/collectors.d.ts +8 -0
  230. package/dist/daemon/worker/collectors.d.ts.map +1 -0
  231. package/dist/daemon/worker/collectors.js +19 -0
  232. package/dist/daemon/worker/collectors.js.map +1 -0
  233. package/dist/daemon/worker/commandRegistry.d.ts +10 -0
  234. package/dist/daemon/worker/commandRegistry.d.ts.map +1 -0
  235. package/dist/daemon/worker/commandRegistry.js +289 -0
  236. package/dist/daemon/worker/commandRegistry.js.map +1 -0
  237. package/dist/daemon/worker/plugins.d.ts +21 -0
  238. package/dist/daemon/worker/plugins.d.ts.map +1 -0
  239. package/dist/daemon/worker/plugins.js +71 -0
  240. package/dist/daemon/worker/plugins.js.map +1 -0
  241. package/dist/daemon/worker/types.d.ts +13 -0
  242. package/dist/daemon/worker/types.d.ts.map +1 -0
  243. package/dist/daemon/worker/types.js +2 -0
  244. package/dist/daemon/worker/types.js.map +1 -0
  245. package/dist/daemon/worker.js +206 -529
  246. package/dist/daemon/worker.js.map +1 -1
  247. package/dist/help/machineReadableHelp.d.ts +100 -0
  248. package/dist/help/machineReadableHelp.d.ts.map +1 -0
  249. package/dist/help/machineReadableHelp.js +139 -0
  250. package/dist/help/machineReadableHelp.js.map +1 -0
  251. package/dist/index.js +18 -9
  252. package/dist/index.js.map +1 -1
  253. package/dist/ipc/__tests__/client.contract.test.js +2 -2
  254. package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
  255. package/dist/ipc/client.d.ts +3 -1
  256. package/dist/ipc/client.d.ts.map +1 -1
  257. package/dist/ipc/client.js +27 -14
  258. package/dist/ipc/client.js.map +1 -1
  259. package/dist/ipc/commands.d.ts +1 -0
  260. package/dist/ipc/commands.d.ts.map +1 -1
  261. package/dist/ipc/commands.js.map +1 -1
  262. package/dist/ipc/types.d.ts +2 -0
  263. package/dist/ipc/types.d.ts.map +1 -1
  264. package/dist/session/BdgSession.d.ts +91 -0
  265. package/dist/session/BdgSession.d.ts.map +1 -0
  266. package/dist/session/BdgSession.js +230 -0
  267. package/dist/session/BdgSession.js.map +1 -0
  268. package/dist/session/cleanup.d.ts.map +1 -1
  269. package/dist/session/cleanup.js +67 -65
  270. package/dist/session/cleanup.js.map +1 -1
  271. package/dist/session/fileOps.d.ts +25 -0
  272. package/dist/session/fileOps.d.ts.map +1 -0
  273. package/dist/session/fileOps.js +39 -0
  274. package/dist/session/fileOps.js.map +1 -0
  275. package/dist/session/metadata.js +2 -2
  276. package/dist/session/metadata.js.map +1 -1
  277. package/dist/session/paths.d.ts +2 -7
  278. package/dist/session/paths.d.ts.map +1 -1
  279. package/dist/session/paths.js +8 -8
  280. package/dist/session/paths.js.map +1 -1
  281. package/dist/session/queryCache.js +1 -1
  282. package/dist/session/queryCache.js.map +1 -1
  283. package/dist/telemetry/__tests__/filters.unit.test.d.ts +2 -0
  284. package/dist/telemetry/__tests__/filters.unit.test.d.ts.map +1 -0
  285. package/dist/telemetry/__tests__/filters.unit.test.js +239 -0
  286. package/dist/telemetry/__tests__/filters.unit.test.js.map +1 -0
  287. package/dist/telemetry/console.d.ts +1 -1
  288. package/dist/telemetry/console.d.ts.map +1 -1
  289. package/dist/telemetry/console.js +5 -3
  290. package/dist/telemetry/console.js.map +1 -1
  291. package/dist/telemetry/dialogs.d.ts +27 -0
  292. package/dist/telemetry/dialogs.d.ts.map +1 -0
  293. package/dist/telemetry/dialogs.js +51 -0
  294. package/dist/telemetry/dialogs.js.map +1 -0
  295. package/dist/telemetry/filters.d.ts +148 -0
  296. package/dist/telemetry/filters.d.ts.map +1 -0
  297. package/dist/telemetry/filters.js +358 -0
  298. package/dist/telemetry/filters.js.map +1 -0
  299. package/dist/telemetry/navigation.d.ts +49 -0
  300. package/dist/telemetry/navigation.d.ts.map +1 -0
  301. package/dist/telemetry/navigation.js +69 -0
  302. package/dist/telemetry/navigation.js.map +1 -0
  303. package/dist/telemetry/network.d.ts +1 -0
  304. package/dist/telemetry/network.d.ts.map +1 -1
  305. package/dist/telemetry/network.js +23 -34
  306. package/dist/telemetry/network.js.map +1 -1
  307. package/dist/types.d.ts +2 -0
  308. package/dist/types.d.ts.map +1 -1
  309. package/dist/ui/errors/CommandError.d.ts +39 -0
  310. package/dist/ui/errors/CommandError.d.ts.map +1 -0
  311. package/dist/ui/errors/CommandError.js +48 -0
  312. package/dist/ui/errors/CommandError.js.map +1 -0
  313. package/dist/ui/errors/SystemErrors.d.ts +22 -0
  314. package/dist/ui/errors/SystemErrors.d.ts.map +1 -0
  315. package/dist/ui/errors/SystemErrors.js +23 -0
  316. package/dist/ui/errors/SystemErrors.js.map +1 -0
  317. package/dist/ui/errors/index.d.ts +9 -0
  318. package/dist/ui/errors/index.d.ts.map +1 -0
  319. package/dist/ui/errors/index.js +12 -0
  320. package/dist/ui/errors/index.js.map +1 -0
  321. package/dist/ui/errors/utils.d.ts +24 -0
  322. package/dist/ui/errors/utils.d.ts.map +1 -0
  323. package/dist/ui/errors/utils.js +28 -0
  324. package/dist/ui/errors/utils.js.map +1 -0
  325. package/dist/ui/formatters/status.d.ts.map +1 -1
  326. package/dist/ui/formatters/status.js +1 -1
  327. package/dist/ui/formatters/status.js.map +1 -1
  328. package/dist/ui/logging/index.d.ts +7 -0
  329. package/dist/ui/logging/index.d.ts.map +1 -0
  330. package/dist/ui/logging/index.js +7 -0
  331. package/dist/ui/logging/index.js.map +1 -0
  332. package/dist/ui/logging/logger.d.ts +98 -0
  333. package/dist/ui/logging/logger.d.ts.map +1 -0
  334. package/dist/ui/logging/logger.js +93 -0
  335. package/dist/ui/logging/logger.js.map +1 -0
  336. package/dist/ui/messages/chrome.d.ts +50 -1
  337. package/dist/ui/messages/chrome.d.ts.map +1 -1
  338. package/dist/ui/messages/chrome.js +77 -0
  339. package/dist/ui/messages/chrome.js.map +1 -1
  340. package/dist/ui/messages/deprecation.d.ts +30 -0
  341. package/dist/ui/messages/deprecation.d.ts.map +1 -0
  342. package/dist/ui/messages/deprecation.js +49 -0
  343. package/dist/ui/messages/deprecation.js.map +1 -0
  344. package/dist/ui/messages/preview.js +1 -1
  345. package/dist/ui/messages/preview.js.map +1 -1
  346. package/dist/ui/messages/session.d.ts.map +1 -1
  347. package/dist/ui/messages/session.js +21 -7
  348. package/dist/ui/messages/session.js.map +1 -1
  349. package/dist/utils/__tests__/session.contract.test.js +15 -1
  350. package/dist/utils/__tests__/session.contract.test.js.map +1 -1
  351. package/dist/utils/filters.d.ts +40 -0
  352. package/dist/utils/filters.d.ts.map +1 -1
  353. package/dist/utils/filters.js +54 -0
  354. package/dist/utils/filters.js.map +1 -1
  355. package/dist/utils/pageReadiness.js +24 -25
  356. package/dist/utils/pageReadiness.js.map +1 -1
  357. package/dist/utils/session.d.ts +200 -0
  358. package/dist/utils/session.d.ts.map +1 -0
  359. package/dist/utils/session.js +498 -0
  360. package/dist/utils/session.js.map +1 -0
  361. package/dist/utils/url.d.ts.map +1 -1
  362. package/dist/utils/url.js +10 -0
  363. package/dist/utils/url.js.map +1 -1
  364. package/dist/utils/validation.d.ts +12 -0
  365. package/dist/utils/validation.d.ts.map +1 -0
  366. package/dist/utils/validation.js +20 -0
  367. package/dist/utils/validation.js.map +1 -0
  368. package/package.json +2 -1
  369. package/dist/cli/commands/__tests__/cdp.contract.test.d.ts +0 -24
  370. package/dist/cli/commands/__tests__/cdp.contract.test.d.ts.map +0 -1
  371. package/dist/cli/commands/__tests__/cdp.contract.test.js +0 -467
  372. package/dist/cli/commands/__tests__/cdp.contract.test.js.map +0 -1
  373. package/dist/cli/commands/cdp.d.ts +0 -8
  374. package/dist/cli/commands/cdp.d.ts.map +0 -1
  375. package/dist/cli/commands/cdp.js +0 -45
  376. package/dist/cli/commands/cdp.js.map +0 -1
  377. package/dist/cli/commands/console.d.ts +0 -8
  378. package/dist/cli/commands/console.d.ts.map +0 -1
  379. package/dist/cli/commands/console.js +0 -97
  380. package/dist/cli/commands/console.js.map +0 -1
  381. package/dist/cli/commands/dom/helpers/domCache.d.ts +0 -36
  382. package/dist/cli/commands/dom/helpers/domCache.d.ts.map +0 -1
  383. package/dist/cli/commands/dom/helpers/domCache.js +0 -65
  384. package/dist/cli/commands/dom/helpers/domCache.js.map +0 -1
  385. package/dist/cli/commands/dom/helpers/domQuery.d.ts +0 -48
  386. package/dist/cli/commands/dom/helpers/domQuery.d.ts.map +0 -1
  387. package/dist/cli/commands/dom/helpers/domQuery.js +0 -104
  388. package/dist/cli/commands/dom/helpers/domQuery.js.map +0 -1
  389. package/dist/cli/commands/dom/helpers/errorHandler.d.ts +0 -45
  390. package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +0 -1
  391. package/dist/cli/commands/dom/helpers/errorHandler.js +0 -71
  392. package/dist/cli/commands/dom/helpers/errorHandler.js.map +0 -1
  393. package/dist/cli/commands/dom/helpers/evalHelpers.d.ts +0 -52
  394. package/dist/cli/commands/dom/helpers/evalHelpers.d.ts.map +0 -1
  395. package/dist/cli/commands/dom/helpers/evalHelpers.js +0 -75
  396. package/dist/cli/commands/dom/helpers/evalHelpers.js.map +0 -1
  397. package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts +0 -35
  398. package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts.map +0 -1
  399. package/dist/cli/commands/dom/helpers/optionsBuilder.js +0 -51
  400. package/dist/cli/commands/dom/helpers/optionsBuilder.js.map +0 -1
  401. package/dist/cli/commands/dom/helpers/selectorParser.d.ts +0 -20
  402. package/dist/cli/commands/dom/helpers/selectorParser.d.ts.map +0 -1
  403. package/dist/cli/commands/dom/helpers/selectorParser.js +0 -20
  404. package/dist/cli/commands/dom/helpers/selectorParser.js.map +0 -1
  405. package/dist/cli/commands/dom/index.d.ts +0 -8
  406. package/dist/cli/commands/dom/index.d.ts.map +0 -1
  407. package/dist/cli/commands/dom/index.js +0 -257
  408. package/dist/cli/commands/dom/index.js.map +0 -1
  409. package/dist/cli/commands/dom.d.ts +0 -8
  410. package/dist/cli/commands/dom.d.ts.map +0 -1
  411. package/dist/cli/commands/dom.js +0 -257
  412. package/dist/cli/commands/dom.js.map +0 -1
  413. package/dist/cli/commands/domErrorHandler.d.ts +0 -45
  414. package/dist/cli/commands/domErrorHandler.d.ts.map +0 -1
  415. package/dist/cli/commands/domErrorHandler.js +0 -71
  416. package/dist/cli/commands/domErrorHandler.js.map +0 -1
  417. package/dist/cli/commands/domEvalHelpers.d.ts +0 -52
  418. package/dist/cli/commands/domEvalHelpers.d.ts.map +0 -1
  419. package/dist/cli/commands/domEvalHelpers.js +0 -76
  420. package/dist/cli/commands/domEvalHelpers.js.map +0 -1
  421. package/dist/cli/commands/domOptionsBuilder.d.ts +0 -35
  422. package/dist/cli/commands/domOptionsBuilder.d.ts.map +0 -1
  423. package/dist/cli/commands/domOptionsBuilder.js +0 -51
  424. package/dist/cli/commands/domOptionsBuilder.js.map +0 -1
  425. package/dist/cli/commands/domSelectorParser.d.ts +0 -20
  426. package/dist/cli/commands/domSelectorParser.d.ts.map +0 -1
  427. package/dist/cli/commands/domSelectorParser.js +0 -20
  428. package/dist/cli/commands/domSelectorParser.js.map +0 -1
  429. package/dist/cli/commands/network.d.ts +0 -8
  430. package/dist/cli/commands/network.d.ts.map +0 -1
  431. package/dist/cli/commands/network.js +0 -43
  432. package/dist/cli/commands/network.js.map +0 -1
  433. package/dist/cli/handlers/CommandRunner.d.ts +0 -60
  434. package/dist/cli/handlers/CommandRunner.d.ts.map +0 -1
  435. package/dist/cli/handlers/CommandRunner.js +0 -81
  436. package/dist/cli/handlers/CommandRunner.js.map +0 -1
  437. package/dist/cli/handlers/commonOptions.d.ts +0 -54
  438. package/dist/cli/handlers/commonOptions.d.ts.map +0 -1
  439. package/dist/cli/handlers/commonOptions.js +0 -64
  440. package/dist/cli/handlers/commonOptions.js.map +0 -1
  441. package/dist/cli/handlers/daemonSessionController.d.ts +0 -23
  442. package/dist/cli/handlers/daemonSessionController.d.ts.map +0 -1
  443. package/dist/cli/handlers/daemonSessionController.js +0 -79
  444. package/dist/cli/handlers/daemonSessionController.js.map +0 -1
  445. package/dist/cli/handlers/landingPage.d.ts +0 -8
  446. package/dist/cli/handlers/landingPage.d.ts.map +0 -1
  447. package/dist/cli/handlers/landingPage.js +0 -8
  448. package/dist/cli/handlers/landingPage.js.map +0 -1
  449. package/dist/collectors/__tests__/network.contract.test.d.ts +0 -28
  450. package/dist/collectors/__tests__/network.contract.test.d.ts.map +0 -1
  451. package/dist/collectors/__tests__/network.contract.test.js +0 -540
  452. package/dist/collectors/__tests__/network.contract.test.js.map +0 -1
  453. package/dist/commandRegistry.d.ts +0 -11
  454. package/dist/commandRegistry.d.ts.map +0 -1
  455. package/dist/commandRegistry.js +0 -45
  456. package/dist/commandRegistry.js.map +0 -1
  457. package/dist/commands/domErrorHandler.d.ts +0 -45
  458. package/dist/commands/domErrorHandler.d.ts.map +0 -1
  459. package/dist/commands/domErrorHandler.js +0 -71
  460. package/dist/commands/domErrorHandler.js.map +0 -1
  461. package/dist/dom/cache.d.ts +0 -36
  462. package/dist/dom/cache.d.ts.map +0 -1
  463. package/dist/dom/cache.js +0 -65
  464. package/dist/dom/cache.js.map +0 -1
  465. package/dist/dom/index.d.ts +0 -9
  466. package/dist/dom/index.d.ts.map +0 -1
  467. package/dist/dom/index.js +0 -9
  468. package/dist/dom/index.js.map +0 -1
  469. package/dist/dom/query.d.ts +0 -48
  470. package/dist/dom/query.d.ts.map +0 -1
  471. package/dist/dom/query.js +0 -104
  472. package/dist/dom/query.js.map +0 -1
  473. package/dist/utils/formatters/network.d.ts +0 -23
  474. package/dist/utils/formatters/network.d.ts.map +0 -1
  475. package/dist/utils/formatters/network.js +0 -35
  476. package/dist/utils/formatters/network.js.map +0 -1
  477. package/dist/utils/ui.d.ts +0 -36
  478. package/dist/utils/ui.d.ts.map +0 -1
  479. package/dist/utils/ui.js +0 -47
  480. package/dist/utils/ui.js.map +0 -1
  481. package/dist/utils/url/safeParseUrl.d.ts +0 -63
  482. package/dist/utils/url/safeParseUrl.d.ts.map +0 -1
  483. package/dist/utils/url/safeParseUrl.js +0 -84
  484. package/dist/utils/url/safeParseUrl.js.map +0 -1
@@ -276,6 +276,60 @@ export function shouldFetchBody(url, mimeType, options = {}) {
276
276
  // Default: fetch the body unless it matches default skip patterns
277
277
  return !matchesDefaultSkip;
278
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
+ }
279
333
  /**
280
334
  * Determine if a network request should be excluded based on URL patterns.
281
335
  *
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/utils/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/utils/filters.ts"],"names":[],"mappings":"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"}
@@ -111,23 +111,21 @@ async function waitForLoadEvent(cdp, deadline) {
111
111
  });
112
112
  }
113
113
  /**
114
- * Wait for network to stabilize using adaptive thresholds
114
+ * Wait for network to stabilize
115
115
  *
116
- * LEARNING PHASE (first 2s):
117
- * - Track request intervals
118
- * - Calculate average request frequency
116
+ * Uses a fixed 200ms idle threshold which works well for most pages:
117
+ * - Fast enough for quick sites (avoids unnecessary waiting)
118
+ * - Patient enough for API-heavy apps (catches late requests)
119
+ * - Simpler and more predictable than adaptive learning
119
120
  *
120
- * DETECTION PHASE:
121
- * - Fast pattern (avg \< 100ms): 200ms idle = stable
122
- * - Steady pattern (100-500ms): 500ms idle = stable
123
- * - Slow pattern (\> 500ms): 1000ms idle = stable
121
+ * Network is considered stable when there are zero active requests
122
+ * for at least 200ms continuously.
124
123
  *
125
124
  * Why this works:
126
- * - Fast sites: Quick bursts, fast stabilization
127
- * - SSR apps: Steady hydration requests, medium wait
128
- * - API-heavy: Slow requests, longer patience
129
- *
130
- * Framework-agnostic - adapts to actual behavior.
125
+ * - Catches initial request bursts (CSS, JS, images)
126
+ * - Waits for lazy-loaded resources
127
+ * - Detects API calls triggered by hydration
128
+ * - Framework-agnostic - based on actual network activity
131
129
  *
132
130
  * @param cdp - CDP connection
133
131
  * @param deadline - Timestamp when to timeout
@@ -182,23 +180,24 @@ async function waitForNetworkStable(cdp, deadline) {
182
180
  }
183
181
  }
184
182
  /**
185
- * Wait for DOM to stabilize using adaptive thresholds
183
+ * Wait for DOM to stabilize
184
+ *
185
+ * Uses a MutationObserver to detect when the DOM stops changing.
186
+ * DOM is considered stable when there are no mutations for 300ms continuously.
186
187
  *
187
188
  * HOW IT WORKS:
188
- * 1. Inject MutationObserver into page
189
- * 2. Track mutation rate for 1 second
190
- * 3. Calculate adaptive stability threshold:
191
- * - High rate (\>50 mutations/sec): 1000ms no-change = stable
192
- * - Medium rate (10-50 mutations/sec): 500ms no-change = stable
193
- * - Low rate (\<10 mutations/sec): 300ms no-change = stable
194
- * 4. Wait for DOM to remain unchanged for threshold duration
189
+ * 1. Inject MutationObserver into page to track all DOM changes
190
+ * 2. Monitor childList, attributes, subtree, and characterData changes
191
+ * 3. Wait for 300ms of continuous no-change activity
192
+ * 4. Clean up observer when complete
195
193
  *
196
194
  * Why this works:
197
- * - SSR hydration causes DOM mutations
198
- * - React/Vue/Svelte all mutate during hydration
199
- * - When mutations stop, hydration is complete
195
+ * - SSR hydration causes DOM mutations (React, Vue, Svelte)
196
+ * - Client-side rendering creates DOM elements
197
+ * - When mutations stop, framework initialization is complete
198
+ * - 300ms is long enough to catch batched updates, short enough to be responsive
200
199
  *
201
- * Framework-agnostic - detects actual mutations.
200
+ * Framework-agnostic - detects actual mutations regardless of framework.
202
201
  *
203
202
  * @param cdp - CDP connection
204
203
  * @param deadline - Timestamp when to timeout
@@ -1 +1 @@
1
- {"version":3,"file":"pageReadiness.js","sourceRoot":"","sources":["../../src/utils/pageReadiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pageReadiness.js","sourceRoot":"","sources":["../../src/utils/pageReadiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ import type { BdgOutput, CollectorType } from '../types.js';
2
+ /**
3
+ * Session file paths relative to ~/.bdg/
4
+ * Centralized definition for all session-related files.
5
+ */
6
+ declare const SESSION_FILES: {
7
+ readonly PID: "session.pid";
8
+ readonly OUTPUT: "session.json";
9
+ readonly LOCK: "session.lock";
10
+ readonly METADATA: "session.meta.json";
11
+ readonly CHROME_PID: "chrome.pid";
12
+ readonly PREVIEW: "session.preview.json";
13
+ readonly FULL: "session.full.json";
14
+ };
15
+ /**
16
+ * Session file type for type-safe path generation
17
+ */
18
+ export type SessionFileType = keyof typeof SESSION_FILES;
19
+ /**
20
+ * Get the session directory path (~/.bdg)
21
+ */
22
+ export declare function getSessionDir(): string;
23
+ /**
24
+ * Get the path to a session file by type.
25
+ *
26
+ * @param fileType - The type of session file
27
+ * @returns Full path to the session file
28
+ */
29
+ export declare function getSessionFilePath(fileType: SessionFileType): string;
30
+ /**
31
+ * Ensure the session directory exists
32
+ */
33
+ export declare function ensureSessionDir(): void;
34
+ /**
35
+ * Get the path to the PID file
36
+ */
37
+ export declare function getPidFilePath(): string;
38
+ /**
39
+ * Get the path to the output JSON file
40
+ */
41
+ export declare function getOutputFilePath(): string;
42
+ /**
43
+ * Get the path to the session lock file
44
+ */
45
+ export declare function getLockFilePath(): string;
46
+ /**
47
+ * Get the path to the session metadata file
48
+ */
49
+ export declare function getMetadataFilePath(): string;
50
+ /**
51
+ * Get the path to the persistent Chrome PID cache file.
52
+ * This file survives session cleanup so aggressive cleanup can still find Chrome.
53
+ */
54
+ export declare function getChromePidCachePath(): string;
55
+ /**
56
+ * Session metadata stored alongside PID
57
+ */
58
+ export interface SessionMetadata {
59
+ bdgPid: number;
60
+ chromePid?: number | undefined;
61
+ startTime: number;
62
+ port: number;
63
+ targetId?: string | undefined;
64
+ webSocketDebuggerUrl?: string | undefined;
65
+ activeCollectors?: CollectorType[] | undefined;
66
+ }
67
+ /**
68
+ * Write the current process PID to the session file atomically
69
+ *
70
+ * @param pid - Process ID to write
71
+ */
72
+ export declare function writePid(pid: number): void;
73
+ /**
74
+ * Read the PID from the session file
75
+ *
76
+ * @returns The PID if file exists and is valid, null otherwise
77
+ */
78
+ export declare function readPid(): number | null;
79
+ /**
80
+ * Check if a process with the given PID is alive
81
+ *
82
+ * @param pid - Process ID to check
83
+ * @returns True if process is running, false otherwise
84
+ */
85
+ export declare function isProcessAlive(pid: number): boolean;
86
+ /**
87
+ * Remove the PID file
88
+ */
89
+ export declare function cleanupPidFile(): void;
90
+ /**
91
+ * Write session output to the JSON file
92
+ *
93
+ * @param output - The BdgOutput data to write
94
+ * @param compact - If true, use compact JSON format (no indentation)
95
+ */
96
+ export declare function writeSessionOutput(output: BdgOutput, compact?: boolean): void;
97
+ /**
98
+ * Acquire session lock atomically.
99
+ *
100
+ * Uses exclusive file creation (wx flag) to ensure only one session can run.
101
+ *
102
+ * @returns True if lock was acquired, false if another session is running
103
+ */
104
+ export declare function acquireSessionLock(): boolean;
105
+ /**
106
+ * Release session lock.
107
+ *
108
+ * Removes the lock file to allow other sessions to start.
109
+ */
110
+ export declare function releaseSessionLock(): void;
111
+ /**
112
+ * Write session metadata.
113
+ *
114
+ * @param metadata - Session metadata to write
115
+ */
116
+ export declare function writeSessionMetadata(metadata: SessionMetadata): void;
117
+ /**
118
+ * Read session metadata.
119
+ *
120
+ * @returns Session metadata if file exists and is valid, null otherwise
121
+ */
122
+ export declare function readSessionMetadata(): SessionMetadata | null;
123
+ /**
124
+ * Write Chrome PID to persistent cache.
125
+ * This survives session cleanup so aggressive cleanup can find Chrome later.
126
+ *
127
+ * @param chromePid - Chrome process ID to cache
128
+ */
129
+ export declare function writeChromePid(chromePid: number): void;
130
+ /**
131
+ * Read Chrome PID from persistent cache.
132
+ *
133
+ * @returns Chrome PID if cached and process is alive, null otherwise
134
+ */
135
+ export declare function readChromePid(): number | null;
136
+ /**
137
+ * Remove Chrome PID from persistent cache.
138
+ */
139
+ export declare function clearChromePid(): void;
140
+ /**
141
+ * Kill a Chrome process using cross-platform approach.
142
+ *
143
+ * Windows: Uses `taskkill /pid <pid> /T /F` to kill process tree
144
+ * Unix/macOS: Uses `process.kill(-pid, signal)` to kill process group
145
+ *
146
+ * @param pid - Chrome process ID to kill
147
+ * @param signal - Signal to send (Unix only, default 'SIGTERM'). Ignored on Windows.
148
+ * @throws Error if kill operation fails
149
+ */
150
+ export declare function killChromeProcess(pid: number, signal?: NodeJS.Signals): void;
151
+ /**
152
+ * Get the path to the partial output file (lightweight preview, metadata only)
153
+ */
154
+ export declare function getPartialFilePath(): string;
155
+ /**
156
+ * Get the path to the full output file (complete data with bodies)
157
+ */
158
+ export declare function getFullFilePath(): string;
159
+ /**
160
+ * Write partial session output for live preview (async version).
161
+ *
162
+ * Uses atomic write (tmp file + rename) to prevent corruption.
163
+ * Non-blocking version for periodic writes during collection.
164
+ *
165
+ * @param output - The partial BdgOutput data to write
166
+ * @param compact - If true, use compact JSON format (no indentation)
167
+ * @returns Promise that resolves when write completes
168
+ */
169
+ export declare function writePartialOutputAsync(output: BdgOutput, compact?: boolean): Promise<void>;
170
+ /**
171
+ * Write full session output for details view (async version).
172
+ *
173
+ * Uses atomic write (tmp file + rename) to prevent corruption.
174
+ * Non-blocking version for periodic writes during collection.
175
+ *
176
+ * @param output - The full BdgOutput data to write
177
+ * @param compact - If true, use compact JSON format (no indentation)
178
+ * @returns Promise that resolves when write completes
179
+ */
180
+ export declare function writeFullOutputAsync(output: BdgOutput, compact?: boolean): Promise<void>;
181
+ /**
182
+ * Read partial session output for live preview (lightweight metadata).
183
+ *
184
+ * @returns The partial BdgOutput data if file exists and is valid, null otherwise
185
+ */
186
+ export declare function readPartialOutput(): BdgOutput | null;
187
+ /**
188
+ * Read full session output for details view (complete data with bodies).
189
+ *
190
+ * @returns The full BdgOutput data if file exists and is valid, null otherwise
191
+ */
192
+ export declare function readFullOutput(): BdgOutput | null;
193
+ /**
194
+ * Cleanup all session files.
195
+ *
196
+ * Removes PID, lock, metadata, preview, full, and output files.
197
+ */
198
+ export declare function cleanupSession(): void;
199
+ export {};
200
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}