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
package/dist/commands/dom.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { queryDOM, highlightDOM, getDOM } from '../ipc/client.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { runCommand } from '../commands/shared/CommandRunner.js';
|
|
2
|
+
import { queryDOM, highlightDOM, getDOM, captureScreenshot } from '../ipc/client.js';
|
|
3
|
+
import { formatDomQuery, formatDomHighlight, formatDomGet, formatDomEval, formatDomScreenshot, } from '../ui/formatters/dom.js';
|
|
4
|
+
import { filterDefined } from '../utils/objects.js';
|
|
5
|
+
import { mergeWithSelector } from './domOptionsBuilder.js';
|
|
6
6
|
/**
|
|
7
7
|
* Handle bdg dom query <selector> command
|
|
8
8
|
*
|
|
@@ -11,49 +11,27 @@ import { buildSelectorOptions } from './domOptionsBuilder.js';
|
|
|
11
11
|
*
|
|
12
12
|
* @param selector - CSS selector to query (e.g., ".error", "#app", "button")
|
|
13
13
|
* @param options - Command options
|
|
14
|
-
* @throws Error When IPC request fails or returns error response
|
|
15
|
-
* @throws Error When response data is missing
|
|
16
14
|
*/
|
|
17
15
|
async function handleDomQuery(selector, options) {
|
|
18
|
-
|
|
19
|
-
// Send query request via IPC to daemon/worker
|
|
16
|
+
await runCommand(async () => {
|
|
20
17
|
const response = await queryDOM(selector);
|
|
21
18
|
if (response.status === 'error') {
|
|
22
|
-
|
|
19
|
+
return {
|
|
20
|
+
success: false,
|
|
21
|
+
error: response.error ?? 'Unknown error',
|
|
22
|
+
};
|
|
23
23
|
}
|
|
24
24
|
if (!response.data) {
|
|
25
|
-
|
|
25
|
+
return {
|
|
26
|
+
success: false,
|
|
27
|
+
error: 'No data in response',
|
|
28
|
+
};
|
|
26
29
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
count: 0,
|
|
33
|
-
nodes: [],
|
|
34
|
-
}, null, 2));
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
console.log(`No elements found matching "${selector}"`);
|
|
38
|
-
}
|
|
39
|
-
process.exit(EXIT_CODES.SUCCESS);
|
|
40
|
-
}
|
|
41
|
-
// Output results
|
|
42
|
-
if (options.json) {
|
|
43
|
-
console.log(JSON.stringify(response.data, null, 2));
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
console.log(`Found ${count} element${count === 1 ? '' : 's'} matching "${selector}":`);
|
|
47
|
-
for (const node of nodes) {
|
|
48
|
-
const classInfo = node.classes && node.classes.length > 0 ? ` class="${node.classes.join(' ')}"` : '';
|
|
49
|
-
console.log(` [${node.index}] <${node.tag}${classInfo}> ${node.preview}`);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
process.exit(EXIT_CODES.SUCCESS);
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
handleCommandError(error, options.json ?? false);
|
|
56
|
-
}
|
|
30
|
+
return {
|
|
31
|
+
success: true,
|
|
32
|
+
data: response.data,
|
|
33
|
+
};
|
|
34
|
+
}, options, formatDomQuery);
|
|
57
35
|
}
|
|
58
36
|
/**
|
|
59
37
|
* Handle bdg dom highlight command
|
|
@@ -63,42 +41,34 @@ async function handleDomQuery(selector, options) {
|
|
|
63
41
|
*
|
|
64
42
|
* @param selectorOrIndex - CSS selector (e.g., ".error") or index from cached query (e.g., "2")
|
|
65
43
|
* @param options - Command options including color, opacity, targeting flags, and nodeId
|
|
66
|
-
* @throws Error When cached index not found (user must run 'bdg dom query' first)
|
|
67
|
-
* @throws Error When IPC request fails or returns error response
|
|
68
|
-
* @throws Error When response data is missing
|
|
69
44
|
*/
|
|
70
45
|
async function handleDomHighlight(selectorOrIndex, options) {
|
|
71
|
-
|
|
72
|
-
// Build
|
|
73
|
-
const ipcOptions = {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
};
|
|
79
|
-
// Add selector/index/nodeId using shared helper
|
|
80
|
-
const selectorOptions = buildSelectorOptions(selectorOrIndex, options.nodeId);
|
|
81
|
-
Object.assign(ipcOptions, selectorOptions);
|
|
82
|
-
// Send highlight request via IPC to daemon/worker
|
|
46
|
+
await runCommand(async () => {
|
|
47
|
+
// Build IPC options with selector/index/nodeId merged
|
|
48
|
+
const ipcOptions = mergeWithSelector(filterDefined({
|
|
49
|
+
color: options.color,
|
|
50
|
+
opacity: options.opacity,
|
|
51
|
+
first: options.first,
|
|
52
|
+
nth: options.nth,
|
|
53
|
+
}), selectorOrIndex, options.nodeId);
|
|
83
54
|
const response = await highlightDOM(ipcOptions);
|
|
84
55
|
if (response.status === 'error') {
|
|
85
|
-
|
|
56
|
+
return {
|
|
57
|
+
success: false,
|
|
58
|
+
error: response.error ?? 'Unknown error',
|
|
59
|
+
};
|
|
86
60
|
}
|
|
87
61
|
if (!response.data) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
console.log(JSON.stringify(response.data, null, 2));
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
error: 'No data in response',
|
|
65
|
+
};
|
|
93
66
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
catch (error) {
|
|
100
|
-
handleCommandError(error, options.json ?? false);
|
|
101
|
-
}
|
|
67
|
+
return {
|
|
68
|
+
success: true,
|
|
69
|
+
data: response.data,
|
|
70
|
+
};
|
|
71
|
+
}, options, formatDomHighlight);
|
|
102
72
|
}
|
|
103
73
|
/**
|
|
104
74
|
* Handle bdg dom get command
|
|
@@ -108,77 +78,90 @@ async function handleDomHighlight(selectorOrIndex, options) {
|
|
|
108
78
|
*
|
|
109
79
|
* @param selectorOrIndex - CSS selector (e.g., ".error") or index from cached query (e.g., "2")
|
|
110
80
|
* @param options - Command options including --all, --nth, and nodeId
|
|
111
|
-
* @throws Error When cached index not found (user must run 'bdg dom query' first)
|
|
112
|
-
* @throws Error When IPC request fails or returns error response
|
|
113
|
-
* @throws Error When response data is missing
|
|
114
81
|
*/
|
|
115
82
|
async function handleDomGet(selectorOrIndex, options) {
|
|
116
|
-
|
|
117
|
-
// Build
|
|
118
|
-
const ipcOptions = {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
};
|
|
122
|
-
// Add selector/index/nodeId using shared helper
|
|
123
|
-
const selectorOptions = buildSelectorOptions(selectorOrIndex, options.nodeId);
|
|
124
|
-
Object.assign(ipcOptions, selectorOptions);
|
|
125
|
-
// Send get request via IPC to daemon/worker
|
|
83
|
+
await runCommand(async () => {
|
|
84
|
+
// Build IPC options with selector/index/nodeId merged
|
|
85
|
+
const ipcOptions = mergeWithSelector(filterDefined({
|
|
86
|
+
all: options.all,
|
|
87
|
+
nth: options.nth,
|
|
88
|
+
}), selectorOrIndex, options.nodeId);
|
|
126
89
|
const response = await getDOM(ipcOptions);
|
|
127
90
|
if (response.status === 'error') {
|
|
128
|
-
|
|
91
|
+
return {
|
|
92
|
+
success: false,
|
|
93
|
+
error: response.error ?? 'Unknown error',
|
|
94
|
+
};
|
|
129
95
|
}
|
|
130
96
|
if (!response.data) {
|
|
131
|
-
|
|
97
|
+
return {
|
|
98
|
+
success: false,
|
|
99
|
+
error: 'No data in response',
|
|
100
|
+
};
|
|
132
101
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
102
|
+
return {
|
|
103
|
+
success: true,
|
|
104
|
+
data: response.data,
|
|
105
|
+
};
|
|
106
|
+
}, options, formatDomGet);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Handle bdg dom screenshot <path> command
|
|
110
|
+
*
|
|
111
|
+
* Captures a screenshot of the current page and saves it to disk.
|
|
112
|
+
* Supports PNG and JPEG formats with customizable quality and viewport options.
|
|
113
|
+
*
|
|
114
|
+
* @param path - Output file path (absolute or relative)
|
|
115
|
+
* @param options - Screenshot options (format, quality, fullPage)
|
|
116
|
+
*/
|
|
117
|
+
async function handleDomScreenshot(path, options) {
|
|
118
|
+
await runCommand(async () => {
|
|
119
|
+
const screenshotOptions = filterDefined({
|
|
120
|
+
format: options.format,
|
|
121
|
+
quality: options.quality,
|
|
122
|
+
fullPage: options.fullPage,
|
|
123
|
+
});
|
|
124
|
+
const response = await captureScreenshot(path, screenshotOptions);
|
|
125
|
+
if (response.status === 'error') {
|
|
126
|
+
return {
|
|
127
|
+
success: false,
|
|
128
|
+
error: response.error ?? 'Unknown error',
|
|
129
|
+
};
|
|
137
130
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
for (const [i, node] of nodes.entries()) {
|
|
145
|
-
console.log(`[${i + 1}] ${node.outerHTML}`);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
131
|
+
if (!response.data) {
|
|
132
|
+
return {
|
|
133
|
+
success: false,
|
|
134
|
+
error: 'No data in response',
|
|
135
|
+
};
|
|
148
136
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
137
|
+
return {
|
|
138
|
+
success: true,
|
|
139
|
+
data: response.data,
|
|
140
|
+
};
|
|
141
|
+
}, options, formatDomScreenshot);
|
|
154
142
|
}
|
|
155
143
|
/**
|
|
156
144
|
* Handle bdg dom eval <script> command
|
|
157
145
|
*
|
|
158
146
|
* Evaluates arbitrary JavaScript in the browser context and returns the result.
|
|
159
147
|
* Requires an active session. Uses CDP Runtime.evaluate with async support.
|
|
148
|
+
* Note: This command uses direct CDP connection (not IPC) so it follows a different pattern.
|
|
160
149
|
*
|
|
161
150
|
* @param script - JavaScript expression to evaluate (e.g., "document.title", "window.location.href")
|
|
162
151
|
* @param options - Command options including port and json formatting
|
|
163
|
-
* @throws Error When no active session is running
|
|
164
|
-
* @throws Error When session metadata is invalid
|
|
165
|
-
* @throws Error When target no longer exists (tab closed)
|
|
166
|
-
* @throws Error When CDP connection fails
|
|
167
|
-
* @throws Error When script execution throws exception
|
|
168
152
|
*/
|
|
169
153
|
async function handleDomEval(script, options) {
|
|
170
|
-
|
|
154
|
+
await runCommand(async () => {
|
|
171
155
|
// Lazy load CDP connection (only needed for eval command)
|
|
172
156
|
const { CDPConnection } = await import('../connection/cdp.js');
|
|
173
157
|
const { validateActiveSession, getValidatedSessionMetadata, verifyTargetExists, executeScript, } = await import('./domEvalHelpers.js');
|
|
174
158
|
// Validate session is running
|
|
175
|
-
|
|
176
|
-
validateActiveSession(jsonOutput);
|
|
159
|
+
validateActiveSession();
|
|
177
160
|
// Get and validate session metadata
|
|
178
|
-
const metadata = getValidatedSessionMetadata(
|
|
161
|
+
const metadata = getValidatedSessionMetadata();
|
|
179
162
|
// Verify target still exists
|
|
180
163
|
const port = parseInt(options.port ?? '9222', 10);
|
|
181
|
-
await verifyTargetExists(metadata, port
|
|
164
|
+
await verifyTargetExists(metadata, port);
|
|
182
165
|
// Create temporary CDP connection and execute script
|
|
183
166
|
const cdp = new CDPConnection();
|
|
184
167
|
// getValidatedSessionMetadata ensures webSocketDebuggerUrl is defined
|
|
@@ -186,20 +169,11 @@ async function handleDomEval(script, options) {
|
|
|
186
169
|
await cdp.connect(metadata.webSocketDebuggerUrl);
|
|
187
170
|
const result = await executeScript(cdp, script);
|
|
188
171
|
cdp.close();
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
console.log(JSON.stringify(result.result?.value, null, 2));
|
|
197
|
-
}
|
|
198
|
-
process.exit(EXIT_CODES.SUCCESS);
|
|
199
|
-
}
|
|
200
|
-
catch (error) {
|
|
201
|
-
handleCommandError(error, options.json ?? false);
|
|
202
|
-
}
|
|
172
|
+
return {
|
|
173
|
+
success: true,
|
|
174
|
+
data: { result: result.result?.value },
|
|
175
|
+
};
|
|
176
|
+
}, options, formatDomEval);
|
|
203
177
|
}
|
|
204
178
|
/**
|
|
205
179
|
* Register DOM telemetry commands
|
|
@@ -253,5 +227,17 @@ export function registerDomCommands(program) {
|
|
|
253
227
|
.action(async (selectorOrIndex, options) => {
|
|
254
228
|
await handleDomGet(selectorOrIndex, options);
|
|
255
229
|
});
|
|
230
|
+
// bdg dom screenshot <path>
|
|
231
|
+
dom
|
|
232
|
+
.command('screenshot')
|
|
233
|
+
.description('Capture page screenshot')
|
|
234
|
+
.argument('<path>', 'Output file path (e.g., "./screenshot.png")')
|
|
235
|
+
.option('--format <format>', 'Image format: png or jpeg (default: png)')
|
|
236
|
+
.option('--quality <number>', 'JPEG quality 0-100 (default: 90)', parseInt)
|
|
237
|
+
.option('--no-full-page', 'Capture viewport only (default: full page)')
|
|
238
|
+
.option('-j, --json', 'Output as JSON')
|
|
239
|
+
.action(async (path, options) => {
|
|
240
|
+
await handleDomScreenshot(path, options);
|
|
241
|
+
});
|
|
256
242
|
}
|
|
257
243
|
//# sourceMappingURL=dom.js.map
|
package/dist/commands/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/commands/dom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/commands/dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,36 +16,32 @@ interface RuntimeEvaluateResult {
|
|
|
16
16
|
/**
|
|
17
17
|
* Validate that an active session is running
|
|
18
18
|
*
|
|
19
|
-
* @param json - Whether to output JSON format
|
|
20
19
|
* @returns PID of running session
|
|
21
|
-
* @throws
|
|
20
|
+
* @throws Error When no active session is found
|
|
22
21
|
*/
|
|
23
|
-
export declare function validateActiveSession(
|
|
22
|
+
export declare function validateActiveSession(): number;
|
|
24
23
|
/**
|
|
25
24
|
* Get session metadata with validation
|
|
26
25
|
*
|
|
27
|
-
* @param json - Whether to output JSON format
|
|
28
26
|
* @returns Session metadata including targetId and webSocketDebuggerUrl
|
|
29
|
-
* @throws
|
|
27
|
+
* @throws Error When metadata is invalid or missing required fields
|
|
30
28
|
*/
|
|
31
|
-
export declare function getValidatedSessionMetadata(
|
|
29
|
+
export declare function getValidatedSessionMetadata(): SessionMetadata;
|
|
32
30
|
/**
|
|
33
31
|
* Verify that the CDP target still exists
|
|
34
32
|
*
|
|
35
33
|
* @param metadata - Session metadata containing targetId
|
|
36
34
|
* @param port - CDP port number
|
|
37
|
-
* @
|
|
38
|
-
* @throws Error When CDP response is invalid
|
|
39
|
-
* @throws never Exits process if target not found
|
|
35
|
+
* @throws Error When CDP response is invalid or target not found
|
|
40
36
|
*/
|
|
41
|
-
export declare function verifyTargetExists(metadata: SessionMetadata, port: number
|
|
37
|
+
export declare function verifyTargetExists(metadata: SessionMetadata, port: number): Promise<void>;
|
|
42
38
|
/**
|
|
43
39
|
* Execute JavaScript in browser context via CDP
|
|
44
40
|
*
|
|
45
41
|
* @param cdp - CDP connection instance
|
|
46
42
|
* @param script - JavaScript expression to execute
|
|
47
43
|
* @returns Execution result
|
|
48
|
-
* @throws Error When script execution throws exception
|
|
44
|
+
* @throws Error When script execution throws exception or returns invalid response
|
|
49
45
|
*/
|
|
50
46
|
export declare function executeScript(cdp: CDPConnection, script: string): Promise<RuntimeEvaluateResult>;
|
|
51
47
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domEvalHelpers.d.ts","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAclF;;GAEG;AACH,UAAU,qBAAqB;IAC7B,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE;YACV,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"domEvalHelpers.d.ts","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAclF;;GAEG;AACH,UAAU,qBAAqB;IAC7B,gBAAgB,CAAC,EAAE;QACjB,SAAS,CAAC,EAAE;YACV,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAoDD;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAU9C;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,eAAe,CAY7D;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB/F;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC,CA2BhC"}
|
|
@@ -1,35 +1,75 @@
|
|
|
1
1
|
import { readSessionMetadata } from '../session/metadata.js';
|
|
2
2
|
import { readPid } from '../session/pid.js';
|
|
3
3
|
import { isProcessAlive } from '../session/process.js';
|
|
4
|
+
import { CommandError } from '../ui/errors/index.js';
|
|
5
|
+
import { invalidCDPResponseError } from '../ui/messages/errors.js';
|
|
4
6
|
import { EXIT_CODES } from '../utils/exitCodes.js';
|
|
5
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Type guard to validate CDP Runtime.evaluate response structure
|
|
9
|
+
*
|
|
10
|
+
* @param value - Value to check
|
|
11
|
+
* @returns True if value is a valid RuntimeEvaluateResult
|
|
12
|
+
*/
|
|
13
|
+
function isRuntimeEvaluateResult(value) {
|
|
14
|
+
if (typeof value !== 'object' || value === null) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const obj = value;
|
|
18
|
+
// Must have either result or exceptionDetails (or both)
|
|
19
|
+
if (!('result' in obj) && !('exceptionDetails' in obj)) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
// Validate exceptionDetails structure if present
|
|
23
|
+
if ('exceptionDetails' in obj) {
|
|
24
|
+
const exceptionDetails = obj['exceptionDetails'];
|
|
25
|
+
if (typeof exceptionDetails !== 'object' || exceptionDetails === null) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
const details = exceptionDetails;
|
|
29
|
+
if ('exception' in details) {
|
|
30
|
+
const exception = details['exception'];
|
|
31
|
+
if (typeof exception !== 'object' || exception === null) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const exObj = exception;
|
|
35
|
+
if ('description' in exObj && typeof exObj['description'] !== 'string') {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Validate result structure if present
|
|
41
|
+
if ('result' in obj) {
|
|
42
|
+
const result = obj['result'];
|
|
43
|
+
if (typeof result !== 'object' || result === null) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
6
49
|
/**
|
|
7
50
|
* Validate that an active session is running
|
|
8
51
|
*
|
|
9
|
-
* @param json - Whether to output JSON format
|
|
10
52
|
* @returns PID of running session
|
|
11
|
-
* @throws
|
|
53
|
+
* @throws Error When no active session is found
|
|
12
54
|
*/
|
|
13
|
-
export function validateActiveSession(
|
|
55
|
+
export function validateActiveSession() {
|
|
14
56
|
const pid = readPid();
|
|
15
57
|
if (!pid || !isProcessAlive(pid)) {
|
|
16
|
-
|
|
58
|
+
throw new CommandError('No active session running', { suggestion: 'Start a session with: bdg <url>' }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
17
59
|
}
|
|
18
60
|
return pid;
|
|
19
61
|
}
|
|
20
62
|
/**
|
|
21
63
|
* Get session metadata with validation
|
|
22
64
|
*
|
|
23
|
-
* @param json - Whether to output JSON format
|
|
24
65
|
* @returns Session metadata including targetId and webSocketDebuggerUrl
|
|
25
|
-
* @throws
|
|
66
|
+
* @throws Error When metadata is invalid or missing required fields
|
|
26
67
|
*/
|
|
27
|
-
export function getValidatedSessionMetadata(
|
|
68
|
+
export function getValidatedSessionMetadata() {
|
|
28
69
|
const metadata = readSessionMetadata();
|
|
29
70
|
if (!metadata?.targetId || !metadata.webSocketDebuggerUrl) {
|
|
30
|
-
|
|
71
|
+
throw new CommandError('No target information in session metadata', { note: 'Session may have been started with an older version' }, EXIT_CODES.SESSION_FILE_ERROR);
|
|
31
72
|
}
|
|
32
|
-
// TypeScript doesn't know handleCommandErrorWithContext never returns
|
|
33
73
|
return metadata;
|
|
34
74
|
}
|
|
35
75
|
/**
|
|
@@ -37,19 +77,17 @@ export function getValidatedSessionMetadata(json) {
|
|
|
37
77
|
*
|
|
38
78
|
* @param metadata - Session metadata containing targetId
|
|
39
79
|
* @param port - CDP port number
|
|
40
|
-
* @
|
|
41
|
-
* @throws Error When CDP response is invalid
|
|
42
|
-
* @throws never Exits process if target not found
|
|
80
|
+
* @throws Error When CDP response is invalid or target not found
|
|
43
81
|
*/
|
|
44
|
-
export async function verifyTargetExists(metadata, port
|
|
82
|
+
export async function verifyTargetExists(metadata, port) {
|
|
45
83
|
const response = await fetch(`http://127.0.0.1:${port}/json/list`);
|
|
46
84
|
const targetsData = await response.json();
|
|
47
85
|
if (!Array.isArray(targetsData)) {
|
|
48
|
-
throw new Error(
|
|
86
|
+
throw new Error(invalidCDPResponseError());
|
|
49
87
|
}
|
|
50
88
|
const target = targetsData.find((t) => t.id === metadata.targetId);
|
|
51
89
|
if (!target) {
|
|
52
|
-
|
|
90
|
+
throw new CommandError('Session target not found (tab may have been closed)', { suggestion: 'Start a new session with: bdg <url>' }, EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
53
91
|
}
|
|
54
92
|
}
|
|
55
93
|
/**
|
|
@@ -58,19 +96,26 @@ export async function verifyTargetExists(metadata, port, json) {
|
|
|
58
96
|
* @param cdp - CDP connection instance
|
|
59
97
|
* @param script - JavaScript expression to execute
|
|
60
98
|
* @returns Execution result
|
|
61
|
-
* @throws Error When script execution throws exception
|
|
99
|
+
* @throws Error When script execution throws exception or returns invalid response
|
|
62
100
|
*/
|
|
63
101
|
export async function executeScript(cdp, script) {
|
|
64
|
-
const
|
|
102
|
+
const response = await cdp.send('Runtime.evaluate', {
|
|
65
103
|
expression: script,
|
|
66
104
|
returnByValue: true,
|
|
67
105
|
awaitPromise: true,
|
|
68
|
-
})
|
|
106
|
+
});
|
|
107
|
+
// Validate response structure at runtime
|
|
108
|
+
if (!isRuntimeEvaluateResult(response)) {
|
|
109
|
+
throw new CommandError('Invalid CDP Runtime.evaluate response structure', {
|
|
110
|
+
note: 'CDP response did not match expected format',
|
|
111
|
+
suggestion: 'This may indicate a CDP protocol version mismatch',
|
|
112
|
+
}, EXIT_CODES.CDP_CONNECTION_FAILURE);
|
|
113
|
+
}
|
|
69
114
|
// Check for execution exceptions
|
|
70
|
-
if (
|
|
71
|
-
const errorMsg =
|
|
115
|
+
if (response.exceptionDetails) {
|
|
116
|
+
const errorMsg = response.exceptionDetails.exception?.description ?? 'Unknown error executing script';
|
|
72
117
|
throw new Error(errorMsg);
|
|
73
118
|
}
|
|
74
|
-
return
|
|
119
|
+
return response;
|
|
75
120
|
}
|
|
76
121
|
//# sourceMappingURL=domEvalHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domEvalHelpers.js","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"domEvalHelpers.js","sourceRoot":"","sources":["../../src/commands/domEvalHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,4 +32,36 @@ export interface SelectorBasedOptions {
|
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
34
|
export declare function buildSelectorOptions<T extends SelectorBasedOptions>(selectorOrIndex: string, nodeId: number | undefined): T;
|
|
35
|
+
/**
|
|
36
|
+
* Merge base options with selector-based options.
|
|
37
|
+
*
|
|
38
|
+
* Convenience helper that combines buildSelectorOptions with base options object.
|
|
39
|
+
* Eliminates the repeated pattern of:
|
|
40
|
+
* ```
|
|
41
|
+
* const selectorOpts = buildSelectorOptions(...);
|
|
42
|
+
* Object.assign(ipcOptions, selectorOpts);
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @param baseOptions - Base IPC options object
|
|
46
|
+
* @param selectorOrIndex - CSS selector or cached index
|
|
47
|
+
* @param nodeId - Optional direct nodeId
|
|
48
|
+
* @returns Merged options object with selector/index/nodeId added
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* // Instead of:
|
|
53
|
+
* const ipcOptions = { color: 'red', opacity: 0.5 };
|
|
54
|
+
* const selectorOptions = buildSelectorOptions('.error', undefined);
|
|
55
|
+
* Object.assign(ipcOptions, selectorOptions);
|
|
56
|
+
*
|
|
57
|
+
* // Use:
|
|
58
|
+
* const ipcOptions = mergeWithSelector(
|
|
59
|
+
* { color: 'red', opacity: 0.5 },
|
|
60
|
+
* '.error',
|
|
61
|
+
* undefined
|
|
62
|
+
* );
|
|
63
|
+
* // → { color: 'red', opacity: 0.5, selector: '.error' }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function mergeWithSelector<T extends SelectorBasedOptions>(baseOptions: T, selectorOrIndex: string, nodeId: number | undefined): T;
|
|
35
67
|
//# sourceMappingURL=domOptionsBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domOptionsBuilder.d.ts","sourceRoot":"","sources":["../../src/commands/domOptionsBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,oBAAoB,EACjE,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,CAAC,CA2BH"}
|
|
1
|
+
{"version":3,"file":"domOptionsBuilder.d.ts","sourceRoot":"","sources":["../../src/commands/domOptionsBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,oBAAoB,EACjE,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,CAAC,CA2BH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,oBAAoB,EAC9D,WAAW,EAAE,CAAC,EACd,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,CAAC,CAGH"}
|