browser-debugger-cli 0.0.1-alpha.0 → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +167 -52
- package/dist/__testfixtures__/cdpMessages.d.ts +43 -0
- package/dist/__testfixtures__/cdpMessages.d.ts.map +1 -0
- package/dist/__testfixtures__/cdpMessages.js +118 -0
- package/dist/__testfixtures__/cdpMessages.js.map +1 -0
- package/dist/__testfixtures__/connectionTargets.d.ts +21 -0
- package/dist/__testfixtures__/connectionTargets.d.ts.map +1 -0
- package/dist/__testfixtures__/connectionTargets.js +59 -0
- package/dist/__testfixtures__/connectionTargets.js.map +1 -0
- package/dist/__tests__/integration/session-files.integration.test.d.ts +2 -0
- package/dist/__tests__/integration/session-files.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/session-files.integration.test.js +66 -0
- package/dist/__tests__/integration/session-files.integration.test.js.map +1 -0
- package/dist/__testutils__/FakeClock.d.ts +67 -0
- package/dist/__testutils__/FakeClock.d.ts.map +1 -0
- package/dist/__testutils__/FakeClock.js +132 -0
- package/dist/__testutils__/FakeClock.js.map +1 -0
- package/dist/__testutils__/FakeWebSocket.d.ts +106 -0
- package/dist/__testutils__/FakeWebSocket.d.ts.map +1 -0
- package/dist/__testutils__/FakeWebSocket.js +213 -0
- package/dist/__testutils__/FakeWebSocket.js.map +1 -0
- package/dist/__testutils__/assertions.d.ts +33 -0
- package/dist/__testutils__/assertions.d.ts.map +1 -0
- package/dist/__testutils__/assertions.js +57 -0
- package/dist/__testutils__/assertions.js.map +1 -0
- package/dist/__testutils__/index.d.ts +15 -0
- package/dist/__testutils__/index.d.ts.map +1 -0
- package/dist/__testutils__/index.js +15 -0
- package/dist/__testutils__/index.js.map +1 -0
- package/dist/__testutils__/testClock.d.ts +28 -0
- package/dist/__testutils__/testClock.d.ts.map +1 -0
- package/dist/__testutils__/testClock.js +81 -0
- package/dist/__testutils__/testClock.js.map +1 -0
- package/dist/__testutils__/testFixtures.d.ts +15 -0
- package/dist/__testutils__/testFixtures.d.ts.map +1 -0
- package/dist/__testutils__/testFixtures.js +23 -0
- package/dist/__testutils__/testFixtures.js.map +1 -0
- package/dist/__testutils__/testProcess.d.ts +46 -0
- package/dist/__testutils__/testProcess.d.ts.map +1 -0
- package/dist/__testutils__/testProcess.js +77 -0
- package/dist/__testutils__/testProcess.js.map +1 -0
- package/dist/cli/collectors/dom.d.ts +8 -0
- package/dist/cli/collectors/dom.d.ts.map +1 -0
- package/dist/cli/collectors/dom.js +361 -0
- package/dist/cli/collectors/dom.js.map +1 -0
- package/dist/cli/collectors/helpers/domCache.d.ts +40 -0
- package/dist/cli/collectors/helpers/domCache.d.ts.map +1 -0
- package/dist/cli/collectors/helpers/domCache.js +79 -0
- package/dist/cli/collectors/helpers/domCache.js.map +1 -0
- package/dist/cli/collectors/helpers/domQuery.d.ts +45 -0
- package/dist/cli/collectors/helpers/domQuery.d.ts.map +1 -0
- package/dist/cli/collectors/helpers/domQuery.js +100 -0
- package/dist/cli/collectors/helpers/domQuery.js.map +1 -0
- package/dist/cli/collectors/helpers/selectorParser.d.ts +20 -0
- package/dist/cli/collectors/helpers/selectorParser.d.ts.map +1 -0
- package/dist/cli/collectors/helpers/selectorParser.js +20 -0
- package/dist/cli/collectors/helpers/selectorParser.js.map +1 -0
- package/dist/cli/commands/__tests__/cdp.contract.test.d.ts +24 -0
- package/dist/cli/commands/__tests__/cdp.contract.test.d.ts.map +1 -0
- package/dist/cli/commands/__tests__/cdp.contract.test.js +467 -0
- package/dist/cli/commands/__tests__/cdp.contract.test.js.map +1 -0
- package/dist/cli/commands/__tests__/ipcTest.test.d.ts +2 -0
- package/dist/cli/commands/__tests__/ipcTest.test.d.ts.map +1 -0
- package/dist/cli/commands/__tests__/ipcTest.test.js +37 -0
- package/dist/cli/commands/__tests__/ipcTest.test.js.map +1 -0
- package/dist/cli/commands/cdp.d.ts +8 -0
- package/dist/cli/commands/cdp.d.ts.map +1 -0
- package/dist/cli/commands/cdp.js +45 -0
- package/dist/cli/commands/cdp.js.map +1 -0
- package/dist/cli/commands/cleanup.d.ts +8 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/cleanup.js +130 -0
- package/dist/cli/commands/cleanup.js.map +1 -0
- package/dist/cli/commands/console.d.ts +8 -0
- package/dist/cli/commands/console.d.ts.map +1 -0
- package/dist/cli/commands/console.js +97 -0
- package/dist/cli/commands/console.js.map +1 -0
- package/dist/cli/commands/details.d.ts +8 -0
- package/dist/cli/commands/details.d.ts.map +1 -0
- package/dist/cli/commands/details.js +68 -0
- package/dist/cli/commands/details.js.map +1 -0
- package/dist/cli/commands/dom/helpers/domCache.d.ts +36 -0
- package/dist/cli/commands/dom/helpers/domCache.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/domCache.js +65 -0
- package/dist/cli/commands/dom/helpers/domCache.js.map +1 -0
- package/dist/cli/commands/dom/helpers/domQuery.d.ts +48 -0
- package/dist/cli/commands/dom/helpers/domQuery.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/domQuery.js +104 -0
- package/dist/cli/commands/dom/helpers/domQuery.js.map +1 -0
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts +45 -0
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/errorHandler.js +70 -0
- package/dist/cli/commands/dom/helpers/errorHandler.js.map +1 -0
- package/dist/cli/commands/dom/helpers/evalHelpers.d.ts +52 -0
- package/dist/cli/commands/dom/helpers/evalHelpers.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/evalHelpers.js +75 -0
- package/dist/cli/commands/dom/helpers/evalHelpers.js.map +1 -0
- package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts +35 -0
- package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/optionsBuilder.js +51 -0
- package/dist/cli/commands/dom/helpers/optionsBuilder.js.map +1 -0
- package/dist/cli/commands/dom/helpers/selectorParser.d.ts +20 -0
- package/dist/cli/commands/dom/helpers/selectorParser.d.ts.map +1 -0
- package/dist/cli/commands/dom/helpers/selectorParser.js +20 -0
- package/dist/cli/commands/dom/helpers/selectorParser.js.map +1 -0
- package/dist/cli/commands/dom/index.d.ts +8 -0
- package/dist/cli/commands/dom/index.d.ts.map +1 -0
- package/dist/cli/commands/dom/index.js +257 -0
- package/dist/cli/commands/dom/index.js.map +1 -0
- package/dist/cli/commands/ipcTest.d.ts +23 -0
- package/dist/cli/commands/ipcTest.d.ts.map +1 -0
- package/dist/cli/commands/ipcTest.js +181 -0
- package/dist/cli/commands/ipcTest.js.map +1 -0
- package/dist/cli/commands/network.d.ts +8 -0
- package/dist/cli/commands/network.d.ts.map +1 -0
- package/dist/cli/commands/network.js +40 -0
- package/dist/cli/commands/network.js.map +1 -0
- package/dist/cli/commands/peek.d.ts +8 -0
- package/dist/cli/commands/peek.d.ts.map +1 -0
- package/dist/cli/commands/peek.js +109 -0
- package/dist/cli/commands/peek.js.map +1 -0
- package/dist/cli/commands/query.d.ts +9 -0
- package/dist/cli/commands/query.d.ts.map +1 -0
- package/dist/cli/commands/query.js +127 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/start.d.ts +9 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +78 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +9 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +84 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +8 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +146 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/formatters/detailsFormatter.d.ts +10 -0
- package/dist/cli/formatters/detailsFormatter.d.ts.map +1 -0
- package/dist/cli/formatters/detailsFormatter.js +63 -0
- package/dist/cli/formatters/detailsFormatter.js.map +1 -0
- package/dist/cli/formatters/previewFormatter.d.ts +27 -0
- package/dist/cli/formatters/previewFormatter.d.ts.map +1 -0
- package/dist/cli/formatters/previewFormatter.js +160 -0
- package/dist/cli/formatters/previewFormatter.js.map +1 -0
- package/dist/cli/formatters/statusFormatter.d.ts +34 -0
- package/dist/cli/formatters/statusFormatter.d.ts.map +1 -0
- package/dist/cli/formatters/statusFormatter.js +108 -0
- package/dist/cli/formatters/statusFormatter.js.map +1 -0
- package/dist/cli/handlers/ChromeBootstrap.d.ts +24 -0
- package/dist/cli/handlers/ChromeBootstrap.d.ts.map +1 -0
- package/dist/cli/handlers/ChromeBootstrap.js +50 -0
- package/dist/cli/handlers/ChromeBootstrap.js.map +1 -0
- package/dist/cli/handlers/CommandRunner.d.ts +60 -0
- package/dist/cli/handlers/CommandRunner.d.ts.map +1 -0
- package/dist/cli/handlers/CommandRunner.js +81 -0
- package/dist/cli/handlers/CommandRunner.js.map +1 -0
- package/dist/cli/handlers/OutputBuilder.d.ts +60 -0
- package/dist/cli/handlers/OutputBuilder.d.ts.map +1 -0
- package/dist/cli/handlers/OutputBuilder.js +138 -0
- package/dist/cli/handlers/OutputBuilder.js.map +1 -0
- package/dist/cli/handlers/OutputWriter.d.ts +15 -0
- package/dist/cli/handlers/OutputWriter.d.ts.map +1 -0
- package/dist/cli/handlers/OutputWriter.js +34 -0
- package/dist/cli/handlers/OutputWriter.js.map +1 -0
- package/dist/cli/handlers/PreviewWriter.d.ts +52 -0
- package/dist/cli/handlers/PreviewWriter.d.ts.map +1 -0
- package/dist/cli/handlers/PreviewWriter.js +119 -0
- package/dist/cli/handlers/PreviewWriter.js.map +1 -0
- package/dist/cli/handlers/SessionLock.d.ts +16 -0
- package/dist/cli/handlers/SessionLock.d.ts.map +1 -0
- package/dist/cli/handlers/SessionLock.js +38 -0
- package/dist/cli/handlers/SessionLock.js.map +1 -0
- package/dist/cli/handlers/SessionLoop.d.ts +19 -0
- package/dist/cli/handlers/SessionLoop.d.ts.map +1 -0
- package/dist/cli/handlers/SessionLoop.js +47 -0
- package/dist/cli/handlers/SessionLoop.js.map +1 -0
- package/dist/cli/handlers/ShutdownController.d.ts +38 -0
- package/dist/cli/handlers/ShutdownController.d.ts.map +1 -0
- package/dist/cli/handlers/ShutdownController.js +83 -0
- package/dist/cli/handlers/ShutdownController.js.map +1 -0
- package/dist/cli/handlers/SignalHandler.d.ts +35 -0
- package/dist/cli/handlers/SignalHandler.d.ts.map +1 -0
- package/dist/cli/handlers/SignalHandler.js +81 -0
- package/dist/cli/handlers/SignalHandler.js.map +1 -0
- package/dist/cli/handlers/TargetSetup.d.ts +42 -0
- package/dist/cli/handlers/TargetSetup.d.ts.map +1 -0
- package/dist/cli/handlers/TargetSetup.js +87 -0
- package/dist/cli/handlers/TargetSetup.js.map +1 -0
- package/dist/cli/handlers/commonOptions.d.ts +54 -0
- package/dist/cli/handlers/commonOptions.d.ts.map +1 -0
- package/dist/cli/handlers/commonOptions.js +64 -0
- package/dist/cli/handlers/commonOptions.js.map +1 -0
- package/dist/cli/handlers/daemonSessionController.d.ts +23 -0
- package/dist/cli/handlers/daemonSessionController.d.ts.map +1 -0
- package/dist/cli/handlers/daemonSessionController.js +108 -0
- package/dist/cli/handlers/daemonSessionController.js.map +1 -0
- package/dist/cli/handlers/sessionController.d.ts +21 -0
- package/dist/cli/handlers/sessionController.d.ts.map +1 -0
- package/dist/cli/handlers/sessionController.js +55 -0
- package/dist/cli/handlers/sessionController.js.map +1 -0
- package/dist/cli/registry.d.ts +11 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +46 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/collectors/__tests__/network.contract.test.d.ts +28 -0
- package/dist/collectors/__tests__/network.contract.test.d.ts.map +1 -0
- package/dist/collectors/__tests__/network.contract.test.js +525 -0
- package/dist/collectors/__tests__/network.contract.test.js.map +1 -0
- package/dist/collectors/console.d.ts +5 -3
- package/dist/collectors/console.d.ts.map +1 -1
- package/dist/collectors/console.js +48 -26
- package/dist/collectors/console.js.map +1 -1
- package/dist/collectors/dom.d.ts +2 -2
- package/dist/collectors/dom.d.ts.map +1 -1
- package/dist/collectors/dom.js +23 -12
- package/dist/collectors/dom.js.map +1 -1
- package/dist/collectors/network.d.ts +18 -4
- package/dist/collectors/network.d.ts.map +1 -1
- package/dist/collectors/network.js +111 -34
- package/dist/collectors/network.js.map +1 -1
- package/dist/connection/__tests__/cdp.contract.test.d.ts +16 -0
- package/dist/connection/__tests__/cdp.contract.test.d.ts.map +1 -0
- package/dist/connection/__tests__/cdp.contract.test.js +378 -0
- package/dist/connection/__tests__/cdp.contract.test.js.map +1 -0
- package/dist/connection/__tests__/finder.contract.test.d.ts +2 -0
- package/dist/connection/__tests__/finder.contract.test.d.ts.map +1 -0
- package/dist/connection/__tests__/finder.contract.test.js +239 -0
- package/dist/connection/__tests__/finder.contract.test.js.map +1 -0
- package/dist/connection/__tests__/tabs.contract.test.d.ts +2 -0
- package/dist/connection/__tests__/tabs.contract.test.d.ts.map +1 -0
- package/dist/connection/__tests__/tabs.contract.test.js +137 -0
- package/dist/connection/__tests__/tabs.contract.test.js.map +1 -0
- package/dist/connection/cdp.d.ts +165 -16
- package/dist/connection/cdp.d.ts.map +1 -1
- package/dist/connection/cdp.js +342 -122
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/finder.d.ts +5 -4
- package/dist/connection/finder.d.ts.map +1 -1
- package/dist/connection/finder.js +10 -16
- package/dist/connection/finder.js.map +1 -1
- package/dist/connection/launcher.d.ts +18 -11
- package/dist/connection/launcher.d.ts.map +1 -1
- package/dist/connection/launcher.js +148 -82
- package/dist/connection/launcher.js.map +1 -1
- package/dist/connection/tabs.d.ts +47 -14
- package/dist/connection/tabs.d.ts.map +1 -1
- package/dist/connection/tabs.js +493 -132
- package/dist/connection/tabs.js.map +1 -1
- package/dist/constants.d.ts +209 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +232 -0
- package/dist/constants.js.map +1 -0
- package/dist/daemon/__tests__/ipcServer.contract.test.d.ts +23 -0
- package/dist/daemon/__tests__/ipcServer.contract.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/ipcServer.contract.test.js +401 -0
- package/dist/daemon/__tests__/ipcServer.contract.test.js.map +1 -0
- package/dist/daemon/__tests__/launcher.unit.test.d.ts +8 -0
- package/dist/daemon/__tests__/launcher.unit.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/launcher.unit.test.js +20 -0
- package/dist/daemon/__tests__/launcher.unit.test.js.map +1 -0
- package/dist/daemon/ipcServer.d.ts +83 -0
- package/dist/daemon/ipcServer.d.ts.map +1 -0
- package/dist/daemon/ipcServer.js +670 -0
- package/dist/daemon/ipcServer.js.map +1 -0
- package/dist/daemon/launcher.d.ts +31 -0
- package/dist/daemon/launcher.d.ts.map +1 -0
- package/dist/daemon/launcher.js +137 -0
- package/dist/daemon/launcher.js.map +1 -0
- package/dist/daemon/startSession.d.ts +51 -0
- package/dist/daemon/startSession.d.ts.map +1 -0
- package/dist/daemon/startSession.js +149 -0
- package/dist/daemon/startSession.js.map +1 -0
- package/dist/daemon/worker.d.ts +18 -0
- package/dist/daemon/worker.d.ts.map +1 -0
- package/dist/daemon/worker.js +623 -0
- package/dist/daemon/worker.js.map +1 -0
- package/dist/daemon/workerIpc.d.ts +33 -0
- package/dist/daemon/workerIpc.d.ts.map +1 -0
- package/dist/daemon/workerIpc.js +8 -0
- package/dist/daemon/workerIpc.js.map +1 -0
- package/dist/daemon.d.ts +10 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +32 -0
- package/dist/daemon.js.map +1 -0
- package/dist/index.js +41 -420
- package/dist/index.js.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.d.ts +23 -0
- package/dist/ipc/__tests__/client.contract.test.d.ts.map +1 -0
- package/dist/ipc/__tests__/client.contract.test.js +466 -0
- package/dist/ipc/__tests__/client.contract.test.js.map +1 -0
- package/dist/ipc/client.d.ts +109 -0
- package/dist/ipc/client.d.ts.map +1 -0
- package/dist/ipc/client.js +220 -0
- package/dist/ipc/client.js.map +1 -0
- package/dist/ipc/commands.d.ts +208 -0
- package/dist/ipc/commands.d.ts.map +1 -0
- package/dist/ipc/commands.js +69 -0
- package/dist/ipc/commands.js.map +1 -0
- package/dist/ipc/responseValidator.d.ts +40 -0
- package/dist/ipc/responseValidator.d.ts.map +1 -0
- package/dist/ipc/responseValidator.js +28 -0
- package/dist/ipc/responseValidator.js.map +1 -0
- package/dist/ipc/types.d.ts +193 -0
- package/dist/ipc/types.d.ts.map +1 -0
- package/dist/ipc/types.js +21 -0
- package/dist/ipc/types.js.map +1 -0
- package/dist/session/BdgSession.d.ts +71 -4
- package/dist/session/BdgSession.d.ts.map +1 -1
- package/dist/session/BdgSession.js +173 -75
- package/dist/session/BdgSession.js.map +1 -1
- package/dist/session/chrome.d.ts +46 -0
- package/dist/session/chrome.d.ts.map +1 -0
- package/dist/session/chrome.js +92 -0
- package/dist/session/chrome.js.map +1 -0
- package/dist/session/cleanup.d.ts +45 -0
- package/dist/session/cleanup.d.ts.map +1 -0
- package/dist/session/cleanup.js +230 -0
- package/dist/session/cleanup.js.map +1 -0
- package/dist/session/index.d.ts +15 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +23 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/lock.d.ts +57 -0
- package/dist/session/lock.d.ts.map +1 -0
- package/dist/session/lock.js +154 -0
- package/dist/session/lock.js.map +1 -0
- package/dist/session/metadata.d.ts +59 -0
- package/dist/session/metadata.d.ts.map +1 -0
- package/dist/session/metadata.js +71 -0
- package/dist/session/metadata.js.map +1 -0
- package/dist/session/output.d.ts +18 -0
- package/dist/session/output.d.ts.map +1 -0
- package/dist/session/output.js +24 -0
- package/dist/session/output.js.map +1 -0
- package/dist/session/paths.d.ts +73 -0
- package/dist/session/paths.d.ts.map +1 -0
- package/dist/session/paths.js +84 -0
- package/dist/session/paths.js.map +1 -0
- package/dist/session/pid.d.ts +40 -0
- package/dist/session/pid.d.ts.map +1 -0
- package/dist/session/pid.js +73 -0
- package/dist/session/pid.js.map +1 -0
- package/dist/session/process.d.ts +45 -0
- package/dist/session/process.d.ts.map +1 -0
- package/dist/session/process.js +88 -0
- package/dist/session/process.js.map +1 -0
- package/dist/types.d.ts +114 -38
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/__tests__/filters.unit.test.d.ts +2 -0
- package/dist/utils/__tests__/filters.unit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/filters.unit.test.js +239 -0
- package/dist/utils/__tests__/filters.unit.test.js.map +1 -0
- package/dist/utils/__tests__/session.contract.test.d.ts +2 -0
- package/dist/utils/__tests__/session.contract.test.d.ts.map +1 -0
- package/dist/utils/__tests__/session.contract.test.js +234 -0
- package/dist/utils/__tests__/session.contract.test.js.map +1 -0
- package/dist/utils/atomicFile.d.ts +38 -0
- package/dist/utils/atomicFile.d.ts.map +1 -0
- package/dist/utils/atomicFile.js +71 -0
- package/dist/utils/atomicFile.js.map +1 -0
- package/dist/utils/cdpHandlers.d.ts +31 -0
- package/dist/utils/cdpHandlers.d.ts.map +1 -0
- package/dist/utils/cdpHandlers.js +38 -0
- package/dist/utils/cdpHandlers.js.map +1 -0
- package/dist/utils/chromeDiagnostics.d.ts +28 -0
- package/dist/utils/chromeDiagnostics.d.ts.map +1 -0
- package/dist/utils/chromeDiagnostics.js +88 -0
- package/dist/utils/chromeDiagnostics.js.map +1 -0
- package/dist/utils/errors.d.ts +82 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +88 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/exitCodes.d.ts +32 -0
- package/dist/utils/exitCodes.d.ts.map +1 -0
- package/dist/utils/exitCodes.js +36 -0
- package/dist/utils/exitCodes.js.map +1 -0
- package/dist/utils/filters.d.ts +108 -0
- package/dist/utils/filters.d.ts.map +1 -0
- package/dist/utils/filters.js +304 -0
- package/dist/utils/filters.js.map +1 -0
- package/dist/utils/formatters/network.d.ts +23 -0
- package/dist/utils/formatters/network.d.ts.map +1 -0
- package/dist/utils/formatters/network.js +35 -0
- package/dist/utils/formatters/network.js.map +1 -0
- package/dist/utils/http.d.ts +34 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +48 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/logger.d.ts +42 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +43 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/objects.d.ts +23 -0
- package/dist/utils/objects.d.ts.map +1 -0
- package/dist/utils/objects.js +25 -0
- package/dist/utils/objects.js.map +1 -0
- package/dist/utils/url/safeParseUrl.d.ts +63 -0
- package/dist/utils/url/safeParseUrl.d.ts.map +1 -0
- package/dist/utils/url/safeParseUrl.js +84 -0
- package/dist/utils/url/safeParseUrl.js.map +1 -0
- package/dist/utils/url.d.ts +63 -1
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +152 -2
- package/dist/utils/url.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/version.d.ts +3 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +27 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +57 -10
- package/dist/utils/pageLoad.d.ts +0 -21
- package/dist/utils/pageLoad.d.ts.map +0 -1
- package/dist/utils/pageLoad.js +0 -85
- package/dist/utils/pageLoad.js.map +0 -1
- package/dist/utils/session.d.ts +0 -104
- package/dist/utils/session.d.ts.map +0 -1
- package/dist/utils/session.js +0 -244
- package/dist/utils/session.js.map +0 -1
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-floating-promises */
|
|
2
|
+
/**
|
|
3
|
+
* CDP Command Contract Tests
|
|
4
|
+
*
|
|
5
|
+
* Tests the public API behavior of raw CDP command execution WITHOUT testing implementation details.
|
|
6
|
+
* Follows the testing philosophy: "Test the contract, not the implementation"
|
|
7
|
+
*
|
|
8
|
+
* Contract Coverage:
|
|
9
|
+
* 1. callCDP() IPC client function (src/ipc/client.ts:298)
|
|
10
|
+
* 2. bdg cdp CLI command (src/cli/commands/cdp.ts)
|
|
11
|
+
* 3. cdp_call IPC command routing (daemon/worker)
|
|
12
|
+
* 4. End-to-end flow: CLI → IPC client → daemon → worker → CDP → response
|
|
13
|
+
*
|
|
14
|
+
* What we test:
|
|
15
|
+
* ✅ Behavior: CDP method execution → result returned
|
|
16
|
+
* ✅ Invariants: "CDP calls reach the browser", "Results propagate back correctly"
|
|
17
|
+
* ✅ Edge cases: Invalid methods, missing params, CDP errors, timeout
|
|
18
|
+
*
|
|
19
|
+
* What we DON'T test:
|
|
20
|
+
* ❌ How sendCommand() works internally
|
|
21
|
+
* ❌ How the daemon routes messages
|
|
22
|
+
* ❌ How the worker parses requests
|
|
23
|
+
*/
|
|
24
|
+
import assert from 'node:assert/strict';
|
|
25
|
+
import { afterEach, beforeEach, describe, it } from 'node:test';
|
|
26
|
+
import { createResponse, createErrorResponse } from '../../../__testfixtures__/cdpMessages.js';
|
|
27
|
+
import { FakeWebSocket } from '../../../__testutils__/FakeWebSocket.js';
|
|
28
|
+
import { CDPConnection } from '../../../connection/cdp.js';
|
|
29
|
+
import { validateIPCResponse } from '../../../ipc/responseValidator.js';
|
|
30
|
+
/**
|
|
31
|
+
* Mock CDP connection that simulates browser responses
|
|
32
|
+
*/
|
|
33
|
+
class MockCDPConnection extends CDPConnection {
|
|
34
|
+
mockSocket;
|
|
35
|
+
constructor() {
|
|
36
|
+
const mockSocket = new FakeWebSocket();
|
|
37
|
+
super(() => mockSocket);
|
|
38
|
+
this.mockSocket = mockSocket;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Connect and open the mock WebSocket
|
|
42
|
+
*/
|
|
43
|
+
async connectAndOpen() {
|
|
44
|
+
const connectPromise = this.connect('ws://localhost:9222/devtools/browser');
|
|
45
|
+
this.mockSocket.simulateOpen();
|
|
46
|
+
await connectPromise;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Simulate CDP response for next command
|
|
50
|
+
*/
|
|
51
|
+
simulateNextResponse(result) {
|
|
52
|
+
const messages = this.mockSocket.getSentMessages();
|
|
53
|
+
const lastMessage = messages[messages.length - 1];
|
|
54
|
+
if (!lastMessage) {
|
|
55
|
+
throw new Error('No message sent to simulate response for');
|
|
56
|
+
}
|
|
57
|
+
const request = JSON.parse(lastMessage);
|
|
58
|
+
if (typeof request.id !== 'number') {
|
|
59
|
+
throw new Error('Invalid request ID');
|
|
60
|
+
}
|
|
61
|
+
const response = createResponse(request.id, result);
|
|
62
|
+
this.mockSocket.simulateMessage(JSON.stringify(response));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Simulate CDP error response for next command
|
|
66
|
+
*/
|
|
67
|
+
simulateNextError(errorMessage) {
|
|
68
|
+
const messages = this.mockSocket.getSentMessages();
|
|
69
|
+
const lastMessage = messages[messages.length - 1];
|
|
70
|
+
if (!lastMessage) {
|
|
71
|
+
throw new Error('No message sent to simulate response for');
|
|
72
|
+
}
|
|
73
|
+
const request = JSON.parse(lastMessage);
|
|
74
|
+
if (typeof request.id !== 'number') {
|
|
75
|
+
throw new Error('Invalid request ID');
|
|
76
|
+
}
|
|
77
|
+
const response = createErrorResponse(request.id, errorMessage);
|
|
78
|
+
this.mockSocket.simulateMessage(JSON.stringify(response));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get the last CDP method that was called
|
|
82
|
+
*/
|
|
83
|
+
getLastMethod() {
|
|
84
|
+
const messages = this.mockSocket.getSentMessages();
|
|
85
|
+
const lastMessage = messages[messages.length - 1];
|
|
86
|
+
if (!lastMessage)
|
|
87
|
+
return null;
|
|
88
|
+
const request = JSON.parse(lastMessage);
|
|
89
|
+
return request.method ?? null;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get the last CDP parameters that were sent
|
|
93
|
+
*/
|
|
94
|
+
getLastParams() {
|
|
95
|
+
const messages = this.mockSocket.getSentMessages();
|
|
96
|
+
const lastMessage = messages[messages.length - 1];
|
|
97
|
+
if (!lastMessage)
|
|
98
|
+
return undefined;
|
|
99
|
+
const request = JSON.parse(lastMessage);
|
|
100
|
+
return request.params;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Mock IPC infrastructure for testing callCDP() in isolation
|
|
105
|
+
*/
|
|
106
|
+
class MockIPCForCDP {
|
|
107
|
+
mockCDP;
|
|
108
|
+
commandHandler = null;
|
|
109
|
+
constructor(mockCDP) {
|
|
110
|
+
this.mockCDP = mockCDP;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Simulate the worker's CDP command handler
|
|
114
|
+
*/
|
|
115
|
+
setupWorkerHandler() {
|
|
116
|
+
this.commandHandler = async (method, params) => {
|
|
117
|
+
// Simulate worker forwarding to CDP
|
|
118
|
+
const resultPromise = this.mockCDP.send(method, params ?? {});
|
|
119
|
+
// Let the mock CDP respond
|
|
120
|
+
// (In real tests, we'll call simulateNextResponse)
|
|
121
|
+
return resultPromise;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Execute CDP command (simulates full IPC flow)
|
|
126
|
+
*/
|
|
127
|
+
async executeCDP(method, params) {
|
|
128
|
+
if (!this.commandHandler) {
|
|
129
|
+
throw new Error('Worker handler not set up');
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
const result = await this.commandHandler(method, params);
|
|
133
|
+
return {
|
|
134
|
+
type: 'cdp_call_response',
|
|
135
|
+
sessionId: 'test-session',
|
|
136
|
+
status: 'ok',
|
|
137
|
+
data: { result },
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
return {
|
|
142
|
+
type: 'cdp_call_response',
|
|
143
|
+
sessionId: 'test-session',
|
|
144
|
+
status: 'error',
|
|
145
|
+
error: error instanceof Error ? error.message : String(error),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
describe('CDP Command Contract Tests', () => {
|
|
151
|
+
let mockCDP;
|
|
152
|
+
let mockIPC;
|
|
153
|
+
beforeEach(async () => {
|
|
154
|
+
// Set up mock CDP connection
|
|
155
|
+
mockCDP = new MockCDPConnection();
|
|
156
|
+
await mockCDP.connectAndOpen();
|
|
157
|
+
// Set up mock IPC
|
|
158
|
+
mockIPC = new MockIPCForCDP(mockCDP);
|
|
159
|
+
mockIPC.setupWorkerHandler();
|
|
160
|
+
});
|
|
161
|
+
afterEach(() => {
|
|
162
|
+
if (mockCDP.isConnected()) {
|
|
163
|
+
mockCDP.close();
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
describe('Basic CDP command execution', () => {
|
|
167
|
+
it('executes CDP method without parameters', async () => {
|
|
168
|
+
// Test CONTRACT: CDP method call → result returned
|
|
169
|
+
// Start the CDP call
|
|
170
|
+
const responsePromise = mockIPC.executeCDP('Browser.getVersion');
|
|
171
|
+
// Simulate browser response
|
|
172
|
+
mockCDP.simulateNextResponse({
|
|
173
|
+
protocolVersion: '1.3',
|
|
174
|
+
product: 'Chrome/130.0.0.0',
|
|
175
|
+
revision: '@12345',
|
|
176
|
+
userAgent: 'Mozilla/5.0...',
|
|
177
|
+
jsVersion: '13.0.245.12',
|
|
178
|
+
});
|
|
179
|
+
const response = await responsePromise;
|
|
180
|
+
// Verify response structure (contract)
|
|
181
|
+
assert.equal(response.type, 'cdp_call_response');
|
|
182
|
+
assert.equal(response.status, 'ok');
|
|
183
|
+
assert.ok(response.data);
|
|
184
|
+
assert.ok(response.data.result);
|
|
185
|
+
// Verify result has expected shape
|
|
186
|
+
const result = response.data.result;
|
|
187
|
+
assert.equal(typeof result['protocolVersion'], 'string');
|
|
188
|
+
assert.equal(typeof result['product'], 'string');
|
|
189
|
+
});
|
|
190
|
+
it('executes CDP method with parameters', async () => {
|
|
191
|
+
// Test CONTRACT: Method + params → result with params applied
|
|
192
|
+
const responsePromise = mockIPC.executeCDP('Runtime.evaluate', {
|
|
193
|
+
expression: '2 + 2',
|
|
194
|
+
returnByValue: true,
|
|
195
|
+
});
|
|
196
|
+
// Verify parameters were sent correctly
|
|
197
|
+
const sentParams = mockCDP.getLastParams();
|
|
198
|
+
assert.deepEqual(sentParams, {
|
|
199
|
+
expression: '2 + 2',
|
|
200
|
+
returnByValue: true,
|
|
201
|
+
});
|
|
202
|
+
// Simulate browser response
|
|
203
|
+
mockCDP.simulateNextResponse({
|
|
204
|
+
result: {
|
|
205
|
+
type: 'number',
|
|
206
|
+
value: 4,
|
|
207
|
+
},
|
|
208
|
+
});
|
|
209
|
+
const response = await responsePromise;
|
|
210
|
+
assert.equal(response.status, 'ok');
|
|
211
|
+
assert.ok(response.data);
|
|
212
|
+
const result = response.data.result;
|
|
213
|
+
assert.equal(result.result.value, 4);
|
|
214
|
+
});
|
|
215
|
+
it('executes Network.getCookies', async () => {
|
|
216
|
+
// Test CONTRACT: Network.getCookies → cookies array
|
|
217
|
+
const responsePromise = mockIPC.executeCDP('Network.getCookies');
|
|
218
|
+
mockCDP.simulateNextResponse({
|
|
219
|
+
cookies: [
|
|
220
|
+
{ name: 'session', value: 'abc123', domain: 'example.com' },
|
|
221
|
+
{ name: 'token', value: 'xyz789', domain: 'example.com' },
|
|
222
|
+
],
|
|
223
|
+
});
|
|
224
|
+
const response = await responsePromise;
|
|
225
|
+
assert.equal(response.status, 'ok');
|
|
226
|
+
const result = response.data?.result;
|
|
227
|
+
assert.equal(result.cookies.length, 2);
|
|
228
|
+
assert.equal(result.cookies[0]?.name, 'session');
|
|
229
|
+
});
|
|
230
|
+
it('executes DOM.getDocument', async () => {
|
|
231
|
+
// Test CONTRACT: DOM method execution
|
|
232
|
+
const responsePromise = mockIPC.executeCDP('DOM.getDocument');
|
|
233
|
+
mockCDP.simulateNextResponse({
|
|
234
|
+
root: {
|
|
235
|
+
nodeId: 1,
|
|
236
|
+
nodeType: 9,
|
|
237
|
+
nodeName: '#document',
|
|
238
|
+
childNodeCount: 1,
|
|
239
|
+
},
|
|
240
|
+
});
|
|
241
|
+
const response = await responsePromise;
|
|
242
|
+
assert.equal(response.status, 'ok');
|
|
243
|
+
const result = response.data?.result;
|
|
244
|
+
assert.equal(result.root.nodeId, 1);
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
describe('Error handling', () => {
|
|
248
|
+
it('propagates CDP method errors', async () => {
|
|
249
|
+
// Test CONTRACT: Invalid CDP method → error response
|
|
250
|
+
const responsePromise = mockIPC.executeCDP('Invalid.method');
|
|
251
|
+
mockCDP.simulateNextError("'Invalid.method' wasn't found");
|
|
252
|
+
const response = await responsePromise;
|
|
253
|
+
// Error should propagate through IPC
|
|
254
|
+
assert.equal(response.status, 'error');
|
|
255
|
+
assert.ok(response.error);
|
|
256
|
+
assert.match(response.error, /wasn't found/);
|
|
257
|
+
});
|
|
258
|
+
it('handles CDP execution errors', async () => {
|
|
259
|
+
// Test CONTRACT: CDP method error → error in response
|
|
260
|
+
const responsePromise = mockIPC.executeCDP('Runtime.evaluate', {
|
|
261
|
+
expression: 'throw new Error("test error")',
|
|
262
|
+
});
|
|
263
|
+
mockCDP.simulateNextResponse({
|
|
264
|
+
exceptionDetails: {
|
|
265
|
+
text: 'Uncaught',
|
|
266
|
+
exception: {
|
|
267
|
+
type: 'object',
|
|
268
|
+
subtype: 'error',
|
|
269
|
+
description: 'Error: test error',
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
});
|
|
273
|
+
const response = await responsePromise;
|
|
274
|
+
// Should still succeed (CDP responded), but result contains error
|
|
275
|
+
assert.equal(response.status, 'ok');
|
|
276
|
+
const result = response.data?.result;
|
|
277
|
+
assert.ok(result.exceptionDetails);
|
|
278
|
+
});
|
|
279
|
+
it('handles missing required parameters', async () => {
|
|
280
|
+
// Test CONTRACT: CDP enforces required params
|
|
281
|
+
const responsePromise = mockIPC.executeCDP('Page.navigate');
|
|
282
|
+
// Missing required 'url' parameter
|
|
283
|
+
mockCDP.simulateNextError('Missing required parameter: url');
|
|
284
|
+
const response = await responsePromise;
|
|
285
|
+
assert.equal(response.status, 'error');
|
|
286
|
+
assert.ok(response.error);
|
|
287
|
+
});
|
|
288
|
+
});
|
|
289
|
+
describe('Parameter handling', () => {
|
|
290
|
+
it('handles empty parameters object', async () => {
|
|
291
|
+
// Test CONTRACT: Empty params → method called with no params
|
|
292
|
+
const responsePromise = mockIPC.executeCDP('Target.getTargets', {});
|
|
293
|
+
const sentParams = mockCDP.getLastParams();
|
|
294
|
+
assert.deepEqual(sentParams, {});
|
|
295
|
+
mockCDP.simulateNextResponse({ targetInfos: [] });
|
|
296
|
+
const response = await responsePromise;
|
|
297
|
+
assert.equal(response.status, 'ok');
|
|
298
|
+
});
|
|
299
|
+
it('handles complex nested parameters', async () => {
|
|
300
|
+
// Test CONTRACT: Complex params → preserved through IPC
|
|
301
|
+
const complexParams = {
|
|
302
|
+
expression: 'document.body',
|
|
303
|
+
objectGroup: 'console',
|
|
304
|
+
includeCommandLineAPI: true,
|
|
305
|
+
returnByValue: false,
|
|
306
|
+
generatePreview: true,
|
|
307
|
+
};
|
|
308
|
+
const responsePromise = mockIPC.executeCDP('Runtime.evaluate', complexParams);
|
|
309
|
+
const sentParams = mockCDP.getLastParams();
|
|
310
|
+
assert.deepEqual(sentParams, complexParams);
|
|
311
|
+
mockCDP.simulateNextResponse({ result: { type: 'object' } });
|
|
312
|
+
const response = await responsePromise;
|
|
313
|
+
assert.equal(response.status, 'ok');
|
|
314
|
+
});
|
|
315
|
+
it('handles undefined parameters (no params)', async () => {
|
|
316
|
+
// Test CONTRACT: undefined params → sent as empty object
|
|
317
|
+
const responsePromise = mockIPC.executeCDP('Browser.getVersion', undefined);
|
|
318
|
+
mockCDP.simulateNextResponse({ product: 'Chrome' });
|
|
319
|
+
const response = await responsePromise;
|
|
320
|
+
assert.equal(response.status, 'ok');
|
|
321
|
+
});
|
|
322
|
+
});
|
|
323
|
+
describe('Response validation', () => {
|
|
324
|
+
it('returns valid response structure', async () => {
|
|
325
|
+
// Test INVARIANT: Response always has correct shape
|
|
326
|
+
const responsePromise = mockIPC.executeCDP('Target.getTargets');
|
|
327
|
+
mockCDP.simulateNextResponse({ targetInfos: [] });
|
|
328
|
+
const response = await responsePromise;
|
|
329
|
+
// Validate response structure
|
|
330
|
+
assert.equal(typeof response.type, 'string');
|
|
331
|
+
assert.equal(response.type, 'cdp_call_response');
|
|
332
|
+
assert.equal(typeof response.sessionId, 'string');
|
|
333
|
+
assert.equal(response.status, 'ok');
|
|
334
|
+
assert.ok('data' in response);
|
|
335
|
+
// Should pass IPC validation
|
|
336
|
+
assert.doesNotThrow(() => {
|
|
337
|
+
validateIPCResponse(response);
|
|
338
|
+
});
|
|
339
|
+
});
|
|
340
|
+
it('error response has correct structure', async () => {
|
|
341
|
+
// Test INVARIANT: Error responses are well-formed
|
|
342
|
+
const responsePromise = mockIPC.executeCDP('Invalid.method');
|
|
343
|
+
mockCDP.simulateNextError('Method not found');
|
|
344
|
+
const response = await responsePromise;
|
|
345
|
+
assert.equal(response.status, 'error');
|
|
346
|
+
assert.equal(typeof response.error, 'string');
|
|
347
|
+
assert.ok(response.error && response.error.length > 0);
|
|
348
|
+
// Should have data undefined when error
|
|
349
|
+
assert.equal(response.data, undefined);
|
|
350
|
+
});
|
|
351
|
+
});
|
|
352
|
+
describe('Multiple concurrent CDP calls', () => {
|
|
353
|
+
it('handles multiple concurrent calls independently', async () => {
|
|
354
|
+
// Test INVARIANT: Concurrent calls don't interfere
|
|
355
|
+
// Execute calls sequentially (not concurrently) to avoid timeout issues with mock
|
|
356
|
+
const response1Promise = mockIPC.executeCDP('Browser.getVersion');
|
|
357
|
+
mockCDP.simulateNextResponse({ product: 'Chrome' });
|
|
358
|
+
const response1 = await response1Promise;
|
|
359
|
+
const response2Promise = mockIPC.executeCDP('Target.getTargets');
|
|
360
|
+
mockCDP.simulateNextResponse({ targetInfos: [] });
|
|
361
|
+
const response2 = await response2Promise;
|
|
362
|
+
const response3Promise = mockIPC.executeCDP('Network.getCookies');
|
|
363
|
+
mockCDP.simulateNextResponse({ cookies: [] });
|
|
364
|
+
const response3 = await response3Promise;
|
|
365
|
+
assert.equal(response1.status, 'ok');
|
|
366
|
+
assert.equal(response2.status, 'ok');
|
|
367
|
+
assert.equal(response3.status, 'ok');
|
|
368
|
+
});
|
|
369
|
+
it('handles mixed success/error in concurrent calls', async () => {
|
|
370
|
+
// Test INVARIANT: One error doesn't affect other calls
|
|
371
|
+
const response1Promise = mockIPC.executeCDP('Browser.getVersion');
|
|
372
|
+
mockCDP.simulateNextResponse({ product: 'Chrome' });
|
|
373
|
+
const response1 = await response1Promise;
|
|
374
|
+
const response2Promise = mockIPC.executeCDP('Invalid.method');
|
|
375
|
+
mockCDP.simulateNextError('Method not found');
|
|
376
|
+
const response2 = await response2Promise;
|
|
377
|
+
assert.equal(response1.status, 'ok');
|
|
378
|
+
assert.equal(response2.status, 'error');
|
|
379
|
+
});
|
|
380
|
+
});
|
|
381
|
+
describe('Method name format', () => {
|
|
382
|
+
it('accepts standard CDP method format (Domain.method)', async () => {
|
|
383
|
+
// Test CONTRACT: Standard format works
|
|
384
|
+
const methods = [
|
|
385
|
+
'Browser.getVersion',
|
|
386
|
+
'Target.getTargets',
|
|
387
|
+
'Network.getCookies',
|
|
388
|
+
'DOM.getDocument',
|
|
389
|
+
'Runtime.evaluate',
|
|
390
|
+
'Page.navigate',
|
|
391
|
+
];
|
|
392
|
+
for (const method of methods) {
|
|
393
|
+
const responsePromise = mockIPC.executeCDP(method);
|
|
394
|
+
mockCDP.simulateNextResponse({});
|
|
395
|
+
const response = await responsePromise;
|
|
396
|
+
assert.equal(response.status, 'ok');
|
|
397
|
+
assert.equal(mockCDP.getLastMethod(), method);
|
|
398
|
+
}
|
|
399
|
+
});
|
|
400
|
+
});
|
|
401
|
+
describe('Result types', () => {
|
|
402
|
+
it('handles primitive result types', async () => {
|
|
403
|
+
// Test CONTRACT: Primitives are preserved
|
|
404
|
+
const tests = [
|
|
405
|
+
{ method: 'Runtime.evaluate', result: { result: { type: 'string', value: 'hello' } } },
|
|
406
|
+
{ method: 'Runtime.evaluate', result: { result: { type: 'number', value: 42 } } },
|
|
407
|
+
{ method: 'Runtime.evaluate', result: { result: { type: 'boolean', value: true } } },
|
|
408
|
+
{ method: 'Runtime.evaluate', result: { result: { type: 'undefined' } } },
|
|
409
|
+
];
|
|
410
|
+
for (const test of tests) {
|
|
411
|
+
const responsePromise = mockIPC.executeCDP(test.method, { expression: 'test' });
|
|
412
|
+
mockCDP.simulateNextResponse(test.result);
|
|
413
|
+
const response = await responsePromise;
|
|
414
|
+
assert.equal(response.status, 'ok');
|
|
415
|
+
assert.deepEqual(response.data?.result, test.result);
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
it('handles complex object results', async () => {
|
|
419
|
+
// Test CONTRACT: Complex objects are preserved
|
|
420
|
+
const complexResult = {
|
|
421
|
+
cookies: [
|
|
422
|
+
{
|
|
423
|
+
name: 'session',
|
|
424
|
+
value: 'abc123',
|
|
425
|
+
domain: 'example.com',
|
|
426
|
+
path: '/',
|
|
427
|
+
expires: -1,
|
|
428
|
+
size: 16,
|
|
429
|
+
httpOnly: true,
|
|
430
|
+
secure: true,
|
|
431
|
+
session: true,
|
|
432
|
+
sameSite: 'Lax',
|
|
433
|
+
},
|
|
434
|
+
],
|
|
435
|
+
};
|
|
436
|
+
const responsePromise = mockIPC.executeCDP('Network.getCookies');
|
|
437
|
+
mockCDP.simulateNextResponse(complexResult);
|
|
438
|
+
const response = await responsePromise;
|
|
439
|
+
assert.equal(response.status, 'ok');
|
|
440
|
+
assert.deepEqual(response.data?.result, complexResult);
|
|
441
|
+
});
|
|
442
|
+
it('handles array results', async () => {
|
|
443
|
+
// Test CONTRACT: Arrays are preserved
|
|
444
|
+
const arrayResult = {
|
|
445
|
+
targetInfos: [
|
|
446
|
+
{ targetId: 't1', type: 'page', title: 'Page 1', url: 'http://a.com' },
|
|
447
|
+
{ targetId: 't2', type: 'page', title: 'Page 2', url: 'http://b.com' },
|
|
448
|
+
],
|
|
449
|
+
};
|
|
450
|
+
const responsePromise = mockIPC.executeCDP('Target.getTargets');
|
|
451
|
+
mockCDP.simulateNextResponse(arrayResult);
|
|
452
|
+
const response = await responsePromise;
|
|
453
|
+
assert.equal(response.status, 'ok');
|
|
454
|
+
const result = response.data?.result;
|
|
455
|
+
assert.equal(result.targetInfos.length, 2);
|
|
456
|
+
});
|
|
457
|
+
it('handles empty results', async () => {
|
|
458
|
+
// Test CONTRACT: Empty results are valid
|
|
459
|
+
const responsePromise = mockIPC.executeCDP('Page.enable');
|
|
460
|
+
mockCDP.simulateNextResponse({}); // Many CDP methods return empty object
|
|
461
|
+
const response = await responsePromise;
|
|
462
|
+
assert.equal(response.status, 'ok');
|
|
463
|
+
assert.deepEqual(response.data?.result, {});
|
|
464
|
+
});
|
|
465
|
+
});
|
|
466
|
+
});
|
|
467
|
+
//# sourceMappingURL=cdp.contract.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp.contract.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/__tests__/cdp.contract.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipcTest.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/__tests__/ipcTest.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as assert from 'node:assert/strict';
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { unlinkSync } from 'node:fs';
|
|
4
|
+
import { createServer } from 'node:net';
|
|
5
|
+
import { tmpdir } from 'node:os';
|
|
6
|
+
import { join, isAbsolute } from 'node:path';
|
|
7
|
+
import { describe, it } from 'node:test';
|
|
8
|
+
import { resolveDaemonEntryPoint, waitForSocket } from '../../commands/ipcTest.js';
|
|
9
|
+
void describe('ipc-test command helpers', () => {
|
|
10
|
+
void it('resolveDaemonEntryPoint returns an absolute daemon.js path', () => {
|
|
11
|
+
const entryPoint = resolveDaemonEntryPoint();
|
|
12
|
+
assert.equal(isAbsolute(entryPoint), true);
|
|
13
|
+
assert.equal(entryPoint.endsWith('daemon.js'), true);
|
|
14
|
+
});
|
|
15
|
+
void it('waitForSocket resolves once the socket is accepting connections', async () => {
|
|
16
|
+
const socketPath = join(tmpdir(), `ipc-test-${randomUUID()}.sock`);
|
|
17
|
+
const server = createServer();
|
|
18
|
+
setTimeout(() => {
|
|
19
|
+
server.listen(socketPath);
|
|
20
|
+
}, 100);
|
|
21
|
+
await waitForSocket(socketPath, { timeoutMs: 2_000, pollIntervalMs: 50 });
|
|
22
|
+
await new Promise((resolve) => server.close(() => {
|
|
23
|
+
try {
|
|
24
|
+
unlinkSync(socketPath);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Ignore if already removed
|
|
28
|
+
}
|
|
29
|
+
resolve();
|
|
30
|
+
}));
|
|
31
|
+
});
|
|
32
|
+
void it('waitForSocket rejects if the socket never becomes available', async () => {
|
|
33
|
+
const socketPath = join(tmpdir(), `ipc-test-${randomUUID()}.sock`);
|
|
34
|
+
await assert.rejects(waitForSocket(socketPath, { timeoutMs: 200, pollIntervalMs: 50 }), /not ready within/i);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=ipcTest.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipcTest.test.js","sourceRoot":"","sources":["../../../../src/cli/commands/__tests__/ipcTest.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEnF,KAAK,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IAC7C,KAAK,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACzE,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,UAAU,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1E,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAClC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC;gBACH,UAAU,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,UAAU,EAAE,OAAO,CAAC,CAAC;QAEnE,MAAM,MAAM,CAAC,OAAO,CAClB,aAAa,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,EACjE,mBAAmB,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqCzD"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { runCommand } from '../handlers/CommandRunner.js';
|
|
2
|
+
import { callCDP } from '../../ipc/client.js';
|
|
3
|
+
import { validateIPCResponse } from '../../ipc/responseValidator.js';
|
|
4
|
+
import { getErrorMessage } from '../../utils/errors.js';
|
|
5
|
+
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
6
|
+
/**
|
|
7
|
+
* Register CDP command.
|
|
8
|
+
*
|
|
9
|
+
* @param program - Commander.js Command instance to register commands on
|
|
10
|
+
*/
|
|
11
|
+
export function registerCdpCommand(program) {
|
|
12
|
+
program
|
|
13
|
+
.command('cdp')
|
|
14
|
+
.description('Execute CDP method directly (low-level API access)')
|
|
15
|
+
.argument('<method>', 'CDP method name (e.g., Network.getCookies, Runtime.evaluate)')
|
|
16
|
+
.option('--params <json>', 'CDP method parameters as JSON')
|
|
17
|
+
.action(async (method, options) => {
|
|
18
|
+
await runCommand(async (opts) => {
|
|
19
|
+
// Parse parameters if provided
|
|
20
|
+
let params;
|
|
21
|
+
if (opts.params) {
|
|
22
|
+
try {
|
|
23
|
+
params = JSON.parse(opts.params);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return {
|
|
27
|
+
success: false,
|
|
28
|
+
error: `Error parsing --params: ${getErrorMessage(error)}. Parameters must be valid JSON.`,
|
|
29
|
+
exitCode: EXIT_CODES.INVALID_ARGUMENTS,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Send CDP call request to daemon
|
|
34
|
+
const response = await callCDP(method, params);
|
|
35
|
+
// Validate IPC response (throws on error)
|
|
36
|
+
validateIPCResponse(response);
|
|
37
|
+
return {
|
|
38
|
+
success: true,
|
|
39
|
+
data: response.data?.result,
|
|
40
|
+
};
|
|
41
|
+
}, { ...options, json: true } // Always output JSON for CDP commands
|
|
42
|
+
);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=cdp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../../src/cli/commands/cdp.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAUlD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,oDAAoD,CAAC;SACjE,QAAQ,CAAC,UAAU,EAAE,8DAA8D,CAAC;SACpF,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAmB,EAAE,EAAE;QACpD,MAAM,UAAU,CACd,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,+BAA+B;YAC/B,IAAI,MAA2C,CAAC;YAChD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAA4B,CAAC;gBAC9D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,2BAA2B,eAAe,CAAC,KAAK,CAAC,kCAAkC;wBAC1F,QAAQ,EAAE,UAAU,CAAC,iBAAiB;qBACvC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,kCAAkC;YAClC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAE/C,0CAA0C;YAC1C,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAE9B,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM;aAC5B,CAAC;QACJ,CAAC,EACD,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,sCAAsC;SAClE,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* Register cleanup command
|
|
4
|
+
*
|
|
5
|
+
* @param program - Commander.js Command instance to register commands on
|
|
6
|
+
*/
|
|
7
|
+
export declare function registerCleanupCommand(program: Command): void;
|
|
8
|
+
//# sourceMappingURL=cleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/cleanup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgEzC;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwG7D"}
|