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,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker IPC Message Types
|
|
3
|
+
*
|
|
4
|
+
* Defines non-command messages for communication between daemon and worker process.
|
|
5
|
+
* Command messages are defined in \@/ipc/commands.ts
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base message type for worker IPC
|
|
9
|
+
*/
|
|
10
|
+
export interface WorkerIPCMessage {
|
|
11
|
+
type: string;
|
|
12
|
+
requestId: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Worker ready signal sent from worker to daemon on startup.
|
|
16
|
+
* This is NOT a command - it's a lifecycle signal.
|
|
17
|
+
*/
|
|
18
|
+
export interface WorkerReadyMessage extends WorkerIPCMessage {
|
|
19
|
+
type: 'worker_ready';
|
|
20
|
+
workerPid: number;
|
|
21
|
+
chromePid: number;
|
|
22
|
+
port: number;
|
|
23
|
+
target: {
|
|
24
|
+
url: string;
|
|
25
|
+
title?: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Union type of all non-command worker responses.
|
|
30
|
+
* Command responses are defined in \@/ipc/commands.ts (WorkerResponseUnion)
|
|
31
|
+
*/
|
|
32
|
+
export type WorkerIPCResponse = WorkerReadyMessage;
|
|
33
|
+
//# sourceMappingURL=workerIpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerIpc.d.ts","sourceRoot":"","sources":["../../src/daemon/workerIpc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerIpc.js","sourceRoot":"","sources":["../../src/daemon/workerIpc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/daemon.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Daemon Entry Point - Standalone IPC Server
|
|
4
|
+
*
|
|
5
|
+
* This is a minimal standalone daemon process that runs the IPC server.
|
|
6
|
+
* For MVP: manually start with `node dist/daemon.js`
|
|
7
|
+
* Future: integrate with proper daemon lifecycle management.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
|
package/dist/daemon.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Daemon Entry Point - Standalone IPC Server
|
|
4
|
+
*
|
|
5
|
+
* This is a minimal standalone daemon process that runs the IPC server.
|
|
6
|
+
* For MVP: manually start with `node dist/daemon.js`
|
|
7
|
+
* Future: integrate with proper daemon lifecycle management.
|
|
8
|
+
*/
|
|
9
|
+
import { IPCServer } from './daemon/ipcServer.js';
|
|
10
|
+
const server = new IPCServer();
|
|
11
|
+
// Graceful shutdown handlers
|
|
12
|
+
process.on('SIGINT', () => {
|
|
13
|
+
console.error('\n[daemon] Received SIGINT, shutting down...');
|
|
14
|
+
void server.stop().then(() => process.exit(0));
|
|
15
|
+
});
|
|
16
|
+
process.on('SIGTERM', () => {
|
|
17
|
+
console.error('\n[daemon] Received SIGTERM, shutting down...');
|
|
18
|
+
void server.stop().then(() => process.exit(0));
|
|
19
|
+
});
|
|
20
|
+
// Start the server
|
|
21
|
+
void (async () => {
|
|
22
|
+
try {
|
|
23
|
+
await server.start();
|
|
24
|
+
console.error('[daemon] IPC server started successfully');
|
|
25
|
+
console.error('[daemon] Press Ctrl+C to stop');
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.error('[daemon] Failed to start:', error);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
})();
|
|
32
|
+
//# sourceMappingURL=daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;AAE/B,6BAA6B;AAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,mBAAmB;AACnB,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,431 +1,52 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
console.error('Stopping session...');
|
|
24
|
-
const output = await session.stop();
|
|
25
|
-
// Write to file for 'bdg stop' to read (synchronous to ensure it completes)
|
|
26
|
-
try {
|
|
27
|
-
console.error('Writing session output...');
|
|
28
|
-
writeSessionOutput(output);
|
|
29
|
-
console.error('Session output written successfully');
|
|
30
|
-
}
|
|
31
|
-
catch (writeError) {
|
|
32
|
-
console.error('Failed to write session output:', writeError);
|
|
33
|
-
console.error('Write error details:', writeError);
|
|
34
|
-
}
|
|
35
|
-
// Also output to stdout (for foreground use)
|
|
36
|
-
console.log(JSON.stringify(output, null, 2));
|
|
37
|
-
// Leave Chrome running for future sessions (persistent profile benefit)
|
|
38
|
-
if (launchedChrome) {
|
|
39
|
-
console.error('Leaving Chrome running for future sessions (use persistent profile)');
|
|
40
|
-
console.error(`Chrome PID: ${launchedChrome.pid}, port: ${launchedChrome.port}`);
|
|
41
|
-
}
|
|
42
|
-
// Cleanup session files
|
|
43
|
-
try {
|
|
44
|
-
cleanupSession();
|
|
45
|
-
}
|
|
46
|
-
catch (cleanupError) {
|
|
47
|
-
console.error('Error cleaning up session:', cleanupError);
|
|
48
|
-
}
|
|
49
|
-
// Clear keepalive and exit
|
|
50
|
-
if (shutdownKeepalive) {
|
|
51
|
-
clearInterval(shutdownKeepalive);
|
|
52
|
-
}
|
|
53
|
-
process.exit(0);
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
console.error('Error during shutdown:', error);
|
|
57
|
-
const errorOutput = {
|
|
58
|
-
success: false,
|
|
59
|
-
timestamp: new Date().toISOString(),
|
|
60
|
-
duration: 0,
|
|
61
|
-
target: { url: '', title: '' },
|
|
62
|
-
data: {},
|
|
63
|
-
error: error instanceof Error ? error.message : String(error)
|
|
64
|
-
};
|
|
65
|
-
// Write error output to file (synchronous to ensure it completes)
|
|
66
|
-
try {
|
|
67
|
-
console.error('Writing error output...');
|
|
68
|
-
writeSessionOutput(errorOutput);
|
|
69
|
-
console.error('Error output written successfully');
|
|
70
|
-
}
|
|
71
|
-
catch (writeError) {
|
|
72
|
-
console.error('Failed to write error output:', writeError);
|
|
73
|
-
console.error('Write error details:', writeError);
|
|
74
|
-
}
|
|
75
|
-
console.log(JSON.stringify(errorOutput, null, 2));
|
|
76
|
-
// Leave Chrome running even on error
|
|
77
|
-
if (launchedChrome) {
|
|
78
|
-
console.error('Leaving Chrome running (use persistent profile)');
|
|
79
|
-
console.error(`Chrome PID: ${launchedChrome.pid}, port: ${launchedChrome.port}`);
|
|
80
|
-
}
|
|
81
|
-
// Cleanup session files
|
|
82
|
-
try {
|
|
83
|
-
cleanupSession();
|
|
84
|
-
}
|
|
85
|
-
catch (cleanupError) {
|
|
86
|
-
console.error('Error cleaning up session:', cleanupError);
|
|
87
|
-
}
|
|
88
|
-
// Clear keepalive and exit
|
|
89
|
-
if (shutdownKeepalive) {
|
|
90
|
-
clearInterval(shutdownKeepalive);
|
|
91
|
-
}
|
|
92
|
-
process.exit(1);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// Register signal handlers
|
|
96
|
-
// Wrap in async IIFE to ensure handler completes before exit
|
|
97
|
-
process.on('SIGINT', () => {
|
|
98
|
-
// Prevent multiple signals from being processed
|
|
99
|
-
if (!isShuttingDown) {
|
|
100
|
-
handleStop().catch((error) => {
|
|
101
|
-
console.error('Fatal error during shutdown:', error);
|
|
102
|
-
process.exit(1);
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
process.on('SIGTERM', () => {
|
|
107
|
-
if (!isShuttingDown) {
|
|
108
|
-
handleStop().catch((error) => {
|
|
109
|
-
console.error('Fatal error during shutdown:', error);
|
|
110
|
-
process.exit(1);
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
async function run(url, options, collectors) {
|
|
115
|
-
const startTime = Date.now();
|
|
116
|
-
try {
|
|
117
|
-
// 1. Acquire session lock
|
|
118
|
-
if (!acquireSessionLock()) {
|
|
119
|
-
const existingPid = readPid();
|
|
120
|
-
throw new Error(`Session already running (PID ${existingPid}). Stop it with: bdg stop`);
|
|
121
|
-
}
|
|
122
|
-
// Validate collector types
|
|
123
|
-
validateCollectorTypes(collectors);
|
|
124
|
-
// Normalize URL - add http:// if no protocol specified
|
|
125
|
-
const targetUrl = normalizeUrl(url);
|
|
126
|
-
// 2. Launch or connect to Chrome
|
|
127
|
-
const chromeRunning = await isChromeRunning(options.port);
|
|
128
|
-
if (!chromeRunning) {
|
|
129
|
-
// Launch Chrome with target URL
|
|
130
|
-
launchedChrome = await launchChrome({
|
|
131
|
-
port: options.port,
|
|
132
|
-
headless: false,
|
|
133
|
-
url: targetUrl,
|
|
134
|
-
userDataDir: options.userDataDir,
|
|
135
|
-
});
|
|
136
|
-
console.error(`Chrome launched (PID: ${launchedChrome.pid})`);
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
console.error(`Chrome already running on port ${options.port}`);
|
|
140
|
-
}
|
|
141
|
-
// 3. Create session (connects to CDP)
|
|
142
|
-
// We need a temporary target just to connect to CDP
|
|
143
|
-
// Then we'll use createOrFindTarget to get the right tab
|
|
144
|
-
const tempResponse = await fetch(`http://127.0.0.1:${options.port}/json/list`);
|
|
145
|
-
const tempTargets = await tempResponse.json();
|
|
146
|
-
if (tempTargets.length === 0) {
|
|
147
|
-
throw new Error('No targets available in Chrome');
|
|
148
|
-
}
|
|
149
|
-
// Use first available target to establish CDP connection
|
|
150
|
-
session = new BdgSession(tempTargets[0], options.port);
|
|
151
|
-
await session.connect();
|
|
152
|
-
if (!session.isConnected()) {
|
|
153
|
-
throw new Error('Failed to establish CDP connection');
|
|
154
|
-
}
|
|
155
|
-
// 4. Create or find target tab using TabManager
|
|
156
|
-
console.error(`Finding or creating tab for: ${targetUrl}`);
|
|
157
|
-
const target = await createOrFindTarget(url, session.getCDP(), options.reuseTab ?? false);
|
|
158
|
-
console.error(`Using tab: ${target.url}`);
|
|
159
|
-
// Fetch full target info with webSocketDebuggerUrl
|
|
160
|
-
const fullTargetResponse = await fetch(`http://127.0.0.1:${options.port}/json/list`);
|
|
161
|
-
const fullTargets = await fullTargetResponse.json();
|
|
162
|
-
const fullTarget = fullTargets.find((t) => t.id === target.id);
|
|
163
|
-
if (!fullTarget || !fullTarget.webSocketDebuggerUrl) {
|
|
164
|
-
throw new Error(`Could not find webSocketDebuggerUrl for target ${target.id}`);
|
|
165
|
-
}
|
|
166
|
-
// Update session with the correct target
|
|
167
|
-
// Close current session and reconnect to the correct target
|
|
168
|
-
await session.getCDP().close();
|
|
169
|
-
session = new BdgSession(fullTarget, options.port);
|
|
170
|
-
await session.connect();
|
|
171
|
-
// 5. Start collectors
|
|
172
|
-
for (const collector of collectors) {
|
|
173
|
-
await session.startCollector(collector);
|
|
174
|
-
}
|
|
175
|
-
// 6. Write session metadata
|
|
176
|
-
writePid(process.pid);
|
|
177
|
-
writeSessionMetadata({
|
|
178
|
-
bdgPid: process.pid,
|
|
179
|
-
chromePid: launchedChrome?.pid,
|
|
180
|
-
startTime,
|
|
181
|
-
port: options.port,
|
|
182
|
-
targetId: fullTarget.id,
|
|
183
|
-
webSocketDebuggerUrl: fullTarget.webSocketDebuggerUrl,
|
|
184
|
-
});
|
|
185
|
-
const collectorNames = collectors.length === 3
|
|
186
|
-
? 'network, console, and DOM'
|
|
187
|
-
: collectors.join(', ');
|
|
188
|
-
if (options.timeout) {
|
|
189
|
-
console.error(`Collecting ${collectorNames}... (Ctrl+C to stop and output, or wait ${options.timeout}s for timeout)`);
|
|
190
|
-
// Set timeout if explicitly provided
|
|
191
|
-
setTimeout(() => {
|
|
192
|
-
console.error(`\nTimeout reached (${options.timeout}s)`);
|
|
193
|
-
handleStop();
|
|
194
|
-
}, options.timeout * 1000);
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
console.error(`Collecting ${collectorNames}... (Ctrl+C to stop and output, or use 'bdg stop')`);
|
|
198
|
-
}
|
|
199
|
-
// 7. Keep alive until signal or error
|
|
200
|
-
await new Promise((_, reject) => {
|
|
201
|
-
if (!session) {
|
|
202
|
-
reject(new Error('Session not initialized'));
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
// Listen for WebSocket connection loss
|
|
206
|
-
const connectionCheckInterval = setInterval(() => {
|
|
207
|
-
if (!session) {
|
|
208
|
-
clearInterval(connectionCheckInterval);
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
if (!session.isConnected()) {
|
|
212
|
-
clearInterval(connectionCheckInterval);
|
|
213
|
-
reject(new Error('WebSocket connection lost'));
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
}, 2000); // Check every 2 seconds
|
|
217
|
-
// Listen for target destruction (tab closed/navigated)
|
|
218
|
-
session.getCDP().on('Target.targetDestroyed', (params) => {
|
|
219
|
-
if (params.targetId === target.id) {
|
|
220
|
-
clearInterval(connectionCheckInterval);
|
|
221
|
-
reject(new Error('Browser tab was closed'));
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
catch (error) {
|
|
227
|
-
const errorOutput = {
|
|
228
|
-
success: false,
|
|
229
|
-
timestamp: new Date().toISOString(),
|
|
230
|
-
duration: Date.now() - startTime,
|
|
231
|
-
target: { url: '', title: '' },
|
|
232
|
-
data: {},
|
|
233
|
-
error: error instanceof Error ? error.message : String(error)
|
|
234
|
-
};
|
|
235
|
-
console.log(JSON.stringify(errorOutput, null, 2));
|
|
236
|
-
// Cleanup on error
|
|
237
|
-
if (launchedChrome) {
|
|
3
|
+
import { commandRegistry } from './cli/registry.js';
|
|
4
|
+
import { isDaemonRunning, launchDaemon } from './daemon/launcher.js';
|
|
5
|
+
import { getErrorMessage } from './utils/errors.js';
|
|
6
|
+
import { VERSION } from './utils/version.js';
|
|
7
|
+
/**
|
|
8
|
+
* Main entry point - daemon-first architecture.
|
|
9
|
+
*
|
|
10
|
+
* This entry point:
|
|
11
|
+
* 1. Checks if we're running as the daemon worker (BDG_DAEMON=1)
|
|
12
|
+
* 2. If not, ensures the daemon is running
|
|
13
|
+
* 3. Initializes Commander and routes commands to the daemon
|
|
14
|
+
*/
|
|
15
|
+
// If we're the daemon worker, skip the daemon launch check
|
|
16
|
+
const isDaemonWorker = process.env['BDG_DAEMON'] === '1';
|
|
17
|
+
async function main() {
|
|
18
|
+
if (!isDaemonWorker) {
|
|
19
|
+
// We're the CLI client - ensure daemon is running
|
|
20
|
+
if (!isDaemonRunning()) {
|
|
21
|
+
console.error('[bdg] Starting daemon...');
|
|
238
22
|
try {
|
|
239
|
-
await
|
|
23
|
+
await launchDaemon();
|
|
24
|
+
console.error('[bdg] Daemon started successfully');
|
|
240
25
|
}
|
|
241
|
-
catch {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
.name('bdg')
|
|
249
|
-
.description('Browser telemetry via Chrome DevTools Protocol')
|
|
250
|
-
.version('0.1.0');
|
|
251
|
-
program
|
|
252
|
-
.argument('<url>', 'Target URL (example.com or localhost:3000)')
|
|
253
|
-
.option('-p, --port <number>', 'Chrome debugging port', '9222')
|
|
254
|
-
.option('-t, --timeout <seconds>', 'Auto-stop after timeout (optional)')
|
|
255
|
-
.option('-r, --reuse-tab', 'Navigate existing tab instead of creating new one')
|
|
256
|
-
.option('-u, --user-data-dir <path>', 'Chrome user data directory (default: ~/.bdg/chrome-profile)')
|
|
257
|
-
.action(async (url, options) => {
|
|
258
|
-
const port = parseInt(options.port);
|
|
259
|
-
const timeout = options.timeout ? parseInt(options.timeout) : undefined;
|
|
260
|
-
const reuseTab = options.reuseTab ?? false;
|
|
261
|
-
const userDataDir = options.userDataDir;
|
|
262
|
-
await run(url, { port, timeout, reuseTab, userDataDir }, ['dom', 'network', 'console']);
|
|
263
|
-
});
|
|
264
|
-
program
|
|
265
|
-
.command('dom')
|
|
266
|
-
.description('Collect DOM only')
|
|
267
|
-
.argument('<url>', 'Target URL')
|
|
268
|
-
.option('-p, --port <number>', 'Chrome debugging port', '9222')
|
|
269
|
-
.option('-t, --timeout <seconds>', 'Auto-stop after timeout (optional)')
|
|
270
|
-
.option('-r, --reuse-tab', 'Navigate existing tab instead of creating new one')
|
|
271
|
-
.option('-u, --user-data-dir <path>', 'Chrome user data directory (default: ~/.bdg/chrome-profile)')
|
|
272
|
-
.action(async (url, options) => {
|
|
273
|
-
const port = parseInt(options.port);
|
|
274
|
-
const timeout = options.timeout ? parseInt(options.timeout) : undefined;
|
|
275
|
-
const reuseTab = options.reuseTab ?? false;
|
|
276
|
-
const userDataDir = options.userDataDir;
|
|
277
|
-
await run(url, { port, timeout, reuseTab, userDataDir }, ['dom']);
|
|
278
|
-
});
|
|
279
|
-
program
|
|
280
|
-
.command('network')
|
|
281
|
-
.description('Collect network requests only')
|
|
282
|
-
.argument('<url>', 'Target URL')
|
|
283
|
-
.option('-p, --port <number>', 'Chrome debugging port', '9222')
|
|
284
|
-
.option('-t, --timeout <seconds>', 'Auto-stop after timeout (optional)')
|
|
285
|
-
.option('-r, --reuse-tab', 'Navigate existing tab instead of creating new one')
|
|
286
|
-
.option('-u, --user-data-dir <path>', 'Chrome user data directory (default: ~/.bdg/chrome-profile)')
|
|
287
|
-
.action(async (url, options) => {
|
|
288
|
-
const port = parseInt(options.port);
|
|
289
|
-
const timeout = options.timeout ? parseInt(options.timeout) : undefined;
|
|
290
|
-
const reuseTab = options.reuseTab ?? false;
|
|
291
|
-
const userDataDir = options.userDataDir;
|
|
292
|
-
await run(url, { port, timeout, reuseTab, userDataDir }, ['network']);
|
|
293
|
-
});
|
|
294
|
-
program
|
|
295
|
-
.command('console')
|
|
296
|
-
.description('Collect console logs only')
|
|
297
|
-
.argument('<url>', 'Target URL')
|
|
298
|
-
.option('-p, --port <number>', 'Chrome debugging port', '9222')
|
|
299
|
-
.option('-t, --timeout <seconds>', 'Auto-stop after timeout (optional)')
|
|
300
|
-
.option('-r, --reuse-tab', 'Navigate existing tab instead of creating new one')
|
|
301
|
-
.option('-u, --user-data-dir <path>', 'Chrome user data directory (default: ~/.bdg/chrome-profile)')
|
|
302
|
-
.action(async (url, options) => {
|
|
303
|
-
const port = parseInt(options.port);
|
|
304
|
-
const timeout = options.timeout ? parseInt(options.timeout) : undefined;
|
|
305
|
-
const reuseTab = options.reuseTab ?? false;
|
|
306
|
-
const userDataDir = options.userDataDir;
|
|
307
|
-
await run(url, { port, timeout, reuseTab, userDataDir }, ['console']);
|
|
308
|
-
});
|
|
309
|
-
program
|
|
310
|
-
.command('query')
|
|
311
|
-
.description('Execute JavaScript in the active session for live debugging')
|
|
312
|
-
.argument('<script>', 'JavaScript to execute (e.g., "document.querySelector(\'input[type=email]\').value")')
|
|
313
|
-
.option('-p, --port <number>', 'Chrome debugging port', '9222')
|
|
314
|
-
.action(async (script, options) => {
|
|
315
|
-
try {
|
|
316
|
-
const port = parseInt(options.port);
|
|
317
|
-
// Check if session is running
|
|
318
|
-
const pid = readPid();
|
|
319
|
-
if (!pid || !isProcessAlive(pid)) {
|
|
320
|
-
console.error('Error: No active session running');
|
|
321
|
-
console.error('Start a session with: bdg <url>');
|
|
322
|
-
process.exit(1);
|
|
323
|
-
}
|
|
324
|
-
// Read session metadata to get the target ID
|
|
325
|
-
const { readSessionMetadata } = await import('./utils/session.js');
|
|
326
|
-
const metadata = readSessionMetadata();
|
|
327
|
-
if (!metadata || !metadata.targetId || !metadata.webSocketDebuggerUrl) {
|
|
328
|
-
console.error('Error: No target information in session metadata');
|
|
329
|
-
console.error('Session may have been started with an older version');
|
|
330
|
-
process.exit(1);
|
|
331
|
-
}
|
|
332
|
-
// Verify the target still exists
|
|
333
|
-
const response = await fetch(`http://127.0.0.1:${port}/json/list`);
|
|
334
|
-
const targets = await response.json();
|
|
335
|
-
const target = targets.find((t) => t.id === metadata.targetId);
|
|
336
|
-
if (!target) {
|
|
337
|
-
console.error('Error: Session target not found (tab may have been closed)');
|
|
338
|
-
console.error('Start a new session with: bdg <url>');
|
|
339
|
-
process.exit(1);
|
|
340
|
-
}
|
|
341
|
-
// Create temporary CDP connection using stored webSocketDebuggerUrl
|
|
342
|
-
const { CDPConnection } = await import('./connection/cdp.js');
|
|
343
|
-
const cdp = new CDPConnection();
|
|
344
|
-
await cdp.connect(metadata.webSocketDebuggerUrl);
|
|
345
|
-
// Execute JavaScript
|
|
346
|
-
const result = await cdp.send('Runtime.evaluate', {
|
|
347
|
-
expression: script,
|
|
348
|
-
returnByValue: true,
|
|
349
|
-
awaitPromise: true
|
|
350
|
-
});
|
|
351
|
-
await cdp.close();
|
|
352
|
-
// Output result
|
|
353
|
-
if (result.exceptionDetails) {
|
|
354
|
-
console.error('Error executing script:');
|
|
355
|
-
console.error(result.exceptionDetails.exception.description);
|
|
356
|
-
process.exit(1);
|
|
357
|
-
}
|
|
358
|
-
console.log(JSON.stringify(result.result.value, null, 2));
|
|
359
|
-
process.exit(0);
|
|
360
|
-
}
|
|
361
|
-
catch (error) {
|
|
362
|
-
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
363
|
-
process.exit(1);
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
program
|
|
367
|
-
.command('stop')
|
|
368
|
-
.description('Stop all active sessions and free ports (does not capture output)')
|
|
369
|
-
.option('--kill-chrome', 'Also kill Chrome browser')
|
|
370
|
-
.action(async (options) => {
|
|
371
|
-
try {
|
|
372
|
-
const { readSessionMetadata } = await import('./utils/session.js');
|
|
373
|
-
// Read PID
|
|
374
|
-
const pid = readPid();
|
|
375
|
-
if (!pid) {
|
|
376
|
-
console.error('No active session found');
|
|
377
|
-
console.error('All ports should be free');
|
|
378
|
-
process.exit(0);
|
|
379
|
-
}
|
|
380
|
-
console.error(`Stopping session (PID ${pid})...`);
|
|
381
|
-
// Read metadata BEFORE killing the process (so we can get Chrome PID)
|
|
382
|
-
const metadata = readSessionMetadata();
|
|
383
|
-
// Kill the bdg process (use SIGKILL for immediate termination)
|
|
384
|
-
if (isProcessAlive(pid)) {
|
|
385
|
-
try {
|
|
386
|
-
process.kill(pid, 'SIGKILL');
|
|
387
|
-
console.error(`✓ Killed bdg session (PID ${pid})`);
|
|
388
|
-
}
|
|
389
|
-
catch (killError) {
|
|
390
|
-
console.error(`Warning: Could not kill process ${pid}:`, killError);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
else {
|
|
394
|
-
console.error(`Process ${pid} already stopped`);
|
|
395
|
-
}
|
|
396
|
-
// Kill Chrome if requested
|
|
397
|
-
if (options.killChrome) {
|
|
398
|
-
if (metadata?.chromePid) {
|
|
399
|
-
try {
|
|
400
|
-
if (isProcessAlive(metadata.chromePid)) {
|
|
401
|
-
process.kill(metadata.chromePid, 'SIGTERM');
|
|
402
|
-
console.error(`✓ Killed Chrome (PID ${metadata.chromePid})`);
|
|
403
|
-
}
|
|
404
|
-
else {
|
|
405
|
-
console.error(`Chrome process (PID ${metadata.chromePid}) already stopped`);
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
catch (chromeError) {
|
|
409
|
-
console.error(`Warning: Could not kill Chrome:`, chromeError);
|
|
26
|
+
catch (error) {
|
|
27
|
+
// Handle daemon already running error
|
|
28
|
+
if (error instanceof Error &&
|
|
29
|
+
'code' in error &&
|
|
30
|
+
error.code === 'DAEMON_ALREADY_RUNNING') {
|
|
31
|
+
console.error(`[bdg] ${error.message}`);
|
|
32
|
+
process.exit(error.exitCode ?? 1);
|
|
410
33
|
}
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
34
|
+
// Handle other launch failures
|
|
35
|
+
console.error('[bdg] Failed to start daemon:', getErrorMessage(error));
|
|
36
|
+
process.exit(1);
|
|
414
37
|
}
|
|
415
38
|
}
|
|
416
39
|
else {
|
|
417
|
-
console.error('
|
|
40
|
+
console.error('[bdg] Daemon is already running');
|
|
418
41
|
}
|
|
419
|
-
// Clean up session files
|
|
420
|
-
cleanupSession();
|
|
421
|
-
console.error('✓ Cleaned up session files');
|
|
422
|
-
console.error('\nAll sessions stopped and ports freed');
|
|
423
|
-
process.exit(0);
|
|
424
|
-
}
|
|
425
|
-
catch (error) {
|
|
426
|
-
console.error(`Error stopping session: ${error instanceof Error ? error.message : String(error)}`);
|
|
427
|
-
process.exit(1);
|
|
428
42
|
}
|
|
429
|
-
|
|
430
|
-
program
|
|
43
|
+
// Initialize Commander and register commands
|
|
44
|
+
const program = new Command()
|
|
45
|
+
.name('bdg')
|
|
46
|
+
.description('Browser telemetry via Chrome DevTools Protocol')
|
|
47
|
+
.version(VERSION);
|
|
48
|
+
commandRegistry.forEach((register) => register(program));
|
|
49
|
+
program.parse();
|
|
50
|
+
}
|
|
51
|
+
void main();
|
|
431
52
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;;;;;;GAOG;AAEH,2DAA2D;AAC3D,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC;AAEzD,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,kDAAkD;QAClD,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,YAAY,EAAE,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,sCAAsC;gBACtC,IACE,KAAK,YAAY,KAAK;oBACtB,MAAM,IAAI,KAAK;oBACd,KAAsD,CAAC,IAAI,KAAK,wBAAwB,EACzF,CAAC;oBACD,OAAO,CAAC,KAAK,CAAC,SAAU,KAAqC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACzE,OAAO,CAAC,IAAI,CAAE,KAAuC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;gBACvE,CAAC;gBACD,+BAA+B;gBAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CAAC,gDAAgD,CAAC;SAC7D,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAEzD,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Client Contract Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests the public API behavior of IPC client functions WITHOUT testing implementation details.
|
|
5
|
+
* Follows the testing philosophy: "Test the contract, not the implementation"
|
|
6
|
+
*
|
|
7
|
+
* Contract:
|
|
8
|
+
* - Input: Function calls with parameters
|
|
9
|
+
* - Output: Responses from daemon via Unix socket
|
|
10
|
+
* - Behavior: Connect, send request, receive response, handle errors/timeouts
|
|
11
|
+
*
|
|
12
|
+
* What we test:
|
|
13
|
+
* ✅ Behavior: Client function calls → daemon responses
|
|
14
|
+
* ✅ Invariants: "Requests receive responses", "Errors propagate correctly"
|
|
15
|
+
* ✅ Edge cases: Daemon not running, timeouts, malformed responses
|
|
16
|
+
*
|
|
17
|
+
* What we DON'T test:
|
|
18
|
+
* ❌ Internal sendRequest() implementation
|
|
19
|
+
* ❌ Socket buffer handling details
|
|
20
|
+
* ❌ How JSONL parsing works internally
|
|
21
|
+
*/
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=client.contract.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.contract.test.d.ts","sourceRoot":"","sources":["../../../src/ipc/__tests__/client.contract.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
|