browser-debugger-cli 0.1.0-alpha.1 → 0.2.0
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/README.md +58 -68
- package/dist/__testfixtures__/cdpMessages.d.ts +1 -1
- package/dist/__testfixtures__/connectionTargets.d.ts +1 -1
- package/dist/__testutils__/assertions.d.ts +1 -1
- package/dist/__testutils__/testFixtures.d.ts +1 -1
- package/dist/cli/commands/cdp.js +1 -1
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +12 -13
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/console.js +2 -2
- package/dist/cli/commands/details.js +3 -3
- package/dist/cli/commands/details.js.map +1 -1
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +1 -1
- package/dist/cli/commands/dom/helpers/errorHandler.js +4 -3
- package/dist/cli/commands/dom/helpers/errorHandler.js.map +1 -1
- package/dist/cli/commands/dom/index.js +1 -1
- package/dist/cli/commands/dom.d.ts.map +1 -0
- package/dist/cli/commands/dom.js +257 -0
- package/dist/cli/commands/dom.js.map +1 -0
- package/dist/cli/commands/domErrorHandler.d.ts +45 -0
- package/dist/cli/commands/domErrorHandler.d.ts.map +1 -0
- package/dist/cli/commands/domErrorHandler.js +71 -0
- package/dist/cli/commands/domErrorHandler.js.map +1 -0
- package/dist/cli/commands/domEvalHelpers.d.ts +52 -0
- package/dist/cli/commands/domEvalHelpers.d.ts.map +1 -0
- package/dist/cli/commands/domEvalHelpers.js +76 -0
- package/dist/cli/commands/domEvalHelpers.js.map +1 -0
- package/dist/cli/commands/domOptionsBuilder.d.ts +35 -0
- package/dist/cli/commands/domOptionsBuilder.d.ts.map +1 -0
- package/dist/cli/commands/domOptionsBuilder.js +51 -0
- package/dist/cli/commands/domOptionsBuilder.js.map +1 -0
- package/dist/cli/{collectors/helpers/selectorParser.d.ts → commands/domSelectorParser.d.ts} +1 -1
- package/dist/cli/commands/domSelectorParser.d.ts.map +1 -0
- package/dist/cli/{collectors/helpers/selectorParser.js → commands/domSelectorParser.js} +1 -1
- package/dist/cli/commands/domSelectorParser.js.map +1 -0
- package/dist/cli/commands/network.d.ts.map +1 -1
- package/dist/cli/commands/network.js +8 -5
- package/dist/cli/commands/network.js.map +1 -1
- package/dist/cli/commands/peek.d.ts.map +1 -1
- package/dist/cli/commands/peek.js +7 -7
- package/dist/cli/commands/peek.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +19 -2
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +13 -10
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +7 -6
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/formatters/detailsFormatter.d.ts +1 -1
- package/dist/cli/formatters/previewFormatter.d.ts +1 -1
- package/dist/cli/formatters/previewFormatter.js +1 -1
- package/dist/cli/formatters/previewFormatter.js.map +1 -1
- package/dist/cli/formatters/statusFormatter.d.ts +6 -1
- package/dist/cli/formatters/statusFormatter.d.ts.map +1 -1
- package/dist/cli/formatters/statusFormatter.js +49 -4
- package/dist/cli/formatters/statusFormatter.js.map +1 -1
- package/dist/cli/handlers/CommandRunner.d.ts.map +1 -1
- package/dist/cli/handlers/CommandRunner.js +5 -5
- package/dist/cli/handlers/CommandRunner.js.map +1 -1
- package/dist/cli/handlers/OutputBuilder.d.ts +1 -1
- package/dist/cli/handlers/daemonSessionController.d.ts +1 -1
- package/dist/cli/handlers/daemonSessionController.d.ts.map +1 -1
- package/dist/cli/handlers/daemonSessionController.js +16 -45
- package/dist/cli/handlers/daemonSessionController.js.map +1 -1
- package/dist/cli/handlers/landingPage.d.ts +8 -0
- package/dist/cli/handlers/landingPage.d.ts.map +1 -0
- package/dist/cli/handlers/landingPage.js +8 -0
- package/dist/cli/handlers/landingPage.js.map +1 -0
- package/dist/cli/registry.js +10 -10
- package/dist/cli/registry.js.map +1 -1
- package/dist/collectors/__tests__/network.contract.test.js +25 -10
- package/dist/collectors/__tests__/network.contract.test.js.map +1 -1
- package/dist/collectors/console.d.ts +1 -1
- package/dist/collectors/console.js.map +1 -1
- package/dist/collectors/dom.d.ts +1 -1
- package/dist/collectors/network.d.ts +1 -1
- package/dist/collectors/network.js.map +1 -1
- package/dist/commandRegistry.d.ts +11 -0
- package/dist/commandRegistry.d.ts.map +1 -0
- package/dist/commandRegistry.js +45 -0
- package/dist/commandRegistry.js.map +1 -0
- package/dist/commands/__tests__/cdp.contract.test.d.ts +24 -0
- package/dist/commands/__tests__/cdp.contract.test.d.ts.map +1 -0
- package/dist/commands/__tests__/cdp.contract.test.js +467 -0
- package/dist/commands/__tests__/cdp.contract.test.js.map +1 -0
- package/dist/commands/cdp.d.ts +8 -0
- package/dist/commands/cdp.d.ts.map +1 -0
- package/dist/commands/cdp.js +45 -0
- package/dist/commands/cdp.js.map +1 -0
- package/dist/commands/cleanup.d.ts +8 -0
- package/dist/commands/cleanup.d.ts.map +1 -0
- package/dist/commands/cleanup.js +129 -0
- package/dist/commands/cleanup.js.map +1 -0
- package/dist/commands/console.d.ts +8 -0
- package/dist/commands/console.d.ts.map +1 -0
- package/dist/commands/console.js +92 -0
- package/dist/commands/console.js.map +1 -0
- package/dist/commands/details.d.ts +8 -0
- package/dist/commands/details.d.ts.map +1 -0
- package/dist/commands/details.js +68 -0
- package/dist/commands/details.js.map +1 -0
- package/dist/commands/dom.d.ts +8 -0
- package/dist/commands/dom.d.ts.map +1 -0
- package/dist/commands/dom.js +257 -0
- package/dist/commands/dom.js.map +1 -0
- package/dist/commands/domErrorHandler.d.ts +45 -0
- package/dist/commands/domErrorHandler.d.ts.map +1 -0
- package/dist/commands/domErrorHandler.js +71 -0
- package/dist/commands/domErrorHandler.js.map +1 -0
- package/dist/commands/domEvalHelpers.d.ts +52 -0
- package/dist/commands/domEvalHelpers.d.ts.map +1 -0
- package/dist/commands/domEvalHelpers.js +76 -0
- package/dist/commands/domEvalHelpers.js.map +1 -0
- package/dist/commands/domOptionsBuilder.d.ts +35 -0
- package/dist/commands/domOptionsBuilder.d.ts.map +1 -0
- package/dist/commands/domOptionsBuilder.js +51 -0
- package/dist/commands/domOptionsBuilder.js.map +1 -0
- package/dist/commands/domSelectorParser.d.ts +20 -0
- package/dist/commands/domSelectorParser.d.ts.map +1 -0
- package/dist/commands/domSelectorParser.js +20 -0
- package/dist/commands/domSelectorParser.js.map +1 -0
- package/dist/commands/network.d.ts +8 -0
- package/dist/commands/network.d.ts.map +1 -0
- package/dist/commands/network.js +43 -0
- package/dist/commands/network.js.map +1 -0
- package/dist/commands/peek.d.ts +8 -0
- package/dist/commands/peek.d.ts.map +1 -0
- package/dist/commands/peek.js +114 -0
- package/dist/commands/peek.js.map +1 -0
- package/dist/commands/shared/CommandRunner.d.ts +60 -0
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -0
- package/dist/commands/shared/CommandRunner.js +81 -0
- package/dist/commands/shared/CommandRunner.js.map +1 -0
- package/dist/commands/shared/OutputBuilder.d.ts +60 -0
- package/dist/commands/shared/OutputBuilder.d.ts.map +1 -0
- package/dist/commands/shared/OutputBuilder.js +138 -0
- package/dist/commands/shared/OutputBuilder.js.map +1 -0
- package/dist/commands/shared/commonOptions.d.ts +54 -0
- package/dist/commands/shared/commonOptions.d.ts.map +1 -0
- package/dist/commands/shared/commonOptions.js +64 -0
- package/dist/commands/shared/commonOptions.js.map +1 -0
- package/dist/commands/shared/daemonSessionController.d.ts +23 -0
- package/dist/commands/shared/daemonSessionController.d.ts.map +1 -0
- package/dist/commands/shared/daemonSessionController.js +79 -0
- package/dist/commands/shared/daemonSessionController.js.map +1 -0
- package/dist/commands/shared/landingPage.d.ts +8 -0
- package/dist/commands/shared/landingPage.d.ts.map +1 -0
- package/dist/commands/shared/landingPage.js +8 -0
- package/dist/commands/shared/landingPage.js.map +1 -0
- package/dist/commands/shared/sessionController.d.ts +21 -0
- package/dist/commands/shared/sessionController.d.ts.map +1 -0
- package/dist/commands/shared/sessionController.js +55 -0
- package/dist/commands/shared/sessionController.js.map +1 -0
- package/dist/commands/start.d.ts +9 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +85 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/{cli/commands/query.d.ts → commands/status.d.ts} +3 -3
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +87 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +8 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +150 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands.d.ts +11 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +45 -0
- package/dist/commands.js.map +1 -0
- package/dist/connection/__tests__/cdp.contract.test.js +1 -1
- package/dist/connection/__tests__/finder.contract.test.js +1 -1
- package/dist/connection/__tests__/finder.contract.test.js.map +1 -1
- package/dist/connection/cdp.d.ts +1 -1
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/domOperations.d.ts +48 -0
- package/dist/connection/domOperations.d.ts.map +1 -0
- package/dist/connection/domOperations.js +104 -0
- package/dist/connection/domOperations.js.map +1 -0
- package/dist/connection/finder.js.map +1 -1
- package/dist/connection/launcher.d.ts +7 -3
- package/dist/connection/launcher.d.ts.map +1 -1
- package/dist/connection/launcher.js +72 -21
- package/dist/connection/launcher.js.map +1 -1
- package/dist/constants.d.ts +17 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +28 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/__tests__/ipcServer.contract.test.js +25 -11
- package/dist/daemon/__tests__/ipcServer.contract.test.js.map +1 -1
- package/dist/daemon/ipcServer.d.ts.map +1 -1
- package/dist/daemon/ipcServer.js +86 -6
- package/dist/daemon/ipcServer.js.map +1 -1
- package/dist/daemon/launcher.d.ts.map +1 -1
- package/dist/daemon/launcher.js +8 -6
- package/dist/daemon/launcher.js.map +1 -1
- package/dist/daemon/startSession.d.ts +2 -2
- package/dist/daemon/startSession.d.ts.map +1 -1
- package/dist/daemon/startSession.js +12 -11
- package/dist/daemon/startSession.js.map +1 -1
- package/dist/daemon/worker.d.ts +1 -1
- package/dist/daemon/worker.js +97 -41
- package/dist/daemon/worker.js.map +1 -1
- package/dist/{cli/collectors/helpers/domCache.d.ts → dom/cache.d.ts} +1 -5
- package/dist/dom/cache.d.ts.map +1 -0
- package/dist/{cli/collectors/helpers/domCache.js → dom/cache.js} +5 -19
- package/dist/dom/cache.js.map +1 -0
- package/dist/dom/index.d.ts +9 -0
- package/dist/dom/index.d.ts.map +1 -0
- package/dist/dom/index.js +9 -0
- package/dist/dom/index.js.map +1 -0
- package/dist/{cli/collectors/helpers/domQuery.d.ts → dom/query.d.ts} +5 -2
- package/dist/dom/query.d.ts.map +1 -0
- package/dist/{cli/collectors/helpers/domQuery.js → dom/query.js} +11 -7
- package/dist/dom/query.js.map +1 -0
- package/dist/index.js +117 -35
- package/dist/index.js.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.js +11 -1
- package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
- package/dist/ipc/client.d.ts +4 -4
- package/dist/ipc/client.d.ts.map +1 -1
- package/dist/ipc/client.js +10 -6
- package/dist/ipc/client.js.map +1 -1
- package/dist/ipc/commands.d.ts +33 -1
- package/dist/ipc/commands.d.ts.map +1 -1
- package/dist/ipc/commands.js +4 -0
- package/dist/ipc/commands.js.map +1 -1
- package/dist/ipc/types.d.ts +34 -3
- package/dist/ipc/types.d.ts.map +1 -1
- package/dist/ipc/types.js.map +1 -1
- package/dist/session/metadata.d.ts +2 -2
- package/dist/session/metadata.d.ts.map +1 -1
- package/dist/session/output.d.ts +1 -1
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +4 -3
- package/dist/session/process.js.map +1 -1
- package/dist/session/queryCache.d.ts +36 -0
- package/dist/session/queryCache.d.ts.map +1 -0
- package/dist/session/queryCache.js +66 -0
- package/dist/session/queryCache.js.map +1 -0
- package/dist/telemetry/__tests__/network.contract.test.d.ts +28 -0
- package/dist/telemetry/__tests__/network.contract.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/network.contract.test.js +540 -0
- package/dist/telemetry/__tests__/network.contract.test.js.map +1 -0
- package/dist/telemetry/console.d.ts +19 -0
- package/dist/telemetry/console.d.ts.map +1 -0
- package/dist/telemetry/console.js +87 -0
- package/dist/telemetry/console.js.map +1 -0
- package/dist/telemetry/dom.d.ts +21 -0
- package/dist/telemetry/dom.d.ts.map +1 -0
- package/dist/telemetry/dom.js +99 -0
- package/dist/telemetry/dom.js.map +1 -0
- package/dist/telemetry/network.d.ts +33 -0
- package/dist/telemetry/network.d.ts.map +1 -0
- package/dist/telemetry/network.js +191 -0
- package/dist/telemetry/network.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/ui/formatters/cookies.d.ts +32 -0
- package/dist/ui/formatters/cookies.d.ts.map +1 -0
- package/dist/ui/formatters/cookies.js +48 -0
- package/dist/ui/formatters/cookies.js.map +1 -0
- package/dist/ui/formatters/details.d.ts +10 -0
- package/dist/ui/formatters/details.d.ts.map +1 -0
- package/dist/ui/formatters/details.js +63 -0
- package/dist/ui/formatters/details.js.map +1 -0
- package/dist/ui/formatters/index.d.ts +10 -0
- package/dist/ui/formatters/index.d.ts.map +1 -0
- package/dist/ui/formatters/index.js +10 -0
- package/dist/ui/formatters/index.js.map +1 -0
- package/dist/ui/formatters/preview.d.ts +25 -0
- package/dist/ui/formatters/preview.d.ts.map +1 -0
- package/dist/ui/formatters/preview.js +177 -0
- package/dist/ui/formatters/preview.js.map +1 -0
- package/dist/ui/formatters/status.d.ts +39 -0
- package/dist/ui/formatters/status.d.ts.map +1 -0
- package/dist/ui/formatters/status.js +153 -0
- package/dist/ui/formatters/status.js.map +1 -0
- package/dist/ui/formatting.d.ts +197 -0
- package/dist/ui/formatting.d.ts.map +1 -0
- package/dist/ui/formatting.js +318 -0
- package/dist/ui/formatting.js.map +1 -0
- package/dist/ui/messages/chrome.d.ts +102 -0
- package/dist/ui/messages/chrome.d.ts.map +1 -0
- package/dist/ui/messages/chrome.js +162 -0
- package/dist/ui/messages/chrome.js.map +1 -0
- package/dist/ui/messages/commands.d.ts +88 -0
- package/dist/ui/messages/commands.d.ts.map +1 -0
- package/dist/ui/messages/commands.js +150 -0
- package/dist/ui/messages/commands.js.map +1 -0
- package/dist/ui/messages/consoleMessages.d.ts +39 -0
- package/dist/ui/messages/consoleMessages.d.ts.map +1 -0
- package/dist/ui/messages/consoleMessages.js +48 -0
- package/dist/ui/messages/consoleMessages.js.map +1 -0
- package/dist/ui/messages/debug.d.ts +180 -0
- package/dist/ui/messages/debug.d.ts.map +1 -0
- package/dist/ui/messages/debug.js +241 -0
- package/dist/ui/messages/debug.js.map +1 -0
- package/dist/ui/messages/errors.d.ts +80 -0
- package/dist/ui/messages/errors.d.ts.map +1 -0
- package/dist/ui/messages/errors.js +122 -0
- package/dist/ui/messages/errors.js.map +1 -0
- package/dist/ui/messages/index.d.ts +12 -0
- package/dist/ui/messages/index.d.ts.map +1 -0
- package/dist/ui/messages/index.js +12 -0
- package/dist/ui/messages/index.js.map +1 -0
- package/dist/ui/messages/internal.d.ts +30 -0
- package/dist/ui/messages/internal.d.ts.map +1 -0
- package/dist/ui/messages/internal.js +42 -0
- package/dist/ui/messages/internal.js.map +1 -0
- package/dist/ui/messages/preview.d.ts +27 -0
- package/dist/ui/messages/preview.d.ts.map +1 -0
- package/dist/ui/messages/preview.js +45 -0
- package/dist/ui/messages/preview.js.map +1 -0
- package/dist/ui/messages/session.d.ts +54 -0
- package/dist/ui/messages/session.d.ts.map +1 -0
- package/dist/ui/messages/session.js +77 -0
- package/dist/ui/messages/session.js.map +1 -0
- package/dist/ui/messages/validation.d.ts +20 -0
- package/dist/ui/messages/validation.d.ts.map +1 -0
- package/dist/ui/messages/validation.js +22 -0
- package/dist/ui/messages/validation.js.map +1 -0
- package/dist/utils/__tests__/filters.unit.test.js +1 -1
- package/dist/utils/cdpHandlers.d.ts +1 -1
- package/dist/utils/cdpHandlers.js +1 -1
- package/dist/utils/chromeDiagnostics.d.ts +0 -12
- package/dist/utils/chromeDiagnostics.d.ts.map +1 -1
- package/dist/utils/chromeDiagnostics.js +0 -51
- package/dist/utils/chromeDiagnostics.js.map +1 -1
- package/dist/utils/http.d.ts +1 -1
- package/dist/utils/http.js.map +1 -1
- package/dist/utils/logger.d.ts +68 -12
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +62 -12
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/pageReadiness.d.ts +51 -0
- package/dist/utils/pageReadiness.d.ts.map +1 -0
- package/dist/utils/pageReadiness.js +271 -0
- package/dist/utils/pageReadiness.js.map +1 -0
- package/dist/utils/ui.d.ts +36 -0
- package/dist/utils/ui.d.ts.map +1 -0
- package/dist/utils/ui.js +47 -0
- package/dist/utils/ui.js.map +1 -0
- package/dist/utils/url.d.ts +6 -24
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +6 -67
- package/dist/utils/url.js.map +1 -1
- package/package.json +2 -2
- package/dist/cli/collectors/dom.d.ts.map +0 -1
- package/dist/cli/collectors/dom.js +0 -361
- package/dist/cli/collectors/dom.js.map +0 -1
- package/dist/cli/collectors/helpers/domCache.d.ts.map +0 -1
- package/dist/cli/collectors/helpers/domCache.js.map +0 -1
- package/dist/cli/collectors/helpers/domQuery.d.ts.map +0 -1
- package/dist/cli/collectors/helpers/domQuery.js.map +0 -1
- package/dist/cli/collectors/helpers/selectorParser.d.ts.map +0 -1
- package/dist/cli/collectors/helpers/selectorParser.js.map +0 -1
- package/dist/cli/commands/__tests__/ipcTest.test.d.ts +0 -2
- package/dist/cli/commands/__tests__/ipcTest.test.d.ts.map +0 -1
- package/dist/cli/commands/__tests__/ipcTest.test.js +0 -37
- package/dist/cli/commands/__tests__/ipcTest.test.js.map +0 -1
- package/dist/cli/commands/ipcTest.d.ts +0 -23
- package/dist/cli/commands/ipcTest.d.ts.map +0 -1
- package/dist/cli/commands/ipcTest.js +0 -181
- package/dist/cli/commands/ipcTest.js.map +0 -1
- package/dist/cli/commands/query.d.ts.map +0 -1
- package/dist/cli/commands/query.js +0 -127
- package/dist/cli/commands/query.js.map +0 -1
- package/dist/cli/handlers/ChromeBootstrap.d.ts +0 -24
- package/dist/cli/handlers/ChromeBootstrap.d.ts.map +0 -1
- package/dist/cli/handlers/ChromeBootstrap.js +0 -50
- package/dist/cli/handlers/ChromeBootstrap.js.map +0 -1
- package/dist/cli/handlers/OutputWriter.d.ts +0 -15
- package/dist/cli/handlers/OutputWriter.d.ts.map +0 -1
- package/dist/cli/handlers/OutputWriter.js +0 -34
- package/dist/cli/handlers/OutputWriter.js.map +0 -1
- package/dist/cli/handlers/PreviewWriter.d.ts +0 -52
- package/dist/cli/handlers/PreviewWriter.d.ts.map +0 -1
- package/dist/cli/handlers/PreviewWriter.js +0 -119
- package/dist/cli/handlers/PreviewWriter.js.map +0 -1
- package/dist/cli/handlers/SessionLock.d.ts +0 -16
- package/dist/cli/handlers/SessionLock.d.ts.map +0 -1
- package/dist/cli/handlers/SessionLock.js +0 -38
- package/dist/cli/handlers/SessionLock.js.map +0 -1
- package/dist/cli/handlers/SessionLoop.d.ts +0 -19
- package/dist/cli/handlers/SessionLoop.d.ts.map +0 -1
- package/dist/cli/handlers/SessionLoop.js +0 -47
- package/dist/cli/handlers/SessionLoop.js.map +0 -1
- package/dist/cli/handlers/ShutdownController.d.ts +0 -38
- package/dist/cli/handlers/ShutdownController.d.ts.map +0 -1
- package/dist/cli/handlers/ShutdownController.js +0 -83
- package/dist/cli/handlers/ShutdownController.js.map +0 -1
- package/dist/cli/handlers/SignalHandler.d.ts +0 -35
- package/dist/cli/handlers/SignalHandler.d.ts.map +0 -1
- package/dist/cli/handlers/SignalHandler.js +0 -81
- package/dist/cli/handlers/SignalHandler.js.map +0 -1
- package/dist/cli/handlers/TargetSetup.d.ts +0 -42
- package/dist/cli/handlers/TargetSetup.d.ts.map +0 -1
- package/dist/cli/handlers/TargetSetup.js +0 -87
- package/dist/cli/handlers/TargetSetup.js.map +0 -1
- package/dist/connection/__tests__/tabs.contract.test.d.ts +0 -2
- package/dist/connection/__tests__/tabs.contract.test.d.ts.map +0 -1
- package/dist/connection/__tests__/tabs.contract.test.js +0 -137
- package/dist/connection/__tests__/tabs.contract.test.js.map +0 -1
- package/dist/connection/tabs.d.ts +0 -82
- package/dist/connection/tabs.d.ts.map +0 -1
- package/dist/connection/tabs.js +0 -577
- package/dist/connection/tabs.js.map +0 -1
- package/dist/session/BdgSession.d.ts +0 -129
- package/dist/session/BdgSession.d.ts.map +0 -1
- package/dist/session/BdgSession.js +0 -270
- package/dist/session/BdgSession.js.map +0 -1
- package/dist/session/index.d.ts +0 -15
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/index.js +0 -23
- package/dist/session/index.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -12
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -20
- package/dist/utils/validation.js.map +0 -1
- /package/dist/cli/{collectors → commands}/dom.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../src/ui/formatters/details.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9D,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC/D,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvE,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data formatters for human-readable output.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all formatter modules for easy importing.
|
|
5
|
+
*/
|
|
6
|
+
export * from './cookies.js';
|
|
7
|
+
export * from './status.js';
|
|
8
|
+
export * from './preview.js';
|
|
9
|
+
export * from './details.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data formatters for human-readable output.
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all formatter modules for easy importing.
|
|
5
|
+
*/
|
|
6
|
+
export * from './cookies.js';
|
|
7
|
+
export * from './status.js';
|
|
8
|
+
export * from './preview.js';
|
|
9
|
+
export * from './details.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/formatters/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BdgOutput } from '../../types';
|
|
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
|
+
/** Current view timestamp (for follow mode to show refresh time). */
|
|
19
|
+
viewedAt?: Date;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Format preview output (peek command)
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatPreview(output: BdgOutput, options: PreviewOptions): string;
|
|
25
|
+
//# sourceMappingURL=preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/preview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AASzC;;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;IACjB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAMhF"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { truncateUrl, truncateText } from '../../ui/formatting.js';
|
|
2
|
+
import { PREVIEW_EMPTY_STATES, PREVIEW_HEADERS, compactTipsMessage, verboseCommandsMessage, } from '../../ui/messages/preview.js';
|
|
3
|
+
/**
|
|
4
|
+
* Format preview output (peek command)
|
|
5
|
+
*/
|
|
6
|
+
export function formatPreview(output, options) {
|
|
7
|
+
if (options.json) {
|
|
8
|
+
return formatPreviewAsJson(output, options);
|
|
9
|
+
}
|
|
10
|
+
return formatPreviewHumanReadable(output, options);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Format preview as JSON
|
|
14
|
+
*
|
|
15
|
+
* Returns the output wrapped in a preview object to maintain the
|
|
16
|
+
* IPC response structure (.preview.data path for JSON consumers).
|
|
17
|
+
*/
|
|
18
|
+
function formatPreviewAsJson(output, options) {
|
|
19
|
+
const jsonOutput = {
|
|
20
|
+
...output,
|
|
21
|
+
};
|
|
22
|
+
// Apply filters
|
|
23
|
+
if (options.network) {
|
|
24
|
+
delete jsonOutput.data.console;
|
|
25
|
+
}
|
|
26
|
+
if (options.console) {
|
|
27
|
+
delete jsonOutput.data.network;
|
|
28
|
+
}
|
|
29
|
+
// Apply --last limit
|
|
30
|
+
const lastCount = parseInt(options.last);
|
|
31
|
+
if (jsonOutput.data.network && jsonOutput.data.network.length > lastCount) {
|
|
32
|
+
jsonOutput.data.network = jsonOutput.data.network.slice(-lastCount);
|
|
33
|
+
}
|
|
34
|
+
if (jsonOutput.data.console && jsonOutput.data.console.length > lastCount) {
|
|
35
|
+
jsonOutput.data.console = jsonOutput.data.console.slice(-lastCount);
|
|
36
|
+
}
|
|
37
|
+
// Wrap in preview object to maintain .preview.data path for JSON consumers
|
|
38
|
+
return JSON.stringify({ preview: jsonOutput }, null, 2);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Format preview as human-readable output
|
|
42
|
+
*/
|
|
43
|
+
function formatPreviewHumanReadable(output, options) {
|
|
44
|
+
// Use verbose format if requested, otherwise use compact
|
|
45
|
+
if (options.verbose) {
|
|
46
|
+
return formatPreviewVerbose(output, options);
|
|
47
|
+
}
|
|
48
|
+
return formatPreviewCompact(output, options);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Format preview in compact format (default)
|
|
52
|
+
* Token-efficient output optimized for AI agents
|
|
53
|
+
*/
|
|
54
|
+
function formatPreviewCompact(output, options) {
|
|
55
|
+
const lines = [];
|
|
56
|
+
// Header with data collection timestamp
|
|
57
|
+
lines.push(`PREVIEW | Duration: ${Math.floor(output.duration / 1000)}s | Updated: ${output.timestamp}`);
|
|
58
|
+
// In follow mode, add current refresh time to show live updates
|
|
59
|
+
if (options.follow && options.viewedAt) {
|
|
60
|
+
lines.push(`Viewed at: ${options.viewedAt.toISOString()}`);
|
|
61
|
+
}
|
|
62
|
+
lines.push('');
|
|
63
|
+
const lastCount = parseInt(options.last);
|
|
64
|
+
const hasNetworkData = output.data.network && output.data.network.length > 0;
|
|
65
|
+
const hasConsoleData = output.data.console && output.data.console.length > 0;
|
|
66
|
+
// Show network requests only if not filtered out or has data
|
|
67
|
+
if (!options.console && output.data.network) {
|
|
68
|
+
// Hide empty section if console filter is active and there's no network data
|
|
69
|
+
if (options.console === undefined || hasNetworkData) {
|
|
70
|
+
const requests = output.data.network.slice(-lastCount);
|
|
71
|
+
lines.push(`NETWORK (${requests.length}/${output.data.network.length}):`);
|
|
72
|
+
if (requests.length === 0) {
|
|
73
|
+
lines.push(` ${PREVIEW_EMPTY_STATES.NO_DATA}`);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
requests.forEach((req) => {
|
|
77
|
+
const status = req.status ?? 'pending';
|
|
78
|
+
const url = truncateUrl(req.url, 50);
|
|
79
|
+
lines.push(` ${status} ${req.method} ${url} [${req.requestId}]`);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
lines.push('');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Show console messages only if not filtered out or has data
|
|
86
|
+
if (!options.network && output.data.console) {
|
|
87
|
+
// Hide empty section if network filter is active and there's no console data
|
|
88
|
+
if (options.network === undefined || hasConsoleData) {
|
|
89
|
+
const messages = output.data.console.slice(-lastCount);
|
|
90
|
+
lines.push(`CONSOLE (${messages.length}/${output.data.console.length}):`);
|
|
91
|
+
if (messages.length === 0) {
|
|
92
|
+
lines.push(` ${PREVIEW_EMPTY_STATES.NO_DATA}`);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
messages.forEach((msg) => {
|
|
96
|
+
const prefix = msg.type.toUpperCase().padEnd(5);
|
|
97
|
+
const text = truncateText(msg.text, 2);
|
|
98
|
+
lines.push(` ${prefix} ${text}`);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
lines.push('');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// Suppress tips in follow mode to reduce screen clutter during live updates
|
|
105
|
+
if (!options.follow) {
|
|
106
|
+
lines.push(compactTipsMessage());
|
|
107
|
+
}
|
|
108
|
+
return lines.join('\n');
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Format preview in verbose format (opt-in with --verbose)
|
|
112
|
+
* Original human-friendly output with Unicode formatting
|
|
113
|
+
*/
|
|
114
|
+
function formatPreviewVerbose(output, options) {
|
|
115
|
+
const lines = [];
|
|
116
|
+
lines.push(PREVIEW_HEADERS.LIVE_PREVIEW);
|
|
117
|
+
lines.push('━'.repeat(50));
|
|
118
|
+
lines.push(`Duration: ${Math.floor(output.duration / 1000)}s`);
|
|
119
|
+
lines.push(`Last updated: ${output.timestamp}`);
|
|
120
|
+
// In follow mode, add current refresh time to show live updates
|
|
121
|
+
if (options.follow && options.viewedAt) {
|
|
122
|
+
lines.push(`Viewed at: ${options.viewedAt.toISOString()}`);
|
|
123
|
+
}
|
|
124
|
+
lines.push('');
|
|
125
|
+
const lastCount = parseInt(options.last);
|
|
126
|
+
const hasNetworkData = output.data.network && output.data.network.length > 0;
|
|
127
|
+
const hasConsoleData = output.data.console && output.data.console.length > 0;
|
|
128
|
+
// Show network requests only if not filtered out or has data
|
|
129
|
+
if (!options.console && output.data.network) {
|
|
130
|
+
// Hide empty section if console filter is active and there's no network data
|
|
131
|
+
if (options.console === undefined || hasNetworkData) {
|
|
132
|
+
const requests = output.data.network.slice(-lastCount);
|
|
133
|
+
lines.push(`Network Requests (last ${requests.length} of ${output.data.network.length})`);
|
|
134
|
+
lines.push('━'.repeat(50));
|
|
135
|
+
if (requests.length === 0) {
|
|
136
|
+
lines.push(PREVIEW_EMPTY_STATES.NO_NETWORK_REQUESTS);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
requests.forEach((req) => {
|
|
140
|
+
const statusColor = req.status && req.status >= 400 ? 'ERR' : 'OK';
|
|
141
|
+
const status = req.status ?? 'pending';
|
|
142
|
+
lines.push(`${statusColor} ${status} ${req.method} ${req.url}`);
|
|
143
|
+
if (req.mimeType) {
|
|
144
|
+
lines.push(` Type: ${req.mimeType}`);
|
|
145
|
+
}
|
|
146
|
+
lines.push(` ID: ${req.requestId} (use 'bdg details network ${req.requestId}' for full details)`);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
lines.push('');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Show console messages only if not filtered out or has data
|
|
153
|
+
if (!options.network && output.data.console) {
|
|
154
|
+
// Hide empty section if network filter is active and there's no console data
|
|
155
|
+
if (options.network === undefined || hasConsoleData) {
|
|
156
|
+
const messages = output.data.console.slice(-lastCount);
|
|
157
|
+
lines.push(`Console Messages (last ${messages.length} of ${output.data.console.length})`);
|
|
158
|
+
lines.push('━'.repeat(50));
|
|
159
|
+
if (messages.length === 0) {
|
|
160
|
+
lines.push(PREVIEW_EMPTY_STATES.NO_CONSOLE_MESSAGES);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
messages.forEach((msg) => {
|
|
164
|
+
const icon = msg.type === 'error' ? 'ERR' : msg.type === 'warning' ? 'WARN' : 'INFO';
|
|
165
|
+
lines.push(`${icon} [${msg.type}] ${msg.text}`);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
lines.push('');
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Suppress tips in follow mode to reduce screen clutter during live updates
|
|
172
|
+
if (!options.follow) {
|
|
173
|
+
lines.push(verboseCommandsMessage());
|
|
174
|
+
}
|
|
175
|
+
return lines.join('\n');
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../src/ui/formatters/preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { SessionActivity, PageState } from '../../ipc/types.js';
|
|
2
|
+
import type { SessionMetadata } from '../../session/metadata.js';
|
|
3
|
+
export interface StatusData {
|
|
4
|
+
version: string;
|
|
5
|
+
active: boolean;
|
|
6
|
+
bdgPid?: number;
|
|
7
|
+
chromePid?: number | undefined;
|
|
8
|
+
chromeAlive?: boolean;
|
|
9
|
+
startTime?: number;
|
|
10
|
+
duration?: number;
|
|
11
|
+
durationFormatted?: string;
|
|
12
|
+
port?: number;
|
|
13
|
+
targetId?: string | undefined;
|
|
14
|
+
webSocketDebuggerUrl?: string | undefined;
|
|
15
|
+
telemetry?: string[];
|
|
16
|
+
stale?: boolean;
|
|
17
|
+
stalePid?: number;
|
|
18
|
+
warning?: string;
|
|
19
|
+
activity?: SessionActivity;
|
|
20
|
+
pageState?: PageState;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Format session status for human-readable output
|
|
24
|
+
* @param metadata - Session metadata
|
|
25
|
+
* @param pid - BDG process ID
|
|
26
|
+
* @param activity - Live activity metrics from worker
|
|
27
|
+
* @param pageState - Current page state from worker
|
|
28
|
+
* @param verbose - Show detailed Chrome diagnostics
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatSessionStatus(metadata: SessionMetadata, pid: number, activity?: SessionActivity, pageState?: PageState, verbose?: boolean): string;
|
|
31
|
+
/**
|
|
32
|
+
* Convert status data to JSON format
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatStatusAsJson(metadata: SessionMetadata | null, pid: number | null): StatusData;
|
|
35
|
+
/**
|
|
36
|
+
* Format "no session" message
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatNoSessionMessage(): string;
|
|
39
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/ui/formatters/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM7D,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,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAcD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,eAAe,EAC1B,SAAS,CAAC,EAAE,SAAS,EACrB,OAAO,UAAQ,GACd,MAAM,CAuFR;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,153 @@
|
|
|
1
|
+
import { isProcessAlive } from '../../session/process.js';
|
|
2
|
+
import { formatDiagnosticsForStatus } from '../../ui/messages/chrome.js';
|
|
3
|
+
import { getChromeDiagnostics } from '../../utils/chromeDiagnostics.js';
|
|
4
|
+
import { VERSION } from '../../utils/version.js';
|
|
5
|
+
/**
|
|
6
|
+
* Format "time ago" string from timestamp
|
|
7
|
+
*/
|
|
8
|
+
function formatTimeAgo(timestamp) {
|
|
9
|
+
const secondsAgo = Math.floor((Date.now() - timestamp) / 1000);
|
|
10
|
+
if (secondsAgo < 60)
|
|
11
|
+
return `${secondsAgo}s ago`;
|
|
12
|
+
const minutesAgo = Math.floor(secondsAgo / 60);
|
|
13
|
+
if (minutesAgo < 60)
|
|
14
|
+
return `${minutesAgo}m ago`;
|
|
15
|
+
const hoursAgo = Math.floor(minutesAgo / 60);
|
|
16
|
+
return `${hoursAgo}h ago`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Format session status for human-readable output
|
|
20
|
+
* @param metadata - Session metadata
|
|
21
|
+
* @param pid - BDG process ID
|
|
22
|
+
* @param activity - Live activity metrics from worker
|
|
23
|
+
* @param pageState - Current page state from worker
|
|
24
|
+
* @param verbose - Show detailed Chrome diagnostics
|
|
25
|
+
*/
|
|
26
|
+
export function formatSessionStatus(metadata, pid, activity, pageState, verbose = false) {
|
|
27
|
+
// Calculate duration
|
|
28
|
+
const now = Date.now();
|
|
29
|
+
const durationMs = now - metadata.startTime;
|
|
30
|
+
const durationSec = Math.floor(durationMs / 1000);
|
|
31
|
+
const minutes = Math.floor(durationSec / 60);
|
|
32
|
+
const seconds = durationSec % 60;
|
|
33
|
+
const durationFormatted = minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`;
|
|
34
|
+
// Check if Chrome is alive
|
|
35
|
+
const chromeAlive = metadata.chromePid ? isProcessAlive(metadata.chromePid) : false;
|
|
36
|
+
const lines = [];
|
|
37
|
+
lines.push('Session Status');
|
|
38
|
+
lines.push('━'.repeat(50));
|
|
39
|
+
lines.push(`Status: ACTIVE`);
|
|
40
|
+
lines.push(`Duration: ${durationFormatted}`);
|
|
41
|
+
lines.push('');
|
|
42
|
+
lines.push('Process Information');
|
|
43
|
+
lines.push('━'.repeat(50));
|
|
44
|
+
lines.push(`Daemon PID: ${pid}`);
|
|
45
|
+
if (metadata.chromePid) {
|
|
46
|
+
lines.push(`Chrome PID: ${metadata.chromePid} ${chromeAlive ? '(running)' : '(not running)'}`);
|
|
47
|
+
}
|
|
48
|
+
lines.push(`Port: ${metadata.port}`);
|
|
49
|
+
// Target Information (from live worker data)
|
|
50
|
+
if (pageState) {
|
|
51
|
+
lines.push('');
|
|
52
|
+
lines.push('Target Information');
|
|
53
|
+
lines.push('━'.repeat(50));
|
|
54
|
+
lines.push(`URL: ${pageState.url}`);
|
|
55
|
+
if (pageState.title) {
|
|
56
|
+
lines.push(`Title: ${pageState.title}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Activity Section (from live worker data)
|
|
60
|
+
if (activity) {
|
|
61
|
+
lines.push('');
|
|
62
|
+
lines.push('Activity');
|
|
63
|
+
lines.push('━'.repeat(50));
|
|
64
|
+
lines.push(`Network Requests: ${activity.networkRequestsCaptured} captured`);
|
|
65
|
+
if (activity.lastNetworkRequestAt) {
|
|
66
|
+
lines.push(` Last Request: ${formatTimeAgo(activity.lastNetworkRequestAt)}`);
|
|
67
|
+
}
|
|
68
|
+
lines.push(`Console Messages: ${activity.consoleMessagesCaptured} captured`);
|
|
69
|
+
if (activity.lastConsoleMessageAt) {
|
|
70
|
+
lines.push(` Last Message: ${formatTimeAgo(activity.lastConsoleMessageAt)}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Telemetry Section
|
|
74
|
+
lines.push('');
|
|
75
|
+
lines.push('Collectors');
|
|
76
|
+
lines.push('━'.repeat(50));
|
|
77
|
+
// Use activeTelemetry from metadata, fallback to all telemetry modules for backward compatibility
|
|
78
|
+
const activeTelemetry = metadata.activeTelemetry ?? ['network', 'console', 'dom'];
|
|
79
|
+
lines.push(`Network: ${activeTelemetry.includes('network') ? 'Active' : 'Inactive'}`);
|
|
80
|
+
lines.push(`Console: ${activeTelemetry.includes('console') ? 'Active' : 'Inactive'}`);
|
|
81
|
+
lines.push(`DOM: ${activeTelemetry.includes('dom') ? 'Active' : 'Inactive'}`);
|
|
82
|
+
// Add verbose Chrome diagnostics if requested
|
|
83
|
+
if (verbose) {
|
|
84
|
+
lines.push('');
|
|
85
|
+
lines.push('Chrome Diagnostics');
|
|
86
|
+
lines.push('━'.repeat(50));
|
|
87
|
+
// Get diagnostics using shared utility (cached to avoid repeated scans)
|
|
88
|
+
const diagnostics = getChromeDiagnostics();
|
|
89
|
+
const diagnosticLines = formatDiagnosticsForStatus(diagnostics);
|
|
90
|
+
lines.push(...diagnosticLines);
|
|
91
|
+
}
|
|
92
|
+
lines.push('');
|
|
93
|
+
lines.push('Commands:');
|
|
94
|
+
lines.push(' Stop session: bdg stop');
|
|
95
|
+
lines.push(' Peek data: bdg peek');
|
|
96
|
+
lines.push(' Query browser: bdg query <script>');
|
|
97
|
+
return lines.join('\n');
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Convert status data to JSON format
|
|
101
|
+
*/
|
|
102
|
+
export function formatStatusAsJson(metadata, pid) {
|
|
103
|
+
if (!pid) {
|
|
104
|
+
return { version: VERSION, active: false };
|
|
105
|
+
}
|
|
106
|
+
const isAlive = isProcessAlive(pid);
|
|
107
|
+
if (!isAlive) {
|
|
108
|
+
return { version: VERSION, active: false, stale: true, stalePid: pid };
|
|
109
|
+
}
|
|
110
|
+
if (!metadata) {
|
|
111
|
+
return {
|
|
112
|
+
version: VERSION,
|
|
113
|
+
active: true,
|
|
114
|
+
bdgPid: pid,
|
|
115
|
+
warning: 'Metadata not found (session may be from older version)',
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
// Calculate duration
|
|
119
|
+
const now = Date.now();
|
|
120
|
+
const durationMs = now - metadata.startTime;
|
|
121
|
+
const durationSec = Math.floor(durationMs / 1000);
|
|
122
|
+
const minutes = Math.floor(durationSec / 60);
|
|
123
|
+
const seconds = durationSec % 60;
|
|
124
|
+
const durationFormatted = minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`;
|
|
125
|
+
// Check if Chrome is alive
|
|
126
|
+
const chromeAlive = metadata.chromePid ? isProcessAlive(metadata.chromePid) : false;
|
|
127
|
+
return {
|
|
128
|
+
version: VERSION,
|
|
129
|
+
active: true,
|
|
130
|
+
bdgPid: pid,
|
|
131
|
+
chromePid: metadata.chromePid,
|
|
132
|
+
chromeAlive,
|
|
133
|
+
startTime: metadata.startTime,
|
|
134
|
+
duration: durationMs,
|
|
135
|
+
durationFormatted,
|
|
136
|
+
port: metadata.port,
|
|
137
|
+
targetId: metadata.targetId,
|
|
138
|
+
webSocketDebuggerUrl: metadata.webSocketDebuggerUrl,
|
|
139
|
+
// Use activeTelemetry from metadata, fallback to all telemetry types for backward compatibility
|
|
140
|
+
telemetry: metadata.activeTelemetry ?? ['network', 'console', 'dom'],
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Format "no session" message
|
|
145
|
+
*/
|
|
146
|
+
export function formatNoSessionMessage() {
|
|
147
|
+
return `No active session found
|
|
148
|
+
|
|
149
|
+
Suggestions:
|
|
150
|
+
Start a new session: bdg <url>
|
|
151
|
+
List Chrome tabs: bdg tabs`;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/ui/formatters/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared formatting utilities for UI output.
|
|
3
|
+
*
|
|
4
|
+
* This module provides low-level formatting helpers used across all UI components.
|
|
5
|
+
* Includes: separators, sections, lists, key-value pairs, text utilities, and time formatting.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Create a horizontal separator line.
|
|
9
|
+
*
|
|
10
|
+
* @param char - Character to use for separator (default: '━')
|
|
11
|
+
* @param width - Width of separator in characters (default: 50)
|
|
12
|
+
* @returns Separator string
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* separator() // → '━━━━━━...' (50 chars)
|
|
17
|
+
* separator('-', 20) // → '--------------------'
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function separator(char?: string, width?: number): string;
|
|
21
|
+
/**
|
|
22
|
+
* Create a titled section with content lines.
|
|
23
|
+
*
|
|
24
|
+
* @param title - Section title
|
|
25
|
+
* @param content - Array of content lines (will be indented)
|
|
26
|
+
* @param indent - Number of spaces to indent content (default: 2)
|
|
27
|
+
* @returns Formatted section string
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* section('Process Info:', [
|
|
32
|
+
* 'Daemon PID: 12345',
|
|
33
|
+
* 'Chrome PID: 67890'
|
|
34
|
+
* ])
|
|
35
|
+
* // →
|
|
36
|
+
* // Process Info:
|
|
37
|
+
* // Daemon PID: 12345
|
|
38
|
+
* // Chrome PID: 67890
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function section(title: string, content: string[], indent?: number): string;
|
|
42
|
+
/**
|
|
43
|
+
* Create a bullet list with optional indentation.
|
|
44
|
+
*
|
|
45
|
+
* @param items - Array of list items
|
|
46
|
+
* @param indent - Number of spaces to indent (default: 2)
|
|
47
|
+
* @param bullet - Bullet character (default: '-')
|
|
48
|
+
* @returns Formatted bullet list
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* bulletList(['Item 1', 'Item 2'], 2, '•')
|
|
53
|
+
* // →
|
|
54
|
+
* // • Item 1
|
|
55
|
+
* // • Item 2
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function bulletList(items: string[], indent?: number, bullet?: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Create a key-value pair with alignment.
|
|
61
|
+
*
|
|
62
|
+
* @param key - Key string
|
|
63
|
+
* @param value - Value string
|
|
64
|
+
* @param keyWidth - Width to pad key to (default: auto)
|
|
65
|
+
* @returns Formatted key-value pair
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* keyValue('Status', 'Active', 15)
|
|
70
|
+
* // → 'Status: Active'
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function keyValue(key: string, value: string, keyWidth?: number): string;
|
|
74
|
+
/**
|
|
75
|
+
* Indent text by a number of spaces.
|
|
76
|
+
*
|
|
77
|
+
* @param text - Text to indent (can be multiline)
|
|
78
|
+
* @param spaces - Number of spaces to indent
|
|
79
|
+
* @returns Indented text
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* indent('Line 1\nLine 2', 4)
|
|
84
|
+
* // →
|
|
85
|
+
* // Line 1
|
|
86
|
+
* // Line 2
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export declare function indent(text: string, spaces: number): string;
|
|
90
|
+
/**
|
|
91
|
+
* Truncate text to maximum length with ellipsis.
|
|
92
|
+
*
|
|
93
|
+
* @param text - Text to truncate
|
|
94
|
+
* @param maxLength - Maximum length
|
|
95
|
+
* @returns Truncated text
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* truncate('Very long text here', 10)
|
|
100
|
+
* // → 'Very lo...'
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export declare function truncate(text: string, maxLength: number): string;
|
|
104
|
+
/**
|
|
105
|
+
* Truncate console message text (especially stack traces).
|
|
106
|
+
*
|
|
107
|
+
* @param text - The console message text
|
|
108
|
+
* @param maxLines - Maximum number of lines to show (default: 3)
|
|
109
|
+
* @returns Truncated text with line count
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* truncateText('Line 1\nLine 2\nLine 3\nLine 4\nLine 5', 3)
|
|
114
|
+
* // →
|
|
115
|
+
* // Line 1
|
|
116
|
+
* // Line 2
|
|
117
|
+
* // Line 3
|
|
118
|
+
* // ... (2 more lines)
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export declare function truncateText(text: string, maxLines?: number): string;
|
|
122
|
+
/**
|
|
123
|
+
* Truncate a URL for compact display.
|
|
124
|
+
*
|
|
125
|
+
* Removes www. prefix, shortens long paths with ellipsis, and truncates to maxLength.
|
|
126
|
+
*
|
|
127
|
+
* @param url - URL string to truncate
|
|
128
|
+
* @param maxLength - Maximum length of output (default: 60)
|
|
129
|
+
* @returns Truncated URL for display
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* truncateUrl('https://i.clarity.ms/collect')
|
|
134
|
+
* // → 'clarity.ms/collect'
|
|
135
|
+
* truncateUrl('https://aswpapius.com/api/web-channels/47d7def8-d602-49ec-bfdb-c959b1346774')
|
|
136
|
+
* // → 'aswpapius.com/.../47d7def8'
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare function truncateUrl(url: string, maxLength?: number): string;
|
|
140
|
+
/**
|
|
141
|
+
* Pluralize a word based on count.
|
|
142
|
+
*
|
|
143
|
+
* @param count - Number of items
|
|
144
|
+
* @param singular - Singular form of word
|
|
145
|
+
* @param plural - Plural form of word (optional, defaults to singular + 's')
|
|
146
|
+
* @returns Formatted count with correct word form
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* pluralize(1, 'request') // → '1 request'
|
|
151
|
+
* pluralize(5, 'request') // → '5 requests'
|
|
152
|
+
* pluralize(0, 'entry', 'entries') // → '0 entries'
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
export declare function pluralize(count: number, singular: string, plural?: string): string;
|
|
156
|
+
/**
|
|
157
|
+
* Format duration in milliseconds to human-readable string.
|
|
158
|
+
*
|
|
159
|
+
* @param ms - Duration in milliseconds
|
|
160
|
+
* @returns Formatted duration string
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```typescript
|
|
164
|
+
* formatDuration(1500) // → '1.5s'
|
|
165
|
+
* formatDuration(65000) // → '1m 5s'
|
|
166
|
+
* formatDuration(3661000) // → '1h 1m'
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
export declare function formatDuration(ms: number): string;
|
|
170
|
+
/**
|
|
171
|
+
* Format timestamp to ISO string.
|
|
172
|
+
*
|
|
173
|
+
* @param date - Date object or timestamp
|
|
174
|
+
* @returns ISO 8601 formatted string
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* formatTimestamp(new Date())
|
|
179
|
+
* // → '2025-11-05T12:34:56.789Z'
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
export declare function formatTimestamp(date: Date | number): string;
|
|
183
|
+
/**
|
|
184
|
+
* Format relative time ("time ago").
|
|
185
|
+
*
|
|
186
|
+
* @param date - Date object or timestamp
|
|
187
|
+
* @returns Human-readable relative time
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* formatTimeAgo(Date.now() - 5000) // → '5 seconds ago'
|
|
192
|
+
* formatTimeAgo(Date.now() - 65000) // → '1 minute ago'
|
|
193
|
+
* formatTimeAgo(Date.now() - 3661000) // → '1 hour ago'
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
export declare function formatTimeAgo(date: Date | number): string;
|
|
197
|
+
//# sourceMappingURL=formatting.d.ts.map
|