browser-debugger-cli 0.0.1-alpha.0 → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +167 -52
- package/dist/__testfixtures__/cdpMessages.d.ts +43 -0
- package/dist/__testfixtures__/cdpMessages.d.ts.map +1 -0
- package/dist/__testfixtures__/cdpMessages.js +118 -0
- package/dist/__testfixtures__/cdpMessages.js.map +1 -0
- package/dist/__testfixtures__/connectionTargets.d.ts +21 -0
- package/dist/__testfixtures__/connectionTargets.d.ts.map +1 -0
- package/dist/__testfixtures__/connectionTargets.js +59 -0
- package/dist/__testfixtures__/connectionTargets.js.map +1 -0
- package/dist/__tests__/integration/session-files.integration.test.d.ts +2 -0
- package/dist/__tests__/integration/session-files.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/session-files.integration.test.js +66 -0
- package/dist/__tests__/integration/session-files.integration.test.js.map +1 -0
- package/dist/__testutils__/FakeClock.d.ts +67 -0
- package/dist/__testutils__/FakeClock.d.ts.map +1 -0
- package/dist/__testutils__/FakeClock.js +132 -0
- package/dist/__testutils__/FakeClock.js.map +1 -0
- package/dist/__testutils__/FakeWebSocket.d.ts +106 -0
- package/dist/__testutils__/FakeWebSocket.d.ts.map +1 -0
- package/dist/__testutils__/FakeWebSocket.js +213 -0
- package/dist/__testutils__/FakeWebSocket.js.map +1 -0
- package/dist/__testutils__/assertions.d.ts +33 -0
- package/dist/__testutils__/assertions.d.ts.map +1 -0
- package/dist/__testutils__/assertions.js +57 -0
- package/dist/__testutils__/assertions.js.map +1 -0
- package/dist/__testutils__/index.d.ts +15 -0
- package/dist/__testutils__/index.d.ts.map +1 -0
- package/dist/__testutils__/index.js +15 -0
- package/dist/__testutils__/index.js.map +1 -0
- package/dist/__testutils__/testClock.d.ts +28 -0
- package/dist/__testutils__/testClock.d.ts.map +1 -0
- package/dist/__testutils__/testClock.js +81 -0
- package/dist/__testutils__/testClock.js.map +1 -0
- package/dist/__testutils__/testFixtures.d.ts +15 -0
- package/dist/__testutils__/testFixtures.d.ts.map +1 -0
- package/dist/__testutils__/testFixtures.js +23 -0
- package/dist/__testutils__/testFixtures.js.map +1 -0
- package/dist/__testutils__/testProcess.d.ts +46 -0
- package/dist/__testutils__/testProcess.d.ts.map +1 -0
- package/dist/__testutils__/testProcess.js +77 -0
- package/dist/__testutils__/testProcess.js.map +1 -0
- package/dist/cli/collectors/dom.d.ts +8 -0
- package/dist/cli/collectors/dom.d.ts.map +1 -0
- package/dist/cli/collectors/dom.js +361 -0
- package/dist/cli/collectors/dom.js.map +1 -0
- package/dist/cli/collectors/helpers/domCache.d.ts +40 -0
- package/dist/cli/collectors/helpers/domCache.d.ts.map +1 -0
- package/dist/cli/collectors/helpers/domCache.js +79 -0
- package/dist/cli/collectors/helpers/domCache.js.map +1 -0
- package/dist/cli/collectors/helpers/domQuery.d.ts +45 -0
- package/dist/cli/collectors/helpers/domQuery.d.ts.map +1 -0
- package/dist/cli/collectors/helpers/domQuery.js +100 -0
- package/dist/cli/collectors/helpers/domQuery.js.map +1 -0
- package/dist/cli/collectors/helpers/selectorParser.d.ts +20 -0
- package/dist/cli/collectors/helpers/selectorParser.d.ts.map +1 -0
- package/dist/cli/collectors/helpers/selectorParser.js +20 -0
- package/dist/cli/collectors/helpers/selectorParser.js.map +1 -0
- package/dist/cli/commands/__tests__/cdp.contract.test.d.ts +24 -0
- package/dist/cli/commands/__tests__/cdp.contract.test.d.ts.map +1 -0
- package/dist/cli/commands/__tests__/cdp.contract.test.js +467 -0
- package/dist/cli/commands/__tests__/cdp.contract.test.js.map +1 -0
- package/dist/cli/commands/__tests__/ipcTest.test.d.ts +2 -0
- package/dist/cli/commands/__tests__/ipcTest.test.d.ts.map +1 -0
- package/dist/cli/commands/__tests__/ipcTest.test.js +37 -0
- package/dist/cli/commands/__tests__/ipcTest.test.js.map +1 -0
- package/dist/cli/commands/cdp.d.ts +8 -0
- package/dist/cli/commands/cdp.d.ts.map +1 -0
- package/dist/cli/commands/cdp.js +45 -0
- package/dist/cli/commands/cdp.js.map +1 -0
- package/dist/cli/commands/cleanup.d.ts +8 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/cleanup.js +130 -0
- package/dist/cli/commands/cleanup.js.map +1 -0
- package/dist/cli/commands/console.d.ts +8 -0
- package/dist/cli/commands/console.d.ts.map +1 -0
- package/dist/cli/commands/console.js +97 -0
- package/dist/cli/commands/console.js.map +1 -0
- package/dist/cli/commands/details.d.ts +8 -0
- package/dist/cli/commands/details.d.ts.map +1 -0
- package/dist/cli/commands/details.js +68 -0
- package/dist/cli/commands/details.js.map +1 -0
- package/dist/cli/commands/dom/helpers/domCache.d.ts +36 -0
- package/dist/cli/commands/dom/helpers/domCache.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/domCache.js +65 -0
- package/dist/cli/commands/dom/helpers/domCache.js.map +1 -0
- package/dist/cli/commands/dom/helpers/domQuery.d.ts +48 -0
- package/dist/cli/commands/dom/helpers/domQuery.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/domQuery.js +104 -0
- package/dist/cli/commands/dom/helpers/domQuery.js.map +1 -0
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts +45 -0
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/errorHandler.js +70 -0
- package/dist/cli/commands/dom/helpers/errorHandler.js.map +1 -0
- package/dist/cli/commands/dom/helpers/evalHelpers.d.ts +52 -0
- package/dist/cli/commands/dom/helpers/evalHelpers.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/evalHelpers.js +75 -0
- package/dist/cli/commands/dom/helpers/evalHelpers.js.map +1 -0
- package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts +35 -0
- package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/optionsBuilder.js +51 -0
- package/dist/cli/commands/dom/helpers/optionsBuilder.js.map +1 -0
- package/dist/cli/commands/dom/helpers/selectorParser.d.ts +20 -0
- package/dist/cli/commands/dom/helpers/selectorParser.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/selectorParser.js +20 -0
- package/dist/cli/commands/dom/helpers/selectorParser.js.map +1 -0
- package/dist/cli/commands/dom/index.d.ts +8 -0
- package/dist/cli/commands/dom/index.d.ts.map +1 -0
- package/dist/cli/commands/dom/index.js +257 -0
- package/dist/cli/commands/dom/index.js.map +1 -0
- package/dist/cli/commands/ipcTest.d.ts +23 -0
- package/dist/cli/commands/ipcTest.d.ts.map +1 -0
- package/dist/cli/commands/ipcTest.js +181 -0
- package/dist/cli/commands/ipcTest.js.map +1 -0
- package/dist/cli/commands/network.d.ts +8 -0
- package/dist/cli/commands/network.d.ts.map +1 -0
- package/dist/cli/commands/network.js +40 -0
- package/dist/cli/commands/network.js.map +1 -0
- package/dist/cli/commands/peek.d.ts +8 -0
- package/dist/cli/commands/peek.d.ts.map +1 -0
- package/dist/cli/commands/peek.js +109 -0
- package/dist/cli/commands/peek.js.map +1 -0
- package/dist/cli/commands/query.d.ts +9 -0
- package/dist/cli/commands/query.d.ts.map +1 -0
- package/dist/cli/commands/query.js +127 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/start.d.ts +9 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +78 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +9 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +84 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +8 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +146 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/formatters/detailsFormatter.d.ts +10 -0
- package/dist/cli/formatters/detailsFormatter.d.ts.map +1 -0
- package/dist/cli/formatters/detailsFormatter.js +63 -0
- package/dist/cli/formatters/detailsFormatter.js.map +1 -0
- package/dist/cli/formatters/previewFormatter.d.ts +27 -0
- package/dist/cli/formatters/previewFormatter.d.ts.map +1 -0
- package/dist/cli/formatters/previewFormatter.js +160 -0
- package/dist/cli/formatters/previewFormatter.js.map +1 -0
- package/dist/cli/formatters/statusFormatter.d.ts +34 -0
- package/dist/cli/formatters/statusFormatter.d.ts.map +1 -0
- package/dist/cli/formatters/statusFormatter.js +108 -0
- package/dist/cli/formatters/statusFormatter.js.map +1 -0
- package/dist/cli/handlers/ChromeBootstrap.d.ts +24 -0
- package/dist/cli/handlers/ChromeBootstrap.d.ts.map +1 -0
- package/dist/cli/handlers/ChromeBootstrap.js +50 -0
- package/dist/cli/handlers/ChromeBootstrap.js.map +1 -0
- package/dist/cli/handlers/CommandRunner.d.ts +60 -0
- package/dist/cli/handlers/CommandRunner.d.ts.map +1 -0
- package/dist/cli/handlers/CommandRunner.js +81 -0
- package/dist/cli/handlers/CommandRunner.js.map +1 -0
- package/dist/cli/handlers/OutputBuilder.d.ts +60 -0
- package/dist/cli/handlers/OutputBuilder.d.ts.map +1 -0
- package/dist/cli/handlers/OutputBuilder.js +138 -0
- package/dist/cli/handlers/OutputBuilder.js.map +1 -0
- package/dist/cli/handlers/OutputWriter.d.ts +15 -0
- package/dist/cli/handlers/OutputWriter.d.ts.map +1 -0
- package/dist/cli/handlers/OutputWriter.js +34 -0
- package/dist/cli/handlers/OutputWriter.js.map +1 -0
- package/dist/cli/handlers/PreviewWriter.d.ts +52 -0
- package/dist/cli/handlers/PreviewWriter.d.ts.map +1 -0
- package/dist/cli/handlers/PreviewWriter.js +119 -0
- package/dist/cli/handlers/PreviewWriter.js.map +1 -0
- package/dist/cli/handlers/SessionLock.d.ts +16 -0
- package/dist/cli/handlers/SessionLock.d.ts.map +1 -0
- package/dist/cli/handlers/SessionLock.js +38 -0
- package/dist/cli/handlers/SessionLock.js.map +1 -0
- package/dist/cli/handlers/SessionLoop.d.ts +19 -0
- package/dist/cli/handlers/SessionLoop.d.ts.map +1 -0
- package/dist/cli/handlers/SessionLoop.js +47 -0
- package/dist/cli/handlers/SessionLoop.js.map +1 -0
- package/dist/cli/handlers/ShutdownController.d.ts +38 -0
- package/dist/cli/handlers/ShutdownController.d.ts.map +1 -0
- package/dist/cli/handlers/ShutdownController.js +83 -0
- package/dist/cli/handlers/ShutdownController.js.map +1 -0
- package/dist/cli/handlers/SignalHandler.d.ts +35 -0
- package/dist/cli/handlers/SignalHandler.d.ts.map +1 -0
- package/dist/cli/handlers/SignalHandler.js +81 -0
- package/dist/cli/handlers/SignalHandler.js.map +1 -0
- package/dist/cli/handlers/TargetSetup.d.ts +42 -0
- package/dist/cli/handlers/TargetSetup.d.ts.map +1 -0
- package/dist/cli/handlers/TargetSetup.js +87 -0
- package/dist/cli/handlers/TargetSetup.js.map +1 -0
- package/dist/cli/handlers/commonOptions.d.ts +54 -0
- package/dist/cli/handlers/commonOptions.d.ts.map +1 -0
- package/dist/cli/handlers/commonOptions.js +64 -0
- package/dist/cli/handlers/commonOptions.js.map +1 -0
- package/dist/cli/handlers/daemonSessionController.d.ts +23 -0
- package/dist/cli/handlers/daemonSessionController.d.ts.map +1 -0
- package/dist/cli/handlers/daemonSessionController.js +108 -0
- package/dist/cli/handlers/daemonSessionController.js.map +1 -0
- package/dist/cli/handlers/sessionController.d.ts +21 -0
- package/dist/cli/handlers/sessionController.d.ts.map +1 -0
- package/dist/cli/handlers/sessionController.js +55 -0
- package/dist/cli/handlers/sessionController.js.map +1 -0
- package/dist/cli/registry.d.ts +11 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +46 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/collectors/__tests__/network.contract.test.d.ts +28 -0
- package/dist/collectors/__tests__/network.contract.test.d.ts.map +1 -0
- package/dist/collectors/__tests__/network.contract.test.js +525 -0
- package/dist/collectors/__tests__/network.contract.test.js.map +1 -0
- package/dist/collectors/console.d.ts +5 -3
- package/dist/collectors/console.d.ts.map +1 -1
- package/dist/collectors/console.js +48 -26
- package/dist/collectors/console.js.map +1 -1
- package/dist/collectors/dom.d.ts +2 -2
- package/dist/collectors/dom.d.ts.map +1 -1
- package/dist/collectors/dom.js +23 -12
- package/dist/collectors/dom.js.map +1 -1
- package/dist/collectors/network.d.ts +18 -4
- package/dist/collectors/network.d.ts.map +1 -1
- package/dist/collectors/network.js +111 -34
- package/dist/collectors/network.js.map +1 -1
- package/dist/connection/__tests__/cdp.contract.test.d.ts +16 -0
- package/dist/connection/__tests__/cdp.contract.test.d.ts.map +1 -0
- package/dist/connection/__tests__/cdp.contract.test.js +378 -0
- package/dist/connection/__tests__/cdp.contract.test.js.map +1 -0
- package/dist/connection/__tests__/finder.contract.test.d.ts +2 -0
- package/dist/connection/__tests__/finder.contract.test.d.ts.map +1 -0
- package/dist/connection/__tests__/finder.contract.test.js +239 -0
- package/dist/connection/__tests__/finder.contract.test.js.map +1 -0
- package/dist/connection/__tests__/tabs.contract.test.d.ts +2 -0
- package/dist/connection/__tests__/tabs.contract.test.d.ts.map +1 -0
- package/dist/connection/__tests__/tabs.contract.test.js +137 -0
- package/dist/connection/__tests__/tabs.contract.test.js.map +1 -0
- package/dist/connection/cdp.d.ts +165 -16
- package/dist/connection/cdp.d.ts.map +1 -1
- package/dist/connection/cdp.js +342 -122
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/finder.d.ts +5 -4
- package/dist/connection/finder.d.ts.map +1 -1
- package/dist/connection/finder.js +10 -16
- package/dist/connection/finder.js.map +1 -1
- package/dist/connection/launcher.d.ts +18 -11
- package/dist/connection/launcher.d.ts.map +1 -1
- package/dist/connection/launcher.js +148 -82
- package/dist/connection/launcher.js.map +1 -1
- package/dist/connection/tabs.d.ts +47 -14
- package/dist/connection/tabs.d.ts.map +1 -1
- package/dist/connection/tabs.js +493 -132
- package/dist/connection/tabs.js.map +1 -1
- package/dist/constants.d.ts +209 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +232 -0
- package/dist/constants.js.map +1 -0
- package/dist/daemon/__tests__/ipcServer.contract.test.d.ts +23 -0
- package/dist/daemon/__tests__/ipcServer.contract.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/ipcServer.contract.test.js +401 -0
- package/dist/daemon/__tests__/ipcServer.contract.test.js.map +1 -0
- package/dist/daemon/__tests__/launcher.unit.test.d.ts +8 -0
- package/dist/daemon/__tests__/launcher.unit.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/launcher.unit.test.js +20 -0
- package/dist/daemon/__tests__/launcher.unit.test.js.map +1 -0
- package/dist/daemon/ipcServer.d.ts +83 -0
- package/dist/daemon/ipcServer.d.ts.map +1 -0
- package/dist/daemon/ipcServer.js +670 -0
- package/dist/daemon/ipcServer.js.map +1 -0
- package/dist/daemon/launcher.d.ts +31 -0
- package/dist/daemon/launcher.d.ts.map +1 -0
- package/dist/daemon/launcher.js +137 -0
- package/dist/daemon/launcher.js.map +1 -0
- package/dist/daemon/startSession.d.ts +51 -0
- package/dist/daemon/startSession.d.ts.map +1 -0
- package/dist/daemon/startSession.js +149 -0
- package/dist/daemon/startSession.js.map +1 -0
- package/dist/daemon/worker.d.ts +18 -0
- package/dist/daemon/worker.d.ts.map +1 -0
- package/dist/daemon/worker.js +623 -0
- package/dist/daemon/worker.js.map +1 -0
- package/dist/daemon/workerIpc.d.ts +33 -0
- package/dist/daemon/workerIpc.d.ts.map +1 -0
- package/dist/daemon/workerIpc.js +8 -0
- package/dist/daemon/workerIpc.js.map +1 -0
- package/dist/daemon.d.ts +10 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +32 -0
- package/dist/daemon.js.map +1 -0
- package/dist/index.js +41 -420
- package/dist/index.js.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.d.ts +23 -0
- package/dist/ipc/__tests__/client.contract.test.d.ts.map +1 -0
- package/dist/ipc/__tests__/client.contract.test.js +466 -0
- package/dist/ipc/__tests__/client.contract.test.js.map +1 -0
- package/dist/ipc/client.d.ts +109 -0
- package/dist/ipc/client.d.ts.map +1 -0
- package/dist/ipc/client.js +220 -0
- package/dist/ipc/client.js.map +1 -0
- package/dist/ipc/commands.d.ts +208 -0
- package/dist/ipc/commands.d.ts.map +1 -0
- package/dist/ipc/commands.js +69 -0
- package/dist/ipc/commands.js.map +1 -0
- package/dist/ipc/responseValidator.d.ts +40 -0
- package/dist/ipc/responseValidator.d.ts.map +1 -0
- package/dist/ipc/responseValidator.js +28 -0
- package/dist/ipc/responseValidator.js.map +1 -0
- package/dist/ipc/types.d.ts +193 -0
- package/dist/ipc/types.d.ts.map +1 -0
- package/dist/ipc/types.js +21 -0
- package/dist/ipc/types.js.map +1 -0
- package/dist/session/BdgSession.d.ts +71 -4
- package/dist/session/BdgSession.d.ts.map +1 -1
- package/dist/session/BdgSession.js +173 -75
- package/dist/session/BdgSession.js.map +1 -1
- package/dist/session/chrome.d.ts +46 -0
- package/dist/session/chrome.d.ts.map +1 -0
- package/dist/session/chrome.js +92 -0
- package/dist/session/chrome.js.map +1 -0
- package/dist/session/cleanup.d.ts +45 -0
- package/dist/session/cleanup.d.ts.map +1 -0
- package/dist/session/cleanup.js +230 -0
- package/dist/session/cleanup.js.map +1 -0
- package/dist/session/index.d.ts +15 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +23 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/lock.d.ts +57 -0
- package/dist/session/lock.d.ts.map +1 -0
- package/dist/session/lock.js +154 -0
- package/dist/session/lock.js.map +1 -0
- package/dist/session/metadata.d.ts +59 -0
- package/dist/session/metadata.d.ts.map +1 -0
- package/dist/session/metadata.js +71 -0
- package/dist/session/metadata.js.map +1 -0
- package/dist/session/output.d.ts +18 -0
- package/dist/session/output.d.ts.map +1 -0
- package/dist/session/output.js +24 -0
- package/dist/session/output.js.map +1 -0
- package/dist/session/paths.d.ts +73 -0
- package/dist/session/paths.d.ts.map +1 -0
- package/dist/session/paths.js +84 -0
- package/dist/session/paths.js.map +1 -0
- package/dist/session/pid.d.ts +40 -0
- package/dist/session/pid.d.ts.map +1 -0
- package/dist/session/pid.js +73 -0
- package/dist/session/pid.js.map +1 -0
- package/dist/session/process.d.ts +45 -0
- package/dist/session/process.d.ts.map +1 -0
- package/dist/session/process.js +88 -0
- package/dist/session/process.js.map +1 -0
- package/dist/types.d.ts +114 -38
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/__tests__/filters.unit.test.d.ts +2 -0
- package/dist/utils/__tests__/filters.unit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/filters.unit.test.js +239 -0
- package/dist/utils/__tests__/filters.unit.test.js.map +1 -0
- package/dist/utils/__tests__/session.contract.test.d.ts +2 -0
- package/dist/utils/__tests__/session.contract.test.d.ts.map +1 -0
- package/dist/utils/__tests__/session.contract.test.js +234 -0
- package/dist/utils/__tests__/session.contract.test.js.map +1 -0
- package/dist/utils/atomicFile.d.ts +38 -0
- package/dist/utils/atomicFile.d.ts.map +1 -0
- package/dist/utils/atomicFile.js +71 -0
- package/dist/utils/atomicFile.js.map +1 -0
- package/dist/utils/cdpHandlers.d.ts +31 -0
- package/dist/utils/cdpHandlers.d.ts.map +1 -0
- package/dist/utils/cdpHandlers.js +38 -0
- package/dist/utils/cdpHandlers.js.map +1 -0
- package/dist/utils/chromeDiagnostics.d.ts +28 -0
- package/dist/utils/chromeDiagnostics.d.ts.map +1 -0
- package/dist/utils/chromeDiagnostics.js +88 -0
- package/dist/utils/chromeDiagnostics.js.map +1 -0
- package/dist/utils/errors.d.ts +82 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +88 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/exitCodes.d.ts +32 -0
- package/dist/utils/exitCodes.d.ts.map +1 -0
- package/dist/utils/exitCodes.js +36 -0
- package/dist/utils/exitCodes.js.map +1 -0
- package/dist/utils/filters.d.ts +108 -0
- package/dist/utils/filters.d.ts.map +1 -0
- package/dist/utils/filters.js +304 -0
- package/dist/utils/filters.js.map +1 -0
- package/dist/utils/formatters/network.d.ts +23 -0
- package/dist/utils/formatters/network.d.ts.map +1 -0
- package/dist/utils/formatters/network.js +35 -0
- package/dist/utils/formatters/network.js.map +1 -0
- package/dist/utils/http.d.ts +34 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +48 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/logger.d.ts +42 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +43 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/objects.d.ts +23 -0
- package/dist/utils/objects.d.ts.map +1 -0
- package/dist/utils/objects.js +25 -0
- package/dist/utils/objects.js.map +1 -0
- package/dist/utils/url/safeParseUrl.d.ts +63 -0
- package/dist/utils/url/safeParseUrl.d.ts.map +1 -0
- package/dist/utils/url/safeParseUrl.js +84 -0
- package/dist/utils/url/safeParseUrl.js.map +1 -0
- package/dist/utils/url.d.ts +63 -1
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +152 -2
- package/dist/utils/url.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/version.d.ts +3 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +27 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +57 -10
- package/dist/utils/pageLoad.d.ts +0 -21
- package/dist/utils/pageLoad.d.ts.map +0 -1
- package/dist/utils/pageLoad.js +0 -85
- package/dist/utils/pageLoad.js.map +0 -1
- package/dist/utils/session.d.ts +0 -104
- package/dist/utils/session.d.ts.map +0 -1
- package/dist/utils/session.js +0 -244
- package/dist/utils/session.js.map +0 -1
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Protocol Types - Minimal JSONL handshake MVP
|
|
3
|
+
*
|
|
4
|
+
* This module defines the bare minimum message types needed to establish
|
|
5
|
+
* a handshake between the CLI client and the daemon over JSONL protocol.
|
|
6
|
+
*/
|
|
7
|
+
import type { CollectorType } from '@/types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Base envelope for all IPC messages.
|
|
10
|
+
* JSONL format: Each message is a single line of JSON.
|
|
11
|
+
*/
|
|
12
|
+
export interface IPCMessage {
|
|
13
|
+
type: string;
|
|
14
|
+
sessionId: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Handshake request sent from CLI client to daemon.
|
|
18
|
+
* First message in the IPC protocol - establishes connection.
|
|
19
|
+
*/
|
|
20
|
+
export interface HandshakeRequest extends IPCMessage {
|
|
21
|
+
type: 'handshake_request';
|
|
22
|
+
sessionId: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Handshake response sent from daemon to CLI client.
|
|
26
|
+
* Confirms successful connection establishment.
|
|
27
|
+
*/
|
|
28
|
+
export interface HandshakeResponse extends IPCMessage {
|
|
29
|
+
type: 'handshake_response';
|
|
30
|
+
sessionId: string;
|
|
31
|
+
status: 'ok' | 'error';
|
|
32
|
+
message?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Status request sent from CLI client to daemon.
|
|
36
|
+
* Requests current daemon and session state information.
|
|
37
|
+
*/
|
|
38
|
+
export interface StatusRequest extends IPCMessage {
|
|
39
|
+
type: 'status_request';
|
|
40
|
+
sessionId: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Status response payload containing daemon and session metadata.
|
|
44
|
+
*/
|
|
45
|
+
export interface StatusResponseData {
|
|
46
|
+
daemonPid: number;
|
|
47
|
+
daemonStartTime: number;
|
|
48
|
+
socketPath: string;
|
|
49
|
+
sessionPid?: number;
|
|
50
|
+
sessionMetadata?: {
|
|
51
|
+
bdgPid: number;
|
|
52
|
+
chromePid?: number;
|
|
53
|
+
startTime: number;
|
|
54
|
+
port: number;
|
|
55
|
+
targetId?: string;
|
|
56
|
+
webSocketDebuggerUrl?: string;
|
|
57
|
+
activeCollectors?: CollectorType[];
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Status response sent from daemon to CLI client.
|
|
62
|
+
*/
|
|
63
|
+
export interface StatusResponse extends IPCMessage {
|
|
64
|
+
type: 'status_response';
|
|
65
|
+
sessionId: string;
|
|
66
|
+
status: 'ok' | 'error';
|
|
67
|
+
data?: StatusResponseData;
|
|
68
|
+
error?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Peek request sent from CLI client to daemon.
|
|
72
|
+
* Requests current session preview data (lightweight snapshot).
|
|
73
|
+
*/
|
|
74
|
+
export interface PeekRequest extends IPCMessage {
|
|
75
|
+
type: 'peek_request';
|
|
76
|
+
sessionId: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Peek response payload containing session preview data.
|
|
80
|
+
* Live data fetched from worker via IPC (no file reads).
|
|
81
|
+
*/
|
|
82
|
+
export interface PeekResponseData {
|
|
83
|
+
sessionPid: number;
|
|
84
|
+
preview: {
|
|
85
|
+
version: string;
|
|
86
|
+
success: boolean;
|
|
87
|
+
timestamp: string;
|
|
88
|
+
duration: number;
|
|
89
|
+
target: {
|
|
90
|
+
url: string;
|
|
91
|
+
title: string;
|
|
92
|
+
};
|
|
93
|
+
data: {
|
|
94
|
+
dom?: unknown;
|
|
95
|
+
network?: unknown[];
|
|
96
|
+
console?: unknown[];
|
|
97
|
+
};
|
|
98
|
+
partial?: boolean;
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Peek response sent from daemon to CLI client.
|
|
103
|
+
*/
|
|
104
|
+
export interface PeekResponse extends IPCMessage {
|
|
105
|
+
type: 'peek_response';
|
|
106
|
+
sessionId: string;
|
|
107
|
+
status: 'ok' | 'error';
|
|
108
|
+
data?: PeekResponseData;
|
|
109
|
+
error?: string;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Error codes for IPC responses.
|
|
113
|
+
* Provides structured error handling across daemon and CLI.
|
|
114
|
+
*/
|
|
115
|
+
export declare enum IPCErrorCode {
|
|
116
|
+
NO_SESSION = "NO_SESSION",
|
|
117
|
+
SESSION_KILL_FAILED = "SESSION_KILL_FAILED",
|
|
118
|
+
SESSION_ALREADY_RUNNING = "SESSION_ALREADY_RUNNING",
|
|
119
|
+
WORKER_START_FAILED = "WORKER_START_FAILED",
|
|
120
|
+
CHROME_LAUNCH_FAILED = "CHROME_LAUNCH_FAILED",
|
|
121
|
+
CDP_TIMEOUT = "CDP_TIMEOUT",
|
|
122
|
+
DAEMON_ERROR = "DAEMON_ERROR"
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Start session request sent from CLI client to daemon.
|
|
126
|
+
* Requests launching a new browser session for the given URL.
|
|
127
|
+
*/
|
|
128
|
+
export interface StartSessionRequest extends IPCMessage {
|
|
129
|
+
type: 'start_session_request';
|
|
130
|
+
sessionId: string;
|
|
131
|
+
url: string;
|
|
132
|
+
port?: number;
|
|
133
|
+
timeout?: number;
|
|
134
|
+
collectors?: CollectorType[];
|
|
135
|
+
includeAll?: boolean;
|
|
136
|
+
userDataDir?: string;
|
|
137
|
+
maxBodySize?: number;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Start session response payload containing worker metadata.
|
|
141
|
+
*/
|
|
142
|
+
export interface StartSessionResponseData {
|
|
143
|
+
workerPid: number;
|
|
144
|
+
chromePid: number;
|
|
145
|
+
port: number;
|
|
146
|
+
targetUrl: string;
|
|
147
|
+
targetTitle?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Start session response sent from daemon to CLI client.
|
|
151
|
+
*/
|
|
152
|
+
export interface StartSessionResponse extends IPCMessage {
|
|
153
|
+
type: 'start_session_response';
|
|
154
|
+
sessionId: string;
|
|
155
|
+
status: 'ok' | 'error';
|
|
156
|
+
data?: StartSessionResponseData;
|
|
157
|
+
message?: string;
|
|
158
|
+
errorCode?: IPCErrorCode;
|
|
159
|
+
existingSession?: {
|
|
160
|
+
pid: number;
|
|
161
|
+
targetUrl?: string;
|
|
162
|
+
startTime?: number;
|
|
163
|
+
duration?: number;
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Stop session request sent from CLI client to daemon.
|
|
168
|
+
* Requests termination of the currently running session.
|
|
169
|
+
*/
|
|
170
|
+
export interface StopSessionRequest extends IPCMessage {
|
|
171
|
+
type: 'stop_session_request';
|
|
172
|
+
sessionId: string;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Stop session response sent from daemon to CLI client.
|
|
176
|
+
*/
|
|
177
|
+
export interface StopSessionResponse extends IPCMessage {
|
|
178
|
+
type: 'stop_session_response';
|
|
179
|
+
sessionId: string;
|
|
180
|
+
status: 'ok' | 'error';
|
|
181
|
+
message?: string;
|
|
182
|
+
errorCode?: IPCErrorCode;
|
|
183
|
+
chromePid?: number;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* NOTE: DOM command types (DomQueryCommand, DomHighlightCommand, DomGetCommand, etc.)
|
|
187
|
+
* are now defined in \@/ipc/commands.ts
|
|
188
|
+
*/
|
|
189
|
+
/**
|
|
190
|
+
* Union type of all IPC messages (for future extension).
|
|
191
|
+
*/
|
|
192
|
+
export type IPCMessageType = HandshakeRequest | HandshakeResponse | StatusRequest | StatusResponse | PeekRequest | PeekResponse | StartSessionRequest | StartSessionResponse | StopSessionRequest | StopSessionResponse;
|
|
193
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ipc/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Protocol Types - Minimal JSONL handshake MVP
|
|
3
|
+
*
|
|
4
|
+
* This module defines the bare minimum message types needed to establish
|
|
5
|
+
* a handshake between the CLI client and the daemon over JSONL protocol.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Error codes for IPC responses.
|
|
9
|
+
* Provides structured error handling across daemon and CLI.
|
|
10
|
+
*/
|
|
11
|
+
export var IPCErrorCode;
|
|
12
|
+
(function (IPCErrorCode) {
|
|
13
|
+
IPCErrorCode["NO_SESSION"] = "NO_SESSION";
|
|
14
|
+
IPCErrorCode["SESSION_KILL_FAILED"] = "SESSION_KILL_FAILED";
|
|
15
|
+
IPCErrorCode["SESSION_ALREADY_RUNNING"] = "SESSION_ALREADY_RUNNING";
|
|
16
|
+
IPCErrorCode["WORKER_START_FAILED"] = "WORKER_START_FAILED";
|
|
17
|
+
IPCErrorCode["CHROME_LAUNCH_FAILED"] = "CHROME_LAUNCH_FAILED";
|
|
18
|
+
IPCErrorCode["CDP_TIMEOUT"] = "CDP_TIMEOUT";
|
|
19
|
+
IPCErrorCode["DAEMON_ERROR"] = "DAEMON_ERROR";
|
|
20
|
+
})(IPCErrorCode || (IPCErrorCode = {}));
|
|
21
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ipc/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoHH;;;GAGG;AACH,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,2DAA2C,CAAA;IAC3C,mEAAmD,CAAA;IACnD,2DAA2C,CAAA;IAC3C,6DAA6C,CAAA;IAC7C,2CAA2B,CAAA;IAC3B,6CAA6B,CAAA;AAC/B,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CDPConnection } from '../connection/cdp.js';
|
|
2
|
-
import { CDPTarget, CollectorType, BdgOutput } from '../types.js';
|
|
2
|
+
import type { CDPTarget, CollectorType, NetworkRequest, ConsoleMessage, BdgOutput, SessionOptions } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Manages a browser debugging session.
|
|
5
5
|
*
|
|
@@ -19,7 +19,15 @@ export declare class BdgSession {
|
|
|
19
19
|
private networkRequests;
|
|
20
20
|
private consoleLogs;
|
|
21
21
|
private activeCollectors;
|
|
22
|
-
|
|
22
|
+
private sessionOptions;
|
|
23
|
+
constructor(target: CDPTarget, port: number, options?: SessionOptions);
|
|
24
|
+
/**
|
|
25
|
+
* Connect to the CDP target and initialize session.
|
|
26
|
+
*
|
|
27
|
+
* We disable auto-reconnect because CLI sessions are short-lived and should
|
|
28
|
+
* fail fast when the target becomes unavailable. Target validation prevents
|
|
29
|
+
* race conditions where tabs close during connection setup.
|
|
30
|
+
*/
|
|
23
31
|
connect(): Promise<void>;
|
|
24
32
|
/**
|
|
25
33
|
* Start a specific data collector.
|
|
@@ -31,8 +39,9 @@ export declare class BdgSession {
|
|
|
31
39
|
/**
|
|
32
40
|
* Stop the session and return collected telemetry.
|
|
33
41
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
42
|
+
* DOM capture errors are ignored because Chrome may be shutting down during
|
|
43
|
+
* SIGINT handling. CDP domain disabling is skipped during cleanup to prevent
|
|
44
|
+
* hanging when Chrome is already terminating.
|
|
36
45
|
*
|
|
37
46
|
* @returns Complete telemetry output with success/error status
|
|
38
47
|
* @throws Error if session is not active
|
|
@@ -58,5 +67,63 @@ export declare class BdgSession {
|
|
|
58
67
|
* @returns CDP connection instance
|
|
59
68
|
*/
|
|
60
69
|
getCDP(): CDPConnection;
|
|
70
|
+
/**
|
|
71
|
+
* Get collected network requests.
|
|
72
|
+
*
|
|
73
|
+
* Useful for live preview of collected data without stopping the session.
|
|
74
|
+
*
|
|
75
|
+
* @returns Array of network requests collected so far
|
|
76
|
+
*/
|
|
77
|
+
getNetworkRequests(): NetworkRequest[];
|
|
78
|
+
/**
|
|
79
|
+
* Get collected console messages.
|
|
80
|
+
*
|
|
81
|
+
* Useful for live preview of collected data without stopping the session.
|
|
82
|
+
*
|
|
83
|
+
* @returns Array of console messages collected so far
|
|
84
|
+
*/
|
|
85
|
+
getConsoleLogs(): ConsoleMessage[];
|
|
86
|
+
/**
|
|
87
|
+
* Get session start time.
|
|
88
|
+
*
|
|
89
|
+
* @returns Timestamp when session was created
|
|
90
|
+
*/
|
|
91
|
+
getStartTime(): number;
|
|
92
|
+
/**
|
|
93
|
+
* Get list of active collectors.
|
|
94
|
+
*
|
|
95
|
+
* @returns Array of collector types that are currently active
|
|
96
|
+
*/
|
|
97
|
+
getActiveCollectors(): CollectorType[];
|
|
98
|
+
/**
|
|
99
|
+
* Build network collection options from session options.
|
|
100
|
+
*
|
|
101
|
+
* Maps session-level configuration to network collector specific options.
|
|
102
|
+
* This centralized mapping makes it easier to maintain option compatibility
|
|
103
|
+
* and reduces repetitive conditional assignments.
|
|
104
|
+
*/
|
|
105
|
+
private buildNetworkCollectionOptions;
|
|
106
|
+
/**
|
|
107
|
+
* Attempt to capture final DOM snapshot.
|
|
108
|
+
*
|
|
109
|
+
* DOM capture failures are expected and ignored during shutdown because
|
|
110
|
+
* Chrome may already be terminating when SIGINT is received. We prioritize
|
|
111
|
+
* returning partial data over failing completely.
|
|
112
|
+
*/
|
|
113
|
+
private captureDomsnapshot;
|
|
114
|
+
/**
|
|
115
|
+
* Build the final session output with collected data.
|
|
116
|
+
*/
|
|
117
|
+
private buildSessionOutput;
|
|
118
|
+
/**
|
|
119
|
+
* Perform session cleanup with error tolerance.
|
|
120
|
+
*
|
|
121
|
+
* We skip CDP domain disabling and tolerate connection errors because
|
|
122
|
+
* Chrome may already be dead during SIGINT shutdown. Priority is on
|
|
123
|
+
* cleaning up our internal state rather than graceful CDP teardown.
|
|
124
|
+
*
|
|
125
|
+
* Note: Marked async for consistency with cleanup interface pattern.
|
|
126
|
+
*/
|
|
127
|
+
private performSessionCleanup;
|
|
61
128
|
}
|
|
62
129
|
//# sourceMappingURL=BdgSession.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BdgSession.d.ts","sourceRoot":"","sources":["../../src/session/BdgSession.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BdgSession.d.ts","sourceRoot":"","sources":["../../src/session/BdgSession.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOpD,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,cAAc,EACd,cAAc,EAEd,SAAS,EAET,cAAc,EACf,MAAM,SAAS,CAAC;AAajB;;;;;;;;GAQG;AACH,qBAAa,UAAU;IAWnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IAXd,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,cAAc,CAAiB;gBAG7B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACpB,OAAO,GAAE,cAAmB;IAO9B;;;;;;OAMG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B;;;;;OAKG;IACG,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BxD;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAchC;;;;OAIG;IACH,WAAW,IAAI,OAAO;IAItB;;;;OAIG;IACH,SAAS,IAAI,SAAS;IAItB;;;;;;OAMG;IACH,MAAM,IAAI,aAAa;IAIvB;;;;;;OAMG;IACH,kBAAkB,IAAI,cAAc,EAAE;IAItC;;;;;;OAMG;IACH,cAAc,IAAI,cAAc,EAAE;IAIlC;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAItB;;;;OAIG;IACH,mBAAmB,IAAI,aAAa,EAAE;IAItC;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IAYrC;;;;;;OAMG;YACW,kBAAkB;IAmBhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;;;;;OAQG;YAEW,qBAAqB;CAsBpC"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
|
-
import { CDPConnection } from '../connection/cdp.js';
|
|
2
|
-
import { validateTarget } from '../connection/finder.js';
|
|
3
|
-
import { startNetworkCollection } from '../collectors/network.js';
|
|
4
1
|
import { startConsoleCollection } from '../collectors/console.js';
|
|
5
2
|
import { prepareDOMCollection, collectDOM } from '../collectors/dom.js';
|
|
3
|
+
import { startNetworkCollection } from '../collectors/network.js';
|
|
4
|
+
import { CDPConnection } from '../connection/cdp.js';
|
|
5
|
+
import { validateTarget } from '../connection/finder.js';
|
|
6
|
+
import { CDP_MAX_CONNECTION_RETRIES, CDP_KEEPALIVE_INTERVAL, CDP_DISCOVER_TARGETS, } from '../constants.js';
|
|
7
|
+
import { filterDefined } from '../utils/objects.js';
|
|
8
|
+
import { VERSION } from '../utils/version.js';
|
|
9
|
+
const CAPTURING_FINAL_STATE_MESSAGE = 'Capturing final state...';
|
|
10
|
+
const CAPTURING_DOM_SNAPSHOT_MESSAGE = 'Capturing DOM snapshot...';
|
|
11
|
+
const DOM_SNAPSHOT_SUCCESS_MESSAGE = 'DOM snapshot captured successfully';
|
|
12
|
+
const CLEANING_UP_SESSION_MESSAGE = 'Cleaning up session...';
|
|
13
|
+
const SESSION_CLEANUP_COMPLETE_MESSAGE = 'Session cleanup complete';
|
|
14
|
+
const SESSION_NOT_ACTIVE_ERROR = 'Session not active';
|
|
15
|
+
const TARGET_CLOSED_ERROR = 'Target tab closed during connection';
|
|
16
|
+
const DOM_CAPTURE_FAILED_WARNING = 'Warning: DOM capture failed (Chrome may be closing):';
|
|
17
|
+
const CLEANUP_ERROR_WARNING = 'Warning: Cleanup error:';
|
|
6
18
|
/**
|
|
7
19
|
* Manages a browser debugging session.
|
|
8
20
|
*
|
|
@@ -22,27 +34,33 @@ export class BdgSession {
|
|
|
22
34
|
networkRequests = [];
|
|
23
35
|
consoleLogs = [];
|
|
24
36
|
activeCollectors = [];
|
|
25
|
-
|
|
37
|
+
sessionOptions;
|
|
38
|
+
constructor(target, port, options = {}) {
|
|
26
39
|
this.target = target;
|
|
27
40
|
this.port = port;
|
|
28
41
|
this.cdp = new CDPConnection();
|
|
29
42
|
this.startTime = Date.now();
|
|
43
|
+
this.sessionOptions = options;
|
|
30
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Connect to the CDP target and initialize session.
|
|
47
|
+
*
|
|
48
|
+
* We disable auto-reconnect because CLI sessions are short-lived and should
|
|
49
|
+
* fail fast when the target becomes unavailable. Target validation prevents
|
|
50
|
+
* race conditions where tabs close during connection setup.
|
|
51
|
+
*/
|
|
31
52
|
async connect() {
|
|
32
|
-
// Connect with retry and keepalive (no auto-reconnect for CLI use)
|
|
33
53
|
await this.cdp.connect(this.target.webSocketDebuggerUrl, {
|
|
34
|
-
maxRetries:
|
|
54
|
+
maxRetries: CDP_MAX_CONNECTION_RETRIES,
|
|
35
55
|
autoReconnect: false,
|
|
36
|
-
keepaliveInterval:
|
|
56
|
+
keepaliveInterval: CDP_KEEPALIVE_INTERVAL,
|
|
37
57
|
});
|
|
38
|
-
// Validate target still exists
|
|
39
58
|
const targetExists = await validateTarget(this.target.id, this.port);
|
|
40
59
|
if (!targetExists) {
|
|
41
60
|
this.cdp.close();
|
|
42
|
-
throw new Error(
|
|
61
|
+
throw new Error(TARGET_CLOSED_ERROR);
|
|
43
62
|
}
|
|
44
|
-
|
|
45
|
-
await this.cdp.send('Target.setDiscoverTargets', { discover: true });
|
|
63
|
+
await this.cdp.send('Target.setDiscoverTargets', { discover: CDP_DISCOVER_TARGETS });
|
|
46
64
|
this.isActive = true;
|
|
47
65
|
}
|
|
48
66
|
/**
|
|
@@ -53,93 +71,43 @@ export class BdgSession {
|
|
|
53
71
|
*/
|
|
54
72
|
async startCollector(type) {
|
|
55
73
|
if (!this.isActive) {
|
|
56
|
-
throw new Error(
|
|
74
|
+
throw new Error(SESSION_NOT_ACTIVE_ERROR);
|
|
57
75
|
}
|
|
58
76
|
this.activeCollectors.push(type);
|
|
59
77
|
let cleanup;
|
|
60
78
|
switch (type) {
|
|
61
|
-
case 'network':
|
|
62
|
-
|
|
79
|
+
case 'network': {
|
|
80
|
+
const networkOptions = this.buildNetworkCollectionOptions();
|
|
81
|
+
cleanup = await startNetworkCollection(this.cdp, this.networkRequests, networkOptions);
|
|
63
82
|
break;
|
|
83
|
+
}
|
|
64
84
|
case 'console':
|
|
65
|
-
cleanup = await startConsoleCollection(this.cdp, this.consoleLogs);
|
|
85
|
+
cleanup = await startConsoleCollection(this.cdp, this.consoleLogs, this.sessionOptions.includeAll ?? false);
|
|
66
86
|
break;
|
|
67
87
|
case 'dom':
|
|
68
88
|
cleanup = await prepareDOMCollection(this.cdp);
|
|
69
89
|
break;
|
|
70
|
-
default:
|
|
71
|
-
throw new Error(`Unknown collector type: ${type}`);
|
|
72
90
|
}
|
|
73
91
|
this.collectors.set(type, cleanup);
|
|
74
92
|
}
|
|
75
93
|
/**
|
|
76
94
|
* Stop the session and return collected telemetry.
|
|
77
95
|
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
96
|
+
* DOM capture errors are ignored because Chrome may be shutting down during
|
|
97
|
+
* SIGINT handling. CDP domain disabling is skipped during cleanup to prevent
|
|
98
|
+
* hanging when Chrome is already terminating.
|
|
80
99
|
*
|
|
81
100
|
* @returns Complete telemetry output with success/error status
|
|
82
101
|
* @throws Error if session is not active
|
|
83
102
|
*/
|
|
84
103
|
async stop() {
|
|
85
104
|
if (!this.isActive) {
|
|
86
|
-
throw new Error(
|
|
87
|
-
}
|
|
88
|
-
console.error('Capturing final state...');
|
|
89
|
-
// Attempt to capture DOM if it's an active collector
|
|
90
|
-
let domData;
|
|
91
|
-
if (this.activeCollectors.includes('dom')) {
|
|
92
|
-
try {
|
|
93
|
-
console.error('Capturing DOM snapshot...');
|
|
94
|
-
domData = await collectDOM(this.cdp);
|
|
95
|
-
console.error('DOM snapshot captured successfully');
|
|
96
|
-
}
|
|
97
|
-
catch (domError) {
|
|
98
|
-
// Chrome may be closing during shutdown, ignore DOM capture failures
|
|
99
|
-
console.error('Warning: DOM capture failed (Chrome may be closing):', domError instanceof Error ? domError.message : String(domError));
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
// Build output (even if DOM capture failed)
|
|
103
|
-
const output = {
|
|
104
|
-
success: true,
|
|
105
|
-
timestamp: new Date().toISOString(),
|
|
106
|
-
duration: Date.now() - this.startTime,
|
|
107
|
-
target: {
|
|
108
|
-
url: domData?.url || this.target.url,
|
|
109
|
-
title: domData?.title || this.target.title
|
|
110
|
-
},
|
|
111
|
-
data: {}
|
|
112
|
-
};
|
|
113
|
-
// Add collected data
|
|
114
|
-
if (this.activeCollectors.includes('dom') && domData) {
|
|
115
|
-
output.data.dom = domData;
|
|
116
|
-
}
|
|
117
|
-
if (this.activeCollectors.includes('network')) {
|
|
118
|
-
output.data.network = this.networkRequests;
|
|
119
|
-
}
|
|
120
|
-
if (this.activeCollectors.includes('console')) {
|
|
121
|
-
output.data.console = this.consoleLogs;
|
|
122
|
-
}
|
|
123
|
-
// Clean up collectors (skip CDP domain disabling during shutdown to avoid hanging)
|
|
124
|
-
try {
|
|
125
|
-
console.error('Cleaning up session...');
|
|
126
|
-
// Call cleanup functions for all collectors
|
|
127
|
-
this.collectors.forEach(cleanup => cleanup());
|
|
128
|
-
this.collectors.clear();
|
|
129
|
-
// Skip disabling CDP domains - Chrome may be dead during SIGINT shutdown
|
|
130
|
-
// Just close the connection and mark as inactive
|
|
131
|
-
try {
|
|
132
|
-
this.cdp.close();
|
|
133
|
-
}
|
|
134
|
-
catch (closeError) {
|
|
135
|
-
// Ignore close errors
|
|
136
|
-
}
|
|
137
|
-
this.isActive = false;
|
|
138
|
-
console.error('Session cleanup complete');
|
|
139
|
-
}
|
|
140
|
-
catch (cleanupError) {
|
|
141
|
-
console.error('Warning: Cleanup error:', cleanupError instanceof Error ? cleanupError.message : String(cleanupError));
|
|
105
|
+
throw new Error(SESSION_NOT_ACTIVE_ERROR);
|
|
142
106
|
}
|
|
107
|
+
console.error(CAPTURING_FINAL_STATE_MESSAGE);
|
|
108
|
+
const domData = await this.captureDomsnapshot();
|
|
109
|
+
const output = this.buildSessionOutput(domData);
|
|
110
|
+
await this.performSessionCleanup();
|
|
143
111
|
return output;
|
|
144
112
|
}
|
|
145
113
|
/**
|
|
@@ -168,5 +136,135 @@ export class BdgSession {
|
|
|
168
136
|
getCDP() {
|
|
169
137
|
return this.cdp;
|
|
170
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Get collected network requests.
|
|
141
|
+
*
|
|
142
|
+
* Useful for live preview of collected data without stopping the session.
|
|
143
|
+
*
|
|
144
|
+
* @returns Array of network requests collected so far
|
|
145
|
+
*/
|
|
146
|
+
getNetworkRequests() {
|
|
147
|
+
return this.networkRequests;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get collected console messages.
|
|
151
|
+
*
|
|
152
|
+
* Useful for live preview of collected data without stopping the session.
|
|
153
|
+
*
|
|
154
|
+
* @returns Array of console messages collected so far
|
|
155
|
+
*/
|
|
156
|
+
getConsoleLogs() {
|
|
157
|
+
return this.consoleLogs;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get session start time.
|
|
161
|
+
*
|
|
162
|
+
* @returns Timestamp when session was created
|
|
163
|
+
*/
|
|
164
|
+
getStartTime() {
|
|
165
|
+
return this.startTime;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get list of active collectors.
|
|
169
|
+
*
|
|
170
|
+
* @returns Array of collector types that are currently active
|
|
171
|
+
*/
|
|
172
|
+
getActiveCollectors() {
|
|
173
|
+
return this.activeCollectors;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Build network collection options from session options.
|
|
177
|
+
*
|
|
178
|
+
* Maps session-level configuration to network collector specific options.
|
|
179
|
+
* This centralized mapping makes it easier to maintain option compatibility
|
|
180
|
+
* and reduces repetitive conditional assignments.
|
|
181
|
+
*/
|
|
182
|
+
buildNetworkCollectionOptions() {
|
|
183
|
+
return filterDefined({
|
|
184
|
+
includeAll: this.sessionOptions.includeAll,
|
|
185
|
+
fetchAllBodies: this.sessionOptions.fetchAllBodies,
|
|
186
|
+
fetchBodiesInclude: this.sessionOptions.fetchBodiesInclude,
|
|
187
|
+
fetchBodiesExclude: this.sessionOptions.fetchBodiesExclude,
|
|
188
|
+
networkInclude: this.sessionOptions.networkInclude,
|
|
189
|
+
networkExclude: this.sessionOptions.networkExclude,
|
|
190
|
+
maxBodySize: this.sessionOptions.maxBodySize,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Attempt to capture final DOM snapshot.
|
|
195
|
+
*
|
|
196
|
+
* DOM capture failures are expected and ignored during shutdown because
|
|
197
|
+
* Chrome may already be terminating when SIGINT is received. We prioritize
|
|
198
|
+
* returning partial data over failing completely.
|
|
199
|
+
*/
|
|
200
|
+
async captureDomsnapshot() {
|
|
201
|
+
if (!this.activeCollectors.includes('dom')) {
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
try {
|
|
205
|
+
console.error(CAPTURING_DOM_SNAPSHOT_MESSAGE);
|
|
206
|
+
const domData = await collectDOM(this.cdp);
|
|
207
|
+
console.error(DOM_SNAPSHOT_SUCCESS_MESSAGE);
|
|
208
|
+
return domData;
|
|
209
|
+
}
|
|
210
|
+
catch (domError) {
|
|
211
|
+
console.error(DOM_CAPTURE_FAILED_WARNING, domError instanceof Error ? domError.message : String(domError));
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Build the final session output with collected data.
|
|
217
|
+
*/
|
|
218
|
+
buildSessionOutput(domData) {
|
|
219
|
+
const output = {
|
|
220
|
+
version: VERSION,
|
|
221
|
+
success: true,
|
|
222
|
+
timestamp: new Date().toISOString(),
|
|
223
|
+
duration: Date.now() - this.startTime,
|
|
224
|
+
target: {
|
|
225
|
+
url: domData?.url ?? this.target.url,
|
|
226
|
+
title: domData?.title ?? this.target.title,
|
|
227
|
+
},
|
|
228
|
+
data: {},
|
|
229
|
+
};
|
|
230
|
+
if (this.activeCollectors.includes('dom') && domData) {
|
|
231
|
+
output.data.dom = domData;
|
|
232
|
+
}
|
|
233
|
+
if (this.activeCollectors.includes('network')) {
|
|
234
|
+
output.data.network = this.networkRequests;
|
|
235
|
+
}
|
|
236
|
+
if (this.activeCollectors.includes('console')) {
|
|
237
|
+
output.data.console = this.consoleLogs;
|
|
238
|
+
}
|
|
239
|
+
return output;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Perform session cleanup with error tolerance.
|
|
243
|
+
*
|
|
244
|
+
* We skip CDP domain disabling and tolerate connection errors because
|
|
245
|
+
* Chrome may already be dead during SIGINT shutdown. Priority is on
|
|
246
|
+
* cleaning up our internal state rather than graceful CDP teardown.
|
|
247
|
+
*
|
|
248
|
+
* Note: Marked async for consistency with cleanup interface pattern.
|
|
249
|
+
*/
|
|
250
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
251
|
+
async performSessionCleanup() {
|
|
252
|
+
try {
|
|
253
|
+
console.error(CLEANING_UP_SESSION_MESSAGE);
|
|
254
|
+
this.collectors.forEach((cleanup) => cleanup());
|
|
255
|
+
this.collectors.clear();
|
|
256
|
+
try {
|
|
257
|
+
this.cdp.close();
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
// Connection close errors are expected during shutdown
|
|
261
|
+
}
|
|
262
|
+
this.isActive = false;
|
|
263
|
+
console.error(SESSION_CLEANUP_COMPLETE_MESSAGE);
|
|
264
|
+
}
|
|
265
|
+
catch (cleanupError) {
|
|
266
|
+
console.error(CLEANUP_ERROR_WARNING, cleanupError instanceof Error ? cleanupError.message : String(cleanupError));
|
|
267
|
+
}
|
|
268
|
+
}
|
|
171
269
|
}
|
|
172
270
|
//# sourceMappingURL=BdgSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BdgSession.js","sourceRoot":"","sources":["../../src/session/BdgSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"BdgSession.js","sourceRoot":"","sources":["../../src/session/BdgSession.ts"],"names":[],"mappings":"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"}
|