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,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages the session monitoring loop
|
|
3
|
+
*/
|
|
4
|
+
export class SessionLoop {
|
|
5
|
+
/**
|
|
6
|
+
* Run session loop until stopped or error
|
|
7
|
+
*
|
|
8
|
+
* Monitors WebSocket connection and target lifecycle.
|
|
9
|
+
* Throws error if connection lost or tab closed.
|
|
10
|
+
*
|
|
11
|
+
* @param session - Active BDG session instance
|
|
12
|
+
* @param target - CDP target being monitored
|
|
13
|
+
* @throws Error if WebSocket connection lost or browser tab closed
|
|
14
|
+
*/
|
|
15
|
+
static async run(session, target) {
|
|
16
|
+
if (!session) {
|
|
17
|
+
throw new Error('Session not initialized');
|
|
18
|
+
}
|
|
19
|
+
const cdp = session.getCDP();
|
|
20
|
+
const waitForNextCheck = () => new Promise((resolve) => {
|
|
21
|
+
let timer;
|
|
22
|
+
let handlerId;
|
|
23
|
+
const handleTargetDestroyed = (params) => {
|
|
24
|
+
if (params.targetId === target.id) {
|
|
25
|
+
clearTimeout(timer);
|
|
26
|
+
cdp.off('Target.targetDestroyed', handlerId);
|
|
27
|
+
resolve('destroyed');
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
handlerId = cdp.on('Target.targetDestroyed', handleTargetDestroyed);
|
|
31
|
+
timer = setTimeout(() => {
|
|
32
|
+
cdp.off('Target.targetDestroyed', handlerId);
|
|
33
|
+
resolve('continue');
|
|
34
|
+
}, 2000);
|
|
35
|
+
});
|
|
36
|
+
for (;;) {
|
|
37
|
+
const result = await waitForNextCheck();
|
|
38
|
+
if (!session.isConnected()) {
|
|
39
|
+
throw new Error('WebSocket connection lost');
|
|
40
|
+
}
|
|
41
|
+
if (result === 'destroyed') {
|
|
42
|
+
throw new Error('Browser tab was closed');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=SessionLoop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionLoop.js","sourceRoot":"","sources":["../../../src/cli/handlers/SessionLoop.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAmB,EAAE,MAAiB;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAE7B,MAAM,gBAAgB,GAAG,GAAsC,EAAE,CAC/D,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACtB,IAAI,KAAoC,CAAC;YACzC,IAAI,SAAiB,CAAC;YAEtB,MAAM,qBAAqB,GAAG,CAAC,MAAgC,EAAQ,EAAE;gBACvE,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;oBAClC,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;oBAC7C,OAAO,CAAC,WAAW,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC;YAEF,SAAS,GAAG,GAAG,CAAC,EAAE,CAChB,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;YAEF,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;gBAC7C,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEL,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;YAExC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { BdgSession } from '../../session/BdgSession.js';
|
|
2
|
+
import type { CDPTarget, LaunchedChrome } from '../../types.js';
|
|
3
|
+
import { OutputWriter } from './OutputWriter.js';
|
|
4
|
+
/**
|
|
5
|
+
* Minimal session state interface
|
|
6
|
+
*/
|
|
7
|
+
export interface SessionState {
|
|
8
|
+
session: BdgSession | null;
|
|
9
|
+
launchedChrome: LaunchedChrome | null;
|
|
10
|
+
isShuttingDown: boolean;
|
|
11
|
+
startTime: number;
|
|
12
|
+
target: CDPTarget | null;
|
|
13
|
+
compact: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Orchestrates shutdown sequence and cleanup operations
|
|
17
|
+
*/
|
|
18
|
+
export declare class ShutdownController {
|
|
19
|
+
private state;
|
|
20
|
+
private shutdownKeepalive;
|
|
21
|
+
private outputWriter;
|
|
22
|
+
constructor(state: SessionState, outputWriter?: OutputWriter);
|
|
23
|
+
/**
|
|
24
|
+
* Execute graceful shutdown sequence.
|
|
25
|
+
* Stops session, writes output, and exits process.
|
|
26
|
+
*/
|
|
27
|
+
shutdown(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Cleanup without stopping session (error path).
|
|
30
|
+
* Clears timers, tears down Chrome if launched, and removes session files.
|
|
31
|
+
*/
|
|
32
|
+
cleanup(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Finalize shutdown: write output, cleanup, and exit (internal use only)
|
|
35
|
+
*/
|
|
36
|
+
private finalize;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ShutdownController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShutdownController.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/ShutdownController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAa,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,KAAK;IAJf,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,YAAY,CAAe;gBAGzB,KAAK,EAAE,YAAY,EAC3B,YAAY,CAAC,EAAE,YAAY;IAK7B;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB/B;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9B;;OAEG;IACH,OAAO,CAAC,QAAQ;CA8BjB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { cleanupSession } from '../../session/cleanup.js';
|
|
2
|
+
import { OutputBuilder } from './OutputBuilder.js';
|
|
3
|
+
import { OutputWriter } from './OutputWriter.js';
|
|
4
|
+
/**
|
|
5
|
+
* Orchestrates shutdown sequence and cleanup operations
|
|
6
|
+
*/
|
|
7
|
+
export class ShutdownController {
|
|
8
|
+
state;
|
|
9
|
+
shutdownKeepalive = null;
|
|
10
|
+
outputWriter;
|
|
11
|
+
constructor(state, outputWriter) {
|
|
12
|
+
this.state = state;
|
|
13
|
+
this.outputWriter = outputWriter ?? new OutputWriter();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Execute graceful shutdown sequence.
|
|
17
|
+
* Stops session, writes output, and exits process.
|
|
18
|
+
*/
|
|
19
|
+
async shutdown() {
|
|
20
|
+
if (this.state.isShuttingDown || !this.state.session) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.state.isShuttingDown = true;
|
|
24
|
+
// Keep event loop alive IMMEDIATELY to prevent premature exit during async operations
|
|
25
|
+
// This must be set before any await points
|
|
26
|
+
this.shutdownKeepalive = setInterval(() => { }, 1000);
|
|
27
|
+
try {
|
|
28
|
+
console.error('Stopping session...');
|
|
29
|
+
const output = await this.state.session.stop();
|
|
30
|
+
this.finalize(output, 0);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
console.error('Error during shutdown:', error);
|
|
34
|
+
const errorOutput = OutputBuilder.buildError(error, this.state.startTime);
|
|
35
|
+
this.finalize(errorOutput, 1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Cleanup without stopping session (error path).
|
|
40
|
+
* Clears timers, tears down Chrome if launched, and removes session files.
|
|
41
|
+
*/
|
|
42
|
+
async cleanup() {
|
|
43
|
+
// Kill Chrome if we launched it
|
|
44
|
+
if (this.state.launchedChrome) {
|
|
45
|
+
try {
|
|
46
|
+
await this.state.launchedChrome.kill();
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// Ignore errors during cleanup
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Cleanup session files
|
|
53
|
+
cleanupSession();
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Finalize shutdown: write output, cleanup, and exit (internal use only)
|
|
57
|
+
*/
|
|
58
|
+
finalize(output, exitCode) {
|
|
59
|
+
// Write output
|
|
60
|
+
this.outputWriter.writeSessionOutput(output, exitCode, this.state.compact);
|
|
61
|
+
// Leave Chrome running for future sessions
|
|
62
|
+
if (this.state.launchedChrome) {
|
|
63
|
+
const chromeMessage = exitCode === 0
|
|
64
|
+
? 'Leaving Chrome running for future sessions (use persistent profile)'
|
|
65
|
+
: 'Leaving Chrome running (use persistent profile)';
|
|
66
|
+
console.error(chromeMessage);
|
|
67
|
+
console.error(`Chrome PID: ${this.state.launchedChrome.pid}, port: ${this.state.launchedChrome.port}`);
|
|
68
|
+
}
|
|
69
|
+
// Cleanup session files
|
|
70
|
+
try {
|
|
71
|
+
cleanupSession();
|
|
72
|
+
}
|
|
73
|
+
catch (cleanupError) {
|
|
74
|
+
console.error('Error cleaning up session:', cleanupError);
|
|
75
|
+
}
|
|
76
|
+
// Clear keepalive and exit
|
|
77
|
+
if (this.shutdownKeepalive) {
|
|
78
|
+
clearInterval(this.shutdownKeepalive);
|
|
79
|
+
}
|
|
80
|
+
process.exit(exitCode);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=ShutdownController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShutdownController.js","sourceRoot":"","sources":["../../../src/cli/handlers/ShutdownController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for shutdown callback
|
|
3
|
+
*/
|
|
4
|
+
export interface SignalHandlerOptions {
|
|
5
|
+
onShutdown: () => Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Manages process signal handling for graceful shutdown
|
|
9
|
+
*/
|
|
10
|
+
export declare class SignalHandler {
|
|
11
|
+
private options;
|
|
12
|
+
private isHandling;
|
|
13
|
+
constructor(options: SignalHandlerOptions);
|
|
14
|
+
/**
|
|
15
|
+
* Register signal handlers for graceful shutdown.
|
|
16
|
+
*/
|
|
17
|
+
register(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Unregister all signal handlers.
|
|
20
|
+
*/
|
|
21
|
+
unregister(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Handle shutdown signals (SIGINT, SIGTERM)
|
|
24
|
+
*/
|
|
25
|
+
private handleSignal;
|
|
26
|
+
/**
|
|
27
|
+
* Handle unhandled promise rejections
|
|
28
|
+
*/
|
|
29
|
+
private handleUnhandledRejection;
|
|
30
|
+
/**
|
|
31
|
+
* Handle uncaught exceptions
|
|
32
|
+
*/
|
|
33
|
+
private handleUncaughtException;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=SignalHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignalHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/SignalHandler.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,UAAU,CAAS;gBAEP,OAAO,EAAE,oBAAoB;IAEjD;;OAEG;IACH,QAAQ,IAAI,IAAI;IAUhB;;OAEG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,wBAAwB,CAS9B;IAEF;;OAEG;IACH,OAAO,CAAC,uBAAuB,CAS7B;CACH"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { cleanupSession } from '../../session/cleanup.js';
|
|
2
|
+
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
3
|
+
/**
|
|
4
|
+
* Manages process signal handling for graceful shutdown
|
|
5
|
+
*/
|
|
6
|
+
export class SignalHandler {
|
|
7
|
+
options;
|
|
8
|
+
isHandling = false;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Register signal handlers for graceful shutdown.
|
|
14
|
+
*/
|
|
15
|
+
register() {
|
|
16
|
+
const handler = (signal) => this.handleSignal(signal);
|
|
17
|
+
process.on('SIGINT', () => handler('SIGINT'));
|
|
18
|
+
process.on('SIGTERM', () => handler('SIGTERM'));
|
|
19
|
+
process.on('unhandledRejection', this.handleUnhandledRejection);
|
|
20
|
+
process.on('uncaughtException', this.handleUncaughtException);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Unregister all signal handlers.
|
|
24
|
+
*/
|
|
25
|
+
unregister() {
|
|
26
|
+
process.removeAllListeners('SIGINT');
|
|
27
|
+
process.removeAllListeners('SIGTERM');
|
|
28
|
+
process.removeAllListeners('unhandledRejection');
|
|
29
|
+
process.removeAllListeners('uncaughtException');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Handle shutdown signals (SIGINT, SIGTERM)
|
|
33
|
+
*/
|
|
34
|
+
handleSignal(signal) {
|
|
35
|
+
if (this.isHandling) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.isHandling = true;
|
|
39
|
+
console.error(`\nReceived ${signal}, shutting down gracefully...`);
|
|
40
|
+
this.unregister();
|
|
41
|
+
void (async () => {
|
|
42
|
+
try {
|
|
43
|
+
await this.options.onShutdown();
|
|
44
|
+
// onShutdown calls process.exit(), so we should never reach here
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
console.error('Fatal error during shutdown:', error);
|
|
48
|
+
process.exit(EXIT_CODES.SIGNAL_HANDLER_ERROR);
|
|
49
|
+
}
|
|
50
|
+
})();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Handle unhandled promise rejections
|
|
54
|
+
*/
|
|
55
|
+
handleUnhandledRejection = (reason) => {
|
|
56
|
+
console.error('Unhandled rejection:', reason);
|
|
57
|
+
console.error('Cleaning up session files...');
|
|
58
|
+
try {
|
|
59
|
+
cleanupSession();
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error('Error during cleanup:', error);
|
|
63
|
+
}
|
|
64
|
+
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Handle uncaught exceptions
|
|
68
|
+
*/
|
|
69
|
+
handleUncaughtException = (error) => {
|
|
70
|
+
console.error('Uncaught exception:', error);
|
|
71
|
+
console.error('Cleaning up session files...');
|
|
72
|
+
try {
|
|
73
|
+
cleanupSession();
|
|
74
|
+
}
|
|
75
|
+
catch (cleanupError) {
|
|
76
|
+
console.error('Error during cleanup:', cleanupError);
|
|
77
|
+
}
|
|
78
|
+
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=SignalHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignalHandler.js","sourceRoot":"","sources":["../../../src/cli/handlers/SignalHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BdgSession } from '../../session/BdgSession.js';
|
|
2
|
+
import type { CDPTarget, SessionOptions } from '../../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Handles CDP target setup and session creation
|
|
5
|
+
*/
|
|
6
|
+
export declare class TargetSetup {
|
|
7
|
+
/**
|
|
8
|
+
* Create CDP connection and find/create target tab
|
|
9
|
+
*
|
|
10
|
+
* @param url - Original URL from CLI (for matching)
|
|
11
|
+
* @param targetUrl - Normalized target URL
|
|
12
|
+
* @param port - Chrome debugging port
|
|
13
|
+
* @param reuseTab - Whether to reuse existing tab
|
|
14
|
+
* @param sessionOptions - Session-level collection options
|
|
15
|
+
* @returns Session and target metadata
|
|
16
|
+
*/
|
|
17
|
+
static setup(url: string, targetUrl: string, port: number, reuseTab: boolean, sessionOptions?: SessionOptions): Promise<{
|
|
18
|
+
session: BdgSession;
|
|
19
|
+
target: CDPTarget;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* Fetch the current list of available CDP targets from Chrome.
|
|
23
|
+
* Used during session bootstrap to select a temporary connection target and to
|
|
24
|
+
* refresh metadata when the session creates or reuses tabs.
|
|
25
|
+
*
|
|
26
|
+
* @param port - Chrome debugging port
|
|
27
|
+
* @returns Array of CDP targets
|
|
28
|
+
*/
|
|
29
|
+
private static fetchTargets;
|
|
30
|
+
/**
|
|
31
|
+
* Locate a specific CDP target by ID. Falls back to a fresh fetch when cached
|
|
32
|
+
* metadata is missing or incomplete (e.g., webSocketDebuggerUrl absent).
|
|
33
|
+
*
|
|
34
|
+
* @param targetId - Target ID to find
|
|
35
|
+
* @param port - Chrome debugging port
|
|
36
|
+
* @param cachedTargets - Optional cached target list
|
|
37
|
+
* @returns CDP target with webSocketDebuggerUrl
|
|
38
|
+
* @throws Error if target not found or missing webSocketDebuggerUrl
|
|
39
|
+
*/
|
|
40
|
+
private static findTargetById;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=TargetSetup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TargetSetup.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/TargetSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzD;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;;;;;;OASG;WACU,KAAK,CAChB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,cAAc,GAAE,cAAmB,GAClC,OAAO,CAAC;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;IAoCtD;;;;;;;OAOG;mBACkB,YAAY;IAKjC;;;;;;;;;OASG;mBACkB,cAAc;CA2BpC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { createOrFindTarget } from '../../connection/tabs.js';
|
|
2
|
+
import { BdgSession } from '../../session/BdgSession.js';
|
|
3
|
+
/**
|
|
4
|
+
* Handles CDP target setup and session creation
|
|
5
|
+
*/
|
|
6
|
+
export class TargetSetup {
|
|
7
|
+
/**
|
|
8
|
+
* Create CDP connection and find/create target tab
|
|
9
|
+
*
|
|
10
|
+
* @param url - Original URL from CLI (for matching)
|
|
11
|
+
* @param targetUrl - Normalized target URL
|
|
12
|
+
* @param port - Chrome debugging port
|
|
13
|
+
* @param reuseTab - Whether to reuse existing tab
|
|
14
|
+
* @param sessionOptions - Session-level collection options
|
|
15
|
+
* @returns Session and target metadata
|
|
16
|
+
*/
|
|
17
|
+
static async setup(url, targetUrl, port, reuseTab, sessionOptions = {}) {
|
|
18
|
+
// Fetch targets once
|
|
19
|
+
const initialTargets = await this.fetchTargets(port);
|
|
20
|
+
if (initialTargets.length === 0) {
|
|
21
|
+
throw new Error('No targets available in Chrome');
|
|
22
|
+
}
|
|
23
|
+
// Use first available target to establish CDP connection
|
|
24
|
+
const tempTarget = initialTargets[0];
|
|
25
|
+
if (!tempTarget) {
|
|
26
|
+
throw new Error('No targets available in Chrome');
|
|
27
|
+
}
|
|
28
|
+
const tempSession = new BdgSession(tempTarget, port, sessionOptions);
|
|
29
|
+
await tempSession.connect();
|
|
30
|
+
if (!tempSession.isConnected()) {
|
|
31
|
+
throw new Error('Failed to establish CDP connection');
|
|
32
|
+
}
|
|
33
|
+
// Create or find target tab using TabManager
|
|
34
|
+
console.error(`Finding or creating tab for: ${targetUrl}`);
|
|
35
|
+
const target = await createOrFindTarget(url, tempSession.getCDP(), reuseTab);
|
|
36
|
+
console.error(`Using tab: ${target.url}`);
|
|
37
|
+
// Find full target metadata (refetches only if not in cache or new tab created)
|
|
38
|
+
const fullTarget = await this.findTargetById(target.id, port, initialTargets);
|
|
39
|
+
// Close temp session and reconnect to the correct target
|
|
40
|
+
tempSession.getCDP().close();
|
|
41
|
+
const session = new BdgSession(fullTarget, port, sessionOptions);
|
|
42
|
+
await session.connect();
|
|
43
|
+
return { session, target: fullTarget };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Fetch the current list of available CDP targets from Chrome.
|
|
47
|
+
* Used during session bootstrap to select a temporary connection target and to
|
|
48
|
+
* refresh metadata when the session creates or reuses tabs.
|
|
49
|
+
*
|
|
50
|
+
* @param port - Chrome debugging port
|
|
51
|
+
* @returns Array of CDP targets
|
|
52
|
+
*/
|
|
53
|
+
static async fetchTargets(port) {
|
|
54
|
+
const response = await fetch(`http://127.0.0.1:${port}/json/list`);
|
|
55
|
+
return (await response.json());
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Locate a specific CDP target by ID. Falls back to a fresh fetch when cached
|
|
59
|
+
* metadata is missing or incomplete (e.g., webSocketDebuggerUrl absent).
|
|
60
|
+
*
|
|
61
|
+
* @param targetId - Target ID to find
|
|
62
|
+
* @param port - Chrome debugging port
|
|
63
|
+
* @param cachedTargets - Optional cached target list
|
|
64
|
+
* @returns CDP target with webSocketDebuggerUrl
|
|
65
|
+
* @throws Error if target not found or missing webSocketDebuggerUrl
|
|
66
|
+
*/
|
|
67
|
+
static async findTargetById(targetId, port, cachedTargets) {
|
|
68
|
+
// First check cached targets if provided
|
|
69
|
+
if (cachedTargets) {
|
|
70
|
+
const cached = cachedTargets.find((t) => t.id === targetId);
|
|
71
|
+
if (cached?.webSocketDebuggerUrl) {
|
|
72
|
+
return cached;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Not in cache or missing webSocketDebuggerUrl - refetch
|
|
76
|
+
const targets = await this.fetchTargets(port);
|
|
77
|
+
const target = targets.find((t) => t.id === targetId);
|
|
78
|
+
if (!target) {
|
|
79
|
+
throw new Error(`Could not find target ${targetId}`);
|
|
80
|
+
}
|
|
81
|
+
if (!target.webSocketDebuggerUrl) {
|
|
82
|
+
throw new Error(`Could not find webSocketDebuggerUrl for target ${targetId}`);
|
|
83
|
+
}
|
|
84
|
+
return target;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=TargetSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TargetSetup.js","sourceRoot":"","sources":["../../../src/cli/handlers/TargetSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,GAAW,EACX,SAAiB,EACjB,IAAY,EACZ,QAAiB,EACjB,iBAAiC,EAAE;QAEnC,qBAAqB;QACrB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,yDAAyD;QACzD,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACrE,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;QAE5B,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,6CAA6C;QAC7C,OAAO,CAAC,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,cAAc,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAE1C,gFAAgF;QAChF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAE9E,yDAAyD;QACzD,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACjE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAY;QAC5C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,YAAY,CAAC,CAAC;QACnE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAgB,CAAC;IAChD,CAAC;IAED;;;;;;;;;OASG;IACK,MAAM,CAAC,KAAK,CAAC,cAAc,CACjC,QAAgB,EAChB,IAAY,EACZ,aAA2B;QAE3B,yCAAyC;QACzC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE,oBAAoB,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,kDAAkD,QAAQ,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Option } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* Shared --json flag for all commands that support JSON output.
|
|
4
|
+
* Standard option for machine-readable output.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* program
|
|
9
|
+
* .command('status')
|
|
10
|
+
* .addOption(jsonOption)
|
|
11
|
+
* .action((options) => {
|
|
12
|
+
* if (options.json) {
|
|
13
|
+
* console.log(JSON.stringify(data));
|
|
14
|
+
* }
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const jsonOption: Option;
|
|
19
|
+
/**
|
|
20
|
+
* Shared --last <n> option for pagination.
|
|
21
|
+
* Includes built-in validation for sensible limits.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* program
|
|
26
|
+
* .command('console')
|
|
27
|
+
* .addOption(lastOption)
|
|
28
|
+
* .action((options) => {
|
|
29
|
+
* const logs = allLogs.slice(-options.last);
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const lastOption: Option;
|
|
34
|
+
/**
|
|
35
|
+
* Create a --filter option with specified valid choices.
|
|
36
|
+
* Includes built-in validation using Commander's .choices() method.
|
|
37
|
+
*
|
|
38
|
+
* @param validTypes - Array of valid filter values
|
|
39
|
+
* @returns Commander Option instance
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* program
|
|
44
|
+
* .command('console')
|
|
45
|
+
* .addOption(filterOption(['log', 'error', 'warning', 'info']))
|
|
46
|
+
* .action((options) => {
|
|
47
|
+
* if (options.filter) {
|
|
48
|
+
* filtered = logs.filter(log => log.type === options.filter);
|
|
49
|
+
* }
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function filterOption(validTypes: string[]): Option;
|
|
54
|
+
//# sourceMappingURL=commonOptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonOptions.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/commonOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU,QAA6C,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,QAQnB,CAAC;AAEL;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAIzD"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Option } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* Shared --json flag for all commands that support JSON output.
|
|
4
|
+
* Standard option for machine-readable output.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* program
|
|
9
|
+
* .command('status')
|
|
10
|
+
* .addOption(jsonOption)
|
|
11
|
+
* .action((options) => {
|
|
12
|
+
* if (options.json) {
|
|
13
|
+
* console.log(JSON.stringify(data));
|
|
14
|
+
* }
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export const jsonOption = new Option('-j, --json', 'Output as JSON');
|
|
19
|
+
/**
|
|
20
|
+
* Shared --last <n> option for pagination.
|
|
21
|
+
* Includes built-in validation for sensible limits.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* program
|
|
26
|
+
* .command('console')
|
|
27
|
+
* .addOption(lastOption)
|
|
28
|
+
* .action((options) => {
|
|
29
|
+
* const logs = allLogs.slice(-options.last);
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export const lastOption = new Option('--last <n>', 'Show last N items')
|
|
34
|
+
.default(0)
|
|
35
|
+
.argParser((val) => {
|
|
36
|
+
const n = parseInt(val, 10);
|
|
37
|
+
if (isNaN(n) || n < 0 || n > 10000) {
|
|
38
|
+
throw new Error('--last must be between 0 and 10000');
|
|
39
|
+
}
|
|
40
|
+
return n;
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Create a --filter option with specified valid choices.
|
|
44
|
+
* Includes built-in validation using Commander's .choices() method.
|
|
45
|
+
*
|
|
46
|
+
* @param validTypes - Array of valid filter values
|
|
47
|
+
* @returns Commander Option instance
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* program
|
|
52
|
+
* .command('console')
|
|
53
|
+
* .addOption(filterOption(['log', 'error', 'warning', 'info']))
|
|
54
|
+
* .action((options) => {
|
|
55
|
+
* if (options.filter) {
|
|
56
|
+
* filtered = logs.filter(log => log.type === options.filter);
|
|
57
|
+
* }
|
|
58
|
+
* });
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export function filterOption(validTypes) {
|
|
62
|
+
return new Option('--filter <type>', `Filter by type (${validTypes.join(', ')})`).choices(validTypes);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=commonOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonOptions.js","sourceRoot":"","sources":["../../../src/cli/handlers/commonOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC;KACpE,OAAO,CAAC,CAAC,CAAC;KACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC,CAAC;AAEL;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,UAAoB;IAC/C,OAAO,IAAI,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CACvF,UAAU,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CollectorType } from '@/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Start a session via the daemon using IPC.
|
|
4
|
+
*
|
|
5
|
+
* This replaces the in-process sessionController.startSession() by:
|
|
6
|
+
* 1. Sending a start_session_request to the daemon
|
|
7
|
+
* 2. Waiting for the worker to launch and report readiness
|
|
8
|
+
* 3. Outputting metadata about the running session
|
|
9
|
+
* 4. Keeping the process alive while the session runs
|
|
10
|
+
*
|
|
11
|
+
* @param url - Target URL to navigate to
|
|
12
|
+
* @param options - Session configuration options
|
|
13
|
+
* @param collectors - Array of collector types to enable
|
|
14
|
+
*/
|
|
15
|
+
export declare function startSessionViaDaemon(url: string, options: {
|
|
16
|
+
port: number;
|
|
17
|
+
timeout: number | undefined;
|
|
18
|
+
userDataDir: string | undefined;
|
|
19
|
+
includeAll: boolean;
|
|
20
|
+
maxBodySize: number | undefined;
|
|
21
|
+
compact: boolean;
|
|
22
|
+
}, collectors: CollectorType[]): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=daemonSessionController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemonSessionController.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/daemonSessionController.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB,EACD,UAAU,EAAE,aAAa,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAyGf"}
|