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 @@
|
|
|
1
|
+
{"version":3,"file":"finder.contract.test.js","sourceRoot":"","sources":["../../../src/connection/__tests__/finder.contract.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.contract.test.d.ts","sourceRoot":"","sources":["../../../src/connection/__tests__/tabs.contract.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
3
|
+
import { createMockTarget, mockCDPCreateTargetResponse, mockHTTPCreateResponse, } from '../../__testfixtures__/connectionTargets.js';
|
|
4
|
+
import { createNewTab } from '../tabs.js';
|
|
5
|
+
// Mock fetch globally for HTTP endpoints
|
|
6
|
+
let originalFetch;
|
|
7
|
+
let fetchMockResponses;
|
|
8
|
+
let fetchCallCount;
|
|
9
|
+
function setupFetchMock() {
|
|
10
|
+
originalFetch = global.fetch;
|
|
11
|
+
fetchMockResponses = [];
|
|
12
|
+
fetchCallCount = 0;
|
|
13
|
+
global.fetch = (() => {
|
|
14
|
+
const responseIndex = fetchCallCount++;
|
|
15
|
+
const response = fetchMockResponses[responseIndex];
|
|
16
|
+
if (response) {
|
|
17
|
+
return response;
|
|
18
|
+
}
|
|
19
|
+
return Promise.reject(new Error(`Unexpected fetch call ${responseIndex + 1}`));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function mockFetchResponse(response) {
|
|
23
|
+
fetchMockResponses.push(response);
|
|
24
|
+
}
|
|
25
|
+
function createSuccessResponse(data) {
|
|
26
|
+
return {
|
|
27
|
+
ok: true,
|
|
28
|
+
status: 200,
|
|
29
|
+
json: () => Promise.resolve(data),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function createFailureResponse(status, statusText) {
|
|
33
|
+
return {
|
|
34
|
+
ok: false,
|
|
35
|
+
status,
|
|
36
|
+
statusText,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function createMockCDP(overrides = {}) {
|
|
40
|
+
return {
|
|
41
|
+
send: () => Promise.resolve(mockCDPCreateTargetResponse),
|
|
42
|
+
getPort: () => 9222,
|
|
43
|
+
isConnected: () => true,
|
|
44
|
+
...overrides,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
void describe('Tab Creation Contract', () => {
|
|
48
|
+
let mockCDP;
|
|
49
|
+
beforeEach(() => {
|
|
50
|
+
setupFetchMock();
|
|
51
|
+
mockCDP = createMockCDP();
|
|
52
|
+
});
|
|
53
|
+
afterEach(() => {
|
|
54
|
+
global.fetch = originalFetch;
|
|
55
|
+
});
|
|
56
|
+
void describe('createNewTab - Happy Path', () => {
|
|
57
|
+
void it('creates tab via CDP strategy and returns target', async () => {
|
|
58
|
+
// Arrange: Mock successful CDP creation and verification
|
|
59
|
+
const expectedTarget = createMockTarget({
|
|
60
|
+
id: mockCDPCreateTargetResponse.targetId,
|
|
61
|
+
url: 'http://localhost:3000/test',
|
|
62
|
+
});
|
|
63
|
+
// Mock verification endpoint returning the target immediately
|
|
64
|
+
mockFetchResponse(createSuccessResponse([expectedTarget]));
|
|
65
|
+
// Act
|
|
66
|
+
const result = await createNewTab('http://localhost:3000/test', mockCDP);
|
|
67
|
+
// Assert: Returns the created target
|
|
68
|
+
assert.equal(result.id, mockCDPCreateTargetResponse.targetId);
|
|
69
|
+
assert.equal(result.url, 'http://localhost:3000/test');
|
|
70
|
+
});
|
|
71
|
+
void it('handles URLs without protocol', async () => {
|
|
72
|
+
// Arrange: Mock successful CDP creation
|
|
73
|
+
let capturedUrl = '';
|
|
74
|
+
mockCDP.send = (...args) => {
|
|
75
|
+
const params = args[1];
|
|
76
|
+
const typedParams = params;
|
|
77
|
+
capturedUrl = typedParams?.url ?? '';
|
|
78
|
+
return Promise.resolve(mockCDPCreateTargetResponse);
|
|
79
|
+
};
|
|
80
|
+
const expectedTarget = createMockTarget({
|
|
81
|
+
id: mockCDPCreateTargetResponse.targetId,
|
|
82
|
+
url: 'http://localhost:3000', // Normalized with protocol
|
|
83
|
+
});
|
|
84
|
+
mockFetchResponse(createSuccessResponse([expectedTarget]));
|
|
85
|
+
// Act: Pass URL without protocol
|
|
86
|
+
const result = await createNewTab('localhost:3000', mockCDP);
|
|
87
|
+
// Assert: Works correctly with normalized URL
|
|
88
|
+
assert.equal(result.id, mockCDPCreateTargetResponse.targetId);
|
|
89
|
+
// Verify CDP was called with normalized URL (normalizeUrl should add http://)
|
|
90
|
+
assert.ok(capturedUrl.includes('localhost:3000'));
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
void describe('createNewTab - Error Handling', () => {
|
|
94
|
+
void it('falls back to HTTP when CDP fails', async () => {
|
|
95
|
+
// Arrange: CDP creation fails
|
|
96
|
+
mockCDP.send = () => Promise.reject(new Error('CDP connection lost'));
|
|
97
|
+
// Mock HTTP creation to succeed
|
|
98
|
+
mockFetchResponse(createSuccessResponse(mockHTTPCreateResponse));
|
|
99
|
+
// Act
|
|
100
|
+
const result = await createNewTab('http://localhost:3000/test', mockCDP);
|
|
101
|
+
// Assert: Falls back to HTTP and succeeds
|
|
102
|
+
assert.equal(result.id, mockHTTPCreateResponse.id);
|
|
103
|
+
assert.equal(result.url, mockHTTPCreateResponse.url);
|
|
104
|
+
});
|
|
105
|
+
void it('handles malformed CDP responses gracefully', async () => {
|
|
106
|
+
// Arrange: CDP returns malformed response (missing targetId)
|
|
107
|
+
mockCDP.send = () => Promise.reject(new Error('Malformed response'));
|
|
108
|
+
// Mock HTTP creation to succeed (fallback)
|
|
109
|
+
mockFetchResponse(createSuccessResponse(mockHTTPCreateResponse));
|
|
110
|
+
// Act
|
|
111
|
+
const result = await createNewTab('http://localhost:3000/test', mockCDP);
|
|
112
|
+
// Assert: Falls back to HTTP
|
|
113
|
+
assert.equal(result.id, mockHTTPCreateResponse.id);
|
|
114
|
+
});
|
|
115
|
+
void it('throws meaningful error when all strategies fail', async () => {
|
|
116
|
+
// Arrange: CDP creation fails
|
|
117
|
+
mockCDP.send = () => Promise.reject(new Error('CDP failed'));
|
|
118
|
+
// Mock HTTP creation to also fail
|
|
119
|
+
mockFetchResponse(createFailureResponse(500, 'Internal Server Error'));
|
|
120
|
+
// Act & Assert: Should throw after both strategies fail
|
|
121
|
+
await assert.rejects(() => createNewTab('http://localhost:3000/test', mockCDP), /Failed to create new tab/);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
// NOTE: createOrFindTarget tests removed due to complex mocking requirements
|
|
126
|
+
// This function combines target discovery with creation, making it difficult to test
|
|
127
|
+
// in isolation without extensive mocking of the verification process.
|
|
128
|
+
//
|
|
129
|
+
// Coverage is provided indirectly through:
|
|
130
|
+
// 1. Individual createNewTab tests (creation logic)
|
|
131
|
+
// 2. Target validation tests in finder.contract.test.ts (discovery logic)
|
|
132
|
+
// 3. Integration tests that exercise the full workflow
|
|
133
|
+
//
|
|
134
|
+
// This follows our testing philosophy of testing complex logic (createNewTab, validateTarget)
|
|
135
|
+
// while avoiding testing of simple orchestration functions that primarily combine
|
|
136
|
+
// other tested behaviors.
|
|
137
|
+
//# sourceMappingURL=tabs.contract.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.contract.test.js","sourceRoot":"","sources":["../../../src/connection/__tests__/tabs.contract.test.ts"],"names":[],"mappings":"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"}
|
package/dist/connection/cdp.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import WebSocket from 'ws';
|
|
2
|
+
import type { ConnectionOptions } from '../types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Chrome DevTools Protocol WebSocket connection manager.
|
|
4
5
|
*
|
|
@@ -8,6 +9,16 @@ import { ConnectionOptions } from '../types.js';
|
|
|
8
9
|
* - Connection lifecycle (connect, reconnect, keepalive)
|
|
9
10
|
* - Graceful error handling and cleanup
|
|
10
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* Factory function for creating WebSocket instances.
|
|
14
|
+
*
|
|
15
|
+
* Allows dependency injection for testing by providing mock WebSocket
|
|
16
|
+
* implementations while using real WebSocket in production.
|
|
17
|
+
*
|
|
18
|
+
* @param url - WebSocket URL to connect to
|
|
19
|
+
* @returns WebSocket instance
|
|
20
|
+
*/
|
|
21
|
+
type WebSocketFactory = (url: string) => WebSocket;
|
|
11
22
|
export declare class CDPConnection {
|
|
12
23
|
private ws;
|
|
13
24
|
private messageId;
|
|
@@ -17,58 +28,192 @@ export declare class CDPConnection {
|
|
|
17
28
|
private pingInterval;
|
|
18
29
|
private pongTimeout;
|
|
19
30
|
private missedPongs;
|
|
20
|
-
private readonly MAX_MISSED_PONGS;
|
|
21
31
|
private wsUrl;
|
|
22
32
|
private autoReconnect;
|
|
23
33
|
private reconnectAttempts;
|
|
24
|
-
private readonly MAX_RECONNECT_ATTEMPTS;
|
|
25
34
|
private isIntentionallyClosed;
|
|
26
35
|
private onReconnect?;
|
|
36
|
+
private onDisconnect?;
|
|
37
|
+
private connectionOptions;
|
|
38
|
+
private readonly createWebSocket;
|
|
39
|
+
constructor(createWebSocket?: WebSocketFactory);
|
|
27
40
|
/**
|
|
28
41
|
* Connect to Chrome via WebSocket.
|
|
29
42
|
*
|
|
43
|
+
* We retry with exponential backoff because Chrome startup can be slow and
|
|
44
|
+
* network conditions may cause temporary failures. Auto-reconnect defaults
|
|
45
|
+
* to false for CLI tools where connection loss should fail fast rather than
|
|
46
|
+
* continue indefinitely.
|
|
47
|
+
*
|
|
30
48
|
* @param wsUrl - WebSocket debugger URL from CDP target
|
|
31
49
|
* @param options - Connection configuration options
|
|
32
50
|
* @throws Error if connection fails after all retries
|
|
33
51
|
*/
|
|
34
52
|
connect(wsUrl: string, options?: ConnectionOptions): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Attempt a single WebSocket connection with timeout.
|
|
55
|
+
*
|
|
56
|
+
* We use a connection timeout because WebSocket connections can hang
|
|
57
|
+
* indefinitely without it, especially in network failure scenarios.
|
|
58
|
+
*
|
|
59
|
+
* @param wsUrl - WebSocket URL to connect to
|
|
60
|
+
* @param options - Connection configuration options
|
|
61
|
+
* @returns Promise that resolves when connection is established
|
|
62
|
+
* @throws CDPTimeoutError if connection times out
|
|
63
|
+
* @throws Error if WebSocket connection fails
|
|
64
|
+
*/
|
|
35
65
|
private attemptConnection;
|
|
66
|
+
/**
|
|
67
|
+
* Configure WebSocket event handlers for connection lifecycle.
|
|
68
|
+
*
|
|
69
|
+
* We handle close events asynchronously to prevent blocking the WebSocket
|
|
70
|
+
* event loop during cleanup and reconnection attempts.
|
|
71
|
+
*
|
|
72
|
+
* @param resolve - Promise resolve function for successful connection
|
|
73
|
+
* @param reject - Promise reject function for connection failure
|
|
74
|
+
* @param connectTimeout - Timeout handle to clear on success/failure
|
|
75
|
+
* @param options - Connection options for keepalive configuration
|
|
76
|
+
*/
|
|
77
|
+
private setupWebSocketHandlers;
|
|
78
|
+
/**
|
|
79
|
+
* Parse and route incoming CDP messages.
|
|
80
|
+
*
|
|
81
|
+
* We handle both responses (with ID) and events (with method) in the same
|
|
82
|
+
* message stream. Error handling is liberal to prevent one bad message
|
|
83
|
+
* from breaking the entire connection. Uses separate error handling for
|
|
84
|
+
* conversion, parsing, and routing stages for better debugging.
|
|
85
|
+
*
|
|
86
|
+
* @param incomingData - Raw WebSocket message data to parse
|
|
87
|
+
*/
|
|
88
|
+
private parseIncomingMessage;
|
|
89
|
+
/**
|
|
90
|
+
* Convert WebSocket raw data to string using appropriate method.
|
|
91
|
+
*
|
|
92
|
+
* Handles all WebSocket data types with a clean conversion strategy.
|
|
93
|
+
* Uses a lookup approach for better maintainability and performance.
|
|
94
|
+
*
|
|
95
|
+
* @param data - Raw WebSocket data to convert
|
|
96
|
+
* @returns Converted string message
|
|
97
|
+
* @throws Error if data type is unsupported
|
|
98
|
+
*/
|
|
99
|
+
private convertRawDataToString;
|
|
100
|
+
/**
|
|
101
|
+
* Parse JSON string into CDP message object.
|
|
102
|
+
*
|
|
103
|
+
* Validates basic message structure to ensure we have a valid CDP message
|
|
104
|
+
* before attempting to route it.
|
|
105
|
+
*
|
|
106
|
+
* @param messageText - JSON string to parse
|
|
107
|
+
* @returns Parsed CDP message object
|
|
108
|
+
* @throws Error if JSON is invalid or message structure is malformed
|
|
109
|
+
*/
|
|
110
|
+
private parseJSONMessage;
|
|
111
|
+
/**
|
|
112
|
+
* Route CDP message to appropriate handler based on message type.
|
|
113
|
+
*
|
|
114
|
+
* CDP messages are either responses (have ID) or events (have method).
|
|
115
|
+
* Some messages may have both, which is valid and should be handled.
|
|
116
|
+
*
|
|
117
|
+
* @param message - Parsed CDP message to route
|
|
118
|
+
* @throws Error if routing fails
|
|
119
|
+
*/
|
|
120
|
+
private routeCDPMessage;
|
|
121
|
+
/**
|
|
122
|
+
* Handle CDP command responses by resolving pending promises.
|
|
123
|
+
*
|
|
124
|
+
* @param message - CDP message containing response data
|
|
125
|
+
*/
|
|
126
|
+
private handleCDPResponse;
|
|
127
|
+
/**
|
|
128
|
+
* Handle CDP events by notifying registered handlers.
|
|
129
|
+
*
|
|
130
|
+
* @param message - CDP message containing event data
|
|
131
|
+
*/
|
|
132
|
+
private handleCDPEvent;
|
|
133
|
+
/**
|
|
134
|
+
* Calculate exponential backoff delay with maximum cap.
|
|
135
|
+
*
|
|
136
|
+
* We use exponential backoff to avoid thundering herd problems when many
|
|
137
|
+
* clients reconnect simultaneously. The maximum cap prevents extremely
|
|
138
|
+
* long delays that would make the tool unusable.
|
|
139
|
+
*
|
|
140
|
+
* @param attempt - Current attempt number (0-based)
|
|
141
|
+
* @param maxDelay - Maximum delay in milliseconds
|
|
142
|
+
* @returns Calculated delay in milliseconds (base delay * 2^attempt, capped at maxDelay)
|
|
143
|
+
*/
|
|
144
|
+
private calculateBackoffDelay;
|
|
145
|
+
/**
|
|
146
|
+
* Clear all pending command promises with the given error.
|
|
147
|
+
*
|
|
148
|
+
* We reject pending messages rather than letting them hang indefinitely
|
|
149
|
+
* because callers need to know that their commands failed due to connection
|
|
150
|
+
* loss so they can handle the error appropriately.
|
|
151
|
+
*
|
|
152
|
+
* @param error - Error to reject all pending promises with
|
|
153
|
+
*/
|
|
154
|
+
private clearPendingMessages;
|
|
155
|
+
/**
|
|
156
|
+
* Attempt to reconnect to the WebSocket after connection loss.
|
|
157
|
+
*
|
|
158
|
+
* Uses exponential backoff with longer delays than initial connection
|
|
159
|
+
* attempts because reconnection typically indicates more serious issues.
|
|
160
|
+
* Calls the onReconnect callback after successful reconnection to allow
|
|
161
|
+
* callers to re-enable CDP domains or reinitialize state.
|
|
162
|
+
*
|
|
163
|
+
* @throws Never throws - errors are logged but not propagated to avoid
|
|
164
|
+
* breaking reconnection loops
|
|
165
|
+
*/
|
|
36
166
|
private attemptReconnection;
|
|
167
|
+
/**
|
|
168
|
+
* Start keepalive ping/pong mechanism.
|
|
169
|
+
*
|
|
170
|
+
* We use 3 missed pongs as the threshold because network conditions can
|
|
171
|
+
* cause occasional packet loss, but 3 consecutive failures likely indicates
|
|
172
|
+
* a dead connection that should be terminated rather than waiting longer.
|
|
173
|
+
*/
|
|
37
174
|
private startKeepalive;
|
|
38
175
|
private stopKeepalive;
|
|
39
176
|
/**
|
|
40
177
|
* Get the CDP port from the WebSocket URL.
|
|
41
178
|
*
|
|
179
|
+
* Used by other modules that need to make HTTP requests to the same
|
|
180
|
+
* Chrome instance (e.g., fetching target list via /json/list endpoint).
|
|
181
|
+
*
|
|
42
182
|
* @returns CDP port number
|
|
43
|
-
* @throws
|
|
183
|
+
* @throws CDPConnectionError if not connected or URL is invalid
|
|
44
184
|
*/
|
|
45
185
|
getPort(): number;
|
|
46
186
|
/**
|
|
47
187
|
* Send a CDP command and wait for the response.
|
|
48
188
|
*
|
|
189
|
+
* Return type is unknown because CDP response structures vary dramatically
|
|
190
|
+
* by method (DOM.getDocument vs Page.navigate vs Runtime.evaluate all return
|
|
191
|
+
* completely different object shapes). Callers must type-assert based on
|
|
192
|
+
* the specific method being called. 30-second timeout balances responsiveness
|
|
193
|
+
* with allowing time for heavy operations like DOM traversal.
|
|
194
|
+
*
|
|
49
195
|
* @param method - CDP method name (e.g., 'Page.navigate', 'DOM.getDocument')
|
|
50
196
|
* @param params - Method parameters
|
|
51
197
|
* @param sessionId - Optional session ID for commands sent to specific targets
|
|
198
|
+
* (used when controlling specific frames or workers)
|
|
52
199
|
* @returns Promise resolving to the command result
|
|
53
|
-
* @throws
|
|
54
|
-
*
|
|
55
|
-
* @remarks
|
|
56
|
-
* Return type is `any` because CDP response structures vary by method.
|
|
57
|
-
* Callers should type-assert the result based on the specific method called.
|
|
200
|
+
* @throws CDPConnectionError if not connected to browser
|
|
201
|
+
* @throws CDPTimeoutError if command times out (30s)
|
|
58
202
|
*/
|
|
59
|
-
send(method: string, params?: Record<string,
|
|
203
|
+
send(method: string, params?: Record<string, unknown>, sessionId?: string): Promise<unknown>;
|
|
60
204
|
/**
|
|
61
205
|
* Register an event handler for CDP events.
|
|
62
206
|
*
|
|
207
|
+
* Type casting is safe because we store handlers as (params: unknown) \> void
|
|
208
|
+
* and always invoke them with unknown parameters. The generic T is only for
|
|
209
|
+
* caller convenience and type checking at the call site.
|
|
210
|
+
*
|
|
63
211
|
* @param event - CDP event name (e.g., 'Network.requestWillBeSent')
|
|
64
212
|
* @param handler - Callback function to handle the event
|
|
65
213
|
* @returns Handler ID for later removal with off()
|
|
66
|
-
*
|
|
67
|
-
* @remarks
|
|
68
|
-
* Handler parameter type is `any` for flexibility. Callers should use typed
|
|
69
|
-
* event parameter interfaces (e.g., `CDPNetworkRequestParams`) at call site.
|
|
214
|
+
* @typeParam T - Type of event parameters for type safety at call site
|
|
70
215
|
*/
|
|
71
|
-
on(event: string, handler: (params:
|
|
216
|
+
on<T = unknown>(event: string, handler: (params: T) => void): number;
|
|
72
217
|
/**
|
|
73
218
|
* Remove a specific event handler.
|
|
74
219
|
*
|
|
@@ -85,6 +230,9 @@ export declare class CDPConnection {
|
|
|
85
230
|
/**
|
|
86
231
|
* Close the WebSocket connection and clean up resources.
|
|
87
232
|
*
|
|
233
|
+
* Performs complete cleanup including stopping keepalive, rejecting pending
|
|
234
|
+
* messages, closing WebSocket, and removing all event handlers.
|
|
235
|
+
*
|
|
88
236
|
* @param code - WebSocket close code (default: 1000 for normal closure)
|
|
89
237
|
* @param reason - Human-readable close reason
|
|
90
238
|
*/
|
|
@@ -92,8 +240,9 @@ export declare class CDPConnection {
|
|
|
92
240
|
/**
|
|
93
241
|
* Check if the WebSocket connection is open and ready.
|
|
94
242
|
*
|
|
95
|
-
* @returns True if connected and ready to send/receive
|
|
243
|
+
* @returns True if connected and ready to send/receive messages
|
|
96
244
|
*/
|
|
97
245
|
isConnected(): boolean;
|
|
98
246
|
}
|
|
247
|
+
export {};
|
|
99
248
|
//# sourceMappingURL=cdp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/connection/cdp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/connection/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAiB3B,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAoC7D;;;;;;;;GAQG;AAEH;;;;;;;;GAQG;AACH,KAAK,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;AAEnD,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAOnB;IACJ,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAA6D;IAElF,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,WAAW,CAAC,CAAoC;IACxD,OAAO,CAAC,YAAY,CAAC,CAAuE;IAC5F,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;gBAEvC,eAAe,GAAE,gBAAsD;IAInF;;;;;;;;;;;OAWG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5E;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,sBAAsB;IA2D9B;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAStB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;;;;;OAUG;YACW,mBAAmB;IAuBjC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,aAAa;IAWrB;;;;;;;;OAQG;IACH,OAAO,IAAI,MAAM;IAajB;;;;;;;;;;;;;;;;OAgBG;IACG,IAAI,CACR,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC;IAoCnB;;;;;;;;;;;OAWG;IACH,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM;IAWpE;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAU3C;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQxC;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,SAA2B,EAAE,MAAM,SAAwB,GAAG,IAAI;IAe5E;;;;OAIG;IACH,WAAW,IAAI,OAAO;CAGvB"}
|