browser-debugger-cli 0.2.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +137 -126
- package/dist/__tests__/fixtures/schema-v0.2.1.golden.json +47 -0
- package/dist/__tests__/schema.contract.test.d.ts +19 -0
- package/dist/__tests__/schema.contract.test.d.ts.map +1 -0
- package/dist/__tests__/schema.contract.test.js +236 -0
- package/dist/__tests__/schema.contract.test.js.map +1 -0
- package/dist/__tests__/smoke/error-handling.smoke.test.d.ts +8 -0
- package/dist/__tests__/smoke/error-handling.smoke.test.d.ts.map +1 -0
- package/dist/__tests__/smoke/error-handling.smoke.test.js +106 -0
- package/dist/__tests__/smoke/error-handling.smoke.test.js.map +1 -0
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts +8 -0
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts.map +1 -0
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js +109 -0
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js.map +1 -0
- package/dist/__testutils__/commandRunner.d.ts +45 -0
- package/dist/__testutils__/commandRunner.d.ts.map +1 -0
- package/dist/__testutils__/commandRunner.js +108 -0
- package/dist/__testutils__/commandRunner.js.map +1 -0
- package/dist/__testutils__/daemonHelpers.d.ts +81 -0
- package/dist/__testutils__/daemonHelpers.d.ts.map +1 -0
- package/dist/__testutils__/daemonHelpers.js +206 -0
- package/dist/__testutils__/daemonHelpers.js.map +1 -0
- package/dist/__testutils__/index.d.ts +1 -0
- package/dist/__testutils__/index.d.ts.map +1 -1
- package/dist/__testutils__/index.js +1 -0
- package/dist/__testutils__/index.js.map +1 -1
- package/dist/__testutils__/testCleanup.d.ts +45 -0
- package/dist/__testutils__/testCleanup.d.ts.map +1 -0
- package/dist/__testutils__/testCleanup.js +87 -0
- package/dist/__testutils__/testCleanup.js.map +1 -0
- package/dist/__testutils__/testHome.d.ts +26 -0
- package/dist/__testutils__/testHome.d.ts.map +1 -0
- package/dist/__testutils__/testHome.js +57 -0
- package/dist/__testutils__/testHome.js.map +1 -0
- package/dist/__testutils__/testProcess.d.ts.map +1 -1
- package/dist/__testutils__/testProcess.js +11 -3
- package/dist/__testutils__/testProcess.js.map +1 -1
- package/dist/cli/commands/__tests__/start.unit.test.d.ts +2 -0
- package/dist/cli/commands/__tests__/start.unit.test.d.ts.map +1 -0
- package/dist/cli/commands/__tests__/start.unit.test.js +131 -0
- package/dist/cli/commands/__tests__/start.unit.test.js.map +1 -0
- package/dist/cli/commands/cleanup.d.ts +1 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +80 -61
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/details.d.ts +2 -1
- package/dist/cli/commands/details.d.ts.map +1 -1
- package/dist/cli/commands/details.js +104 -52
- package/dist/cli/commands/details.js.map +1 -1
- package/dist/cli/commands/peek.d.ts +2 -1
- package/dist/cli/commands/peek.d.ts.map +1 -1
- package/dist/cli/commands/peek.js +22 -67
- package/dist/cli/commands/peek.js.map +1 -1
- 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 +125 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/start.d.ts +74 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +147 -38
- 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 +37 -49
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.d.ts +1 -0
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +106 -120
- 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 +7 -7
- package/dist/cli/formatters/previewFormatter.d.ts.map +1 -1
- package/dist/cli/formatters/previewFormatter.js +5 -10
- package/dist/cli/formatters/previewFormatter.js.map +1 -1
- package/dist/cli/formatters/statusFormatter.d.ts +13 -10
- package/dist/cli/formatters/statusFormatter.d.ts.map +1 -1
- package/dist/cli/formatters/statusFormatter.js +26 -53
- package/dist/cli/formatters/statusFormatter.js.map +1 -1
- 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/OutputBuilder.d.ts +2 -3
- package/dist/cli/handlers/OutputBuilder.d.ts.map +1 -1
- package/dist/cli/handlers/OutputBuilder.js +2 -4
- package/dist/cli/handlers/OutputBuilder.js.map +1 -1
- 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 +118 -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 +35 -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 +41 -0
- package/dist/cli/handlers/ShutdownController.d.ts.map +1 -0
- package/dist/cli/handlers/ShutdownController.js +94 -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/sessionController.d.ts +41 -0
- package/dist/cli/handlers/sessionController.d.ts.map +1 -1
- package/dist/cli/handlers/sessionController.js +266 -5
- package/dist/cli/handlers/sessionController.js.map +1 -1
- package/dist/cli/registry.d.ts +2 -2
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/registry.js +12 -37
- package/dist/cli/registry.js.map +1 -1
- package/dist/collectors/console.d.ts +1 -1
- package/dist/collectors/console.js +2 -2
- package/dist/collectors/console.js.map +1 -1
- package/dist/collectors/dom.d.ts +1 -1
- package/dist/collectors/network.d.ts +1 -2
- package/dist/collectors/network.d.ts.map +1 -1
- package/dist/collectors/network.js +3 -3
- package/dist/collectors/network.js.map +1 -1
- package/dist/commands/__tests__/cdp.contract.test.d.ts.map +1 -1
- package/dist/commands/__tests__/cdp.contract.test.js +0 -1
- package/dist/commands/__tests__/cdp.contract.test.js.map +1 -1
- package/dist/commands/__tests__/domEval.contract.test.d.ts +17 -0
- package/dist/commands/__tests__/domEval.contract.test.d.ts.map +1 -0
- package/dist/commands/__tests__/domEval.contract.test.js +231 -0
- package/dist/commands/__tests__/domEval.contract.test.js.map +1 -0
- package/dist/commands/cdp.js +1 -1
- package/dist/commands/cdp.js.map +1 -1
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +51 -13
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/console.d.ts.map +1 -1
- package/dist/commands/console.js +8 -8
- package/dist/commands/console.js.map +1 -1
- package/dist/commands/details.js +2 -2
- package/dist/commands/details.js.map +1 -1
- package/dist/commands/dom.d.ts.map +1 -1
- package/dist/commands/dom.js +114 -128
- package/dist/commands/dom.js.map +1 -1
- package/dist/commands/domEvalHelpers.d.ts +7 -11
- package/dist/commands/domEvalHelpers.d.ts.map +1 -1
- package/dist/commands/domEvalHelpers.js +67 -22
- package/dist/commands/domEvalHelpers.js.map +1 -1
- package/dist/commands/domOptionsBuilder.d.ts +32 -0
- package/dist/commands/domOptionsBuilder.d.ts.map +1 -1
- package/dist/commands/domOptionsBuilder.js +35 -0
- package/dist/commands/domOptionsBuilder.js.map +1 -1
- package/dist/commands/machineReadableHelp.d.ts +98 -0
- package/dist/commands/machineReadableHelp.d.ts.map +1 -0
- package/dist/commands/machineReadableHelp.js +137 -0
- package/dist/commands/machineReadableHelp.js.map +1 -0
- package/dist/commands/network.d.ts.map +1 -1
- package/dist/commands/network.js +2 -4
- package/dist/commands/network.js.map +1 -1
- package/dist/commands/peek.d.ts.map +1 -1
- package/dist/commands/peek.js +3 -2
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/shared/CommandRunner.d.ts +4 -2
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
- package/dist/commands/shared/CommandRunner.js +18 -3
- package/dist/commands/shared/CommandRunner.js.map +1 -1
- package/dist/commands/shared/OutputBuilder.js +1 -1
- package/dist/commands/shared/OutputBuilder.js.map +1 -1
- package/dist/commands/shared/commonOptions.d.ts.map +1 -1
- package/dist/commands/shared/commonOptions.js +10 -3
- package/dist/commands/shared/commonOptions.js.map +1 -1
- package/dist/commands/shared/daemonSessionController.d.ts +2 -0
- package/dist/commands/shared/daemonSessionController.d.ts.map +1 -1
- package/dist/commands/shared/daemonSessionController.js +13 -16
- package/dist/commands/shared/daemonSessionController.js.map +1 -1
- package/dist/commands/shared/sessionController.d.ts.map +1 -1
- package/dist/commands/shared/sessionController.js +8 -9
- package/dist/commands/shared/sessionController.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +16 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +72 -54
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +16 -28
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tail.d.ts +11 -0
- package/dist/commands/tail.d.ts.map +1 -0
- package/dist/commands/tail.js +114 -0
- package/dist/commands/tail.js.map +1 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +2 -0
- package/dist/commands.js.map +1 -1
- package/dist/connection/__tests__/cdp.contract.test.d.ts.map +1 -1
- package/dist/connection/__tests__/cdp.contract.test.js +0 -1
- package/dist/connection/__tests__/cdp.contract.test.js.map +1 -1
- package/dist/connection/cdp.d.ts +46 -2
- package/dist/connection/cdp.d.ts.map +1 -1
- package/dist/connection/cdp.js +71 -5
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/diagnostics.d.ts +16 -0
- package/dist/connection/diagnostics.d.ts.map +1 -0
- package/dist/connection/diagnostics.js +37 -0
- package/dist/connection/diagnostics.js.map +1 -0
- package/dist/connection/errors.d.ts +74 -0
- package/dist/connection/errors.d.ts.map +1 -0
- package/dist/connection/errors.js +83 -0
- package/dist/connection/errors.js.map +1 -0
- package/dist/connection/handlers.d.ts +31 -0
- package/dist/connection/handlers.d.ts.map +1 -0
- package/dist/connection/handlers.js +38 -0
- package/dist/connection/handlers.js.map +1 -0
- package/dist/connection/launcher.d.ts +3 -20
- package/dist/connection/launcher.d.ts.map +1 -1
- package/dist/connection/launcher.js +140 -32
- package/dist/connection/launcher.js.map +1 -1
- package/dist/connection/pageReadiness.d.ts +46 -0
- package/dist/connection/pageReadiness.d.ts.map +1 -0
- package/dist/connection/pageReadiness.js +270 -0
- package/dist/connection/pageReadiness.js.map +1 -0
- package/dist/connection/tabs.d.ts +52 -0
- package/dist/connection/tabs.d.ts.map +1 -0
- package/dist/connection/tabs.js +227 -0
- package/dist/connection/tabs.js.map +1 -0
- package/dist/constants.d.ts +20 -40
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +26 -40
- package/dist/constants.js.map +1 -1
- package/dist/daemon/ipcServer.d.ts +5 -7
- package/dist/daemon/ipcServer.d.ts.map +1 -1
- package/dist/daemon/ipcServer.js +178 -143
- package/dist/daemon/ipcServer.js.map +1 -1
- package/dist/daemon/launcher.js +1 -1
- package/dist/daemon/launcher.js.map +1 -1
- package/dist/daemon/server/SocketServer.d.ts +22 -0
- package/dist/daemon/server/SocketServer.d.ts.map +1 -0
- package/dist/daemon/server/SocketServer.js +67 -0
- package/dist/daemon/server/SocketServer.js.map +1 -0
- package/dist/daemon/server/WorkerManager.d.ts +36 -0
- package/dist/daemon/server/WorkerManager.d.ts.map +1 -0
- package/dist/daemon/server/WorkerManager.js +98 -0
- package/dist/daemon/server/WorkerManager.js.map +1 -0
- package/dist/daemon/startSession.d.ts +2 -0
- package/dist/daemon/startSession.d.ts.map +1 -1
- package/dist/daemon/startSession.js +9 -5
- package/dist/daemon/startSession.js.map +1 -1
- package/dist/daemon/worker/TelemetryStore.d.ts +18 -0
- package/dist/daemon/worker/TelemetryStore.d.ts.map +1 -0
- package/dist/daemon/worker/TelemetryStore.js +49 -0
- package/dist/daemon/worker/TelemetryStore.js.map +1 -0
- package/dist/daemon/worker/collectors.d.ts +8 -0
- package/dist/daemon/worker/collectors.d.ts.map +1 -0
- package/dist/daemon/worker/collectors.js +19 -0
- package/dist/daemon/worker/collectors.js.map +1 -0
- package/dist/daemon/worker/commandRegistry.d.ts +10 -0
- package/dist/daemon/worker/commandRegistry.d.ts.map +1 -0
- package/dist/daemon/worker/commandRegistry.js +289 -0
- package/dist/daemon/worker/commandRegistry.js.map +1 -0
- package/dist/daemon/worker/plugins.d.ts +21 -0
- package/dist/daemon/worker/plugins.d.ts.map +1 -0
- package/dist/daemon/worker/plugins.js +71 -0
- package/dist/daemon/worker/plugins.js.map +1 -0
- package/dist/daemon/worker/types.d.ts +13 -0
- package/dist/daemon/worker/types.d.ts.map +1 -0
- package/dist/daemon/worker/types.js +2 -0
- package/dist/daemon/worker/types.js.map +1 -0
- package/dist/daemon/worker.js +232 -484
- package/dist/daemon/worker.js.map +1 -1
- package/dist/help/machineReadableHelp.d.ts +100 -0
- package/dist/help/machineReadableHelp.d.ts.map +1 -0
- package/dist/help/machineReadableHelp.js +139 -0
- package/dist/help/machineReadableHelp.js.map +1 -0
- package/dist/index.js +18 -9
- package/dist/index.js.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.js +2 -2
- package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
- package/dist/ipc/client.d.ts +16 -1
- package/dist/ipc/client.d.ts.map +1 -1
- package/dist/ipc/client.js +40 -11
- package/dist/ipc/client.js.map +1 -1
- package/dist/ipc/commands.d.ts +20 -0
- 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 +2 -0
- package/dist/ipc/types.d.ts.map +1 -1
- package/dist/session/BdgSession.d.ts +91 -0
- package/dist/session/BdgSession.d.ts.map +1 -0
- package/dist/session/BdgSession.js +230 -0
- package/dist/session/BdgSession.js.map +1 -0
- package/dist/session/cleanup.d.ts.map +1 -1
- package/dist/session/cleanup.js +67 -65
- package/dist/session/cleanup.js.map +1 -1
- package/dist/session/fileOps.d.ts +25 -0
- package/dist/session/fileOps.d.ts.map +1 -0
- package/dist/session/fileOps.js +39 -0
- package/dist/session/fileOps.js.map +1 -0
- package/dist/session/metadata.js +2 -2
- package/dist/session/metadata.js.map +1 -1
- package/dist/session/paths.d.ts +2 -7
- package/dist/session/paths.d.ts.map +1 -1
- package/dist/session/paths.js +8 -8
- package/dist/session/paths.js.map +1 -1
- package/dist/session/queryCache.js +1 -1
- package/dist/session/queryCache.js.map +1 -1
- package/dist/telemetry/__tests__/filters.unit.test.d.ts +2 -0
- package/dist/telemetry/__tests__/filters.unit.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/filters.unit.test.js +239 -0
- package/dist/telemetry/__tests__/filters.unit.test.js.map +1 -0
- package/dist/telemetry/console.d.ts +1 -1
- package/dist/telemetry/console.d.ts.map +1 -1
- package/dist/telemetry/console.js +5 -3
- package/dist/telemetry/console.js.map +1 -1
- package/dist/telemetry/dialogs.d.ts +27 -0
- package/dist/telemetry/dialogs.d.ts.map +1 -0
- package/dist/telemetry/dialogs.js +51 -0
- package/dist/telemetry/dialogs.js.map +1 -0
- package/dist/telemetry/filters.d.ts +148 -0
- package/dist/telemetry/filters.d.ts.map +1 -0
- package/dist/telemetry/filters.js +358 -0
- package/dist/telemetry/filters.js.map +1 -0
- package/dist/telemetry/navigation.d.ts +49 -0
- package/dist/telemetry/navigation.d.ts.map +1 -0
- package/dist/telemetry/navigation.js +69 -0
- package/dist/telemetry/navigation.js.map +1 -0
- package/dist/telemetry/network.d.ts +1 -0
- package/dist/telemetry/network.d.ts.map +1 -1
- package/dist/telemetry/network.js +23 -34
- package/dist/telemetry/network.js.map +1 -1
- package/dist/types.d.ts +26 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/errors/CommandError.d.ts +39 -0
- package/dist/ui/errors/CommandError.d.ts.map +1 -0
- package/dist/ui/errors/CommandError.js +48 -0
- package/dist/ui/errors/CommandError.js.map +1 -0
- package/dist/ui/errors/SystemErrors.d.ts +22 -0
- package/dist/ui/errors/SystemErrors.d.ts.map +1 -0
- package/dist/ui/errors/SystemErrors.js +23 -0
- package/dist/ui/errors/SystemErrors.js.map +1 -0
- package/dist/ui/errors/index.d.ts +9 -0
- package/dist/ui/errors/index.d.ts.map +1 -0
- package/dist/ui/errors/index.js +12 -0
- package/dist/ui/errors/index.js.map +1 -0
- package/dist/ui/errors/utils.d.ts +24 -0
- package/dist/ui/errors/utils.d.ts.map +1 -0
- package/dist/ui/errors/utils.js +28 -0
- package/dist/ui/errors/utils.js.map +1 -0
- package/dist/ui/errors.d.ts +39 -0
- package/dist/ui/errors.d.ts.map +1 -0
- package/dist/ui/errors.js +48 -0
- package/dist/ui/errors.js.map +1 -0
- package/dist/ui/formatters/cookies.d.ts.map +1 -1
- package/dist/ui/formatters/cookies.js +18 -21
- package/dist/ui/formatters/cookies.js.map +1 -1
- package/dist/ui/formatters/details.d.ts.map +1 -1
- package/dist/ui/formatters/details.js +34 -36
- package/dist/ui/formatters/details.js.map +1 -1
- package/dist/ui/formatters/dom.d.ts +135 -0
- package/dist/ui/formatters/dom.d.ts.map +1 -0
- package/dist/ui/formatters/dom.js +193 -0
- package/dist/ui/formatters/dom.js.map +1 -0
- package/dist/ui/formatters/index.d.ts +1 -0
- package/dist/ui/formatters/index.d.ts.map +1 -1
- package/dist/ui/formatters/index.js +1 -0
- package/dist/ui/formatters/index.js.map +1 -1
- package/dist/ui/formatters/preview.js +43 -38
- package/dist/ui/formatters/preview.js.map +1 -1
- package/dist/ui/formatters/status.d.ts.map +1 -1
- package/dist/ui/formatters/status.js +45 -45
- package/dist/ui/formatters/status.js.map +1 -1
- package/dist/ui/formatting.d.ts +104 -1
- package/dist/ui/formatting.d.ts.map +1 -1
- package/dist/ui/formatting.js +138 -2
- package/dist/ui/formatting.js.map +1 -1
- package/dist/ui/logging/index.d.ts +7 -0
- package/dist/ui/logging/index.d.ts.map +1 -0
- package/dist/ui/logging/index.js +7 -0
- package/dist/ui/logging/index.js.map +1 -0
- package/dist/ui/logging/logger.d.ts +98 -0
- package/dist/ui/logging/logger.d.ts.map +1 -0
- package/dist/ui/logging/logger.js +93 -0
- package/dist/ui/logging/logger.js.map +1 -0
- package/dist/ui/messages/chrome.d.ts +120 -1
- package/dist/ui/messages/chrome.d.ts.map +1 -1
- package/dist/ui/messages/chrome.js +168 -0
- package/dist/ui/messages/chrome.js.map +1 -1
- package/dist/ui/messages/debug.d.ts +4 -2
- package/dist/ui/messages/debug.d.ts.map +1 -1
- package/dist/ui/messages/debug.js +31 -29
- package/dist/ui/messages/debug.js.map +1 -1
- package/dist/ui/messages/deprecation.d.ts +30 -0
- package/dist/ui/messages/deprecation.d.ts.map +1 -0
- package/dist/ui/messages/deprecation.js +49 -0
- package/dist/ui/messages/deprecation.js.map +1 -0
- package/dist/ui/messages/errors.d.ts +11 -0
- package/dist/ui/messages/errors.d.ts.map +1 -1
- package/dist/ui/messages/errors.js +13 -0
- package/dist/ui/messages/errors.js.map +1 -1
- package/dist/ui/messages/preview.d.ts +24 -0
- package/dist/ui/messages/preview.d.ts.map +1 -1
- package/dist/ui/messages/preview.js +32 -1
- package/dist/ui/messages/preview.js.map +1 -1
- package/dist/ui/messages/session.d.ts.map +1 -1
- package/dist/ui/messages/session.js +21 -7
- package/dist/ui/messages/session.js.map +1 -1
- package/dist/ui/messages/validation.d.ts +14 -0
- package/dist/ui/messages/validation.d.ts.map +1 -1
- package/dist/ui/messages/validation.js +16 -0
- package/dist/ui/messages/validation.js.map +1 -1
- package/dist/utils/__tests__/session.contract.test.js +15 -1
- package/dist/utils/__tests__/session.contract.test.js.map +1 -1
- package/dist/utils/filters.d.ts +40 -0
- package/dist/utils/filters.d.ts.map +1 -1
- package/dist/utils/filters.js +55 -1
- package/dist/utils/filters.js.map +1 -1
- package/dist/utils/pageReadiness.d.ts +9 -14
- package/dist/utils/pageReadiness.d.ts.map +1 -1
- package/dist/utils/pageReadiness.js +40 -41
- package/dist/utils/pageReadiness.js.map +1 -1
- package/dist/utils/session.d.ts +200 -0
- package/dist/utils/session.d.ts.map +1 -0
- package/dist/utils/session.js +498 -0
- package/dist/utils/session.js.map +1 -0
- package/dist/utils/url.d.ts +58 -6
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +137 -20
- package/dist/utils/url.js.map +1 -1
- package/dist/utils/validation.d.ts +12 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +20 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +3 -5
- package/dist/cli/commands/__tests__/cdp.contract.test.d.ts +0 -24
- package/dist/cli/commands/__tests__/cdp.contract.test.d.ts.map +0 -1
- package/dist/cli/commands/__tests__/cdp.contract.test.js +0 -467
- package/dist/cli/commands/__tests__/cdp.contract.test.js.map +0 -1
- package/dist/cli/commands/cdp.d.ts +0 -8
- package/dist/cli/commands/cdp.d.ts.map +0 -1
- package/dist/cli/commands/cdp.js +0 -45
- package/dist/cli/commands/cdp.js.map +0 -1
- package/dist/cli/commands/console.d.ts +0 -8
- package/dist/cli/commands/console.d.ts.map +0 -1
- package/dist/cli/commands/console.js +0 -97
- package/dist/cli/commands/console.js.map +0 -1
- package/dist/cli/commands/dom/helpers/domCache.d.ts +0 -36
- package/dist/cli/commands/dom/helpers/domCache.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/domCache.js +0 -65
- package/dist/cli/commands/dom/helpers/domCache.js.map +0 -1
- package/dist/cli/commands/dom/helpers/domQuery.d.ts +0 -48
- package/dist/cli/commands/dom/helpers/domQuery.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/domQuery.js +0 -104
- package/dist/cli/commands/dom/helpers/domQuery.js.map +0 -1
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts +0 -45
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/errorHandler.js +0 -71
- package/dist/cli/commands/dom/helpers/errorHandler.js.map +0 -1
- package/dist/cli/commands/dom/helpers/evalHelpers.d.ts +0 -52
- package/dist/cli/commands/dom/helpers/evalHelpers.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/evalHelpers.js +0 -75
- package/dist/cli/commands/dom/helpers/evalHelpers.js.map +0 -1
- package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts +0 -35
- package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/optionsBuilder.js +0 -51
- package/dist/cli/commands/dom/helpers/optionsBuilder.js.map +0 -1
- package/dist/cli/commands/dom/helpers/selectorParser.d.ts +0 -20
- package/dist/cli/commands/dom/helpers/selectorParser.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/selectorParser.js +0 -20
- package/dist/cli/commands/dom/helpers/selectorParser.js.map +0 -1
- package/dist/cli/commands/dom/index.d.ts +0 -8
- package/dist/cli/commands/dom/index.d.ts.map +0 -1
- package/dist/cli/commands/dom/index.js +0 -257
- package/dist/cli/commands/dom/index.js.map +0 -1
- package/dist/cli/commands/dom.d.ts +0 -8
- package/dist/cli/commands/dom.d.ts.map +0 -1
- package/dist/cli/commands/dom.js +0 -257
- package/dist/cli/commands/dom.js.map +0 -1
- package/dist/cli/commands/domErrorHandler.d.ts +0 -45
- package/dist/cli/commands/domErrorHandler.d.ts.map +0 -1
- package/dist/cli/commands/domErrorHandler.js +0 -71
- package/dist/cli/commands/domErrorHandler.js.map +0 -1
- package/dist/cli/commands/domEvalHelpers.d.ts +0 -52
- package/dist/cli/commands/domEvalHelpers.d.ts.map +0 -1
- package/dist/cli/commands/domEvalHelpers.js +0 -76
- package/dist/cli/commands/domEvalHelpers.js.map +0 -1
- package/dist/cli/commands/domOptionsBuilder.d.ts +0 -35
- package/dist/cli/commands/domOptionsBuilder.d.ts.map +0 -1
- package/dist/cli/commands/domOptionsBuilder.js +0 -51
- package/dist/cli/commands/domOptionsBuilder.js.map +0 -1
- package/dist/cli/commands/domSelectorParser.d.ts +0 -20
- package/dist/cli/commands/domSelectorParser.d.ts.map +0 -1
- package/dist/cli/commands/domSelectorParser.js +0 -20
- package/dist/cli/commands/domSelectorParser.js.map +0 -1
- package/dist/cli/commands/network.d.ts +0 -8
- package/dist/cli/commands/network.d.ts.map +0 -1
- package/dist/cli/commands/network.js +0 -43
- package/dist/cli/commands/network.js.map +0 -1
- package/dist/cli/handlers/CommandRunner.d.ts +0 -60
- package/dist/cli/handlers/CommandRunner.d.ts.map +0 -1
- package/dist/cli/handlers/CommandRunner.js +0 -81
- package/dist/cli/handlers/CommandRunner.js.map +0 -1
- package/dist/cli/handlers/commonOptions.d.ts +0 -54
- package/dist/cli/handlers/commonOptions.d.ts.map +0 -1
- package/dist/cli/handlers/commonOptions.js +0 -64
- package/dist/cli/handlers/commonOptions.js.map +0 -1
- package/dist/cli/handlers/daemonSessionController.d.ts +0 -23
- package/dist/cli/handlers/daemonSessionController.d.ts.map +0 -1
- package/dist/cli/handlers/daemonSessionController.js +0 -79
- package/dist/cli/handlers/daemonSessionController.js.map +0 -1
- package/dist/cli/handlers/landingPage.d.ts +0 -8
- package/dist/cli/handlers/landingPage.d.ts.map +0 -1
- package/dist/cli/handlers/landingPage.js +0 -8
- package/dist/cli/handlers/landingPage.js.map +0 -1
- package/dist/collectors/__tests__/network.contract.test.d.ts +0 -28
- package/dist/collectors/__tests__/network.contract.test.d.ts.map +0 -1
- package/dist/collectors/__tests__/network.contract.test.js +0 -540
- package/dist/collectors/__tests__/network.contract.test.js.map +0 -1
- package/dist/commandRegistry.d.ts +0 -11
- package/dist/commandRegistry.d.ts.map +0 -1
- package/dist/commandRegistry.js +0 -45
- package/dist/commandRegistry.js.map +0 -1
- package/dist/commands/domErrorHandler.d.ts +0 -45
- package/dist/commands/domErrorHandler.d.ts.map +0 -1
- package/dist/commands/domErrorHandler.js +0 -71
- package/dist/commands/domErrorHandler.js.map +0 -1
- package/dist/dom/cache.d.ts +0 -36
- package/dist/dom/cache.d.ts.map +0 -1
- package/dist/dom/cache.js +0 -65
- package/dist/dom/cache.js.map +0 -1
- package/dist/dom/index.d.ts +0 -9
- package/dist/dom/index.d.ts.map +0 -1
- package/dist/dom/index.js +0 -9
- package/dist/dom/index.js.map +0 -1
- package/dist/dom/query.d.ts +0 -48
- package/dist/dom/query.d.ts.map +0 -1
- package/dist/dom/query.js +0 -104
- package/dist/dom/query.js.map +0 -1
- package/dist/utils/formatters/network.d.ts +0 -23
- package/dist/utils/formatters/network.d.ts.map +0 -1
- package/dist/utils/formatters/network.js +0 -35
- package/dist/utils/formatters/network.js.map +0 -1
- package/dist/utils/ui.d.ts +0 -36
- package/dist/utils/ui.d.ts.map +0 -1
- package/dist/utils/ui.js +0 -47
- package/dist/utils/ui.js.map +0 -1
- package/dist/utils/url/safeParseUrl.d.ts +0 -63
- package/dist/utils/url/safeParseUrl.d.ts.map +0 -1
- package/dist/utils/url/safeParseUrl.js +0 -84
- package/dist/utils/url/safeParseUrl.js.map +0 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* Register query command
|
|
4
|
+
*
|
|
5
|
+
* @param program - Commander.js Command instance to register commands on
|
|
6
|
+
* @returns void
|
|
7
|
+
*/
|
|
8
|
+
export declare function registerQueryCommand(program: Command): void;
|
|
9
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkJ3D"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { OutputBuilder } from '../handlers/OutputBuilder.js';
|
|
2
|
+
import { DEFAULT_DEBUG_PORT, PORT_OPTION_DESCRIPTION } from '../../constants.js';
|
|
3
|
+
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
4
|
+
import { readPid, isProcessAlive } from '../../utils/session.js';
|
|
5
|
+
/**
|
|
6
|
+
* Register query command
|
|
7
|
+
*
|
|
8
|
+
* @param program - Commander.js Command instance to register commands on
|
|
9
|
+
* @returns void
|
|
10
|
+
*/
|
|
11
|
+
export function registerQueryCommand(program) {
|
|
12
|
+
program
|
|
13
|
+
.command('query')
|
|
14
|
+
.description('Execute JavaScript in the active session for live debugging')
|
|
15
|
+
.argument('<script>', 'JavaScript to execute (e.g., "document.querySelector(\'input[type=email]\').value")')
|
|
16
|
+
.option('-p, --port <number>', PORT_OPTION_DESCRIPTION, DEFAULT_DEBUG_PORT)
|
|
17
|
+
.option('-j, --json', 'Wrap result in version/success format')
|
|
18
|
+
.action(async (script, options) => {
|
|
19
|
+
try {
|
|
20
|
+
const port = parseInt(options.port, 10);
|
|
21
|
+
// Check if session is running
|
|
22
|
+
const pid = readPid();
|
|
23
|
+
if (!pid || !isProcessAlive(pid)) {
|
|
24
|
+
const errorMsg = 'No active session running';
|
|
25
|
+
if (options.json) {
|
|
26
|
+
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg, {
|
|
27
|
+
suggestion: 'Start a session with: bdg <url>',
|
|
28
|
+
}), null, 2));
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
console.error(`Error: ${errorMsg}`);
|
|
32
|
+
console.error('Start a session with: bdg <url>');
|
|
33
|
+
}
|
|
34
|
+
process.exit(EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
35
|
+
}
|
|
36
|
+
// Read session metadata to get the target ID
|
|
37
|
+
const { readSessionMetadata } = await import('../../utils/session.js');
|
|
38
|
+
const metadata = readSessionMetadata();
|
|
39
|
+
if (!metadata?.targetId || !metadata.webSocketDebuggerUrl) {
|
|
40
|
+
const errorMsg = 'No target information in session metadata';
|
|
41
|
+
if (options.json) {
|
|
42
|
+
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg, {
|
|
43
|
+
note: 'Session may have been started with an older version',
|
|
44
|
+
}), null, 2));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.error(`Error: ${errorMsg}`);
|
|
48
|
+
console.error('Session may have been started with an older version');
|
|
49
|
+
}
|
|
50
|
+
process.exit(EXIT_CODES.SESSION_FILE_ERROR);
|
|
51
|
+
}
|
|
52
|
+
// Verify the target still exists
|
|
53
|
+
const response = await fetch(`http://127.0.0.1:${port}/json/list`);
|
|
54
|
+
const targetsData = await response.json();
|
|
55
|
+
if (!Array.isArray(targetsData)) {
|
|
56
|
+
const errorMsg = 'Invalid response from CDP';
|
|
57
|
+
if (options.json) {
|
|
58
|
+
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg), null, 2));
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.error(`Error: ${errorMsg}`);
|
|
62
|
+
}
|
|
63
|
+
process.exit(EXIT_CODES.CDP_CONNECTION_FAILURE);
|
|
64
|
+
}
|
|
65
|
+
const target = targetsData.find((t) => t.id === metadata.targetId);
|
|
66
|
+
if (!target) {
|
|
67
|
+
const errorMsg = 'Session target not found (tab may have been closed)';
|
|
68
|
+
if (options.json) {
|
|
69
|
+
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg, {
|
|
70
|
+
suggestion: 'Start a new session with: bdg <url>',
|
|
71
|
+
}), null, 2));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.error(`Error: ${errorMsg}`);
|
|
75
|
+
console.error('Start a new session with: bdg <url>');
|
|
76
|
+
}
|
|
77
|
+
process.exit(EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
78
|
+
}
|
|
79
|
+
// Create temporary CDP connection using stored webSocketDebuggerUrl
|
|
80
|
+
const { CDPConnection } = await import('../../connection/cdp.js');
|
|
81
|
+
const cdp = new CDPConnection();
|
|
82
|
+
await cdp.connect(metadata.webSocketDebuggerUrl);
|
|
83
|
+
// Execute JavaScript
|
|
84
|
+
const result = (await cdp.send('Runtime.evaluate', {
|
|
85
|
+
expression: script,
|
|
86
|
+
returnByValue: true,
|
|
87
|
+
awaitPromise: true,
|
|
88
|
+
}));
|
|
89
|
+
cdp.close();
|
|
90
|
+
// Output result
|
|
91
|
+
if (result.exceptionDetails) {
|
|
92
|
+
const errorMsg = result.exceptionDetails.exception?.description ?? 'Unknown error executing script';
|
|
93
|
+
if (options.json) {
|
|
94
|
+
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg), null, 2));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
console.error('Error executing script:');
|
|
98
|
+
console.error(errorMsg);
|
|
99
|
+
}
|
|
100
|
+
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
101
|
+
}
|
|
102
|
+
// Output result (wrapped if --json, raw otherwise)
|
|
103
|
+
if (options.json) {
|
|
104
|
+
console.log(JSON.stringify(OutputBuilder.buildJsonSuccess({
|
|
105
|
+
result: result.result?.value,
|
|
106
|
+
}), null, 2));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
console.log(JSON.stringify(result.result?.value, null, 2));
|
|
110
|
+
}
|
|
111
|
+
process.exit(EXIT_CODES.SUCCESS);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
115
|
+
if (options.json) {
|
|
116
|
+
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg), null, 2));
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.error(`Error: ${errorMsg}`);
|
|
120
|
+
}
|
|
121
|
+
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,77 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
|
+
import type { CollectorType } from '../../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parsed command-line flags shared by the start subcommands.
|
|
5
|
+
* @property port Chrome debugging port as provided by the user.
|
|
6
|
+
* @property timeout Optional auto-stop timeout (seconds, string form).
|
|
7
|
+
* @property reuseTab Whether to reuse an existing tab instead of creating one.
|
|
8
|
+
* @property userDataDir Custom Chrome profile directory path.
|
|
9
|
+
* @property all When true, disables default filtering of noisy data.
|
|
10
|
+
* @property logLevel Chrome launcher log level (verbose|info|error|silent).
|
|
11
|
+
* @property chromePrefs Inline JSON string with Chrome preferences.
|
|
12
|
+
* @property chromePrefsFile Path to JSON file with Chrome preferences.
|
|
13
|
+
* @property chromeFlags Additional Chrome command-line flags.
|
|
14
|
+
* @property connectionPollInterval Milliseconds between CDP readiness checks.
|
|
15
|
+
* @property maxConnectionRetries Maximum retry attempts before failing.
|
|
16
|
+
* @property portStrict Fail if port is already in use.
|
|
17
|
+
* @property dom Enable only DOM collector (additive).
|
|
18
|
+
* @property network Enable only network collector (additive).
|
|
19
|
+
* @property console Enable only console collector (additive).
|
|
20
|
+
* @property skipDom Disable DOM collector (subtractive).
|
|
21
|
+
* @property skipNetwork Disable network collector (subtractive).
|
|
22
|
+
* @property skipConsole Disable console collector (subtractive).
|
|
23
|
+
* @property fetchAllBodies Fetch all response bodies (override auto-optimization).
|
|
24
|
+
* @property fetchBodiesInclude Comma-separated patterns for bodies to include (trumps exclude).
|
|
25
|
+
* @property fetchBodiesExclude Comma-separated patterns for bodies to exclude.
|
|
26
|
+
* @property networkInclude Comma-separated URL patterns to capture (trumps exclude).
|
|
27
|
+
* @property networkExclude Comma-separated URL patterns to exclude.
|
|
28
|
+
* @property compact Use compact JSON format (no indentation) for output files.
|
|
29
|
+
*/
|
|
30
|
+
interface CollectorOptions {
|
|
31
|
+
port: string;
|
|
32
|
+
timeout?: string;
|
|
33
|
+
reuseTab?: boolean;
|
|
34
|
+
userDataDir?: string;
|
|
35
|
+
all?: boolean;
|
|
36
|
+
logLevel?: string;
|
|
37
|
+
chromePrefs?: string;
|
|
38
|
+
chromePrefsFile?: string;
|
|
39
|
+
chromeFlags?: string[];
|
|
40
|
+
connectionPollInterval?: string;
|
|
41
|
+
maxConnectionRetries?: string;
|
|
42
|
+
portStrict?: boolean;
|
|
43
|
+
dom?: boolean;
|
|
44
|
+
network?: boolean;
|
|
45
|
+
console?: boolean;
|
|
46
|
+
skipDom?: boolean;
|
|
47
|
+
skipNetwork?: boolean;
|
|
48
|
+
skipConsole?: boolean;
|
|
49
|
+
fetchAllBodies?: boolean;
|
|
50
|
+
fetchBodiesInclude?: string;
|
|
51
|
+
fetchBodiesExclude?: string;
|
|
52
|
+
networkInclude?: string;
|
|
53
|
+
networkExclude?: string;
|
|
54
|
+
compact?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Validate collector flags for conflicts
|
|
58
|
+
*
|
|
59
|
+
* @param options - Parsed command-line options from Commander
|
|
60
|
+
* @throws Error if conflicting flags are detected (e.g., --dom and --no-dom)
|
|
61
|
+
*/
|
|
62
|
+
export declare function validateCollectorFlags(options: CollectorOptions): void;
|
|
63
|
+
/**
|
|
64
|
+
* Resolve which collectors to activate based on CLI flags
|
|
65
|
+
*
|
|
66
|
+
* @param options - Parsed command-line options from Commander
|
|
67
|
+
* @returns Array of collector types to activate
|
|
68
|
+
*
|
|
69
|
+
* Logic:
|
|
70
|
+
* - If any additive flags (--dom, --network, --console) are present, return only those collectors
|
|
71
|
+
* - If subtractive flags (--skip-dom, --skip-network, --skip-console) are present, return all collectors minus excluded ones
|
|
72
|
+
* - If no collector flags are present, return all collectors (default)
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolveCollectors(options: CollectorOptions): CollectorType[];
|
|
2
75
|
/**
|
|
3
76
|
* Register the start command
|
|
4
77
|
*
|
|
@@ -6,4 +79,5 @@ import type { Command } from 'commander';
|
|
|
6
79
|
* @returns void
|
|
7
80
|
*/
|
|
8
81
|
export declare function registerStartCommands(program: Command): void;
|
|
82
|
+
export {};
|
|
9
83
|
//# sourceMappingURL=start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA2FD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAmBtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAkC5E;AAoED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAS5D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DEFAULT_DEBUG_PORT, PORT_OPTION_DESCRIPTION, TIMEOUT_OPTION_DESCRIPTION, USER_DATA_DIR_OPTION_DESCRIPTION, } from '../../constants.js';
|
|
1
|
+
import { startSession } from '../handlers/sessionController.js';
|
|
2
|
+
import { DEFAULT_DEBUG_PORT, PORT_OPTION_DESCRIPTION, TIMEOUT_OPTION_DESCRIPTION, REUSE_TAB_OPTION_DESCRIPTION, USER_DATA_DIR_OPTION_DESCRIPTION, LOG_LEVEL_OPTION_DESCRIPTION, CHROME_PREFS_OPTION_DESCRIPTION, CHROME_PREFS_FILE_OPTION_DESCRIPTION, CHROME_FLAGS_OPTION_DESCRIPTION, CONNECTION_POLL_INTERVAL_OPTION_DESCRIPTION, MAX_CONNECTION_RETRIES_OPTION_DESCRIPTION, PORT_STRICT_OPTION_DESCRIPTION, } from '../../constants.js';
|
|
3
3
|
/**
|
|
4
4
|
* Apply shared collector options to a command
|
|
5
5
|
*
|
|
@@ -10,27 +10,139 @@ function applyCollectorOptions(command) {
|
|
|
10
10
|
return command
|
|
11
11
|
.option('-p, --port <number>', PORT_OPTION_DESCRIPTION, DEFAULT_DEBUG_PORT)
|
|
12
12
|
.option('-t, --timeout <seconds>', TIMEOUT_OPTION_DESCRIPTION)
|
|
13
|
+
.option('-r, --reuse-tab', REUSE_TAB_OPTION_DESCRIPTION)
|
|
13
14
|
.option('-u, --user-data-dir <path>', USER_DATA_DIR_OPTION_DESCRIPTION)
|
|
14
15
|
.option('-a, --all', 'Include all data (disable filtering of tracking/analytics)')
|
|
15
|
-
.option('-
|
|
16
|
-
.option('--
|
|
16
|
+
.option('-c, --compact', 'Use compact JSON format (no indentation) for output files')
|
|
17
|
+
.option('--log-level <level>', LOG_LEVEL_OPTION_DESCRIPTION)
|
|
18
|
+
.option('--chrome-prefs <json>', CHROME_PREFS_OPTION_DESCRIPTION)
|
|
19
|
+
.option('--chrome-prefs-file <path>', CHROME_PREFS_FILE_OPTION_DESCRIPTION)
|
|
20
|
+
.option('--chrome-flags <flags...>', CHROME_FLAGS_OPTION_DESCRIPTION)
|
|
21
|
+
.option('--connection-poll-interval <ms>', CONNECTION_POLL_INTERVAL_OPTION_DESCRIPTION)
|
|
22
|
+
.option('--max-connection-retries <count>', MAX_CONNECTION_RETRIES_OPTION_DESCRIPTION)
|
|
23
|
+
.option('--port-strict', PORT_STRICT_OPTION_DESCRIPTION)
|
|
24
|
+
.option('--dom', 'Enable only DOM collector (additive)')
|
|
25
|
+
.option('--network', 'Enable only network collector (additive)')
|
|
26
|
+
.option('--console', 'Enable only console collector (additive)')
|
|
27
|
+
.option('--skip-dom', 'Disable DOM collector (subtractive)')
|
|
28
|
+
.option('--skip-network', 'Disable network collector (subtractive)')
|
|
29
|
+
.option('--skip-console', 'Disable console collector (subtractive)')
|
|
30
|
+
.option('--fetch-all-bodies', 'Fetch all response bodies (override auto-optimization)')
|
|
31
|
+
.option('--fetch-bodies-include <patterns>', 'Only fetch bodies matching patterns (comma-separated wildcards, trumps exclude)')
|
|
32
|
+
.option('--fetch-bodies-exclude <patterns>', 'Additional patterns to exclude from body fetching (comma-separated wildcards)')
|
|
33
|
+
.option('--network-include <patterns>', 'Only capture URLs matching patterns (comma-separated wildcards, trumps exclude)')
|
|
34
|
+
.option('--network-exclude <patterns>', 'Additional URL patterns to exclude (comma-separated wildcards)');
|
|
17
35
|
}
|
|
18
36
|
/**
|
|
19
37
|
* Parse a string to integer, returning undefined if not provided
|
|
38
|
+
*
|
|
20
39
|
* @param value - Optional string value to parse
|
|
21
|
-
* @param fieldName - Name of the field being parsed (for error messages)
|
|
22
40
|
* @returns Parsed integer or undefined if value was not provided
|
|
23
|
-
* @throws Error if value is provided but not a valid integer
|
|
24
41
|
*/
|
|
25
|
-
function parseOptionalInt(value
|
|
26
|
-
|
|
42
|
+
function parseOptionalInt(value) {
|
|
43
|
+
return value !== undefined ? parseInt(value, 10) : undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Parse comma-separated patterns into array
|
|
47
|
+
*
|
|
48
|
+
* @param value - Optional comma-separated patterns string
|
|
49
|
+
* @returns Array of patterns or undefined if value was not provided
|
|
50
|
+
*/
|
|
51
|
+
function parsePatterns(value) {
|
|
52
|
+
if (!value)
|
|
53
|
+
return undefined;
|
|
54
|
+
return value
|
|
55
|
+
.split(',')
|
|
56
|
+
.map((p) => p.trim())
|
|
57
|
+
.filter((p) => p.length > 0);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse JSON string with error handling
|
|
61
|
+
*
|
|
62
|
+
* @param value - Optional JSON string to parse
|
|
63
|
+
* @returns Parsed JSON object or undefined if value was not provided
|
|
64
|
+
* @throws Error if JSON parsing fails
|
|
65
|
+
*/
|
|
66
|
+
function parseOptionalJson(value) {
|
|
67
|
+
if (!value)
|
|
27
68
|
return undefined;
|
|
69
|
+
try {
|
|
70
|
+
return JSON.parse(value);
|
|
28
71
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
throw new Error(`Invalid ${fieldName}: "${value}" is not a valid integer`);
|
|
72
|
+
catch (error) {
|
|
73
|
+
throw new Error(`Invalid JSON in --chrome-prefs: ${error instanceof Error ? error.message : String(error)}`);
|
|
32
74
|
}
|
|
33
|
-
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Validate collector flags for conflicts
|
|
78
|
+
*
|
|
79
|
+
* @param options - Parsed command-line options from Commander
|
|
80
|
+
* @throws Error if conflicting flags are detected (e.g., --dom and --no-dom)
|
|
81
|
+
*/
|
|
82
|
+
export function validateCollectorFlags(options) {
|
|
83
|
+
const conflicts = [];
|
|
84
|
+
if (options.dom && options.skipDom) {
|
|
85
|
+
conflicts.push('--dom and --skip-dom');
|
|
86
|
+
}
|
|
87
|
+
if (options.network && options.skipNetwork) {
|
|
88
|
+
conflicts.push('--network and --skip-network');
|
|
89
|
+
}
|
|
90
|
+
if (options.console && options.skipConsole) {
|
|
91
|
+
conflicts.push('--console and --skip-console');
|
|
92
|
+
}
|
|
93
|
+
if (conflicts.length > 0) {
|
|
94
|
+
throw new Error(`Conflicting collector flags detected: ${conflicts.join(', ')}. ` +
|
|
95
|
+
'Use either additive flags (--dom, --network, --console) or subtractive flags (--skip-dom, --skip-network, --skip-console), not both for the same collector.');
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Resolve which collectors to activate based on CLI flags
|
|
100
|
+
*
|
|
101
|
+
* @param options - Parsed command-line options from Commander
|
|
102
|
+
* @returns Array of collector types to activate
|
|
103
|
+
*
|
|
104
|
+
* Logic:
|
|
105
|
+
* - If any additive flags (--dom, --network, --console) are present, return only those collectors
|
|
106
|
+
* - If subtractive flags (--skip-dom, --skip-network, --skip-console) are present, return all collectors minus excluded ones
|
|
107
|
+
* - If no collector flags are present, return all collectors (default)
|
|
108
|
+
*/
|
|
109
|
+
export function resolveCollectors(options) {
|
|
110
|
+
const allCollectors = ['dom', 'network', 'console'];
|
|
111
|
+
// Check for additive flags
|
|
112
|
+
const hasAdditive = options.dom ?? options.network ?? options.console;
|
|
113
|
+
if (hasAdditive) {
|
|
114
|
+
const collectors = [];
|
|
115
|
+
if (options.dom)
|
|
116
|
+
collectors.push('dom');
|
|
117
|
+
if (options.network)
|
|
118
|
+
collectors.push('network');
|
|
119
|
+
if (options.console)
|
|
120
|
+
collectors.push('console');
|
|
121
|
+
return collectors;
|
|
122
|
+
}
|
|
123
|
+
// Check for subtractive flags
|
|
124
|
+
const hasSubtractive = options.skipDom ?? options.skipNetwork ?? options.skipConsole;
|
|
125
|
+
if (hasSubtractive) {
|
|
126
|
+
const collectors = [...allCollectors];
|
|
127
|
+
if (options.skipDom) {
|
|
128
|
+
const index = collectors.indexOf('dom');
|
|
129
|
+
if (index > -1)
|
|
130
|
+
collectors.splice(index, 1);
|
|
131
|
+
}
|
|
132
|
+
if (options.skipNetwork) {
|
|
133
|
+
const index = collectors.indexOf('network');
|
|
134
|
+
if (index > -1)
|
|
135
|
+
collectors.splice(index, 1);
|
|
136
|
+
}
|
|
137
|
+
if (options.skipConsole) {
|
|
138
|
+
const index = collectors.indexOf('console');
|
|
139
|
+
if (index > -1)
|
|
140
|
+
collectors.splice(index, 1);
|
|
141
|
+
}
|
|
142
|
+
return collectors;
|
|
143
|
+
}
|
|
144
|
+
// Default: return all collectors
|
|
145
|
+
return allCollectors;
|
|
34
146
|
}
|
|
35
147
|
/**
|
|
36
148
|
* Transform CLI options into session options
|
|
@@ -39,13 +151,24 @@ function parseOptionalInt(value, fieldName) {
|
|
|
39
151
|
* @returns Session options object with parsed and normalized values
|
|
40
152
|
*/
|
|
41
153
|
function buildSessionOptions(options) {
|
|
42
|
-
const maxBodySizeMB = parseOptionalInt(options.maxBodySize, 'max-body-size');
|
|
43
154
|
return {
|
|
44
155
|
port: parseInt(options.port, 10),
|
|
45
|
-
timeout: parseOptionalInt(options.timeout
|
|
156
|
+
timeout: parseOptionalInt(options.timeout),
|
|
157
|
+
reuseTab: options.reuseTab ?? false,
|
|
46
158
|
userDataDir: options.userDataDir,
|
|
47
159
|
includeAll: options.all ?? false,
|
|
48
|
-
|
|
160
|
+
logLevel: options.logLevel,
|
|
161
|
+
prefs: parseOptionalJson(options.chromePrefs),
|
|
162
|
+
prefsFile: options.chromePrefsFile,
|
|
163
|
+
chromeFlags: options.chromeFlags,
|
|
164
|
+
connectionPollInterval: parseOptionalInt(options.connectionPollInterval),
|
|
165
|
+
maxConnectionRetries: parseOptionalInt(options.maxConnectionRetries),
|
|
166
|
+
portStrictMode: options.portStrict ?? false,
|
|
167
|
+
fetchAllBodies: options.fetchAllBodies ?? false,
|
|
168
|
+
fetchBodiesInclude: parsePatterns(options.fetchBodiesInclude),
|
|
169
|
+
fetchBodiesExclude: parsePatterns(options.fetchBodiesExclude),
|
|
170
|
+
networkInclude: parsePatterns(options.networkInclude),
|
|
171
|
+
networkExclude: parsePatterns(options.networkExclude),
|
|
49
172
|
compact: options.compact ?? false,
|
|
50
173
|
};
|
|
51
174
|
}
|
|
@@ -57,11 +180,12 @@ function buildSessionOptions(options) {
|
|
|
57
180
|
* @returns Promise that resolves when session completes or is stopped
|
|
58
181
|
*/
|
|
59
182
|
async function collectorAction(url, options) {
|
|
183
|
+
// Validate collector flags for conflicts
|
|
184
|
+
validateCollectorFlags(options);
|
|
185
|
+
// Resolve which collectors to activate based on flags
|
|
186
|
+
const collectors = resolveCollectors(options);
|
|
60
187
|
const sessionOptions = buildSessionOptions(options);
|
|
61
|
-
|
|
62
|
-
const collectors = ['dom', 'network', 'console'];
|
|
63
|
-
// Dispatch to daemon via IPC instead of running in-process
|
|
64
|
-
await startSessionViaDaemon(url, sessionOptions, collectors);
|
|
188
|
+
await startSession(url, sessionOptions, collectors);
|
|
65
189
|
}
|
|
66
190
|
/**
|
|
67
191
|
* Register the start command
|
|
@@ -70,25 +194,10 @@ async function collectorAction(url, options) {
|
|
|
70
194
|
* @returns void
|
|
71
195
|
*/
|
|
72
196
|
export function registerStartCommands(program) {
|
|
73
|
-
// Default command:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
console.error('');
|
|
78
|
-
console.error('Start a new session by providing a URL:');
|
|
79
|
-
console.error('');
|
|
80
|
-
console.error(' bdg example.com');
|
|
81
|
-
console.error(' bdg localhost:3000');
|
|
82
|
-
console.error(' bdg https://github.com');
|
|
83
|
-
console.error('');
|
|
84
|
-
console.error('Or manage existing session:');
|
|
85
|
-
console.error('');
|
|
86
|
-
console.error(' bdg status Check session state');
|
|
87
|
-
console.error(' bdg stop End session');
|
|
88
|
-
console.error(' bdg --help Show all commands');
|
|
89
|
-
console.error('');
|
|
90
|
-
process.exit(0);
|
|
91
|
-
}
|
|
197
|
+
// Default command: collectors determined by flags
|
|
198
|
+
// Use --dom, --network, --console (additive) or --no-dom, --no-network, --no-console (subtractive)
|
|
199
|
+
// If no collector flags provided, all collectors are activated
|
|
200
|
+
applyCollectorOptions(program.argument('<url>', 'Target URL (example.com or localhost:3000)')).action(async (url, options) => {
|
|
92
201
|
await collectorAction(url, options);
|
|
93
202
|
});
|
|
94
203
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,gCAAgC,EAChC,4BAA4B,EAC5B,+BAA+B,EAC/B,oCAAoC,EACpC,+BAA+B,EAC/B,2CAA2C,EAC3C,yCAAyC,EACzC,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AAyDrB;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,OAAO,OAAO;SACX,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,kBAAkB,CAAC;SAC1E,MAAM,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;SAC7D,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;SACvD,MAAM,CAAC,4BAA4B,EAAE,gCAAgC,CAAC;SACtE,MAAM,CAAC,WAAW,EAAE,4DAA4D,CAAC;SACjF,MAAM,CAAC,eAAe,EAAE,2DAA2D,CAAC;SACpF,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;SAC3D,MAAM,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;SAChE,MAAM,CAAC,4BAA4B,EAAE,oCAAoC,CAAC;SAC1E,MAAM,CAAC,2BAA2B,EAAE,+BAA+B,CAAC;SACpE,MAAM,CAAC,iCAAiC,EAAE,2CAA2C,CAAC;SACtF,MAAM,CAAC,kCAAkC,EAAE,yCAAyC,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;SACvD,MAAM,CAAC,OAAO,EAAE,sCAAsC,CAAC;SACvD,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;SAC/D,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;SAC/D,MAAM,CAAC,YAAY,EAAE,qCAAqC,CAAC;SAC3D,MAAM,CAAC,gBAAgB,EAAE,yCAAyC,CAAC;SACnE,MAAM,CAAC,gBAAgB,EAAE,yCAAyC,CAAC;SACnE,MAAM,CAAC,oBAAoB,EAAE,wDAAwD,CAAC;SACtF,MAAM,CACL,mCAAmC,EACnC,iFAAiF,CAClF;SACA,MAAM,CACL,mCAAmC,EACnC,+EAA+E,CAChF;SACA,MAAM,CACL,8BAA8B,EAC9B,iFAAiF,CAClF;SACA,MAAM,CACL,8BAA8B,EAC9B,gEAAgE,CACjE,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAyB;IACjD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAAyB;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,KAAyB;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAA4B,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAyB;IAC9D,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,SAAS,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,yCAAyC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC/D,6JAA6J,CAChK,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAyB;IACzD,MAAM,aAAa,GAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAErE,2BAA2B;IAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IACtE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,UAAU,GAAoB,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,GAAG;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,CAAC,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,8BAA8B;IAC9B,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IACrF,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,KAAK,GAAG,CAAC,CAAC;gBAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;gBAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;gBAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iCAAiC;IACjC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,OAAyB;IAoBpD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;QAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACnC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;QAChC,QAAQ,EAAE,OAAO,CAAC,QAA+D;QACjF,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC;QAC7C,SAAS,EAAE,OAAO,CAAC,eAAe;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,sBAAsB,EAAE,gBAAgB,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACxE,oBAAoB,EAAE,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACpE,cAAc,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;QAC3C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;QAC/C,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC7D,kBAAkB,EAAE,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC7D,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;QACrD,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;QACrD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;KAClC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,OAAyB;IACnE,yCAAyC;IACzC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhC,sDAAsD;IACtD,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,kDAAkD;IAClD,mGAAmG;IACnG,+DAA+D;IAC/D,qBAAqB,CACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,4CAA4C,CAAC,CACxE,CAAC,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,OAAyB,EAAE,EAAE;QACxD,MAAM,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF5D"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { cleanupStaleDaemonPid } from '../../session/cleanup.js';
|
|
3
|
-
import { formatSessionStatus, formatStatusAsJson, formatNoSessionMessage, } from '../../ui/formatters/status.js';
|
|
4
|
-
import { daemonNotRunningWithCleanup } from '../../ui/messages/commands.js';
|
|
5
|
-
import { getErrorMessage } from '../../utils/errors.js';
|
|
1
|
+
import { formatSessionStatus, formatStatusAsJson, formatNoSessionMessage, formatStaleSessionMessage, formatNoMetadataMessage, } from '../formatters/statusFormatter.js';
|
|
6
2
|
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
3
|
+
import { readPid, isProcessAlive } from '../../utils/session.js';
|
|
7
4
|
import { VERSION } from '../../utils/version.js';
|
|
8
5
|
/**
|
|
9
6
|
* Register status command
|
|
@@ -19,21 +16,10 @@ export function registerStatusCommand(program) {
|
|
|
19
16
|
.option('-v, --verbose', 'Show detailed Chrome diagnostics')
|
|
20
17
|
.action(async (options) => {
|
|
21
18
|
try {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (
|
|
26
|
-
console.error(`Daemon error: ${response.error ?? 'Unknown error'}`);
|
|
27
|
-
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
28
|
-
}
|
|
29
|
-
// Extract data from response
|
|
30
|
-
const { data } = response;
|
|
31
|
-
if (!data) {
|
|
32
|
-
console.error('Invalid response from daemon: missing data');
|
|
33
|
-
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
34
|
-
}
|
|
35
|
-
// Check if there's an active session
|
|
36
|
-
if (!data.sessionPid || !data.sessionMetadata) {
|
|
19
|
+
const { readSessionMetadata } = await import('../../utils/session.js');
|
|
20
|
+
// Read PID
|
|
21
|
+
const pid = readPid();
|
|
22
|
+
if (!pid) {
|
|
37
23
|
if (options.json) {
|
|
38
24
|
console.log(JSON.stringify({ version: VERSION, active: false }, null, 2));
|
|
39
25
|
}
|
|
@@ -42,44 +28,46 @@ export function registerStatusCommand(program) {
|
|
|
42
28
|
}
|
|
43
29
|
process.exit(EXIT_CODES.SUCCESS);
|
|
44
30
|
}
|
|
45
|
-
//
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
port: data.sessionMetadata.port,
|
|
51
|
-
targetId: data.sessionMetadata.targetId,
|
|
52
|
-
webSocketDebuggerUrl: data.sessionMetadata.webSocketDebuggerUrl,
|
|
53
|
-
activeCollectors: data.sessionMetadata.activeCollectors,
|
|
54
|
-
};
|
|
55
|
-
if (options.json) {
|
|
56
|
-
// JSON output - include activity and page state
|
|
57
|
-
const jsonOutput = formatStatusAsJson(metadata, data.sessionPid);
|
|
58
|
-
// Merge in activity data if available
|
|
59
|
-
if (data.activity) {
|
|
60
|
-
jsonOutput.activity = data.activity;
|
|
31
|
+
// Check if process is alive
|
|
32
|
+
const isAlive = isProcessAlive(pid);
|
|
33
|
+
if (!isAlive) {
|
|
34
|
+
if (options.json) {
|
|
35
|
+
console.log(JSON.stringify({ version: VERSION, active: false, stale: true, stalePid: pid }, null, 2));
|
|
61
36
|
}
|
|
62
|
-
|
|
63
|
-
|
|
37
|
+
else {
|
|
38
|
+
console.error(formatStaleSessionMessage(pid));
|
|
64
39
|
}
|
|
40
|
+
process.exit(EXIT_CODES.SUCCESS);
|
|
41
|
+
}
|
|
42
|
+
// Read metadata
|
|
43
|
+
const metadata = readSessionMetadata();
|
|
44
|
+
if (!metadata) {
|
|
45
|
+
if (options.json) {
|
|
46
|
+
console.log(JSON.stringify({
|
|
47
|
+
version: VERSION,
|
|
48
|
+
active: true,
|
|
49
|
+
bdgPid: pid,
|
|
50
|
+
warning: 'Metadata not found (session may be from older version)',
|
|
51
|
+
}, null, 2));
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.error(formatNoMetadataMessage(pid));
|
|
55
|
+
}
|
|
56
|
+
process.exit(EXIT_CODES.SUCCESS);
|
|
57
|
+
}
|
|
58
|
+
if (options.json) {
|
|
59
|
+
// JSON output
|
|
60
|
+
const jsonOutput = formatStatusAsJson(metadata, pid);
|
|
65
61
|
console.log(JSON.stringify(jsonOutput, null, 2));
|
|
66
62
|
}
|
|
67
63
|
else {
|
|
68
|
-
// Human-readable output
|
|
69
|
-
console.log(formatSessionStatus(metadata,
|
|
64
|
+
// Human-readable output
|
|
65
|
+
console.log(formatSessionStatus(metadata, pid, options.verbose ?? false));
|
|
70
66
|
}
|
|
71
67
|
process.exit(EXIT_CODES.SUCCESS);
|
|
72
68
|
}
|
|
73
69
|
catch (error) {
|
|
74
|
-
|
|
75
|
-
const errorMessage = getErrorMessage(error);
|
|
76
|
-
if (errorMessage.includes('ENOENT') || errorMessage.includes('ECONNREFUSED')) {
|
|
77
|
-
// P0 Fix #2: Auto-cleanup stale daemon PID if it exists
|
|
78
|
-
const cleaned = cleanupStaleDaemonPid();
|
|
79
|
-
console.error(daemonNotRunningWithCleanup(cleaned));
|
|
80
|
-
process.exit(EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
81
|
-
}
|
|
82
|
-
console.error(`Error checking status: ${errorMessage}`);
|
|
70
|
+
console.error(`Error checking status: ${error instanceof Error ? error.message : String(error)}`);
|
|
83
71
|
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
84
72
|
}
|
|
85
73
|
});
|