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,10 @@
|
|
|
1
|
+
import type { NetworkRequest, ConsoleMessage } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Format network request details for human-readable output
|
|
4
|
+
*/
|
|
5
|
+
export declare function formatNetworkDetails(request: NetworkRequest): string;
|
|
6
|
+
/**
|
|
7
|
+
* Format console message details for human-readable output
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatConsoleDetails(message: ConsoleMessage): string;
|
|
10
|
+
//# sourceMappingURL=detailsFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailsFormatter.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/detailsFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CA4CpE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAmBpE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format network request details for human-readable output
|
|
3
|
+
*/
|
|
4
|
+
export function formatNetworkDetails(request) {
|
|
5
|
+
const lines = [];
|
|
6
|
+
lines.push('Network Request Details');
|
|
7
|
+
lines.push('━'.repeat(70));
|
|
8
|
+
lines.push(`Request ID: ${request.requestId}`);
|
|
9
|
+
lines.push(`URL: ${request.url}`);
|
|
10
|
+
lines.push(`Method: ${request.method}`);
|
|
11
|
+
lines.push(`Status: ${request.status ?? 'pending'}`);
|
|
12
|
+
lines.push(`MIME Type: ${request.mimeType ?? 'N/A'}`);
|
|
13
|
+
lines.push('');
|
|
14
|
+
if (request.requestHeaders) {
|
|
15
|
+
lines.push('Request Headers:');
|
|
16
|
+
lines.push('━'.repeat(70));
|
|
17
|
+
Object.entries(request.requestHeaders).forEach(([key, value]) => {
|
|
18
|
+
lines.push(` ${key}: ${value}`);
|
|
19
|
+
});
|
|
20
|
+
lines.push('');
|
|
21
|
+
}
|
|
22
|
+
if (request.requestBody) {
|
|
23
|
+
lines.push('Request Body:');
|
|
24
|
+
lines.push('━'.repeat(70));
|
|
25
|
+
lines.push(request.requestBody);
|
|
26
|
+
lines.push('');
|
|
27
|
+
}
|
|
28
|
+
if (request.responseHeaders) {
|
|
29
|
+
lines.push('Response Headers:');
|
|
30
|
+
lines.push('━'.repeat(70));
|
|
31
|
+
Object.entries(request.responseHeaders).forEach(([key, value]) => {
|
|
32
|
+
lines.push(` ${key}: ${value}`);
|
|
33
|
+
});
|
|
34
|
+
lines.push('');
|
|
35
|
+
}
|
|
36
|
+
if (request.responseBody) {
|
|
37
|
+
lines.push('Response Body:');
|
|
38
|
+
lines.push('━'.repeat(70));
|
|
39
|
+
lines.push(request.responseBody);
|
|
40
|
+
}
|
|
41
|
+
return lines.join('\n');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Format console message details for human-readable output
|
|
45
|
+
*/
|
|
46
|
+
export function formatConsoleDetails(message) {
|
|
47
|
+
const lines = [];
|
|
48
|
+
lines.push('Console Message Details');
|
|
49
|
+
lines.push('━'.repeat(70));
|
|
50
|
+
lines.push(`Type: ${message.type}`);
|
|
51
|
+
lines.push(`Timestamp: ${new Date(message.timestamp).toISOString()}`);
|
|
52
|
+
lines.push(`Text: ${message.text}`);
|
|
53
|
+
lines.push('');
|
|
54
|
+
if (message.args && message.args.length > 0) {
|
|
55
|
+
lines.push('Arguments:');
|
|
56
|
+
lines.push('━'.repeat(70));
|
|
57
|
+
message.args.forEach((arg, idx) => {
|
|
58
|
+
lines.push(` [${idx}]: ${JSON.stringify(arg, null, 2)}`);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return lines.join('\n');
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=detailsFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detailsFormatter.js","sourceRoot":"","sources":["../../../src/cli/formatters/detailsFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { BdgOutput } from '../../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Flags that shape how preview output is rendered for `bdg peek`.
|
|
4
|
+
*/
|
|
5
|
+
export interface PreviewOptions {
|
|
6
|
+
/** Emit raw JSON instead of formatted text. */
|
|
7
|
+
json?: boolean;
|
|
8
|
+
/** Limit output to network requests (ignores console data). */
|
|
9
|
+
network?: boolean;
|
|
10
|
+
/** Limit output to console messages (ignores network data). */
|
|
11
|
+
console?: boolean;
|
|
12
|
+
/** Number of recent entries to include (parsed as integer). */
|
|
13
|
+
last: string;
|
|
14
|
+
/** Use the expanded, human-friendly layout. */
|
|
15
|
+
verbose?: boolean;
|
|
16
|
+
/** Stream updates until interrupted (tail-like behaviour). */
|
|
17
|
+
follow?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Format preview output (peek command)
|
|
21
|
+
*/
|
|
22
|
+
export declare function formatPreview(output: BdgOutput, options: PreviewOptions): string;
|
|
23
|
+
/**
|
|
24
|
+
* Format "no preview data" message
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatNoPreviewDataMessage(): string;
|
|
27
|
+
//# sourceMappingURL=previewFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"previewFormatter.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/previewFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAMhF;AAgKD;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAMnD"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { truncateUrl, truncateText } from '../../utils/url.js';
|
|
2
|
+
/**
|
|
3
|
+
* Format preview output (peek command)
|
|
4
|
+
*/
|
|
5
|
+
export function formatPreview(output, options) {
|
|
6
|
+
if (options.json) {
|
|
7
|
+
return formatPreviewAsJson(output, options);
|
|
8
|
+
}
|
|
9
|
+
return formatPreviewHumanReadable(output, options);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Format preview as JSON
|
|
13
|
+
*
|
|
14
|
+
* Returns the output wrapped in a preview object to maintain the
|
|
15
|
+
* IPC response structure (.preview.data path for JSON consumers).
|
|
16
|
+
*/
|
|
17
|
+
function formatPreviewAsJson(output, options) {
|
|
18
|
+
const jsonOutput = {
|
|
19
|
+
...output,
|
|
20
|
+
};
|
|
21
|
+
// Apply filters
|
|
22
|
+
if (options.network) {
|
|
23
|
+
delete jsonOutput.data.console;
|
|
24
|
+
}
|
|
25
|
+
if (options.console) {
|
|
26
|
+
delete jsonOutput.data.network;
|
|
27
|
+
}
|
|
28
|
+
// Apply --last limit
|
|
29
|
+
const lastCount = parseInt(options.last);
|
|
30
|
+
if (jsonOutput.data.network && jsonOutput.data.network.length > lastCount) {
|
|
31
|
+
jsonOutput.data.network = jsonOutput.data.network.slice(-lastCount);
|
|
32
|
+
}
|
|
33
|
+
if (jsonOutput.data.console && jsonOutput.data.console.length > lastCount) {
|
|
34
|
+
jsonOutput.data.console = jsonOutput.data.console.slice(-lastCount);
|
|
35
|
+
}
|
|
36
|
+
// Wrap in preview object to maintain .preview.data path for JSON consumers
|
|
37
|
+
return JSON.stringify({ preview: jsonOutput }, null, 2);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Format preview as human-readable output
|
|
41
|
+
*/
|
|
42
|
+
function formatPreviewHumanReadable(output, options) {
|
|
43
|
+
// Use verbose format if requested, otherwise use compact
|
|
44
|
+
if (options.verbose) {
|
|
45
|
+
return formatPreviewVerbose(output, options);
|
|
46
|
+
}
|
|
47
|
+
return formatPreviewCompact(output, options);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Format preview in compact format (default)
|
|
51
|
+
* Token-efficient output optimized for AI agents
|
|
52
|
+
*/
|
|
53
|
+
function formatPreviewCompact(output, options) {
|
|
54
|
+
const lines = [];
|
|
55
|
+
// Simple header (no Unicode box drawing)
|
|
56
|
+
lines.push(`PREVIEW | Duration: ${Math.floor(output.duration / 1000)}s | Updated: ${output.timestamp}`);
|
|
57
|
+
lines.push('');
|
|
58
|
+
const lastCount = parseInt(options.last);
|
|
59
|
+
// Show network requests (compact)
|
|
60
|
+
if (!options.console && output.data.network) {
|
|
61
|
+
const requests = output.data.network.slice(-lastCount);
|
|
62
|
+
lines.push(`NETWORK (${requests.length}/${output.data.network.length}):`);
|
|
63
|
+
if (requests.length === 0) {
|
|
64
|
+
lines.push(' (none)');
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
requests.forEach((req) => {
|
|
68
|
+
const status = req.status ?? 'pending';
|
|
69
|
+
const url = truncateUrl(req.url, 50);
|
|
70
|
+
lines.push(` ${status} ${req.method} ${url} [${req.requestId}]`);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
lines.push('');
|
|
74
|
+
}
|
|
75
|
+
// Show console messages (compact)
|
|
76
|
+
if (!options.network && output.data.console) {
|
|
77
|
+
const messages = output.data.console.slice(-lastCount);
|
|
78
|
+
lines.push(`CONSOLE (${messages.length}/${output.data.console.length}):`);
|
|
79
|
+
if (messages.length === 0) {
|
|
80
|
+
lines.push(' (none)');
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
messages.forEach((msg) => {
|
|
84
|
+
const prefix = msg.type.toUpperCase().padEnd(5);
|
|
85
|
+
const text = truncateText(msg.text, 2);
|
|
86
|
+
lines.push(` ${prefix} ${text}`);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
lines.push('');
|
|
90
|
+
}
|
|
91
|
+
// Minimal suggestions
|
|
92
|
+
lines.push('Tip: bdg stop | bdg peek --last 50 | bdg peek --verbose');
|
|
93
|
+
return lines.join('\n');
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Format preview in verbose format (opt-in with --verbose)
|
|
97
|
+
* Original human-friendly output with Unicode formatting
|
|
98
|
+
*/
|
|
99
|
+
function formatPreviewVerbose(output, options) {
|
|
100
|
+
const lines = [];
|
|
101
|
+
lines.push('Live Preview (Partial Data)');
|
|
102
|
+
lines.push('━'.repeat(50));
|
|
103
|
+
lines.push(`Duration: ${Math.floor(output.duration / 1000)}s`);
|
|
104
|
+
lines.push(`Last updated: ${output.timestamp}`);
|
|
105
|
+
lines.push('');
|
|
106
|
+
const lastCount = parseInt(options.last);
|
|
107
|
+
// Show network requests
|
|
108
|
+
if (!options.console && output.data.network) {
|
|
109
|
+
const requests = output.data.network.slice(-lastCount);
|
|
110
|
+
lines.push(`Network Requests (last ${requests.length} of ${output.data.network.length})`);
|
|
111
|
+
lines.push('━'.repeat(50));
|
|
112
|
+
if (requests.length === 0) {
|
|
113
|
+
lines.push('No network requests yet');
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
requests.forEach((req) => {
|
|
117
|
+
const statusColor = req.status && req.status >= 400 ? 'ERR' : 'OK';
|
|
118
|
+
const status = req.status ?? 'pending';
|
|
119
|
+
lines.push(`${statusColor} ${status} ${req.method} ${req.url}`);
|
|
120
|
+
if (req.mimeType) {
|
|
121
|
+
lines.push(` Type: ${req.mimeType}`);
|
|
122
|
+
}
|
|
123
|
+
lines.push(` ID: ${req.requestId} (use 'bdg details network ${req.requestId}' for full details)`);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
lines.push('');
|
|
127
|
+
}
|
|
128
|
+
// Show console messages
|
|
129
|
+
if (!options.network && output.data.console) {
|
|
130
|
+
const messages = output.data.console.slice(-lastCount);
|
|
131
|
+
lines.push(`Console Messages (last ${messages.length} of ${output.data.console.length})`);
|
|
132
|
+
lines.push('━'.repeat(50));
|
|
133
|
+
if (messages.length === 0) {
|
|
134
|
+
lines.push('No console messages yet');
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
messages.forEach((msg) => {
|
|
138
|
+
const icon = msg.type === 'error' ? 'ERR' : msg.type === 'warning' ? 'WARN' : 'INFO';
|
|
139
|
+
lines.push(`${icon} [${msg.type}] ${msg.text}`);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
lines.push('');
|
|
143
|
+
}
|
|
144
|
+
lines.push('Commands:');
|
|
145
|
+
lines.push(' Stop session: bdg stop');
|
|
146
|
+
lines.push(' Full preview: bdg peek --last 50');
|
|
147
|
+
lines.push(' Watch live: bdg peek --follow');
|
|
148
|
+
return lines.join('\n');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Format "no preview data" message
|
|
152
|
+
*/
|
|
153
|
+
export function formatNoPreviewDataMessage() {
|
|
154
|
+
return `Error: No active session found
|
|
155
|
+
No preview data available
|
|
156
|
+
|
|
157
|
+
Start a session with: bdg <url>
|
|
158
|
+
Check session status: bdg status`;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=previewFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"previewFormatter.js","sourceRoot":"","sources":["../../../src/cli/formatters/previewFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { SessionMetadata } from '../../session/metadata.js';
|
|
2
|
+
export interface StatusData {
|
|
3
|
+
version: string;
|
|
4
|
+
active: boolean;
|
|
5
|
+
bdgPid?: number;
|
|
6
|
+
chromePid?: number | undefined;
|
|
7
|
+
chromeAlive?: boolean;
|
|
8
|
+
startTime?: number;
|
|
9
|
+
duration?: number;
|
|
10
|
+
durationFormatted?: string;
|
|
11
|
+
port?: number;
|
|
12
|
+
targetId?: string | undefined;
|
|
13
|
+
webSocketDebuggerUrl?: string | undefined;
|
|
14
|
+
collectors?: string[];
|
|
15
|
+
stale?: boolean;
|
|
16
|
+
stalePid?: number;
|
|
17
|
+
warning?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Format session status for human-readable output
|
|
21
|
+
* @param metadata - Session metadata
|
|
22
|
+
* @param pid - BDG process ID
|
|
23
|
+
* @param verbose - Show detailed Chrome diagnostics
|
|
24
|
+
*/
|
|
25
|
+
export declare function formatSessionStatus(metadata: SessionMetadata, pid: number, verbose?: boolean): string;
|
|
26
|
+
/**
|
|
27
|
+
* Convert status data to JSON format
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatStatusAsJson(metadata: SessionMetadata | null, pid: number | null): StatusData;
|
|
30
|
+
/**
|
|
31
|
+
* Format "no session" message
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatNoSessionMessage(): string;
|
|
34
|
+
//# sourceMappingURL=statusFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusFormatter.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/statusFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,GAAG,EAAE,MAAM,EACX,OAAO,UAAQ,GACd,MAAM,CAuDR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAChC,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,UAAU,CA8CZ;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAM/C"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { isProcessAlive } from '../../session/process.js';
|
|
2
|
+
import { getChromeDiagnostics, formatDiagnosticsForStatus } from '../../utils/chromeDiagnostics.js';
|
|
3
|
+
import { VERSION } from '../../utils/version.js';
|
|
4
|
+
/**
|
|
5
|
+
* Format session status for human-readable output
|
|
6
|
+
* @param metadata - Session metadata
|
|
7
|
+
* @param pid - BDG process ID
|
|
8
|
+
* @param verbose - Show detailed Chrome diagnostics
|
|
9
|
+
*/
|
|
10
|
+
export function formatSessionStatus(metadata, pid, verbose = false) {
|
|
11
|
+
// Calculate duration
|
|
12
|
+
const now = Date.now();
|
|
13
|
+
const durationMs = now - metadata.startTime;
|
|
14
|
+
const durationSec = Math.floor(durationMs / 1000);
|
|
15
|
+
const minutes = Math.floor(durationSec / 60);
|
|
16
|
+
const seconds = durationSec % 60;
|
|
17
|
+
const durationFormatted = minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`;
|
|
18
|
+
// Check if Chrome is alive
|
|
19
|
+
const chromeAlive = metadata.chromePid ? isProcessAlive(metadata.chromePid) : false;
|
|
20
|
+
const lines = [];
|
|
21
|
+
lines.push('Session Status');
|
|
22
|
+
lines.push('━'.repeat(50));
|
|
23
|
+
lines.push(`Status: ACTIVE`);
|
|
24
|
+
lines.push(`BDG PID: ${pid}`);
|
|
25
|
+
if (metadata.chromePid) {
|
|
26
|
+
lines.push(`Chrome PID: ${metadata.chromePid} ${chromeAlive ? '(running)' : '(not running)'}`);
|
|
27
|
+
}
|
|
28
|
+
lines.push(`Duration: ${durationFormatted}`);
|
|
29
|
+
lines.push(`Port: ${metadata.port}`);
|
|
30
|
+
lines.push('');
|
|
31
|
+
lines.push('Collectors');
|
|
32
|
+
lines.push('━'.repeat(50));
|
|
33
|
+
// Use activeCollectors from metadata, fallback to all collectors for backward compatibility
|
|
34
|
+
const activeCollectors = metadata.activeCollectors ?? ['network', 'console', 'dom'];
|
|
35
|
+
lines.push(`Network: ${activeCollectors.includes('network') ? 'Active' : 'Inactive'}`);
|
|
36
|
+
lines.push(`Console: ${activeCollectors.includes('console') ? 'Active' : 'Inactive'}`);
|
|
37
|
+
lines.push(`DOM: ${activeCollectors.includes('dom') ? 'Active' : 'Inactive'}`);
|
|
38
|
+
// Add verbose Chrome diagnostics if requested
|
|
39
|
+
if (verbose) {
|
|
40
|
+
lines.push('');
|
|
41
|
+
lines.push('Chrome Diagnostics');
|
|
42
|
+
lines.push('━'.repeat(50));
|
|
43
|
+
// Get diagnostics using shared utility (cached to avoid repeated scans)
|
|
44
|
+
const diagnostics = getChromeDiagnostics();
|
|
45
|
+
const diagnosticLines = formatDiagnosticsForStatus(diagnostics);
|
|
46
|
+
lines.push(...diagnosticLines);
|
|
47
|
+
}
|
|
48
|
+
lines.push('');
|
|
49
|
+
lines.push('Commands:');
|
|
50
|
+
lines.push(' Stop session: bdg stop');
|
|
51
|
+
lines.push(' Query browser: bdg query <script>');
|
|
52
|
+
return lines.join('\n');
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Convert status data to JSON format
|
|
56
|
+
*/
|
|
57
|
+
export function formatStatusAsJson(metadata, pid) {
|
|
58
|
+
if (!pid) {
|
|
59
|
+
return { version: VERSION, active: false };
|
|
60
|
+
}
|
|
61
|
+
const isAlive = isProcessAlive(pid);
|
|
62
|
+
if (!isAlive) {
|
|
63
|
+
return { version: VERSION, active: false, stale: true, stalePid: pid };
|
|
64
|
+
}
|
|
65
|
+
if (!metadata) {
|
|
66
|
+
return {
|
|
67
|
+
version: VERSION,
|
|
68
|
+
active: true,
|
|
69
|
+
bdgPid: pid,
|
|
70
|
+
warning: 'Metadata not found (session may be from older version)',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// Calculate duration
|
|
74
|
+
const now = Date.now();
|
|
75
|
+
const durationMs = now - metadata.startTime;
|
|
76
|
+
const durationSec = Math.floor(durationMs / 1000);
|
|
77
|
+
const minutes = Math.floor(durationSec / 60);
|
|
78
|
+
const seconds = durationSec % 60;
|
|
79
|
+
const durationFormatted = minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`;
|
|
80
|
+
// Check if Chrome is alive
|
|
81
|
+
const chromeAlive = metadata.chromePid ? isProcessAlive(metadata.chromePid) : false;
|
|
82
|
+
return {
|
|
83
|
+
version: VERSION,
|
|
84
|
+
active: true,
|
|
85
|
+
bdgPid: pid,
|
|
86
|
+
chromePid: metadata.chromePid,
|
|
87
|
+
chromeAlive,
|
|
88
|
+
startTime: metadata.startTime,
|
|
89
|
+
duration: durationMs,
|
|
90
|
+
durationFormatted,
|
|
91
|
+
port: metadata.port,
|
|
92
|
+
targetId: metadata.targetId,
|
|
93
|
+
webSocketDebuggerUrl: metadata.webSocketDebuggerUrl,
|
|
94
|
+
// Use activeCollectors from metadata, fallback to all collectors for backward compatibility
|
|
95
|
+
collectors: metadata.activeCollectors ?? ['network', 'console', 'dom'],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Format "no session" message
|
|
100
|
+
*/
|
|
101
|
+
export function formatNoSessionMessage() {
|
|
102
|
+
return `No active session found
|
|
103
|
+
|
|
104
|
+
Suggestions:
|
|
105
|
+
Start a new session: bdg <url>
|
|
106
|
+
List Chrome tabs: bdg tabs`;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=statusFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusFormatter.js","sourceRoot":"","sources":["../../../src/cli/formatters/statusFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type LaunchOptions } from '../../connection/launcher.js';
|
|
2
|
+
import type { LaunchedChrome } from '../../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Handles Chrome browser launch and connection
|
|
5
|
+
*/
|
|
6
|
+
export declare class ChromeBootstrap {
|
|
7
|
+
/**
|
|
8
|
+
* Launch Chrome if not already running, or connect to existing instance.
|
|
9
|
+
*
|
|
10
|
+
* Delegates to chrome-launcher which handles:
|
|
11
|
+
* - Port availability checking
|
|
12
|
+
* - Strict mode enforcement (via portStrictMode option)
|
|
13
|
+
* - Chrome readiness polling
|
|
14
|
+
* - Reusing existing Chrome instances when port is occupied
|
|
15
|
+
*
|
|
16
|
+
* @param port - Chrome debugging port
|
|
17
|
+
* @param targetUrl - Initial URL to navigate to
|
|
18
|
+
* @param launchOptions - Chrome launcher options (userDataDir, logLevel, etc.)
|
|
19
|
+
* @returns LaunchedChrome instance if Chrome was launched, null if already running
|
|
20
|
+
* @throws Error if chrome-launcher fails to launch or connect
|
|
21
|
+
*/
|
|
22
|
+
static launch(port: number, targetUrl: string, launchOptions?: Partial<LaunchOptions>): Promise<LaunchedChrome | null>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ChromeBootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChromeBootstrap.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/ChromeBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;;;;;;;OAcG;WACU,MAAM,CACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GACrC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CA8BlC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { launchChrome } from '../../connection/launcher.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handles Chrome browser launch and connection
|
|
4
|
+
*/
|
|
5
|
+
export class ChromeBootstrap {
|
|
6
|
+
/**
|
|
7
|
+
* Launch Chrome if not already running, or connect to existing instance.
|
|
8
|
+
*
|
|
9
|
+
* Delegates to chrome-launcher which handles:
|
|
10
|
+
* - Port availability checking
|
|
11
|
+
* - Strict mode enforcement (via portStrictMode option)
|
|
12
|
+
* - Chrome readiness polling
|
|
13
|
+
* - Reusing existing Chrome instances when port is occupied
|
|
14
|
+
*
|
|
15
|
+
* @param port - Chrome debugging port
|
|
16
|
+
* @param targetUrl - Initial URL to navigate to
|
|
17
|
+
* @param launchOptions - Chrome launcher options (userDataDir, logLevel, etc.)
|
|
18
|
+
* @returns LaunchedChrome instance if Chrome was launched, null if already running
|
|
19
|
+
* @throws Error if chrome-launcher fails to launch or connect
|
|
20
|
+
*/
|
|
21
|
+
static async launch(port, targetUrl, launchOptions) {
|
|
22
|
+
// Attempt launch - chrome-launcher handles everything:
|
|
23
|
+
// - Port availability checking
|
|
24
|
+
// - Launching new Chrome or reusing existing instance
|
|
25
|
+
// - Strict mode enforcement (throws if portStrictMode=true and can't connect)
|
|
26
|
+
// - Chrome readiness polling with retries
|
|
27
|
+
// Default to headless in CI environments (no display available)
|
|
28
|
+
// User can override via launchOptions.headless if needed
|
|
29
|
+
const isCI = process.env['CI'] === 'true' || process.env['CI'] === '1';
|
|
30
|
+
const headless = launchOptions?.headless ?? (isCI ? true : false);
|
|
31
|
+
const chrome = await launchChrome({
|
|
32
|
+
port,
|
|
33
|
+
headless,
|
|
34
|
+
url: targetUrl,
|
|
35
|
+
...launchOptions,
|
|
36
|
+
});
|
|
37
|
+
// chrome-launcher returns a valid LaunchedChrome when successful
|
|
38
|
+
// PID will be 0 or undefined if reusing an existing Chrome instance
|
|
39
|
+
const isNewLaunch = chrome.pid && chrome.pid > 0;
|
|
40
|
+
if (isNewLaunch) {
|
|
41
|
+
console.error(`Chrome launched (PID: ${chrome.pid})`);
|
|
42
|
+
return chrome; // Return handle so we can kill it on cleanup
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
console.error(`Chrome already running on port ${port}`);
|
|
46
|
+
return null; // Don't return handle - we don't own this Chrome instance
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=ChromeBootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChromeBootstrap.js","sourceRoot":"","sources":["../../../src/cli/handlers/ChromeBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,0BAA0B,CAAC;AAG5E;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,IAAY,EACZ,SAAiB,EACjB,aAAsC;QAEtC,uDAAuD;QACvD,+BAA+B;QAC/B,sDAAsD;QACtD,8EAA8E;QAC9E,0CAA0C;QAE1C,gEAAgE;QAChE,yDAAyD;QACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;QACvE,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,IAAI;YACJ,QAAQ;YACR,GAAG,EAAE,SAAS;YACd,GAAG,aAAa;SACjB,CAAC,CAAC;QAEH,iEAAiE;QACjE,oEAAoE;QACpE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,CAAC,6CAA6C;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,CAAC,0DAA0D;QACzE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard options supported by CommandRunner.
|
|
3
|
+
* All commands that use CommandRunner must extend this interface.
|
|
4
|
+
*/
|
|
5
|
+
export interface BaseCommandOptions {
|
|
6
|
+
/** Output as JSON instead of human-readable format */
|
|
7
|
+
json?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Result from a command handler.
|
|
11
|
+
* Handler functions should return this structure to indicate success/failure.
|
|
12
|
+
*/
|
|
13
|
+
export interface CommandResult<T = unknown> {
|
|
14
|
+
/** Whether the command succeeded */
|
|
15
|
+
success: boolean;
|
|
16
|
+
/** Data to output (for successful commands) */
|
|
17
|
+
data?: T;
|
|
18
|
+
/** Error message (for failed commands) */
|
|
19
|
+
error?: string;
|
|
20
|
+
/** Optional exit code override (defaults: SUCCESS=0, error codes from EXIT_CODES) */
|
|
21
|
+
exitCode?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Handler function type.
|
|
25
|
+
* Command logic should be implemented as a function matching this signature.
|
|
26
|
+
*/
|
|
27
|
+
export type CommandHandler<TOptions extends BaseCommandOptions, TResult = unknown> = (options: TOptions) => Promise<CommandResult<TResult>>;
|
|
28
|
+
/**
|
|
29
|
+
* Formatter function type for human-readable output.
|
|
30
|
+
* Receives the command result data and outputs to console.
|
|
31
|
+
*/
|
|
32
|
+
export type CommandFormatter<TResult = unknown> = (data: TResult) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Run a command with consistent error handling, output formatting, and exit codes.
|
|
35
|
+
* Eliminates boilerplate try-catch and JSON output logic from command handlers.
|
|
36
|
+
*
|
|
37
|
+
* This helper:
|
|
38
|
+
* - Wraps command logic in try-catch
|
|
39
|
+
* - Handles IPC connection errors (ENOENT, ECONNREFUSED)
|
|
40
|
+
* - Formats output as JSON or human-readable based on --json flag
|
|
41
|
+
* - Calls process.exit() with appropriate exit code
|
|
42
|
+
*
|
|
43
|
+
* @param handler - Command logic that returns CommandResult or throws
|
|
44
|
+
* @param options - Command options (must include json flag)
|
|
45
|
+
* @param formatter - Optional human-readable formatter (if not provided, outputs raw JSON)
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* await runCommand(
|
|
50
|
+
* async (opts) => {
|
|
51
|
+
* const data = await fetchData(opts.url);
|
|
52
|
+
* return { success: true, data };
|
|
53
|
+
* },
|
|
54
|
+
* options,
|
|
55
|
+
* formatData
|
|
56
|
+
* );
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function runCommand<TOptions extends BaseCommandOptions, TResult = unknown>(handler: CommandHandler<TOptions, TResult>, options: TOptions, formatter?: CommandFormatter<TResult>): Promise<void>;
|
|
60
|
+
//# sourceMappingURL=CommandRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandRunner.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/CommandRunner.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,kBAAkB,EAAE,OAAO,GAAG,OAAO,IAAI,CACnF,OAAO,EAAE,QAAQ,KACd,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,UAAU,CAAC,QAAQ,SAAS,kBAAkB,EAAE,OAAO,GAAG,OAAO,EACrF,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC1C,OAAO,EAAE,QAAQ,EACjB,SAAS,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC,CAyDf"}
|