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,31 @@
|
|
|
1
|
+
import type { CDPConnection } from '../connection/cdp.js';
|
|
2
|
+
/**
|
|
3
|
+
* Registry for managing CDP event handlers with automatic cleanup.
|
|
4
|
+
*
|
|
5
|
+
* Provides a centralized way to register and clean up CDP event handlers,
|
|
6
|
+
* eliminating the boilerplate code repeated across all collectors.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CDPHandlerRegistry {
|
|
9
|
+
private handlers;
|
|
10
|
+
/**
|
|
11
|
+
* Register a CDP event handler and track it for cleanup.
|
|
12
|
+
*
|
|
13
|
+
* @param cdp - CDP connection instance
|
|
14
|
+
* @param event - CDP event name (e.g., 'Network.requestWillBeSent')
|
|
15
|
+
* @param handler - Event handler function
|
|
16
|
+
*/
|
|
17
|
+
register<T>(cdp: CDPConnection, event: string, handler: (params: T) => void): void;
|
|
18
|
+
/**
|
|
19
|
+
* Remove all registered event handlers and clear the registry.
|
|
20
|
+
*
|
|
21
|
+
* @param cdp - CDP connection instance
|
|
22
|
+
*/
|
|
23
|
+
cleanup(cdp: CDPConnection): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get the number of registered handlers.
|
|
26
|
+
*
|
|
27
|
+
* @returns Number of active handlers
|
|
28
|
+
*/
|
|
29
|
+
size(): number;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=cdpHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdpHandlers.d.ts","sourceRoot":"","sources":["../../src/utils/cdpHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAA4C;IAE5D;;;;;;OAMG;IACH,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAKlF;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAKjC;;;;OAIG;IACH,IAAI,IAAI,MAAM;CAGf"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry for managing CDP event handlers with automatic cleanup.
|
|
3
|
+
*
|
|
4
|
+
* Provides a centralized way to register and clean up CDP event handlers,
|
|
5
|
+
* eliminating the boilerplate code repeated across all collectors.
|
|
6
|
+
*/
|
|
7
|
+
export class CDPHandlerRegistry {
|
|
8
|
+
handlers = [];
|
|
9
|
+
/**
|
|
10
|
+
* Register a CDP event handler and track it for cleanup.
|
|
11
|
+
*
|
|
12
|
+
* @param cdp - CDP connection instance
|
|
13
|
+
* @param event - CDP event name (e.g., 'Network.requestWillBeSent')
|
|
14
|
+
* @param handler - Event handler function
|
|
15
|
+
*/
|
|
16
|
+
register(cdp, event, handler) {
|
|
17
|
+
const id = cdp.on(event, handler);
|
|
18
|
+
this.handlers.push({ event, id });
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Remove all registered event handlers and clear the registry.
|
|
22
|
+
*
|
|
23
|
+
* @param cdp - CDP connection instance
|
|
24
|
+
*/
|
|
25
|
+
cleanup(cdp) {
|
|
26
|
+
this.handlers.forEach(({ event, id }) => cdp.off(event, id));
|
|
27
|
+
this.handlers.length = 0;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get the number of registered handlers.
|
|
31
|
+
*
|
|
32
|
+
* @returns Number of active handlers
|
|
33
|
+
*/
|
|
34
|
+
size() {
|
|
35
|
+
return this.handlers.length;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=cdpHandlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdpHandlers.js","sourceRoot":"","sources":["../../src/utils/cdpHandlers.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACrB,QAAQ,GAAyC,EAAE,CAAC;IAE5D;;;;;;OAMG;IACH,QAAQ,CAAI,GAAkB,EAAE,KAAa,EAAE,OAA4B;QACzE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,GAAkB;QACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chrome installation diagnostics information
|
|
3
|
+
*/
|
|
4
|
+
export interface ChromeDiagnostics {
|
|
5
|
+
defaultPath: string | null;
|
|
6
|
+
installations: string[];
|
|
7
|
+
installationCount: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Get Chrome installation diagnostics.
|
|
11
|
+
* Results are cached for the lifetime of the process to avoid expensive filesystem scans.
|
|
12
|
+
*
|
|
13
|
+
* @returns Chrome diagnostics information
|
|
14
|
+
*/
|
|
15
|
+
export declare function getChromeDiagnostics(): ChromeDiagnostics;
|
|
16
|
+
/**
|
|
17
|
+
* Format diagnostics for error reporting when Chrome launch fails.
|
|
18
|
+
* @param diagnostics - Chrome diagnostics information
|
|
19
|
+
* @returns Formatted error message with troubleshooting steps
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatDiagnosticsForError(diagnostics: ChromeDiagnostics): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Format diagnostics for verbose status output (bdg status --verbose).
|
|
24
|
+
* @param diagnostics - Chrome diagnostics information
|
|
25
|
+
* @returns Array of formatted status lines
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatDiagnosticsForStatus(diagnostics: ChromeDiagnostics): string[];
|
|
28
|
+
//# sourceMappingURL=chromeDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromeDiagnostics.d.ts","sourceRoot":"","sources":["../../src/utils/chromeDiagnostics.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAOD;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CA0BxD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAwBlF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAmBnF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as chromeLauncher from 'chrome-launcher';
|
|
2
|
+
/**
|
|
3
|
+
* Cached diagnostics result to avoid repeated filesystem scans
|
|
4
|
+
*/
|
|
5
|
+
let cachedDiagnostics = null;
|
|
6
|
+
/**
|
|
7
|
+
* Get Chrome installation diagnostics.
|
|
8
|
+
* Results are cached for the lifetime of the process to avoid expensive filesystem scans.
|
|
9
|
+
*
|
|
10
|
+
* @returns Chrome diagnostics information
|
|
11
|
+
*/
|
|
12
|
+
export function getChromeDiagnostics() {
|
|
13
|
+
if (cachedDiagnostics) {
|
|
14
|
+
return cachedDiagnostics;
|
|
15
|
+
}
|
|
16
|
+
let defaultPath = null;
|
|
17
|
+
try {
|
|
18
|
+
defaultPath = chromeLauncher.getChromePath();
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
// getChromePath() may throw if no Chrome found
|
|
22
|
+
}
|
|
23
|
+
let installations = [];
|
|
24
|
+
try {
|
|
25
|
+
installations = chromeLauncher.Launcher.getInstallations();
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// getInstallations() may throw on detection failure
|
|
29
|
+
}
|
|
30
|
+
cachedDiagnostics = {
|
|
31
|
+
defaultPath,
|
|
32
|
+
installations,
|
|
33
|
+
installationCount: installations.length,
|
|
34
|
+
};
|
|
35
|
+
return cachedDiagnostics;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Format diagnostics for error reporting when Chrome launch fails.
|
|
39
|
+
* @param diagnostics - Chrome diagnostics information
|
|
40
|
+
* @returns Formatted error message with troubleshooting steps
|
|
41
|
+
*/
|
|
42
|
+
export function formatDiagnosticsForError(diagnostics) {
|
|
43
|
+
const lines = [];
|
|
44
|
+
if (diagnostics.installationCount === 0) {
|
|
45
|
+
lines.push('Error: No Chrome installations detected\n');
|
|
46
|
+
lines.push('Install Chrome from:');
|
|
47
|
+
lines.push(' https://www.google.com/chrome/\n');
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
lines.push(`Found ${diagnostics.installationCount} Chrome installation${diagnostics.installationCount > 1 ? 's' : ''}:\n`);
|
|
51
|
+
diagnostics.installations.forEach((path, index) => {
|
|
52
|
+
lines.push(` ${index + 1}. ${path}`);
|
|
53
|
+
});
|
|
54
|
+
lines.push('');
|
|
55
|
+
if (diagnostics.defaultPath) {
|
|
56
|
+
lines.push(`Default binary: ${diagnostics.defaultPath}\n`);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
lines.push('Default binary: Could not determine\n');
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return lines;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Format diagnostics for verbose status output (bdg status --verbose).
|
|
66
|
+
* @param diagnostics - Chrome diagnostics information
|
|
67
|
+
* @returns Array of formatted status lines
|
|
68
|
+
*/
|
|
69
|
+
export function formatDiagnosticsForStatus(diagnostics) {
|
|
70
|
+
const lines = [];
|
|
71
|
+
if (diagnostics.defaultPath) {
|
|
72
|
+
lines.push(`Binary: ${diagnostics.defaultPath}`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
lines.push('Binary: Could not determine');
|
|
76
|
+
}
|
|
77
|
+
lines.push(`Installations: ${diagnostics.installationCount} found`);
|
|
78
|
+
if (diagnostics.installationCount > 0 && diagnostics.installationCount <= 3) {
|
|
79
|
+
diagnostics.installations.forEach((path, index) => {
|
|
80
|
+
lines.push(` ${index + 1}. ${path}`);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
else if (diagnostics.installationCount > 3) {
|
|
84
|
+
lines.push(` (Use 'bdg cleanup --aggressive' to see all)`);
|
|
85
|
+
}
|
|
86
|
+
return lines;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=chromeDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromeDiagnostics.js","sourceRoot":"","sources":["../../src/utils/chromeDiagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error classes for bdg CLI.
|
|
3
|
+
*
|
|
4
|
+
* Provides structured error handling with error codes and categorization
|
|
5
|
+
* for better debugging and user-friendly error messages.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base error class for all bdg errors.
|
|
9
|
+
*
|
|
10
|
+
* Extends native Error with:
|
|
11
|
+
* - Error codes for programmatic handling
|
|
12
|
+
* - Category for filtering (system/user/external)
|
|
13
|
+
* - Exit code for semantic exit codes (80-99 user errors, 100-119 software errors)
|
|
14
|
+
* - Cause chaining for nested errors
|
|
15
|
+
*/
|
|
16
|
+
export declare abstract class BdgError extends Error {
|
|
17
|
+
abstract readonly code: string;
|
|
18
|
+
abstract readonly category: 'system' | 'user' | 'external';
|
|
19
|
+
abstract readonly exitCode: number;
|
|
20
|
+
constructor(message: string, cause?: Error);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* CDP connection failed (network/protocol issues).
|
|
24
|
+
*
|
|
25
|
+
* Examples:
|
|
26
|
+
* - WebSocket connection refused
|
|
27
|
+
* - Chrome not running on specified port
|
|
28
|
+
* - Protocol version mismatch
|
|
29
|
+
*/
|
|
30
|
+
export declare class CDPConnectionError extends BdgError {
|
|
31
|
+
readonly code = "CDP_CONNECTION_ERROR";
|
|
32
|
+
readonly category: "external";
|
|
33
|
+
readonly exitCode = 101;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Chrome launch failed.
|
|
37
|
+
*
|
|
38
|
+
* Examples:
|
|
39
|
+
* - Chrome binary not found
|
|
40
|
+
* - Insufficient permissions
|
|
41
|
+
* - Port already in use
|
|
42
|
+
*/
|
|
43
|
+
export declare class ChromeLaunchError extends BdgError {
|
|
44
|
+
readonly code = "CHROME_LAUNCH_ERROR";
|
|
45
|
+
readonly category: "system";
|
|
46
|
+
readonly exitCode = 100;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* CDP command timed out.
|
|
50
|
+
*
|
|
51
|
+
* Examples:
|
|
52
|
+
* - Command took longer than 30s
|
|
53
|
+
* - Browser became unresponsive
|
|
54
|
+
*/
|
|
55
|
+
export declare class CDPTimeoutError extends BdgError {
|
|
56
|
+
readonly code = "CDP_TIMEOUT_ERROR";
|
|
57
|
+
readonly category: "external";
|
|
58
|
+
readonly exitCode = 102;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Extract error message from unknown error type.
|
|
62
|
+
*
|
|
63
|
+
* Safely extracts error messages from various error types:
|
|
64
|
+
* - Error instances → error.message
|
|
65
|
+
* - Unknown types → String(error)
|
|
66
|
+
*
|
|
67
|
+
* Useful for error handling when error type is unknown.
|
|
68
|
+
*
|
|
69
|
+
* @param error - Error of unknown type
|
|
70
|
+
* @returns Error message string
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* try {
|
|
75
|
+
* await someOperation();
|
|
76
|
+
* } catch (error) {
|
|
77
|
+
* throw new ChromeLaunchError(`Failed: ${getErrorMessage(error)}`, error);
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function getErrorMessage(error: unknown): string;
|
|
82
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,8BAAsB,QAAS,SAAQ,KAAK;IAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAC3D,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;CAK3C;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,QAAQ,CAAC,IAAI,0BAA0B;IACvC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IACxC,QAAQ,CAAC,QAAQ,OAAO;CACzB;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,QAAQ,CAAC,IAAI,yBAAyB;IACtC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,QAAQ,CAAC,QAAQ,OAAO;CACzB;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IACxC,QAAQ,CAAC,QAAQ,OAAO;CACzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKtD"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error classes for bdg CLI.
|
|
3
|
+
*
|
|
4
|
+
* Provides structured error handling with error codes and categorization
|
|
5
|
+
* for better debugging and user-friendly error messages.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base error class for all bdg errors.
|
|
9
|
+
*
|
|
10
|
+
* Extends native Error with:
|
|
11
|
+
* - Error codes for programmatic handling
|
|
12
|
+
* - Category for filtering (system/user/external)
|
|
13
|
+
* - Exit code for semantic exit codes (80-99 user errors, 100-119 software errors)
|
|
14
|
+
* - Cause chaining for nested errors
|
|
15
|
+
*/
|
|
16
|
+
export class BdgError extends Error {
|
|
17
|
+
constructor(message, cause) {
|
|
18
|
+
super(message);
|
|
19
|
+
this.name = this.constructor.name;
|
|
20
|
+
this.cause = cause;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* CDP connection failed (network/protocol issues).
|
|
25
|
+
*
|
|
26
|
+
* Examples:
|
|
27
|
+
* - WebSocket connection refused
|
|
28
|
+
* - Chrome not running on specified port
|
|
29
|
+
* - Protocol version mismatch
|
|
30
|
+
*/
|
|
31
|
+
export class CDPConnectionError extends BdgError {
|
|
32
|
+
code = 'CDP_CONNECTION_ERROR';
|
|
33
|
+
category = 'external';
|
|
34
|
+
exitCode = 101; // CDP_CONNECTION_FAILURE
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Chrome launch failed.
|
|
38
|
+
*
|
|
39
|
+
* Examples:
|
|
40
|
+
* - Chrome binary not found
|
|
41
|
+
* - Insufficient permissions
|
|
42
|
+
* - Port already in use
|
|
43
|
+
*/
|
|
44
|
+
export class ChromeLaunchError extends BdgError {
|
|
45
|
+
code = 'CHROME_LAUNCH_ERROR';
|
|
46
|
+
category = 'system';
|
|
47
|
+
exitCode = 100; // CHROME_LAUNCH_FAILURE
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* CDP command timed out.
|
|
51
|
+
*
|
|
52
|
+
* Examples:
|
|
53
|
+
* - Command took longer than 30s
|
|
54
|
+
* - Browser became unresponsive
|
|
55
|
+
*/
|
|
56
|
+
export class CDPTimeoutError extends BdgError {
|
|
57
|
+
code = 'CDP_TIMEOUT_ERROR';
|
|
58
|
+
category = 'external';
|
|
59
|
+
exitCode = 102; // CDP_TIMEOUT
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Extract error message from unknown error type.
|
|
63
|
+
*
|
|
64
|
+
* Safely extracts error messages from various error types:
|
|
65
|
+
* - Error instances → error.message
|
|
66
|
+
* - Unknown types → String(error)
|
|
67
|
+
*
|
|
68
|
+
* Useful for error handling when error type is unknown.
|
|
69
|
+
*
|
|
70
|
+
* @param error - Error of unknown type
|
|
71
|
+
* @returns Error message string
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* try {
|
|
76
|
+
* await someOperation();
|
|
77
|
+
* } catch (error) {
|
|
78
|
+
* throw new ChromeLaunchError(`Failed: ${getErrorMessage(error)}`, error);
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export function getErrorMessage(error) {
|
|
83
|
+
if (error instanceof Error) {
|
|
84
|
+
return error.message;
|
|
85
|
+
}
|
|
86
|
+
return String(error);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,MAAM,OAAgB,QAAS,SAAQ,KAAK;IAK1C,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IACrC,IAAI,GAAG,sBAAsB,CAAC;IAC9B,QAAQ,GAAG,UAAmB,CAAC;IAC/B,QAAQ,GAAG,GAAG,CAAC,CAAC,yBAAyB;CACnD;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IACpC,IAAI,GAAG,qBAAqB,CAAC;IAC7B,QAAQ,GAAG,QAAiB,CAAC;IAC7B,QAAQ,GAAG,GAAG,CAAC,CAAC,wBAAwB;CAClD;AAED;;;;;;GAMG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAClC,IAAI,GAAG,mBAAmB,CAAC;IAC3B,QAAQ,GAAG,UAAmB,CAAC;IAC/B,QAAQ,GAAG,GAAG,CAAC,CAAC,cAAc;CACxC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic exit codes for agent-friendly error handling.
|
|
3
|
+
*
|
|
4
|
+
* Based on Square Engineering's semantic exit code system:
|
|
5
|
+
* - 0: Success
|
|
6
|
+
* - 1: Generic failure (backward compatibility)
|
|
7
|
+
* - 80-99: User errors (invalid input, permissions, resource issues)
|
|
8
|
+
* - 100-119: Software errors (bugs, integration failures, timeouts)
|
|
9
|
+
*
|
|
10
|
+
* Reference: https://developer.squareup.com/blog/command-line-observability-with-semantic-exit-codes/
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Exit code constants following semantic ranges.
|
|
14
|
+
*/
|
|
15
|
+
export declare const EXIT_CODES: {
|
|
16
|
+
readonly SUCCESS: 0;
|
|
17
|
+
readonly GENERIC_FAILURE: 1;
|
|
18
|
+
readonly INVALID_URL: 80;
|
|
19
|
+
readonly INVALID_ARGUMENTS: 81;
|
|
20
|
+
readonly PERMISSION_DENIED: 82;
|
|
21
|
+
readonly RESOURCE_NOT_FOUND: 83;
|
|
22
|
+
readonly RESOURCE_ALREADY_EXISTS: 84;
|
|
23
|
+
readonly RESOURCE_BUSY: 85;
|
|
24
|
+
readonly DAEMON_ALREADY_RUNNING: 86;
|
|
25
|
+
readonly CHROME_LAUNCH_FAILURE: 100;
|
|
26
|
+
readonly CDP_CONNECTION_FAILURE: 101;
|
|
27
|
+
readonly CDP_TIMEOUT: 102;
|
|
28
|
+
readonly SESSION_FILE_ERROR: 103;
|
|
29
|
+
readonly UNHANDLED_EXCEPTION: 104;
|
|
30
|
+
readonly SIGNAL_HANDLER_ERROR: 105;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=exitCodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exitCodes.d.ts","sourceRoot":"","sources":["../../src/utils/exitCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAuBb,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic exit codes for agent-friendly error handling.
|
|
3
|
+
*
|
|
4
|
+
* Based on Square Engineering's semantic exit code system:
|
|
5
|
+
* - 0: Success
|
|
6
|
+
* - 1: Generic failure (backward compatibility)
|
|
7
|
+
* - 80-99: User errors (invalid input, permissions, resource issues)
|
|
8
|
+
* - 100-119: Software errors (bugs, integration failures, timeouts)
|
|
9
|
+
*
|
|
10
|
+
* Reference: https://developer.squareup.com/blog/command-line-observability-with-semantic-exit-codes/
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Exit code constants following semantic ranges.
|
|
14
|
+
*/
|
|
15
|
+
export const EXIT_CODES = {
|
|
16
|
+
// Success
|
|
17
|
+
SUCCESS: 0,
|
|
18
|
+
// Generic failure (backward compatibility)
|
|
19
|
+
GENERIC_FAILURE: 1,
|
|
20
|
+
// User errors (80-99)
|
|
21
|
+
INVALID_URL: 80,
|
|
22
|
+
INVALID_ARGUMENTS: 81,
|
|
23
|
+
PERMISSION_DENIED: 82,
|
|
24
|
+
RESOURCE_NOT_FOUND: 83,
|
|
25
|
+
RESOURCE_ALREADY_EXISTS: 84,
|
|
26
|
+
RESOURCE_BUSY: 85,
|
|
27
|
+
DAEMON_ALREADY_RUNNING: 86,
|
|
28
|
+
// Software/Integration errors (100-119)
|
|
29
|
+
CHROME_LAUNCH_FAILURE: 100,
|
|
30
|
+
CDP_CONNECTION_FAILURE: 101,
|
|
31
|
+
CDP_TIMEOUT: 102,
|
|
32
|
+
SESSION_FILE_ERROR: 103,
|
|
33
|
+
UNHANDLED_EXCEPTION: 104,
|
|
34
|
+
SIGNAL_HANDLER_ERROR: 105,
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=exitCodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exitCodes.js","sourceRoot":"","sources":["../../src/utils/exitCodes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,UAAU;IACV,OAAO,EAAE,CAAC;IAEV,2CAA2C;IAC3C,eAAe,EAAE,CAAC;IAElB,sBAAsB;IACtB,WAAW,EAAE,EAAE;IACf,iBAAiB,EAAE,EAAE;IACrB,iBAAiB,EAAE,EAAE;IACrB,kBAAkB,EAAE,EAAE;IACtB,uBAAuB,EAAE,EAAE;IAC3B,aAAa,EAAE,EAAE;IACjB,sBAAsB,EAAE,EAAE;IAE1B,wCAAwC;IACxC,qBAAqB,EAAE,GAAG;IAC1B,sBAAsB,EAAE,GAAG;IAC3B,WAAW,EAAE,GAAG;IAChB,kBAAkB,EAAE,GAAG;IACvB,mBAAmB,EAAE,GAAG;IACxB,oBAAoB,EAAE,GAAG;CACjB,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default filters for reducing noise in collected data
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Domains to exclude by default (common tracking/analytics)
|
|
6
|
+
* These generate high volume but are rarely useful for debugging
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_EXCLUDED_DOMAINS: string[];
|
|
9
|
+
/**
|
|
10
|
+
* Console message types to exclude by default (Redux/React DevTools noise)
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_EXCLUDED_CONSOLE_TYPES: string[];
|
|
13
|
+
/**
|
|
14
|
+
* Console message patterns to exclude by default (dev server noise)
|
|
15
|
+
*/
|
|
16
|
+
export declare const DEFAULT_EXCLUDED_CONSOLE_PATTERNS: string[];
|
|
17
|
+
/**
|
|
18
|
+
* File patterns to skip body fetching by default (assets unlikely to be useful for debugging)
|
|
19
|
+
* These reduce data volume significantly without losing critical debugging information.
|
|
20
|
+
*/
|
|
21
|
+
export declare const DEFAULT_SKIP_BODY_PATTERNS: string[];
|
|
22
|
+
/**
|
|
23
|
+
* MIME types to skip body fetching by default
|
|
24
|
+
* This catches resources that may not have obvious file extensions (e.g., CSS with query params)
|
|
25
|
+
*/
|
|
26
|
+
export declare const DEFAULT_SKIP_BODY_MIME_TYPES: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Check if a URL should be excluded based on domain filtering.
|
|
29
|
+
*
|
|
30
|
+
* @param url - URL to check against exclusion list
|
|
31
|
+
* @param includeAll - If true, disables all filtering
|
|
32
|
+
* @returns True if the URL's domain matches an excluded domain
|
|
33
|
+
*/
|
|
34
|
+
export declare function shouldExcludeDomain(url: string, includeAll?: boolean): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Check if a console message should be excluded based on type and pattern filtering
|
|
37
|
+
*/
|
|
38
|
+
export declare function shouldExcludeConsoleMessage(text: string, type: string, includeAll?: boolean): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Simple wildcard pattern matcher.
|
|
41
|
+
* Supports only the * wildcard character.
|
|
42
|
+
*
|
|
43
|
+
* Examples:
|
|
44
|
+
* matchesWildcard("api.json", "*.json") → true
|
|
45
|
+
* matchesWildcard("api/users", "*api*") → true
|
|
46
|
+
* matchesWildcard("index.html", "*.js") → false
|
|
47
|
+
*
|
|
48
|
+
* @param str - The string to test
|
|
49
|
+
* @param pattern - The pattern with * wildcards
|
|
50
|
+
* @returns True if the string matches the pattern
|
|
51
|
+
*/
|
|
52
|
+
export declare function matchesWildcard(str: string, pattern: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Check if a URL matches any pattern in a list.
|
|
55
|
+
*
|
|
56
|
+
* Matches against both bare hostname and hostname+pathname to support:
|
|
57
|
+
* - Bare hostname patterns: `api.example.com` matches all requests to that host
|
|
58
|
+
* - Hostname wildcard patterns: `*analytics*` matches "analytics.google.com/collect"
|
|
59
|
+
* - Path patterns: `*\/api\/*` matches "example.com/api/users"
|
|
60
|
+
* - Combined patterns: `api.example.com\/users` matches specific endpoint
|
|
61
|
+
*
|
|
62
|
+
* @param url - The URL to check
|
|
63
|
+
* @param patterns - Array of wildcard patterns
|
|
64
|
+
* @returns True if URL matches any pattern
|
|
65
|
+
*/
|
|
66
|
+
/**
|
|
67
|
+
* Determine if a response body should be fetched based on URL, MIME type, and patterns.
|
|
68
|
+
*
|
|
69
|
+
* Pattern precedence (follows include-trumps-exclude rule):
|
|
70
|
+
* 1. If URL matches includePatterns → FETCH (even if it also matches excludePatterns)
|
|
71
|
+
* 2. If includePatterns specified but URL doesn't match → SKIP (whitelist mode)
|
|
72
|
+
* 3. If URL matches excludePatterns → SKIP
|
|
73
|
+
* 4. If fetchAllBodies flag is true → FETCH
|
|
74
|
+
* 5. If MIME type matches DEFAULT_SKIP_BODY_MIME_TYPES → SKIP
|
|
75
|
+
* 6. If URL matches DEFAULT_SKIP_BODY_PATTERNS → SKIP
|
|
76
|
+
* 7. Otherwise → FETCH (default behavior)
|
|
77
|
+
*
|
|
78
|
+
* @param url - The request URL
|
|
79
|
+
* @param mimeType - The response MIME type (for MIME-based skipping)
|
|
80
|
+
* @param options - Configuration options
|
|
81
|
+
* @returns True if the body should be fetched
|
|
82
|
+
*/
|
|
83
|
+
export declare function shouldFetchBody(url: string, mimeType: string | undefined, options?: {
|
|
84
|
+
fetchAllBodies?: boolean;
|
|
85
|
+
includePatterns?: string[];
|
|
86
|
+
excludePatterns?: string[];
|
|
87
|
+
}): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Determine if a network request should be excluded based on URL patterns.
|
|
90
|
+
*
|
|
91
|
+
* Pattern precedence (follows include-trumps-exclude rule):
|
|
92
|
+
* 1. If URL matches includePatterns → CAPTURE (even if it also matches excludePatterns)
|
|
93
|
+
* 2. If includePatterns specified but URL doesn't match → EXCLUDE (whitelist mode)
|
|
94
|
+
* 3. If URL matches excludePatterns → EXCLUDE
|
|
95
|
+
* 4. Otherwise → CAPTURE (default behavior)
|
|
96
|
+
*
|
|
97
|
+
* Note: This function is separate from domain filtering (shouldExcludeDomain).
|
|
98
|
+
* Both filters can be applied: domain filtering happens first, then URL pattern filtering.
|
|
99
|
+
*
|
|
100
|
+
* @param url - The request URL
|
|
101
|
+
* @param options - Configuration options
|
|
102
|
+
* @returns True if the request should be excluded
|
|
103
|
+
*/
|
|
104
|
+
export declare function shouldExcludeUrl(url: string, options?: {
|
|
105
|
+
includePatterns?: string[];
|
|
106
|
+
excludePatterns?: string[];
|
|
107
|
+
}): boolean;
|
|
108
|
+
//# sourceMappingURL=filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/utils/filters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,eAAO,MAAM,wBAAwB,UA6CpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,UAAoD,CAAC;AAEhG;;GAEG;AACH,eAAO,MAAM,iCAAiC,UAS7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,UAuCtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,UAqBxC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAOrF;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,OAAe,GAC1B,OAAO,CAeT;AAoDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED;;;;;;;;;;;;GAYG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GACL,OAAO,CA8CT;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GACL,OAAO,CAST"}
|