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,466 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Client Contract Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests the public API behavior of IPC client functions WITHOUT testing implementation details.
|
|
5
|
+
* Follows the testing philosophy: "Test the contract, not the implementation"
|
|
6
|
+
*
|
|
7
|
+
* Contract:
|
|
8
|
+
* - Input: Function calls with parameters
|
|
9
|
+
* - Output: Responses from daemon via Unix socket
|
|
10
|
+
* - Behavior: Connect, send request, receive response, handle errors/timeouts
|
|
11
|
+
*
|
|
12
|
+
* What we test:
|
|
13
|
+
* ✅ Behavior: Client function calls → daemon responses
|
|
14
|
+
* ✅ Invariants: "Requests receive responses", "Errors propagate correctly"
|
|
15
|
+
* ✅ Edge cases: Daemon not running, timeouts, malformed responses
|
|
16
|
+
*
|
|
17
|
+
* What we DON'T test:
|
|
18
|
+
* ❌ Internal sendRequest() implementation
|
|
19
|
+
* ❌ Socket buffer handling details
|
|
20
|
+
* ❌ How JSONL parsing works internally
|
|
21
|
+
*/
|
|
22
|
+
import assert from 'node:assert/strict';
|
|
23
|
+
import * as fs from 'node:fs';
|
|
24
|
+
import * as net from 'node:net';
|
|
25
|
+
import * as os from 'node:os';
|
|
26
|
+
import * as path from 'node:path';
|
|
27
|
+
import { afterEach, beforeEach, describe, it } from 'node:test';
|
|
28
|
+
import * as ipcClient from '../client.js';
|
|
29
|
+
/**
|
|
30
|
+
* Mock daemon server that responds to IPC requests.
|
|
31
|
+
* Simulates daemon behavior without starting actual worker processes.
|
|
32
|
+
*/
|
|
33
|
+
class MockDaemonServer {
|
|
34
|
+
server = null;
|
|
35
|
+
socketPath;
|
|
36
|
+
clients = [];
|
|
37
|
+
/**
|
|
38
|
+
* Behavior modes for testing different scenarios
|
|
39
|
+
*/
|
|
40
|
+
mode = 'normal'; // Close connection before sending response
|
|
41
|
+
constructor(socketPath) {
|
|
42
|
+
this.socketPath = socketPath;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Start mock daemon server
|
|
46
|
+
*/
|
|
47
|
+
async start() {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
// Remove existing socket if present
|
|
50
|
+
try {
|
|
51
|
+
fs.unlinkSync(this.socketPath);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Ignore - socket may not exist
|
|
55
|
+
}
|
|
56
|
+
this.server = net.createServer((socket) => {
|
|
57
|
+
this.clients.push(socket);
|
|
58
|
+
let buffer = '';
|
|
59
|
+
socket.on('data', (chunk) => {
|
|
60
|
+
buffer += chunk.toString('utf-8');
|
|
61
|
+
// Process complete JSONL frames
|
|
62
|
+
const lines = buffer.split('\n');
|
|
63
|
+
buffer = lines.pop() ?? '';
|
|
64
|
+
for (const line of lines) {
|
|
65
|
+
if (line.trim()) {
|
|
66
|
+
this.handleRequest(socket, line);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
socket.on('error', () => {
|
|
71
|
+
// Ignore client errors
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
this.server.listen(this.socketPath, () => {
|
|
75
|
+
resolve();
|
|
76
|
+
});
|
|
77
|
+
this.server.on('error', reject);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Handle incoming request and send appropriate response
|
|
82
|
+
*/
|
|
83
|
+
handleRequest(socket, line) {
|
|
84
|
+
try {
|
|
85
|
+
const request = JSON.parse(line);
|
|
86
|
+
// Handle different behavior modes
|
|
87
|
+
switch (this.mode) {
|
|
88
|
+
case 'slow':
|
|
89
|
+
// Delay response (useful for timeout testing)
|
|
90
|
+
setTimeout(() => {
|
|
91
|
+
this.sendNormalResponse(socket, request);
|
|
92
|
+
}, 10000); // 10s delay (longer than 5s client timeout)
|
|
93
|
+
break;
|
|
94
|
+
case 'malformed':
|
|
95
|
+
// Send invalid JSON
|
|
96
|
+
socket.write('{"invalid": json}\n');
|
|
97
|
+
break;
|
|
98
|
+
case 'error':
|
|
99
|
+
// Send error response
|
|
100
|
+
this.sendErrorResponse(socket, request);
|
|
101
|
+
break;
|
|
102
|
+
case 'silent':
|
|
103
|
+
// Don't send any response
|
|
104
|
+
break;
|
|
105
|
+
case 'close_early':
|
|
106
|
+
// Close connection immediately
|
|
107
|
+
socket.end();
|
|
108
|
+
break;
|
|
109
|
+
case 'normal':
|
|
110
|
+
this.sendNormalResponse(socket, request);
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Invalid JSON in request - send error response
|
|
116
|
+
socket.write(JSON.stringify({
|
|
117
|
+
type: 'error_response',
|
|
118
|
+
sessionId: 'unknown',
|
|
119
|
+
status: 'error',
|
|
120
|
+
error: 'Invalid request JSON',
|
|
121
|
+
}) + '\n');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Send normal successful response
|
|
126
|
+
*/
|
|
127
|
+
sendNormalResponse(socket, request) {
|
|
128
|
+
if (request.type === 'handshake_request') {
|
|
129
|
+
const response = {
|
|
130
|
+
type: 'handshake_response',
|
|
131
|
+
sessionId: request.sessionId,
|
|
132
|
+
status: 'ok',
|
|
133
|
+
message: 'Mock daemon connected',
|
|
134
|
+
};
|
|
135
|
+
socket.write(JSON.stringify(response) + '\n');
|
|
136
|
+
}
|
|
137
|
+
else if (request.type === 'status_request') {
|
|
138
|
+
const response = {
|
|
139
|
+
type: 'status_response',
|
|
140
|
+
sessionId: request.sessionId,
|
|
141
|
+
status: 'ok',
|
|
142
|
+
data: {
|
|
143
|
+
daemonPid: process.pid,
|
|
144
|
+
daemonStartTime: Date.now(),
|
|
145
|
+
socketPath: this.socketPath,
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
socket.write(JSON.stringify(response) + '\n');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Send error response
|
|
153
|
+
*/
|
|
154
|
+
sendErrorResponse(socket, request) {
|
|
155
|
+
const response = {
|
|
156
|
+
type: request.type.replace('_request', '_response'),
|
|
157
|
+
sessionId: request.sessionId,
|
|
158
|
+
status: 'error',
|
|
159
|
+
error: 'Mock daemon error',
|
|
160
|
+
};
|
|
161
|
+
socket.write(JSON.stringify(response) + '\n');
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Stop mock daemon server
|
|
165
|
+
*/
|
|
166
|
+
async stop() {
|
|
167
|
+
return new Promise((resolve) => {
|
|
168
|
+
// Close all client connections
|
|
169
|
+
for (const client of this.clients) {
|
|
170
|
+
client.end();
|
|
171
|
+
}
|
|
172
|
+
this.clients = [];
|
|
173
|
+
if (this.server) {
|
|
174
|
+
this.server.close(() => {
|
|
175
|
+
// Remove socket file
|
|
176
|
+
try {
|
|
177
|
+
fs.unlinkSync(this.socketPath);
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
// Ignore - socket may not exist
|
|
181
|
+
}
|
|
182
|
+
resolve();
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
resolve();
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
void describe('IPC Client Contract Tests', () => {
|
|
192
|
+
let mockDaemon;
|
|
193
|
+
let tmpDir;
|
|
194
|
+
let originalHome;
|
|
195
|
+
let originalUserProfile;
|
|
196
|
+
let socketPath;
|
|
197
|
+
beforeEach(async () => {
|
|
198
|
+
// Create temp directory for socket
|
|
199
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'bdg-ipc-client-test-'));
|
|
200
|
+
// Override HOME to use temp directory
|
|
201
|
+
originalHome = process.env['HOME'];
|
|
202
|
+
originalUserProfile = process.env['USERPROFILE'];
|
|
203
|
+
process.env['HOME'] = tmpDir;
|
|
204
|
+
if (process.platform === 'win32') {
|
|
205
|
+
process.env['USERPROFILE'] = tmpDir;
|
|
206
|
+
}
|
|
207
|
+
// Create .bdg directory
|
|
208
|
+
const bdgDir = path.join(tmpDir, '.bdg');
|
|
209
|
+
fs.mkdirSync(bdgDir, { recursive: true });
|
|
210
|
+
// Get socket path (matches IPCServer.getSocketPath())
|
|
211
|
+
socketPath = path.join(bdgDir, 'daemon.sock');
|
|
212
|
+
// Start mock daemon
|
|
213
|
+
mockDaemon = new MockDaemonServer(socketPath);
|
|
214
|
+
await mockDaemon.start();
|
|
215
|
+
});
|
|
216
|
+
afterEach(async () => {
|
|
217
|
+
// Stop mock daemon
|
|
218
|
+
if (mockDaemon) {
|
|
219
|
+
await mockDaemon.stop();
|
|
220
|
+
}
|
|
221
|
+
// Restore environment
|
|
222
|
+
if (originalHome !== undefined) {
|
|
223
|
+
process.env['HOME'] = originalHome;
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
delete process.env['HOME'];
|
|
227
|
+
}
|
|
228
|
+
if (originalUserProfile !== undefined) {
|
|
229
|
+
process.env['USERPROFILE'] = originalUserProfile;
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
delete process.env['USERPROFILE'];
|
|
233
|
+
}
|
|
234
|
+
// Cleanup temp directory
|
|
235
|
+
try {
|
|
236
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
// Ignore cleanup errors
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
void describe('connectToDaemon()', () => {
|
|
243
|
+
void it('connects to daemon and receives handshake response', async () => {
|
|
244
|
+
// Test the CONTRACT: Client connects → daemon responds
|
|
245
|
+
const response = await ipcClient.connectToDaemon();
|
|
246
|
+
// Verify response structure (contract)
|
|
247
|
+
assert.equal(response.type, 'handshake_response');
|
|
248
|
+
assert.equal(response.status, 'ok');
|
|
249
|
+
assert.ok(response.sessionId); // Should have a session ID
|
|
250
|
+
assert.ok(response.message); // Should have a message
|
|
251
|
+
});
|
|
252
|
+
void it('throws error when daemon is not running', async () => {
|
|
253
|
+
// Stop daemon to simulate not running
|
|
254
|
+
await mockDaemon.stop();
|
|
255
|
+
// Test the CONTRACT: No daemon → connection error
|
|
256
|
+
await assert.rejects(async () => {
|
|
257
|
+
await ipcClient.connectToDaemon();
|
|
258
|
+
}, {
|
|
259
|
+
name: 'Error',
|
|
260
|
+
message: /Connection error/,
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
void it('throws error on timeout (5s)', async () => {
|
|
264
|
+
// Configure mock daemon to be slow (10s delay)
|
|
265
|
+
mockDaemon.mode = 'slow';
|
|
266
|
+
// Test the CONTRACT: Slow response → timeout error
|
|
267
|
+
await assert.rejects(async () => {
|
|
268
|
+
await ipcClient.connectToDaemon();
|
|
269
|
+
}, {
|
|
270
|
+
name: 'Error',
|
|
271
|
+
message: /handshake request timeout after 5s/,
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
void it('throws error on malformed response', async () => {
|
|
275
|
+
// Configure mock daemon to send invalid JSON
|
|
276
|
+
mockDaemon.mode = 'malformed';
|
|
277
|
+
// Test the CONTRACT: Invalid JSON → parse error
|
|
278
|
+
await assert.rejects(async () => {
|
|
279
|
+
await ipcClient.connectToDaemon();
|
|
280
|
+
}, {
|
|
281
|
+
name: 'Error',
|
|
282
|
+
message: /Failed to parse handshake response/,
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
void it('throws error when connection closes early', async () => {
|
|
286
|
+
// Configure mock daemon to close connection immediately
|
|
287
|
+
mockDaemon.mode = 'close_early';
|
|
288
|
+
// Test the CONTRACT: Early close → connection closed error
|
|
289
|
+
await assert.rejects(async () => {
|
|
290
|
+
await ipcClient.connectToDaemon();
|
|
291
|
+
}, {
|
|
292
|
+
name: 'Error',
|
|
293
|
+
message: /Connection closed before handshake response received/,
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
void describe('getStatus()', () => {
|
|
298
|
+
void it('requests status and receives response', async () => {
|
|
299
|
+
// Test the CONTRACT: Status request → status response
|
|
300
|
+
const response = await ipcClient.getStatus();
|
|
301
|
+
// Verify response structure (contract)
|
|
302
|
+
assert.equal(response.type, 'status_response');
|
|
303
|
+
assert.equal(response.status, 'ok');
|
|
304
|
+
assert.ok(response.data);
|
|
305
|
+
assert.ok(response.data.daemonPid);
|
|
306
|
+
assert.ok(response.data.socketPath);
|
|
307
|
+
});
|
|
308
|
+
void it('throws error when daemon is not running', async () => {
|
|
309
|
+
// Stop daemon
|
|
310
|
+
await mockDaemon.stop();
|
|
311
|
+
// Test the CONTRACT: No daemon → connection error
|
|
312
|
+
await assert.rejects(async () => {
|
|
313
|
+
await ipcClient.getStatus();
|
|
314
|
+
}, {
|
|
315
|
+
name: 'Error',
|
|
316
|
+
message: /Connection error/,
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
void it('throws error on timeout', async () => {
|
|
320
|
+
// Configure mock daemon to be slow
|
|
321
|
+
mockDaemon.mode = 'slow';
|
|
322
|
+
// Test the CONTRACT: Slow response → timeout
|
|
323
|
+
await assert.rejects(async () => {
|
|
324
|
+
await ipcClient.getStatus();
|
|
325
|
+
}, {
|
|
326
|
+
name: 'Error',
|
|
327
|
+
message: /status request timeout after 5s/,
|
|
328
|
+
});
|
|
329
|
+
});
|
|
330
|
+
void it('propagates daemon errors', async () => {
|
|
331
|
+
// Configure mock daemon to send error response
|
|
332
|
+
mockDaemon.mode = 'error';
|
|
333
|
+
// Test the CONTRACT: Daemon error → client receives error
|
|
334
|
+
// Note: Current implementation doesn't check status in response
|
|
335
|
+
// This test documents current behavior
|
|
336
|
+
const response = await ipcClient.getStatus();
|
|
337
|
+
assert.equal(response.status, 'error');
|
|
338
|
+
});
|
|
339
|
+
});
|
|
340
|
+
void describe('Socket cleanup', () => {
|
|
341
|
+
void it('cleans up socket after successful response', async () => {
|
|
342
|
+
// First request
|
|
343
|
+
await ipcClient.connectToDaemon();
|
|
344
|
+
// Second request should work (socket was cleaned up)
|
|
345
|
+
const response = await ipcClient.getStatus();
|
|
346
|
+
assert.equal(response.status, 'ok');
|
|
347
|
+
// Third request should also work
|
|
348
|
+
const response2 = await ipcClient.connectToDaemon();
|
|
349
|
+
assert.equal(response2.status, 'ok');
|
|
350
|
+
});
|
|
351
|
+
void it('cleans up socket after error', async () => {
|
|
352
|
+
// Configure daemon to send malformed response
|
|
353
|
+
mockDaemon.mode = 'malformed';
|
|
354
|
+
// First request fails
|
|
355
|
+
await assert.rejects(async () => {
|
|
356
|
+
await ipcClient.connectToDaemon();
|
|
357
|
+
});
|
|
358
|
+
// Reset to normal mode
|
|
359
|
+
mockDaemon.mode = 'normal';
|
|
360
|
+
// Second request should work (socket was cleaned up despite error)
|
|
361
|
+
const response = await ipcClient.getStatus();
|
|
362
|
+
assert.equal(response.status, 'ok');
|
|
363
|
+
});
|
|
364
|
+
void it('cleans up socket after timeout', async () => {
|
|
365
|
+
// Configure daemon to be slow (causes timeout)
|
|
366
|
+
mockDaemon.mode = 'slow';
|
|
367
|
+
// First request times out
|
|
368
|
+
await assert.rejects(async () => {
|
|
369
|
+
await ipcClient.connectToDaemon();
|
|
370
|
+
});
|
|
371
|
+
// Reset to normal mode
|
|
372
|
+
mockDaemon.mode = 'normal';
|
|
373
|
+
// Second request should work (socket was cleaned up after timeout)
|
|
374
|
+
const response = await ipcClient.getStatus();
|
|
375
|
+
assert.equal(response.status, 'ok');
|
|
376
|
+
});
|
|
377
|
+
});
|
|
378
|
+
void describe('Concurrent requests', () => {
|
|
379
|
+
void it('handles multiple concurrent requests', async () => {
|
|
380
|
+
// Test the INVARIANT: Multiple concurrent requests all succeed
|
|
381
|
+
const requests = [
|
|
382
|
+
ipcClient.connectToDaemon(),
|
|
383
|
+
ipcClient.getStatus(),
|
|
384
|
+
ipcClient.connectToDaemon(),
|
|
385
|
+
ipcClient.getStatus(),
|
|
386
|
+
];
|
|
387
|
+
const responses = await Promise.all(requests);
|
|
388
|
+
// Verify all requests succeeded
|
|
389
|
+
assert.equal(responses.length, 4);
|
|
390
|
+
assert.equal(responses[0]?.type, 'handshake_response');
|
|
391
|
+
assert.equal(responses[1]?.type, 'status_response');
|
|
392
|
+
assert.equal(responses[2]?.type, 'handshake_response');
|
|
393
|
+
assert.equal(responses[3]?.type, 'status_response');
|
|
394
|
+
});
|
|
395
|
+
void it('handles mixed success/failure in concurrent requests', async () => {
|
|
396
|
+
// Configure daemon to send error responses
|
|
397
|
+
mockDaemon.mode = 'error';
|
|
398
|
+
// Mix of requests that will all get errors
|
|
399
|
+
const requests = [ipcClient.getStatus(), ipcClient.connectToDaemon()];
|
|
400
|
+
const responses = await Promise.all(requests);
|
|
401
|
+
// Both should receive error responses
|
|
402
|
+
assert.equal(responses[0]?.status, 'error');
|
|
403
|
+
assert.equal(responses[1]?.status, 'error');
|
|
404
|
+
// Reset to normal mode and verify recovery
|
|
405
|
+
mockDaemon.mode = 'normal';
|
|
406
|
+
const recovery = await ipcClient.getStatus();
|
|
407
|
+
assert.equal(recovery.status, 'ok');
|
|
408
|
+
});
|
|
409
|
+
});
|
|
410
|
+
void describe('JSONL protocol', () => {
|
|
411
|
+
void it('handles requests with unique session IDs', async () => {
|
|
412
|
+
// Test the PROPERTY: Each request has unique session ID
|
|
413
|
+
const response1 = await ipcClient.connectToDaemon();
|
|
414
|
+
const response2 = await ipcClient.connectToDaemon();
|
|
415
|
+
// Session IDs should be different (UUID random)
|
|
416
|
+
assert.notEqual(response1.sessionId, response2.sessionId);
|
|
417
|
+
});
|
|
418
|
+
void it('preserves session ID in response', async () => {
|
|
419
|
+
// Test the INVARIANT: Response sessionId matches request sessionId
|
|
420
|
+
// This is tested implicitly by the mock daemon echoing back sessionId
|
|
421
|
+
const response = await ipcClient.getStatus();
|
|
422
|
+
// Mock daemon echoes sessionId, so if we get a response, it matched
|
|
423
|
+
assert.ok(response.sessionId);
|
|
424
|
+
assert.equal(typeof response.sessionId, 'string');
|
|
425
|
+
});
|
|
426
|
+
});
|
|
427
|
+
void describe('Error handling edge cases', () => {
|
|
428
|
+
void it('handles silent daemon (no response)', async () => {
|
|
429
|
+
// Configure daemon to receive but not respond
|
|
430
|
+
mockDaemon.mode = 'silent';
|
|
431
|
+
// Test the CONTRACT: No response → timeout
|
|
432
|
+
await assert.rejects(async () => {
|
|
433
|
+
await ipcClient.getStatus();
|
|
434
|
+
}, {
|
|
435
|
+
name: 'Error',
|
|
436
|
+
message: /status request timeout after 5s/,
|
|
437
|
+
});
|
|
438
|
+
});
|
|
439
|
+
void it('handles partial response followed by close', async () => {
|
|
440
|
+
// Create custom mock that sends partial JSON
|
|
441
|
+
await mockDaemon.stop();
|
|
442
|
+
const partialServer = net.createServer((socket) => {
|
|
443
|
+
socket.on('data', () => {
|
|
444
|
+
// Send incomplete JSON and close
|
|
445
|
+
socket.write('{"type": "status');
|
|
446
|
+
socket.end();
|
|
447
|
+
});
|
|
448
|
+
});
|
|
449
|
+
await new Promise((resolve) => {
|
|
450
|
+
partialServer.listen(socketPath, resolve);
|
|
451
|
+
});
|
|
452
|
+
// Test the CONTRACT: Partial response → connection closed error
|
|
453
|
+
await assert.rejects(async () => {
|
|
454
|
+
await ipcClient.getStatus();
|
|
455
|
+
}, {
|
|
456
|
+
name: 'Error',
|
|
457
|
+
message: /Connection closed before status response received/,
|
|
458
|
+
});
|
|
459
|
+
// Cleanup
|
|
460
|
+
await new Promise((resolve) => {
|
|
461
|
+
partialServer.close(() => resolve());
|
|
462
|
+
});
|
|
463
|
+
});
|
|
464
|
+
});
|
|
465
|
+
});
|
|
466
|
+
//# sourceMappingURL=client.contract.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.contract.test.js","sourceRoot":"","sources":["../../../src/ipc/__tests__/client.contract.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Client - Minimal JSONL handshake MVP
|
|
3
|
+
*
|
|
4
|
+
* Connects to the daemon's Unix domain socket and performs handshake.
|
|
5
|
+
*/
|
|
6
|
+
import { type ClientResponse } from './commands.js';
|
|
7
|
+
import type { HandshakeResponse, PeekResponse, StartSessionResponse, StatusResponse, StopSessionResponse } from './types.js';
|
|
8
|
+
import type { CollectorType } from '@/types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Connect to the daemon and perform handshake.
|
|
11
|
+
*
|
|
12
|
+
* @returns Handshake response from daemon
|
|
13
|
+
* @throws Error if connection fails or handshake times out
|
|
14
|
+
*/
|
|
15
|
+
export declare function connectToDaemon(): Promise<HandshakeResponse>;
|
|
16
|
+
/**
|
|
17
|
+
* Request status information from the daemon.
|
|
18
|
+
*
|
|
19
|
+
* @returns Status response with daemon and session metadata
|
|
20
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
21
|
+
*/
|
|
22
|
+
export declare function getStatus(): Promise<StatusResponse>;
|
|
23
|
+
/**
|
|
24
|
+
* Request preview data from the daemon.
|
|
25
|
+
*
|
|
26
|
+
* @returns Peek response with session preview data
|
|
27
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
28
|
+
*/
|
|
29
|
+
export declare function getPeek(): Promise<PeekResponse>;
|
|
30
|
+
/**
|
|
31
|
+
* Request daemon to start a new browser session.
|
|
32
|
+
*
|
|
33
|
+
* @param url - Target URL to navigate to
|
|
34
|
+
* @param options - Session configuration options
|
|
35
|
+
* @returns Start session response with worker and Chrome metadata
|
|
36
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
37
|
+
*/
|
|
38
|
+
export declare function startSession(url: string, options?: {
|
|
39
|
+
port?: number;
|
|
40
|
+
timeout?: number;
|
|
41
|
+
collectors?: CollectorType[];
|
|
42
|
+
includeAll?: boolean;
|
|
43
|
+
userDataDir?: string;
|
|
44
|
+
maxBodySize?: number;
|
|
45
|
+
}): Promise<StartSessionResponse>;
|
|
46
|
+
/**
|
|
47
|
+
* Request session stop from the daemon.
|
|
48
|
+
*
|
|
49
|
+
* @returns Stop session response with success/error status
|
|
50
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
51
|
+
*/
|
|
52
|
+
export declare function stopSession(): Promise<StopSessionResponse>;
|
|
53
|
+
/**
|
|
54
|
+
* Query DOM elements by CSS selector via the daemon's worker.
|
|
55
|
+
*
|
|
56
|
+
* @param selector - CSS selector to query
|
|
57
|
+
* @returns DOM query response with matched elements
|
|
58
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
59
|
+
*/
|
|
60
|
+
export declare function queryDOM(selector: string): Promise<ClientResponse<'dom_query'>>;
|
|
61
|
+
/**
|
|
62
|
+
* Highlight DOM elements in the browser via the daemon's worker.
|
|
63
|
+
*
|
|
64
|
+
* @param options - Highlight options (selector, index, nodeId, color, etc.)
|
|
65
|
+
* @returns DOM highlight response with highlighted node information
|
|
66
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
67
|
+
*/
|
|
68
|
+
export declare function highlightDOM(options: {
|
|
69
|
+
selector?: string;
|
|
70
|
+
index?: number;
|
|
71
|
+
nodeId?: number;
|
|
72
|
+
first?: boolean;
|
|
73
|
+
nth?: number;
|
|
74
|
+
color?: string;
|
|
75
|
+
opacity?: number;
|
|
76
|
+
}): Promise<ClientResponse<'dom_highlight'>>;
|
|
77
|
+
/**
|
|
78
|
+
* Get full HTML and attributes for DOM elements via the daemon's worker.
|
|
79
|
+
*
|
|
80
|
+
* @param options - Get options (selector, index, nodeId, all, nth)
|
|
81
|
+
* @returns DOM get response with node information
|
|
82
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
83
|
+
*/
|
|
84
|
+
export declare function getDOM(options: {
|
|
85
|
+
selector?: string;
|
|
86
|
+
index?: number;
|
|
87
|
+
nodeId?: number;
|
|
88
|
+
all?: boolean;
|
|
89
|
+
nth?: number;
|
|
90
|
+
}): Promise<ClientResponse<'dom_get'>>;
|
|
91
|
+
/**
|
|
92
|
+
* Get details for a specific network request or console message via the daemon's worker.
|
|
93
|
+
*
|
|
94
|
+
* @param type - Type of item: 'network' or 'console'
|
|
95
|
+
* @param id - Request ID for network, index for console
|
|
96
|
+
* @returns Worker details response with full object (including bodies/args)
|
|
97
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
98
|
+
*/
|
|
99
|
+
export declare function getDetails(type: 'network' | 'console', id: string): Promise<ClientResponse<'worker_details'>>;
|
|
100
|
+
/**
|
|
101
|
+
* Execute arbitrary CDP method via the daemon's worker.
|
|
102
|
+
*
|
|
103
|
+
* @param method - CDP method name (e.g., 'Network.getCookies', 'Runtime.evaluate')
|
|
104
|
+
* @param params - CDP method parameters (optional)
|
|
105
|
+
* @returns CDP call response with method result
|
|
106
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
107
|
+
*/
|
|
108
|
+
export declare function callCDP(method: string, params?: Record<string, unknown>): Promise<ClientResponse<'cdp_call'>>;
|
|
109
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/ipc/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,KAAK,EAEV,iBAAiB,EAEjB,YAAY,EAEZ,oBAAoB,EAEpB,cAAc,EAEd,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAuFhD;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAOlE;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC,CAOzD;AAED;;;;;GAKG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAOrD;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,oBAAoB,CAAC,CAc/B;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAOhE;AAsBD;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAErF;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAE3C;AAED;;;;;;GAMG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAErC;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAE3C;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAErC"}
|