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,401 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Server Contract Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests the public API behavior of IPCServer WITHOUT testing implementation details.
|
|
5
|
+
* Follows the testing philosophy: "Test the contract, not the implementation"
|
|
6
|
+
*
|
|
7
|
+
* Contract:
|
|
8
|
+
* - Input: JSONL messages via Unix socket
|
|
9
|
+
* - Output: JSONL responses via Unix socket
|
|
10
|
+
* - Behavior: Request/response matching, worker forwarding, error handling
|
|
11
|
+
*
|
|
12
|
+
* What we test:
|
|
13
|
+
* ✅ Behavior: Given IPC message → expect IPC response
|
|
14
|
+
* ✅ Invariants: "Responses match requests by sessionId", "Socket cleanup on stop"
|
|
15
|
+
* ✅ Edge cases: Malformed JSON, missing worker, timeouts
|
|
16
|
+
*
|
|
17
|
+
* What we DON'T test:
|
|
18
|
+
* ❌ Internal pendingDomRequests Map structure
|
|
19
|
+
* ❌ Internal handleMessage() function calls
|
|
20
|
+
* ❌ Implementation details (Buffer handling, event handler IDs)
|
|
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 { IPCServer } from '../ipcServer.js';
|
|
29
|
+
import { getSessionFilePath } from '../../session/paths.js';
|
|
30
|
+
/**
|
|
31
|
+
* Mock client for sending/receiving JSONL messages via Unix socket.
|
|
32
|
+
* Only mocks the transport boundary (Unix socket) - all IPC logic is real.
|
|
33
|
+
*/
|
|
34
|
+
class MockIPCClient {
|
|
35
|
+
socket = null;
|
|
36
|
+
buffer = '';
|
|
37
|
+
responses = [];
|
|
38
|
+
connected = false;
|
|
39
|
+
/**
|
|
40
|
+
* Connect to IPC server
|
|
41
|
+
*/
|
|
42
|
+
async connect(socketPath, timeoutMs = 2000) {
|
|
43
|
+
return new Promise((resolve, reject) => {
|
|
44
|
+
this.socket = net.createConnection(socketPath);
|
|
45
|
+
const timeout = setTimeout(() => {
|
|
46
|
+
reject(new Error(`Connection timeout after ${timeoutMs}ms`));
|
|
47
|
+
}, timeoutMs);
|
|
48
|
+
this.socket.on('connect', () => {
|
|
49
|
+
clearTimeout(timeout);
|
|
50
|
+
this.connected = true;
|
|
51
|
+
resolve();
|
|
52
|
+
});
|
|
53
|
+
this.socket.on('data', (chunk) => {
|
|
54
|
+
this.buffer += chunk.toString('utf-8');
|
|
55
|
+
// Parse complete JSONL frames
|
|
56
|
+
const lines = this.buffer.split('\n');
|
|
57
|
+
this.buffer = lines.pop() ?? '';
|
|
58
|
+
for (const line of lines) {
|
|
59
|
+
if (line.trim()) {
|
|
60
|
+
this.responses.push(line);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
this.socket.on('error', (err) => {
|
|
65
|
+
clearTimeout(timeout);
|
|
66
|
+
reject(err);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Send JSONL message
|
|
72
|
+
*/
|
|
73
|
+
send(message) {
|
|
74
|
+
if (!this.socket) {
|
|
75
|
+
throw new Error('Not connected');
|
|
76
|
+
}
|
|
77
|
+
this.socket.write(JSON.stringify(message) + '\n');
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Wait for next response (with timeout)
|
|
81
|
+
*/
|
|
82
|
+
async waitForResponse(timeoutMs = 2000) {
|
|
83
|
+
const start = Date.now();
|
|
84
|
+
while (this.responses.length === 0) {
|
|
85
|
+
if (Date.now() - start > timeoutMs) {
|
|
86
|
+
throw new Error(`Response timeout after ${timeoutMs}ms`);
|
|
87
|
+
}
|
|
88
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
89
|
+
}
|
|
90
|
+
return this.responses.shift();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Close socket
|
|
94
|
+
*/
|
|
95
|
+
close() {
|
|
96
|
+
if (this.socket) {
|
|
97
|
+
this.socket.end();
|
|
98
|
+
this.socket = null;
|
|
99
|
+
this.connected = false;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Check if connected
|
|
104
|
+
*/
|
|
105
|
+
isConnected() {
|
|
106
|
+
return this.connected;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
void describe('IPC Server Contract Tests', () => {
|
|
110
|
+
let server;
|
|
111
|
+
let client;
|
|
112
|
+
let tmpDir;
|
|
113
|
+
let originalHome;
|
|
114
|
+
let originalUserProfile;
|
|
115
|
+
beforeEach(async () => {
|
|
116
|
+
// Create temp directory for session files
|
|
117
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'bdg-ipc-test-'));
|
|
118
|
+
// Override HOME to use temp directory
|
|
119
|
+
originalHome = process.env['HOME'];
|
|
120
|
+
originalUserProfile = process.env['USERPROFILE'];
|
|
121
|
+
process.env['HOME'] = tmpDir;
|
|
122
|
+
if (process.platform === 'win32') {
|
|
123
|
+
process.env['USERPROFILE'] = tmpDir;
|
|
124
|
+
}
|
|
125
|
+
// Start IPC server
|
|
126
|
+
server = new IPCServer();
|
|
127
|
+
await server.start();
|
|
128
|
+
// Create mock client
|
|
129
|
+
client = new MockIPCClient();
|
|
130
|
+
});
|
|
131
|
+
afterEach(async () => {
|
|
132
|
+
// Close client
|
|
133
|
+
client.close();
|
|
134
|
+
// Stop server
|
|
135
|
+
await server.stop();
|
|
136
|
+
// Restore HOME
|
|
137
|
+
process.env['HOME'] = originalHome;
|
|
138
|
+
if (process.platform === 'win32') {
|
|
139
|
+
process.env['USERPROFILE'] = originalUserProfile;
|
|
140
|
+
}
|
|
141
|
+
// Clean up temp directory
|
|
142
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
143
|
+
});
|
|
144
|
+
void describe('Server lifecycle', () => {
|
|
145
|
+
void it('should start server and create socket file', () => {
|
|
146
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
147
|
+
assert.ok(fs.existsSync(socketPath), 'Socket file should exist');
|
|
148
|
+
});
|
|
149
|
+
void it('should write PID file on start', () => {
|
|
150
|
+
const pidPath = getSessionFilePath('DAEMON_PID');
|
|
151
|
+
assert.ok(fs.existsSync(pidPath), 'PID file should exist');
|
|
152
|
+
const pid = parseInt(fs.readFileSync(pidPath, 'utf-8').trim(), 10);
|
|
153
|
+
assert.equal(pid, process.pid, 'PID should match current process');
|
|
154
|
+
});
|
|
155
|
+
void it('should remove socket and PID files on stop', async () => {
|
|
156
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
157
|
+
const pidPath = getSessionFilePath('DAEMON_PID');
|
|
158
|
+
await server.stop();
|
|
159
|
+
assert.ok(!fs.existsSync(socketPath), 'Socket file should be removed');
|
|
160
|
+
assert.ok(!fs.existsSync(pidPath), 'PID file should be removed');
|
|
161
|
+
});
|
|
162
|
+
void it('should accept client connections', async () => {
|
|
163
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
164
|
+
await client.connect(socketPath);
|
|
165
|
+
assert.ok(client.isConnected(), 'Client should be connected');
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
void describe('Handshake protocol', () => {
|
|
169
|
+
void it('should respond to handshake request with success', async () => {
|
|
170
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
171
|
+
await client.connect(socketPath);
|
|
172
|
+
const request = {
|
|
173
|
+
type: 'handshake_request',
|
|
174
|
+
sessionId: 'test-session-123',
|
|
175
|
+
};
|
|
176
|
+
client.send(request);
|
|
177
|
+
const responseStr = await client.waitForResponse();
|
|
178
|
+
const response = JSON.parse(responseStr);
|
|
179
|
+
assert.equal(response.type, 'handshake_response');
|
|
180
|
+
assert.equal(response.sessionId, 'test-session-123');
|
|
181
|
+
assert.equal(response.status, 'ok');
|
|
182
|
+
assert.equal(response.message, 'Handshake successful');
|
|
183
|
+
});
|
|
184
|
+
void it('should handle multiple handshakes from same client', async () => {
|
|
185
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
186
|
+
await client.connect(socketPath);
|
|
187
|
+
for (let i = 1; i <= 3; i++) {
|
|
188
|
+
const request = {
|
|
189
|
+
type: 'handshake_request',
|
|
190
|
+
sessionId: `session-${i}`,
|
|
191
|
+
};
|
|
192
|
+
client.send(request);
|
|
193
|
+
const responseStr = await client.waitForResponse();
|
|
194
|
+
const response = JSON.parse(responseStr);
|
|
195
|
+
assert.equal(response.sessionId, `session-${i}`);
|
|
196
|
+
assert.equal(response.status, 'ok');
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
void describe('Status request', () => {
|
|
201
|
+
void it('should respond to status request with daemon metadata', async () => {
|
|
202
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
203
|
+
await client.connect(socketPath);
|
|
204
|
+
const request = {
|
|
205
|
+
type: 'status_request',
|
|
206
|
+
sessionId: 'test-session',
|
|
207
|
+
};
|
|
208
|
+
client.send(request);
|
|
209
|
+
const responseStr = await client.waitForResponse();
|
|
210
|
+
const response = JSON.parse(responseStr);
|
|
211
|
+
assert.equal(response.type, 'status_response');
|
|
212
|
+
assert.equal(response.sessionId, 'test-session');
|
|
213
|
+
assert.equal(response.status, 'ok');
|
|
214
|
+
assert.ok(response.data, 'Should have data field');
|
|
215
|
+
assert.equal(response.data.daemonPid, process.pid);
|
|
216
|
+
assert.ok(response.data.daemonStartTime, 'Should have daemon start time');
|
|
217
|
+
assert.ok(response.data.socketPath, 'Should have socket path');
|
|
218
|
+
});
|
|
219
|
+
void it('should indicate no active session when session PID file missing', async () => {
|
|
220
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
221
|
+
await client.connect(socketPath);
|
|
222
|
+
const request = {
|
|
223
|
+
type: 'status_request',
|
|
224
|
+
sessionId: 'test-session',
|
|
225
|
+
};
|
|
226
|
+
client.send(request);
|
|
227
|
+
const responseStr = await client.waitForResponse();
|
|
228
|
+
const response = JSON.parse(responseStr);
|
|
229
|
+
assert.equal(response.status, 'ok');
|
|
230
|
+
assert.ok(!response.data.sessionPid, 'Should not have session PID');
|
|
231
|
+
assert.ok(!response.data.sessionMetadata, 'Should not have session metadata');
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
void describe('JSONL parsing', () => {
|
|
235
|
+
void it('should handle fragmented JSONL messages', async () => {
|
|
236
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
237
|
+
await client.connect(socketPath);
|
|
238
|
+
// Send message in fragments (simulates chunked network data)
|
|
239
|
+
const request = {
|
|
240
|
+
type: 'handshake_request',
|
|
241
|
+
sessionId: 'fragmented-test',
|
|
242
|
+
};
|
|
243
|
+
const json = JSON.stringify(request) + '\n';
|
|
244
|
+
const mid = Math.floor(json.length / 2);
|
|
245
|
+
// Send first half
|
|
246
|
+
client['socket'].write(json.slice(0, mid));
|
|
247
|
+
// Wait a bit
|
|
248
|
+
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
249
|
+
// Send second half
|
|
250
|
+
client['socket'].write(json.slice(mid));
|
|
251
|
+
const responseStr = await client.waitForResponse();
|
|
252
|
+
const response = JSON.parse(responseStr);
|
|
253
|
+
assert.equal(response.sessionId, 'fragmented-test');
|
|
254
|
+
assert.equal(response.status, 'ok');
|
|
255
|
+
});
|
|
256
|
+
void it('should handle multiple messages in one chunk', async () => {
|
|
257
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
258
|
+
await client.connect(socketPath);
|
|
259
|
+
// Send 3 handshakes in one write
|
|
260
|
+
const messages = [
|
|
261
|
+
{ type: 'handshake_request', sessionId: 'batch-1' },
|
|
262
|
+
{ type: 'handshake_request', sessionId: 'batch-2' },
|
|
263
|
+
{ type: 'handshake_request', sessionId: 'batch-3' },
|
|
264
|
+
];
|
|
265
|
+
const batch = messages.map((m) => JSON.stringify(m)).join('\n') + '\n';
|
|
266
|
+
client['socket'].write(batch);
|
|
267
|
+
// Should receive 3 responses
|
|
268
|
+
const response1 = JSON.parse(await client.waitForResponse());
|
|
269
|
+
const response2 = JSON.parse(await client.waitForResponse());
|
|
270
|
+
const response3 = JSON.parse(await client.waitForResponse());
|
|
271
|
+
assert.equal(response1.sessionId, 'batch-1');
|
|
272
|
+
assert.equal(response2.sessionId, 'batch-2');
|
|
273
|
+
assert.equal(response3.sessionId, 'batch-3');
|
|
274
|
+
});
|
|
275
|
+
void it('should ignore empty lines', async () => {
|
|
276
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
277
|
+
await client.connect(socketPath);
|
|
278
|
+
// Send message with empty lines
|
|
279
|
+
const json = '\n\n' +
|
|
280
|
+
JSON.stringify({
|
|
281
|
+
type: 'handshake_request',
|
|
282
|
+
sessionId: 'empty-lines-test',
|
|
283
|
+
}) +
|
|
284
|
+
'\n\n';
|
|
285
|
+
client['socket'].write(json);
|
|
286
|
+
const responseStr = await client.waitForResponse();
|
|
287
|
+
const response = JSON.parse(responseStr);
|
|
288
|
+
assert.equal(response.sessionId, 'empty-lines-test');
|
|
289
|
+
assert.equal(response.status, 'ok');
|
|
290
|
+
});
|
|
291
|
+
});
|
|
292
|
+
void describe('Error handling', () => {
|
|
293
|
+
void it('should handle malformed JSON gracefully', async () => {
|
|
294
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
295
|
+
await client.connect(socketPath);
|
|
296
|
+
// Send invalid JSON
|
|
297
|
+
client['socket'].write('{ invalid json }\n');
|
|
298
|
+
// Wait a bit to ensure server processes it
|
|
299
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
300
|
+
// Server should still accept valid messages after error
|
|
301
|
+
const request = {
|
|
302
|
+
type: 'handshake_request',
|
|
303
|
+
sessionId: 'recovery-test',
|
|
304
|
+
};
|
|
305
|
+
client.send(request);
|
|
306
|
+
const responseStr = await client.waitForResponse();
|
|
307
|
+
const response = JSON.parse(responseStr);
|
|
308
|
+
assert.equal(response.sessionId, 'recovery-test');
|
|
309
|
+
assert.equal(response.status, 'ok');
|
|
310
|
+
});
|
|
311
|
+
void it('should handle client disconnect gracefully', async () => {
|
|
312
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
313
|
+
await client.connect(socketPath);
|
|
314
|
+
// Send handshake
|
|
315
|
+
client.send({
|
|
316
|
+
type: 'handshake_request',
|
|
317
|
+
sessionId: 'disconnect-test',
|
|
318
|
+
});
|
|
319
|
+
await client.waitForResponse();
|
|
320
|
+
// Disconnect
|
|
321
|
+
client.close();
|
|
322
|
+
// Server should still accept new connections
|
|
323
|
+
const newClient = new MockIPCClient();
|
|
324
|
+
await newClient.connect(socketPath);
|
|
325
|
+
newClient.send({
|
|
326
|
+
type: 'handshake_request',
|
|
327
|
+
sessionId: 'reconnect-test',
|
|
328
|
+
});
|
|
329
|
+
const responseStr = await newClient.waitForResponse();
|
|
330
|
+
const response = JSON.parse(responseStr);
|
|
331
|
+
assert.equal(response.sessionId, 'reconnect-test');
|
|
332
|
+
assert.equal(response.status, 'ok');
|
|
333
|
+
newClient.close();
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
void describe('Concurrent clients', () => {
|
|
337
|
+
void it('should handle multiple concurrent client connections', async () => {
|
|
338
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
339
|
+
// Connect 3 clients simultaneously
|
|
340
|
+
const clients = [new MockIPCClient(), new MockIPCClient(), new MockIPCClient()];
|
|
341
|
+
await Promise.all(clients.map((c) => c.connect(socketPath)));
|
|
342
|
+
// Send different handshakes from each client
|
|
343
|
+
for (let i = 0; i < clients.length; i++) {
|
|
344
|
+
clients[i].send({
|
|
345
|
+
type: 'handshake_request',
|
|
346
|
+
sessionId: `concurrent-${i}`,
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
// Each client should receive correct response
|
|
350
|
+
for (let i = 0; i < clients.length; i++) {
|
|
351
|
+
const responseStr = await clients[i].waitForResponse();
|
|
352
|
+
const response = JSON.parse(responseStr);
|
|
353
|
+
assert.equal(response.sessionId, `concurrent-${i}`);
|
|
354
|
+
assert.equal(response.status, 'ok');
|
|
355
|
+
}
|
|
356
|
+
// Clean up
|
|
357
|
+
clients.forEach((c) => c.close());
|
|
358
|
+
});
|
|
359
|
+
void it('should route responses to correct client', async () => {
|
|
360
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
361
|
+
const client1 = new MockIPCClient();
|
|
362
|
+
const client2 = new MockIPCClient();
|
|
363
|
+
await client1.connect(socketPath);
|
|
364
|
+
await client2.connect(socketPath);
|
|
365
|
+
// Client 1 sends session-1 request
|
|
366
|
+
client1.send({
|
|
367
|
+
type: 'handshake_request',
|
|
368
|
+
sessionId: 'session-1',
|
|
369
|
+
});
|
|
370
|
+
// Client 2 sends session-2 request
|
|
371
|
+
client2.send({
|
|
372
|
+
type: 'handshake_request',
|
|
373
|
+
sessionId: 'session-2',
|
|
374
|
+
});
|
|
375
|
+
// Each client gets its own response (not crossed)
|
|
376
|
+
const response1Str = await client1.waitForResponse();
|
|
377
|
+
const response1 = JSON.parse(response1Str);
|
|
378
|
+
const response2Str = await client2.waitForResponse();
|
|
379
|
+
const response2 = JSON.parse(response2Str);
|
|
380
|
+
assert.equal(response1.sessionId, 'session-1', 'Client 1 should get session-1 response');
|
|
381
|
+
assert.equal(response2.sessionId, 'session-2', 'Client 2 should get session-2 response');
|
|
382
|
+
client1.close();
|
|
383
|
+
client2.close();
|
|
384
|
+
});
|
|
385
|
+
});
|
|
386
|
+
void describe('Static helper methods', () => {
|
|
387
|
+
void it('IPCServer.isRunning() should return true when server is running', () => {
|
|
388
|
+
assert.ok(IPCServer.isRunning(), 'Server should be detected as running');
|
|
389
|
+
});
|
|
390
|
+
void it('IPCServer.isRunning() should return false after server stops', async () => {
|
|
391
|
+
await server.stop();
|
|
392
|
+
assert.ok(!IPCServer.isRunning(), 'Server should not be detected after stop');
|
|
393
|
+
});
|
|
394
|
+
void it('IPCServer.getSocketPath() should return correct socket path', () => {
|
|
395
|
+
const socketPath = IPCServer.getSocketPath();
|
|
396
|
+
const expectedPath = getSessionFilePath('DAEMON_SOCKET');
|
|
397
|
+
assert.equal(socketPath, expectedPath);
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
});
|
|
401
|
+
//# sourceMappingURL=ipcServer.contract.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipcServer.contract.test.js","sourceRoot":"","sources":["../../../src/daemon/__tests__/ipcServer.contract.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for daemon launcher
|
|
3
|
+
*
|
|
4
|
+
* Note: These are simplified tests that verify the core error handling logic.
|
|
5
|
+
* The launchDaemon function throws appropriate errors that can be caught by callers.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=launcher.unit.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launcher.unit.test.d.ts","sourceRoot":"","sources":["../../../src/daemon/__tests__/launcher.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for daemon launcher
|
|
3
|
+
*
|
|
4
|
+
* Note: These are simplified tests that verify the core error handling logic.
|
|
5
|
+
* The launchDaemon function throws appropriate errors that can be caught by callers.
|
|
6
|
+
*/
|
|
7
|
+
import * as assert from 'node:assert/strict';
|
|
8
|
+
import { describe, it } from 'node:test';
|
|
9
|
+
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
10
|
+
void describe('daemon/launcher error handling', () => {
|
|
11
|
+
void it('should have DAEMON_ALREADY_RUNNING exit code defined', () => {
|
|
12
|
+
assert.equal(EXIT_CODES.DAEMON_ALREADY_RUNNING, 86);
|
|
13
|
+
});
|
|
14
|
+
void it('should use user error range for DAEMON_ALREADY_RUNNING', () => {
|
|
15
|
+
// User errors are in range 80-99
|
|
16
|
+
assert.ok(EXIT_CODES.DAEMON_ALREADY_RUNNING >= 80);
|
|
17
|
+
assert.ok(EXIT_CODES.DAEMON_ALREADY_RUNNING <= 99);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=launcher.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launcher.unit.test.js","sourceRoot":"","sources":["../../../src/daemon/__tests__/launcher.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,KAAK,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IACnD,KAAK,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,KAAK,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QACrE,iCAAiC;QACjC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Daemon IPC Server - Minimal JSONL handshake MVP
|
|
3
|
+
*
|
|
4
|
+
* Starts a Unix domain socket server that:
|
|
5
|
+
* 1. Listens for JSONL frames (newline-delimited JSON messages)
|
|
6
|
+
* 2. Responds only to handshake requests
|
|
7
|
+
* 3. Logs all incoming frames for debugging
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Simple JSONL IPC server for daemon communication.
|
|
11
|
+
*/
|
|
12
|
+
export declare class IPCServer {
|
|
13
|
+
private server;
|
|
14
|
+
private clients;
|
|
15
|
+
private readonly startTime;
|
|
16
|
+
private workerProcess;
|
|
17
|
+
private pendingDomRequests;
|
|
18
|
+
/**
|
|
19
|
+
* Start the IPC server on Unix domain socket.
|
|
20
|
+
*/
|
|
21
|
+
start(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Handle new client connection.
|
|
24
|
+
*/
|
|
25
|
+
private handleConnection;
|
|
26
|
+
/**
|
|
27
|
+
* Handle incoming JSONL message.
|
|
28
|
+
*/
|
|
29
|
+
private handleMessage;
|
|
30
|
+
/**
|
|
31
|
+
* Handle handshake request.
|
|
32
|
+
*/
|
|
33
|
+
private handleHandshake;
|
|
34
|
+
/**
|
|
35
|
+
* Handle status request.
|
|
36
|
+
*/
|
|
37
|
+
private handleStatusRequest;
|
|
38
|
+
/**
|
|
39
|
+
* Handle peek request - forward to worker via IPC.
|
|
40
|
+
*/
|
|
41
|
+
private handlePeekRequest;
|
|
42
|
+
/**
|
|
43
|
+
* Handle start session request.
|
|
44
|
+
*/
|
|
45
|
+
private handleStartSessionRequest;
|
|
46
|
+
/**
|
|
47
|
+
* Handle stop session request.
|
|
48
|
+
*/
|
|
49
|
+
private handleStopSessionRequest;
|
|
50
|
+
/**
|
|
51
|
+
* Set up worker stdout listener for IPC responses.
|
|
52
|
+
*/
|
|
53
|
+
private setupWorkerListener;
|
|
54
|
+
/**
|
|
55
|
+
* Handle response from worker (lifecycle signals or command responses).
|
|
56
|
+
*/
|
|
57
|
+
private handleWorkerResponse;
|
|
58
|
+
/**
|
|
59
|
+
* Generic forwarder for all command responses.
|
|
60
|
+
*/
|
|
61
|
+
private forwardCommandResponse;
|
|
62
|
+
/**
|
|
63
|
+
* Generic handler for all command requests.
|
|
64
|
+
*/
|
|
65
|
+
private handleCommandRequest;
|
|
66
|
+
/**
|
|
67
|
+
* Stop the IPC server and cleanup.
|
|
68
|
+
*/
|
|
69
|
+
stop(): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Write daemon PID to file for tracking.
|
|
72
|
+
*/
|
|
73
|
+
private writePidFile;
|
|
74
|
+
/**
|
|
75
|
+
* Check if daemon is already running.
|
|
76
|
+
*/
|
|
77
|
+
static isRunning(): boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Get socket path for client connections.
|
|
80
|
+
*/
|
|
81
|
+
static getSocketPath(): string;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=ipcServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipcServer.d.ts","sourceRoot":"","sources":["../../src/daemon/ipcServer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwDH;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,kBAAkB,CAA6C;IAEvE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAwDrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqD3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8CzB;;OAEG;YACW,yBAAyB;IA2IvC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8EhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgE9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiD5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAWpB;;OAEG;IACH,MAAM,CAAC,SAAS,IAAI,OAAO;IAY3B;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,MAAM;CAG/B"}
|