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,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Client - Minimal JSONL handshake MVP
|
|
3
|
+
*
|
|
4
|
+
* Connects to the daemon's Unix domain socket and performs handshake.
|
|
5
|
+
*/
|
|
6
|
+
import { randomUUID } from 'crypto';
|
|
7
|
+
import { connect } from 'net';
|
|
8
|
+
import { IPCServer } from '../daemon/ipcServer.js';
|
|
9
|
+
import { getErrorMessage } from '../utils/errors.js';
|
|
10
|
+
/**
|
|
11
|
+
* Generic IPC request sender that handles connection, timeout, and error handling.
|
|
12
|
+
* Supports both traditional IPC messages (handshake, status, etc.) and command messages (DOM commands).
|
|
13
|
+
*
|
|
14
|
+
* @param request - The IPC request to send (either IPCRequest or ClientRequest<T>)
|
|
15
|
+
* @param requestName - Human-readable name for logging (e.g., 'status', 'peek')
|
|
16
|
+
* @returns Promise that resolves with the response
|
|
17
|
+
*/
|
|
18
|
+
async function sendRequest(request, requestName) {
|
|
19
|
+
const socketPath = IPCServer.getSocketPath();
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
const socket = connect(socketPath);
|
|
22
|
+
let buffer = '';
|
|
23
|
+
let resolved = false;
|
|
24
|
+
// Set request timeout
|
|
25
|
+
const timeout = setTimeout(() => {
|
|
26
|
+
if (!resolved) {
|
|
27
|
+
resolved = true;
|
|
28
|
+
socket.destroy();
|
|
29
|
+
reject(new Error(`${requestName} request timeout after 5s`));
|
|
30
|
+
}
|
|
31
|
+
}, 5000);
|
|
32
|
+
socket.on('connect', () => {
|
|
33
|
+
console.error(`[client] Connected to daemon for ${requestName} request`);
|
|
34
|
+
socket.write(JSON.stringify(request) + '\n');
|
|
35
|
+
console.error(`[client] ${requestName} request sent`);
|
|
36
|
+
});
|
|
37
|
+
socket.on('data', (chunk) => {
|
|
38
|
+
buffer += chunk.toString('utf-8');
|
|
39
|
+
// Process complete JSONL frames
|
|
40
|
+
const lines = buffer.split('\n');
|
|
41
|
+
buffer = lines.pop() ?? '';
|
|
42
|
+
for (const line of lines) {
|
|
43
|
+
if (line.trim() && !resolved) {
|
|
44
|
+
try {
|
|
45
|
+
const response = JSON.parse(line);
|
|
46
|
+
console.error(`[client] ${requestName} response received`);
|
|
47
|
+
resolved = true;
|
|
48
|
+
clearTimeout(timeout);
|
|
49
|
+
socket.destroy();
|
|
50
|
+
resolve(response);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (!resolved) {
|
|
54
|
+
resolved = true;
|
|
55
|
+
clearTimeout(timeout);
|
|
56
|
+
socket.destroy();
|
|
57
|
+
reject(new Error(`Failed to parse ${requestName} response: ${getErrorMessage(error)}`));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
socket.on('error', (err) => {
|
|
64
|
+
if (!resolved) {
|
|
65
|
+
resolved = true;
|
|
66
|
+
clearTimeout(timeout);
|
|
67
|
+
reject(new Error(`Connection error: ${err.message}`));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
socket.on('end', () => {
|
|
71
|
+
if (!resolved) {
|
|
72
|
+
resolved = true;
|
|
73
|
+
clearTimeout(timeout);
|
|
74
|
+
reject(new Error(`Connection closed before ${requestName} response received`));
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Connect to the daemon and perform handshake.
|
|
81
|
+
*
|
|
82
|
+
* @returns Handshake response from daemon
|
|
83
|
+
* @throws Error if connection fails or handshake times out
|
|
84
|
+
*/
|
|
85
|
+
export async function connectToDaemon() {
|
|
86
|
+
const request = {
|
|
87
|
+
type: 'handshake_request',
|
|
88
|
+
sessionId: randomUUID(),
|
|
89
|
+
};
|
|
90
|
+
return sendRequest(request, 'handshake');
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Request status information from the daemon.
|
|
94
|
+
*
|
|
95
|
+
* @returns Status response with daemon and session metadata
|
|
96
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
97
|
+
*/
|
|
98
|
+
export async function getStatus() {
|
|
99
|
+
const request = {
|
|
100
|
+
type: 'status_request',
|
|
101
|
+
sessionId: randomUUID(),
|
|
102
|
+
};
|
|
103
|
+
return sendRequest(request, 'status');
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Request preview data from the daemon.
|
|
107
|
+
*
|
|
108
|
+
* @returns Peek response with session preview data
|
|
109
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
110
|
+
*/
|
|
111
|
+
export async function getPeek() {
|
|
112
|
+
const request = {
|
|
113
|
+
type: 'peek_request',
|
|
114
|
+
sessionId: randomUUID(),
|
|
115
|
+
};
|
|
116
|
+
return sendRequest(request, 'peek');
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Request daemon to start a new browser session.
|
|
120
|
+
*
|
|
121
|
+
* @param url - Target URL to navigate to
|
|
122
|
+
* @param options - Session configuration options
|
|
123
|
+
* @returns Start session response with worker and Chrome metadata
|
|
124
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
125
|
+
*/
|
|
126
|
+
export async function startSession(url, options) {
|
|
127
|
+
const request = {
|
|
128
|
+
type: 'start_session_request',
|
|
129
|
+
sessionId: randomUUID(),
|
|
130
|
+
url,
|
|
131
|
+
...(options?.port !== undefined && { port: options.port }),
|
|
132
|
+
...(options?.timeout !== undefined && { timeout: options.timeout }),
|
|
133
|
+
...(options?.collectors !== undefined && { collectors: options.collectors }),
|
|
134
|
+
...(options?.includeAll !== undefined && { includeAll: options.includeAll }),
|
|
135
|
+
...(options?.userDataDir !== undefined && { userDataDir: options.userDataDir }),
|
|
136
|
+
...(options?.maxBodySize !== undefined && { maxBodySize: options.maxBodySize }),
|
|
137
|
+
};
|
|
138
|
+
return sendRequest(request, 'start session');
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Request session stop from the daemon.
|
|
142
|
+
*
|
|
143
|
+
* @returns Stop session response with success/error status
|
|
144
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
145
|
+
*/
|
|
146
|
+
export async function stopSession() {
|
|
147
|
+
const request = {
|
|
148
|
+
type: 'stop_session_request',
|
|
149
|
+
sessionId: randomUUID(),
|
|
150
|
+
};
|
|
151
|
+
return sendRequest(request, 'stop session');
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Generic command sender - works for any registered command in the COMMANDS registry.
|
|
155
|
+
*
|
|
156
|
+
* @param commandName - Name of the command from the COMMANDS registry
|
|
157
|
+
* @param params - Command parameters matching the command's request schema
|
|
158
|
+
* @returns Promise that resolves with the command response
|
|
159
|
+
*/
|
|
160
|
+
async function sendCommand(commandName, params) {
|
|
161
|
+
const request = {
|
|
162
|
+
type: `${commandName}_request`,
|
|
163
|
+
sessionId: randomUUID(),
|
|
164
|
+
...params,
|
|
165
|
+
};
|
|
166
|
+
return sendRequest(request, commandName);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Query DOM elements by CSS selector via the daemon's worker.
|
|
170
|
+
*
|
|
171
|
+
* @param selector - CSS selector to query
|
|
172
|
+
* @returns DOM query response with matched elements
|
|
173
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
174
|
+
*/
|
|
175
|
+
export async function queryDOM(selector) {
|
|
176
|
+
return sendCommand('dom_query', { selector });
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Highlight DOM elements in the browser via the daemon's worker.
|
|
180
|
+
*
|
|
181
|
+
* @param options - Highlight options (selector, index, nodeId, color, etc.)
|
|
182
|
+
* @returns DOM highlight response with highlighted node information
|
|
183
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
184
|
+
*/
|
|
185
|
+
export async function highlightDOM(options) {
|
|
186
|
+
return sendCommand('dom_highlight', options);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get full HTML and attributes for DOM elements via the daemon's worker.
|
|
190
|
+
*
|
|
191
|
+
* @param options - Get options (selector, index, nodeId, all, nth)
|
|
192
|
+
* @returns DOM get response with node information
|
|
193
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
194
|
+
*/
|
|
195
|
+
export async function getDOM(options) {
|
|
196
|
+
return sendCommand('dom_get', options);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get details for a specific network request or console message via the daemon's worker.
|
|
200
|
+
*
|
|
201
|
+
* @param type - Type of item: 'network' or 'console'
|
|
202
|
+
* @param id - Request ID for network, index for console
|
|
203
|
+
* @returns Worker details response with full object (including bodies/args)
|
|
204
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
205
|
+
*/
|
|
206
|
+
export async function getDetails(type, id) {
|
|
207
|
+
return sendCommand('worker_details', { itemType: type, id });
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Execute arbitrary CDP method via the daemon's worker.
|
|
211
|
+
*
|
|
212
|
+
* @param method - CDP method name (e.g., 'Network.getCookies', 'Runtime.evaluate')
|
|
213
|
+
* @param params - CDP method parameters (optional)
|
|
214
|
+
* @returns CDP call response with method result
|
|
215
|
+
* @throws Error if connection fails, daemon is not running, or request times out
|
|
216
|
+
*/
|
|
217
|
+
export async function callCDP(method, params) {
|
|
218
|
+
return sendCommand('cdp_call', { method, ...(params && { params }) });
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ipc/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Command Registry - Single Source of Truth
|
|
3
|
+
*
|
|
4
|
+
* This file defines all IPC commands and their schemas. Command types are defined once here,
|
|
5
|
+
* and utility types add sessionId/requestId at the boundaries (client/worker).
|
|
6
|
+
*
|
|
7
|
+
* Benefits:
|
|
8
|
+
* - No type duplication between client and worker
|
|
9
|
+
* - Adding a new command only requires updating this file and the handler
|
|
10
|
+
* - Type safety maintained throughout the stack
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* DOM Query Command - Find elements by CSS selector
|
|
14
|
+
*/
|
|
15
|
+
export interface DomQueryCommand {
|
|
16
|
+
selector: string;
|
|
17
|
+
}
|
|
18
|
+
export interface DomQueryData {
|
|
19
|
+
selector: string;
|
|
20
|
+
count: number;
|
|
21
|
+
nodes: Array<{
|
|
22
|
+
index: number;
|
|
23
|
+
nodeId: number;
|
|
24
|
+
tag?: string;
|
|
25
|
+
classes?: string[];
|
|
26
|
+
preview?: string;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* DOM Highlight Command - Highlight elements in browser
|
|
31
|
+
*/
|
|
32
|
+
export interface DomHighlightCommand {
|
|
33
|
+
selector?: string;
|
|
34
|
+
index?: number;
|
|
35
|
+
nodeId?: number;
|
|
36
|
+
first?: boolean;
|
|
37
|
+
nth?: number;
|
|
38
|
+
color?: string;
|
|
39
|
+
opacity?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface DomHighlightData {
|
|
42
|
+
highlighted: number;
|
|
43
|
+
nodeIds: number[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* DOM Get Command - Get full HTML and attributes for elements
|
|
47
|
+
*/
|
|
48
|
+
export interface DomGetCommand {
|
|
49
|
+
selector?: string;
|
|
50
|
+
index?: number;
|
|
51
|
+
nodeId?: number;
|
|
52
|
+
all?: boolean;
|
|
53
|
+
nth?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface DomGetData {
|
|
56
|
+
nodes: Array<{
|
|
57
|
+
nodeId: number;
|
|
58
|
+
tag?: string;
|
|
59
|
+
attributes?: Record<string, unknown>;
|
|
60
|
+
classes?: string[];
|
|
61
|
+
outerHTML?: string;
|
|
62
|
+
}>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Worker Peek Command - Get lightweight preview of collected data
|
|
66
|
+
*/
|
|
67
|
+
export interface WorkerPeekCommand {
|
|
68
|
+
lastN?: number;
|
|
69
|
+
}
|
|
70
|
+
export interface WorkerPeekData {
|
|
71
|
+
version: string;
|
|
72
|
+
startTime: number;
|
|
73
|
+
duration: number;
|
|
74
|
+
target: {
|
|
75
|
+
url: string;
|
|
76
|
+
title: string;
|
|
77
|
+
};
|
|
78
|
+
activeCollectors: string[];
|
|
79
|
+
network: Array<{
|
|
80
|
+
requestId: string;
|
|
81
|
+
timestamp: number;
|
|
82
|
+
method: string;
|
|
83
|
+
url: string;
|
|
84
|
+
status?: number;
|
|
85
|
+
mimeType?: string;
|
|
86
|
+
}>;
|
|
87
|
+
console: Array<{
|
|
88
|
+
timestamp: number;
|
|
89
|
+
type: string;
|
|
90
|
+
text: string;
|
|
91
|
+
}>;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Worker Details Command - Get full object for specific network/console item
|
|
95
|
+
*/
|
|
96
|
+
export interface WorkerDetailsCommand {
|
|
97
|
+
itemType: 'network' | 'console';
|
|
98
|
+
id: string;
|
|
99
|
+
}
|
|
100
|
+
export interface WorkerDetailsData {
|
|
101
|
+
item: unknown;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* CDP Call Command - Execute arbitrary CDP method
|
|
105
|
+
*/
|
|
106
|
+
export interface CdpCallCommand {
|
|
107
|
+
method: string;
|
|
108
|
+
params?: Record<string, unknown>;
|
|
109
|
+
}
|
|
110
|
+
export interface CdpCallData {
|
|
111
|
+
result: unknown;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Registry of all available commands.
|
|
115
|
+
* Each command has a request schema and response schema.
|
|
116
|
+
*/
|
|
117
|
+
export declare const COMMANDS: {
|
|
118
|
+
readonly dom_query: {
|
|
119
|
+
readonly requestSchema: DomQueryCommand;
|
|
120
|
+
readonly responseSchema: DomQueryData;
|
|
121
|
+
};
|
|
122
|
+
readonly dom_highlight: {
|
|
123
|
+
readonly requestSchema: DomHighlightCommand;
|
|
124
|
+
readonly responseSchema: DomHighlightData;
|
|
125
|
+
};
|
|
126
|
+
readonly dom_get: {
|
|
127
|
+
readonly requestSchema: DomGetCommand;
|
|
128
|
+
readonly responseSchema: DomGetData;
|
|
129
|
+
};
|
|
130
|
+
readonly worker_peek: {
|
|
131
|
+
readonly requestSchema: WorkerPeekCommand;
|
|
132
|
+
readonly responseSchema: WorkerPeekData;
|
|
133
|
+
};
|
|
134
|
+
readonly worker_details: {
|
|
135
|
+
readonly requestSchema: WorkerDetailsCommand;
|
|
136
|
+
readonly responseSchema: WorkerDetailsData;
|
|
137
|
+
};
|
|
138
|
+
readonly cdp_call: {
|
|
139
|
+
readonly requestSchema: CdpCallCommand;
|
|
140
|
+
readonly responseSchema: CdpCallData;
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
export type CommandName = keyof typeof COMMANDS;
|
|
144
|
+
/**
|
|
145
|
+
* Worker Request - Command with requestId (daemon -\> worker via stdin)
|
|
146
|
+
*/
|
|
147
|
+
export type WorkerRequest<T extends CommandName> = {
|
|
148
|
+
type: `${T}_request`;
|
|
149
|
+
requestId: string;
|
|
150
|
+
} & (typeof COMMANDS)[T]['requestSchema'];
|
|
151
|
+
/**
|
|
152
|
+
* Worker Response - Command result with requestId (worker -\> daemon via stdout)
|
|
153
|
+
*/
|
|
154
|
+
export type WorkerResponse<T extends CommandName> = {
|
|
155
|
+
type: `${T}_response`;
|
|
156
|
+
requestId: string;
|
|
157
|
+
success: boolean;
|
|
158
|
+
data?: (typeof COMMANDS)[T]['responseSchema'];
|
|
159
|
+
error?: string;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Client Request - Command with sessionId (CLI -\> daemon via Unix socket)
|
|
163
|
+
*/
|
|
164
|
+
export type ClientRequest<T extends CommandName> = {
|
|
165
|
+
type: `${T}_request`;
|
|
166
|
+
sessionId: string;
|
|
167
|
+
} & (typeof COMMANDS)[T]['requestSchema'];
|
|
168
|
+
/**
|
|
169
|
+
* Client Response - Command result with sessionId (daemon -\> CLI via Unix socket)
|
|
170
|
+
*/
|
|
171
|
+
export type ClientResponse<T extends CommandName> = {
|
|
172
|
+
type: `${T}_response`;
|
|
173
|
+
sessionId: string;
|
|
174
|
+
status: 'ok' | 'error';
|
|
175
|
+
data?: (typeof COMMANDS)[T]['responseSchema'];
|
|
176
|
+
error?: string;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Union of all possible worker request types
|
|
180
|
+
*/
|
|
181
|
+
export type WorkerRequestUnion = {
|
|
182
|
+
[K in CommandName]: WorkerRequest<K>;
|
|
183
|
+
}[CommandName];
|
|
184
|
+
/**
|
|
185
|
+
* Union of all possible worker response types
|
|
186
|
+
*/
|
|
187
|
+
export type WorkerResponseUnion = {
|
|
188
|
+
[K in CommandName]: WorkerResponse<K>;
|
|
189
|
+
}[CommandName];
|
|
190
|
+
/**
|
|
191
|
+
* Union of all possible client request types
|
|
192
|
+
*/
|
|
193
|
+
export type ClientRequestUnion = {
|
|
194
|
+
[K in CommandName]: ClientRequest<K>;
|
|
195
|
+
}[CommandName];
|
|
196
|
+
/**
|
|
197
|
+
* Check if a message type corresponds to a registered command
|
|
198
|
+
*/
|
|
199
|
+
export declare function isCommandRequest(type: string): type is `${CommandName}_request`;
|
|
200
|
+
/**
|
|
201
|
+
* Check if a message type corresponds to a command response
|
|
202
|
+
*/
|
|
203
|
+
export declare function isCommandResponse(type: string): type is `${CommandName}_response`;
|
|
204
|
+
/**
|
|
205
|
+
* Extract command name from message type
|
|
206
|
+
*/
|
|
207
|
+
export declare function getCommandName(type: string): CommandName | null;
|
|
208
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/ipc/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Command Registry - Single Source of Truth
|
|
3
|
+
*
|
|
4
|
+
* This file defines all IPC commands and their schemas. Command types are defined once here,
|
|
5
|
+
* and utility types add sessionId/requestId at the boundaries (client/worker).
|
|
6
|
+
*
|
|
7
|
+
* Benefits:
|
|
8
|
+
* - No type duplication between client and worker
|
|
9
|
+
* - Adding a new command only requires updating this file and the handler
|
|
10
|
+
* - Type safety maintained throughout the stack
|
|
11
|
+
*/
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Command Registry - Single Source of Truth
|
|
14
|
+
// =============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Registry of all available commands.
|
|
17
|
+
* Each command has a request schema and response schema.
|
|
18
|
+
*/
|
|
19
|
+
export const COMMANDS = {
|
|
20
|
+
dom_query: {
|
|
21
|
+
requestSchema: {},
|
|
22
|
+
responseSchema: {},
|
|
23
|
+
},
|
|
24
|
+
dom_highlight: {
|
|
25
|
+
requestSchema: {},
|
|
26
|
+
responseSchema: {},
|
|
27
|
+
},
|
|
28
|
+
dom_get: {
|
|
29
|
+
requestSchema: {},
|
|
30
|
+
responseSchema: {},
|
|
31
|
+
},
|
|
32
|
+
worker_peek: {
|
|
33
|
+
requestSchema: {},
|
|
34
|
+
responseSchema: {},
|
|
35
|
+
},
|
|
36
|
+
worker_details: {
|
|
37
|
+
requestSchema: {},
|
|
38
|
+
responseSchema: {},
|
|
39
|
+
},
|
|
40
|
+
cdp_call: {
|
|
41
|
+
requestSchema: {},
|
|
42
|
+
responseSchema: {},
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
// =============================================================================
|
|
46
|
+
// Type Guards
|
|
47
|
+
// =============================================================================
|
|
48
|
+
/**
|
|
49
|
+
* Check if a message type corresponds to a registered command
|
|
50
|
+
*/
|
|
51
|
+
export function isCommandRequest(type) {
|
|
52
|
+
const commandName = type.replace('_request', '');
|
|
53
|
+
return commandName in COMMANDS;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if a message type corresponds to a command response
|
|
57
|
+
*/
|
|
58
|
+
export function isCommandResponse(type) {
|
|
59
|
+
const commandName = type.replace('_response', '');
|
|
60
|
+
return commandName in COMMANDS;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Extract command name from message type
|
|
64
|
+
*/
|
|
65
|
+
export function getCommandName(type) {
|
|
66
|
+
const commandName = type.replace(/_request|_response/, '');
|
|
67
|
+
return commandName in COMMANDS ? commandName : null;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/ipc/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuHH,gFAAgF;AAChF,4CAA4C;AAC5C,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE;QACT,aAAa,EAAE,EAAqB;QACpC,cAAc,EAAE,EAAkB;KACnC;IACD,aAAa,EAAE;QACb,aAAa,EAAE,EAAyB;QACxC,cAAc,EAAE,EAAsB;KACvC;IACD,OAAO,EAAE;QACP,aAAa,EAAE,EAAmB;QAClC,cAAc,EAAE,EAAgB;KACjC;IACD,WAAW,EAAE;QACX,aAAa,EAAE,EAAuB;QACtC,cAAc,EAAE,EAAoB;KACrC;IACD,cAAc,EAAE;QACd,aAAa,EAAE,EAA0B;QACzC,cAAc,EAAE,EAAuB;KACxC;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,EAAoB;QACnC,cAAc,EAAE,EAAiB;KAClC;CACO,CAAC;AAuEX,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAgB,CAAC;IAChE,OAAO,WAAW,IAAI,QAAQ,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAgB,CAAC;IACjE,OAAO,WAAW,IAAI,QAAQ,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAgB,CAAC;IAC1E,OAAO,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base response interface for validation.
|
|
3
|
+
* Both IPCResponse and ClientResponse follow this structure.
|
|
4
|
+
*/
|
|
5
|
+
interface BaseResponse {
|
|
6
|
+
status: 'ok' | 'error';
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Response type with success status.
|
|
11
|
+
* Used for type narrowing after validation.
|
|
12
|
+
*/
|
|
13
|
+
type SuccessResponse<T extends BaseResponse> = T & {
|
|
14
|
+
status: 'ok';
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Validate IPC response and throw on error.
|
|
18
|
+
* Standardizes error handling for all IPC/CDP calls.
|
|
19
|
+
*
|
|
20
|
+
* This function:
|
|
21
|
+
* - Checks if response.status === 'error'
|
|
22
|
+
* - Throws Error with response.error message if present
|
|
23
|
+
* - Narrows TypeScript type to exclude error status after validation
|
|
24
|
+
*
|
|
25
|
+
* Works with both IPCResponse (legacy) and ClientResponse (new) types.
|
|
26
|
+
*
|
|
27
|
+
* @param response - IPC or CDP response from daemon
|
|
28
|
+
* @throws Error if response.status === 'error'
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const response = await callCDP('Network.getCookies', params);
|
|
33
|
+
* validateIPCResponse(response); // Throws if error
|
|
34
|
+
* // TypeScript now knows response.status === 'ok'
|
|
35
|
+
* const cookies = response.data?.result.cookies;
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function validateIPCResponse<T extends BaseResponse>(response: T): asserts response is SuccessResponse<T>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=responseValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseValidator.d.ts","sourceRoot":"","sources":["../../src/ipc/responseValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,UAAU,YAAY;IACpB,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,KAAK,eAAe,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,GAAG;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,YAAY,EACxD,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC,QAAQ,IAAI,eAAe,CAAC,CAAC,CAAC,CAIxC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate IPC response and throw on error.
|
|
3
|
+
* Standardizes error handling for all IPC/CDP calls.
|
|
4
|
+
*
|
|
5
|
+
* This function:
|
|
6
|
+
* - Checks if response.status === 'error'
|
|
7
|
+
* - Throws Error with response.error message if present
|
|
8
|
+
* - Narrows TypeScript type to exclude error status after validation
|
|
9
|
+
*
|
|
10
|
+
* Works with both IPCResponse (legacy) and ClientResponse (new) types.
|
|
11
|
+
*
|
|
12
|
+
* @param response - IPC or CDP response from daemon
|
|
13
|
+
* @throws Error if response.status === 'error'
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const response = await callCDP('Network.getCookies', params);
|
|
18
|
+
* validateIPCResponse(response); // Throws if error
|
|
19
|
+
* // TypeScript now knows response.status === 'ok'
|
|
20
|
+
* const cookies = response.data?.result.cookies;
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function validateIPCResponse(response) {
|
|
24
|
+
if (response.status === 'error') {
|
|
25
|
+
throw new Error(response.error ?? 'Unknown IPC error');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=responseValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseValidator.js","sourceRoot":"","sources":["../../src/ipc/responseValidator.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAW;IAEX,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
|