browser-debugger-cli 0.3.0 → 0.6.0
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/README.md +182 -125
- package/dist/__tests__/smoke/error-handling.smoke.test.d.ts +8 -0
- package/dist/__tests__/smoke/error-handling.smoke.test.d.ts.map +1 -0
- package/dist/__tests__/smoke/error-handling.smoke.test.js +95 -0
- package/dist/__tests__/smoke/error-handling.smoke.test.js.map +1 -0
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts +8 -0
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts.map +1 -0
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js +109 -0
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js.map +1 -0
- package/dist/__testutils__/commandRunner.d.ts +45 -0
- package/dist/__testutils__/commandRunner.d.ts.map +1 -0
- package/dist/__testutils__/commandRunner.js +108 -0
- package/dist/__testutils__/commandRunner.js.map +1 -0
- package/dist/__testutils__/daemonHelpers.d.ts +81 -0
- package/dist/__testutils__/daemonHelpers.d.ts.map +1 -0
- package/dist/__testutils__/daemonHelpers.js +206 -0
- package/dist/__testutils__/daemonHelpers.js.map +1 -0
- package/dist/__testutils__/index.d.ts +1 -0
- package/dist/__testutils__/index.d.ts.map +1 -1
- package/dist/__testutils__/index.js +1 -0
- package/dist/__testutils__/index.js.map +1 -1
- package/dist/__testutils__/testCleanup.d.ts +45 -0
- package/dist/__testutils__/testCleanup.d.ts.map +1 -0
- package/dist/__testutils__/testCleanup.js +87 -0
- package/dist/__testutils__/testCleanup.js.map +1 -0
- package/dist/__testutils__/testHome.d.ts +26 -0
- package/dist/__testutils__/testHome.d.ts.map +1 -0
- package/dist/__testutils__/testHome.js +57 -0
- package/dist/__testutils__/testHome.js.map +1 -0
- package/dist/__testutils__/testProcess.d.ts.map +1 -1
- package/dist/__testutils__/testProcess.js +11 -3
- package/dist/__testutils__/testProcess.js.map +1 -1
- package/dist/cdp/protocol.d.ts +121 -0
- package/dist/cdp/protocol.d.ts.map +1 -0
- package/dist/cdp/protocol.js +215 -0
- package/dist/cdp/protocol.js.map +1 -0
- package/dist/cdp/schema.d.ts +159 -0
- package/dist/cdp/schema.d.ts.map +1 -0
- package/dist/cdp/schema.js +256 -0
- package/dist/cdp/schema.js.map +1 -0
- package/dist/cdp/types.d.ts +139 -0
- package/dist/cdp/types.d.ts.map +1 -0
- package/dist/cdp/types.js +7 -0
- package/dist/cdp/types.js.map +1 -0
- package/dist/commands/cdp.d.ts +10 -1
- package/dist/commands/cdp.d.ts.map +1 -1
- package/dist/commands/cdp.js +363 -26
- package/dist/commands/cdp.js.map +1 -1
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +15 -18
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/dom.d.ts.map +1 -1
- package/dist/commands/dom.js +14 -19
- package/dist/commands/dom.js.map +1 -1
- package/dist/commands/domEvalHelpers.d.ts +3 -16
- package/dist/commands/domEvalHelpers.d.ts.map +1 -1
- package/dist/commands/domEvalHelpers.js +56 -7
- package/dist/commands/domEvalHelpers.js.map +1 -1
- package/dist/commands/domOptionsBuilder.d.ts +32 -0
- package/dist/commands/domOptionsBuilder.d.ts.map +1 -1
- package/dist/commands/domOptionsBuilder.js +35 -0
- package/dist/commands/domOptionsBuilder.js.map +1 -1
- package/dist/commands/machineReadableHelp.d.ts +98 -0
- package/dist/commands/machineReadableHelp.d.ts.map +1 -0
- package/dist/commands/machineReadableHelp.js +137 -0
- package/dist/commands/machineReadableHelp.js.map +1 -0
- package/dist/commands/peek.d.ts.map +1 -1
- package/dist/commands/peek.js +12 -6
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/shared/CommandRunner.d.ts +2 -0
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -1
- package/dist/commands/shared/CommandRunner.js +15 -4
- package/dist/commands/shared/CommandRunner.js.map +1 -1
- package/dist/commands/shared/OutputBuilder.js +1 -1
- package/dist/commands/shared/OutputBuilder.js.map +1 -1
- package/dist/commands/shared/commonOptions.d.ts.map +1 -1
- package/dist/commands/shared/commonOptions.js +11 -5
- package/dist/commands/shared/commonOptions.js.map +1 -1
- package/dist/commands/shared/daemonSessionController.d.ts +2 -0
- package/dist/commands/shared/daemonSessionController.d.ts.map +1 -1
- package/dist/commands/shared/daemonSessionController.js +13 -16
- package/dist/commands/shared/daemonSessionController.js.map +1 -1
- package/dist/commands/shared/sessionController.js +1 -1
- package/dist/commands/shared/sessionController.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +35 -11
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +74 -57
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +13 -27
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/tail.d.ts +11 -0
- package/dist/commands/tail.d.ts.map +1 -0
- package/dist/commands/tail.js +117 -0
- package/dist/commands/tail.js.map +1 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +2 -0
- package/dist/commands.js.map +1 -1
- package/dist/connection/cdp.d.ts +46 -2
- package/dist/connection/cdp.d.ts.map +1 -1
- package/dist/connection/cdp.js +86 -7
- package/dist/connection/cdp.js.map +1 -1
- package/dist/{utils/chromeDiagnostics.d.ts → connection/diagnostics.d.ts} +1 -1
- package/dist/connection/diagnostics.d.ts.map +1 -0
- package/dist/{utils/chromeDiagnostics.js → connection/diagnostics.js} +1 -1
- package/dist/connection/diagnostics.js.map +1 -0
- package/dist/connection/domOperations.d.ts.map +1 -1
- package/dist/connection/domOperations.js +3 -1
- package/dist/connection/domOperations.js.map +1 -1
- package/dist/{utils → connection}/errors.d.ts +9 -17
- package/dist/connection/errors.d.ts.map +1 -0
- package/dist/{utils → connection}/errors.js +12 -17
- package/dist/connection/errors.js.map +1 -0
- package/dist/connection/handlers.d.ts +63 -0
- package/dist/connection/handlers.d.ts.map +1 -0
- package/dist/connection/handlers.js +64 -0
- package/dist/connection/handlers.js.map +1 -0
- package/dist/connection/launcher.d.ts +3 -20
- package/dist/connection/launcher.d.ts.map +1 -1
- package/dist/connection/launcher.js +141 -31
- package/dist/connection/launcher.js.map +1 -1
- package/dist/connection/pageReadiness.d.ts.map +1 -0
- package/dist/{utils → connection}/pageReadiness.js +30 -31
- package/dist/connection/pageReadiness.js.map +1 -0
- package/dist/connection/typed-cdp.d.ts +144 -0
- package/dist/connection/typed-cdp.d.ts.map +1 -0
- package/dist/connection/typed-cdp.js +120 -0
- package/dist/connection/typed-cdp.js.map +1 -0
- package/dist/constants.d.ts +20 -40
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +26 -40
- package/dist/constants.js.map +1 -1
- package/dist/daemon/ipcServer.d.ts +5 -7
- package/dist/daemon/ipcServer.d.ts.map +1 -1
- package/dist/daemon/ipcServer.js +178 -143
- package/dist/daemon/ipcServer.js.map +1 -1
- package/dist/daemon/launcher.js +1 -1
- package/dist/daemon/launcher.js.map +1 -1
- package/dist/daemon/server/SocketServer.d.ts +22 -0
- package/dist/daemon/server/SocketServer.d.ts.map +1 -0
- package/dist/daemon/server/SocketServer.js +67 -0
- package/dist/daemon/server/SocketServer.js.map +1 -0
- package/dist/daemon/server/WorkerManager.d.ts +36 -0
- package/dist/daemon/server/WorkerManager.d.ts.map +1 -0
- package/dist/daemon/server/WorkerManager.js +98 -0
- package/dist/daemon/server/WorkerManager.js.map +1 -0
- package/dist/daemon/startSession.d.ts +2 -0
- package/dist/daemon/startSession.d.ts.map +1 -1
- package/dist/daemon/startSession.js +4 -2
- package/dist/daemon/startSession.js.map +1 -1
- package/dist/daemon/worker/TelemetryStore.d.ts +18 -0
- package/dist/daemon/worker/TelemetryStore.d.ts.map +1 -0
- package/dist/daemon/worker/TelemetryStore.js +49 -0
- package/dist/daemon/worker/TelemetryStore.js.map +1 -0
- package/dist/daemon/worker/collectors.d.ts +8 -0
- package/dist/daemon/worker/collectors.d.ts.map +1 -0
- package/dist/daemon/worker/collectors.js +19 -0
- package/dist/daemon/worker/collectors.js.map +1 -0
- package/dist/daemon/worker/commandRegistry.d.ts +10 -0
- package/dist/daemon/worker/commandRegistry.d.ts.map +1 -0
- package/dist/daemon/worker/commandRegistry.js +289 -0
- package/dist/daemon/worker/commandRegistry.js.map +1 -0
- package/dist/daemon/worker/plugins.d.ts +21 -0
- package/dist/daemon/worker/plugins.d.ts.map +1 -0
- package/dist/daemon/worker/plugins.js +71 -0
- package/dist/daemon/worker/plugins.js.map +1 -0
- package/dist/daemon/worker/types.d.ts +13 -0
- package/dist/daemon/worker/types.d.ts.map +1 -0
- package/dist/daemon/worker/types.js +2 -0
- package/dist/daemon/worker/types.js.map +1 -0
- package/dist/daemon/worker.js +206 -529
- package/dist/daemon/worker.js.map +1 -1
- package/dist/index.js +18 -9
- package/dist/index.js.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.js +2 -2
- package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
- package/dist/ipc/client.d.ts +3 -1
- package/dist/ipc/client.d.ts.map +1 -1
- package/dist/ipc/client.js +27 -14
- package/dist/ipc/client.js.map +1 -1
- package/dist/ipc/commands.d.ts +1 -0
- package/dist/ipc/commands.d.ts.map +1 -1
- package/dist/ipc/commands.js.map +1 -1
- package/dist/ipc/types.d.ts +2 -0
- package/dist/ipc/types.d.ts.map +1 -1
- package/dist/session/cleanup.d.ts.map +1 -1
- package/dist/session/cleanup.js +67 -65
- package/dist/session/cleanup.js.map +1 -1
- package/dist/session/fileOps.d.ts +25 -0
- package/dist/session/fileOps.d.ts.map +1 -0
- package/dist/session/fileOps.js +39 -0
- package/dist/session/fileOps.js.map +1 -0
- package/dist/session/metadata.js +2 -2
- package/dist/session/metadata.js.map +1 -1
- package/dist/session/paths.d.ts +2 -7
- package/dist/session/paths.d.ts.map +1 -1
- package/dist/session/paths.js +8 -8
- package/dist/session/paths.js.map +1 -1
- package/dist/session/queryCache.js +1 -1
- package/dist/session/queryCache.js.map +1 -1
- package/dist/telemetry/__tests__/filters.unit.test.d.ts.map +1 -0
- package/dist/{utils → telemetry}/__tests__/filters.unit.test.js +1 -1
- package/dist/telemetry/__tests__/filters.unit.test.js.map +1 -0
- package/dist/telemetry/__tests__/network.contract.test.js +124 -93
- package/dist/telemetry/__tests__/network.contract.test.js.map +1 -1
- package/dist/telemetry/console.d.ts +1 -1
- package/dist/telemetry/console.d.ts.map +1 -1
- package/dist/telemetry/console.js +8 -5
- package/dist/telemetry/console.js.map +1 -1
- package/dist/telemetry/dialogs.d.ts +27 -0
- package/dist/telemetry/dialogs.d.ts.map +1 -0
- package/dist/telemetry/dialogs.js +51 -0
- package/dist/telemetry/dialogs.js.map +1 -0
- package/dist/telemetry/dom.d.ts.map +1 -1
- package/dist/telemetry/dom.js +3 -1
- package/dist/telemetry/dom.js.map +1 -1
- package/dist/{utils → telemetry}/filters.d.ts +40 -0
- package/dist/telemetry/filters.d.ts.map +1 -0
- package/dist/{utils → telemetry}/filters.js +55 -1
- package/dist/telemetry/filters.js.map +1 -0
- package/dist/telemetry/navigation.d.ts +49 -0
- package/dist/telemetry/navigation.d.ts.map +1 -0
- package/dist/telemetry/navigation.js +69 -0
- package/dist/telemetry/navigation.js.map +1 -0
- package/dist/telemetry/network.d.ts +1 -0
- package/dist/telemetry/network.d.ts.map +1 -1
- package/dist/telemetry/network.js +23 -34
- package/dist/telemetry/network.js.map +1 -1
- package/dist/types.d.ts +2 -141
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/{errors.d.ts → errors/CommandError.d.ts} +1 -1
- package/dist/ui/errors/CommandError.d.ts.map +1 -0
- package/dist/ui/{errors.js → errors/CommandError.js} +1 -1
- package/dist/ui/errors/CommandError.js.map +1 -0
- package/dist/ui/errors/index.d.ts +9 -0
- package/dist/ui/errors/index.d.ts.map +1 -0
- package/dist/ui/errors/index.js +12 -0
- package/dist/ui/errors/index.js.map +1 -0
- package/dist/ui/errors/utils.d.ts +24 -0
- package/dist/ui/errors/utils.d.ts.map +1 -0
- package/dist/ui/errors/utils.js +28 -0
- package/dist/ui/errors/utils.js.map +1 -0
- package/dist/ui/formatters/status.d.ts.map +1 -1
- package/dist/ui/formatters/status.js +1 -1
- package/dist/ui/formatters/status.js.map +1 -1
- package/dist/ui/logging/index.d.ts +7 -0
- package/dist/ui/logging/index.d.ts.map +1 -0
- package/dist/ui/logging/index.js +7 -0
- package/dist/ui/logging/index.js.map +1 -0
- package/dist/{utils → ui/logging}/logger.d.ts +1 -1
- package/dist/ui/logging/logger.d.ts.map +1 -0
- package/dist/ui/logging/logger.js.map +1 -0
- package/dist/ui/messages/chrome.d.ts +50 -1
- package/dist/ui/messages/chrome.d.ts.map +1 -1
- package/dist/ui/messages/chrome.js +77 -0
- package/dist/ui/messages/chrome.js.map +1 -1
- package/dist/ui/messages/commands.d.ts +1 -0
- package/dist/ui/messages/commands.d.ts.map +1 -1
- package/dist/ui/messages/commands.js +1 -0
- package/dist/ui/messages/commands.js.map +1 -1
- package/dist/ui/messages/errors.d.ts +30 -3
- package/dist/ui/messages/errors.d.ts.map +1 -1
- package/dist/ui/messages/errors.js +36 -8
- package/dist/ui/messages/errors.js.map +1 -1
- package/dist/ui/messages/preview.js +1 -1
- package/dist/ui/messages/preview.js.map +1 -1
- package/dist/ui/messages/session.d.ts.map +1 -1
- package/dist/ui/messages/session.js +22 -7
- package/dist/ui/messages/session.js.map +1 -1
- package/dist/ui/messages/validation.d.ts +22 -4
- package/dist/ui/messages/validation.d.ts.map +1 -1
- package/dist/ui/messages/validation.js +26 -5
- package/dist/ui/messages/validation.js.map +1 -1
- package/dist/utils/__tests__/session.contract.test.js +15 -1
- package/dist/utils/__tests__/session.contract.test.js.map +1 -1
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +10 -0
- package/dist/utils/url.js.map +1 -1
- package/package.json +3 -1
- package/dist/cli/commands/__tests__/cdp.contract.test.d.ts +0 -24
- package/dist/cli/commands/__tests__/cdp.contract.test.d.ts.map +0 -1
- package/dist/cli/commands/__tests__/cdp.contract.test.js +0 -467
- package/dist/cli/commands/__tests__/cdp.contract.test.js.map +0 -1
- package/dist/cli/commands/cdp.d.ts +0 -8
- package/dist/cli/commands/cdp.d.ts.map +0 -1
- package/dist/cli/commands/cdp.js +0 -45
- package/dist/cli/commands/cdp.js.map +0 -1
- package/dist/cli/commands/cleanup.d.ts +0 -8
- package/dist/cli/commands/cleanup.d.ts.map +0 -1
- package/dist/cli/commands/cleanup.js +0 -129
- package/dist/cli/commands/cleanup.js.map +0 -1
- package/dist/cli/commands/console.d.ts +0 -8
- package/dist/cli/commands/console.d.ts.map +0 -1
- package/dist/cli/commands/console.js +0 -97
- package/dist/cli/commands/console.js.map +0 -1
- package/dist/cli/commands/details.d.ts +0 -8
- package/dist/cli/commands/details.d.ts.map +0 -1
- package/dist/cli/commands/details.js +0 -68
- package/dist/cli/commands/details.js.map +0 -1
- package/dist/cli/commands/dom/helpers/domCache.d.ts +0 -36
- package/dist/cli/commands/dom/helpers/domCache.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/domCache.js +0 -65
- package/dist/cli/commands/dom/helpers/domCache.js.map +0 -1
- package/dist/cli/commands/dom/helpers/domQuery.d.ts +0 -48
- package/dist/cli/commands/dom/helpers/domQuery.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/domQuery.js +0 -104
- package/dist/cli/commands/dom/helpers/domQuery.js.map +0 -1
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts +0 -45
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/errorHandler.js +0 -71
- package/dist/cli/commands/dom/helpers/errorHandler.js.map +0 -1
- package/dist/cli/commands/dom/helpers/evalHelpers.d.ts +0 -52
- package/dist/cli/commands/dom/helpers/evalHelpers.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/evalHelpers.js +0 -75
- package/dist/cli/commands/dom/helpers/evalHelpers.js.map +0 -1
- package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts +0 -35
- package/dist/cli/commands/dom/helpers/optionsBuilder.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/optionsBuilder.js +0 -51
- package/dist/cli/commands/dom/helpers/optionsBuilder.js.map +0 -1
- package/dist/cli/commands/dom/helpers/selectorParser.d.ts +0 -20
- package/dist/cli/commands/dom/helpers/selectorParser.d.ts.map +0 -1
- package/dist/cli/commands/dom/helpers/selectorParser.js +0 -20
- package/dist/cli/commands/dom/helpers/selectorParser.js.map +0 -1
- package/dist/cli/commands/dom/index.d.ts +0 -8
- package/dist/cli/commands/dom/index.d.ts.map +0 -1
- package/dist/cli/commands/dom/index.js +0 -257
- package/dist/cli/commands/dom/index.js.map +0 -1
- package/dist/cli/commands/dom.d.ts +0 -8
- package/dist/cli/commands/dom.d.ts.map +0 -1
- package/dist/cli/commands/dom.js +0 -257
- package/dist/cli/commands/dom.js.map +0 -1
- package/dist/cli/commands/domErrorHandler.d.ts +0 -45
- package/dist/cli/commands/domErrorHandler.d.ts.map +0 -1
- package/dist/cli/commands/domErrorHandler.js +0 -71
- package/dist/cli/commands/domErrorHandler.js.map +0 -1
- package/dist/cli/commands/domEvalHelpers.d.ts +0 -52
- package/dist/cli/commands/domEvalHelpers.d.ts.map +0 -1
- package/dist/cli/commands/domEvalHelpers.js +0 -76
- package/dist/cli/commands/domEvalHelpers.js.map +0 -1
- package/dist/cli/commands/domOptionsBuilder.d.ts +0 -35
- package/dist/cli/commands/domOptionsBuilder.d.ts.map +0 -1
- package/dist/cli/commands/domOptionsBuilder.js +0 -51
- package/dist/cli/commands/domOptionsBuilder.js.map +0 -1
- package/dist/cli/commands/domSelectorParser.d.ts +0 -20
- package/dist/cli/commands/domSelectorParser.d.ts.map +0 -1
- package/dist/cli/commands/domSelectorParser.js +0 -20
- package/dist/cli/commands/domSelectorParser.js.map +0 -1
- package/dist/cli/commands/network.d.ts +0 -8
- package/dist/cli/commands/network.d.ts.map +0 -1
- package/dist/cli/commands/network.js +0 -43
- package/dist/cli/commands/network.js.map +0 -1
- package/dist/cli/commands/peek.d.ts +0 -8
- package/dist/cli/commands/peek.d.ts.map +0 -1
- package/dist/cli/commands/peek.js +0 -109
- package/dist/cli/commands/peek.js.map +0 -1
- package/dist/cli/commands/start.d.ts +0 -9
- package/dist/cli/commands/start.d.ts.map +0 -1
- package/dist/cli/commands/start.js +0 -95
- package/dist/cli/commands/start.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -9
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -87
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/stop.d.ts +0 -8
- package/dist/cli/commands/stop.d.ts.map +0 -1
- package/dist/cli/commands/stop.js +0 -147
- package/dist/cli/commands/stop.js.map +0 -1
- package/dist/cli/formatters/detailsFormatter.d.ts +0 -10
- package/dist/cli/formatters/detailsFormatter.d.ts.map +0 -1
- package/dist/cli/formatters/detailsFormatter.js +0 -63
- package/dist/cli/formatters/detailsFormatter.js.map +0 -1
- package/dist/cli/formatters/previewFormatter.d.ts +0 -27
- package/dist/cli/formatters/previewFormatter.d.ts.map +0 -1
- package/dist/cli/formatters/previewFormatter.js +0 -160
- package/dist/cli/formatters/previewFormatter.js.map +0 -1
- package/dist/cli/formatters/statusFormatter.d.ts +0 -39
- package/dist/cli/formatters/statusFormatter.d.ts.map +0 -1
- package/dist/cli/formatters/statusFormatter.js +0 -153
- package/dist/cli/formatters/statusFormatter.js.map +0 -1
- package/dist/cli/handlers/CommandRunner.d.ts +0 -60
- package/dist/cli/handlers/CommandRunner.d.ts.map +0 -1
- package/dist/cli/handlers/CommandRunner.js +0 -81
- package/dist/cli/handlers/CommandRunner.js.map +0 -1
- package/dist/cli/handlers/OutputBuilder.d.ts +0 -60
- package/dist/cli/handlers/OutputBuilder.d.ts.map +0 -1
- package/dist/cli/handlers/OutputBuilder.js +0 -138
- package/dist/cli/handlers/OutputBuilder.js.map +0 -1
- package/dist/cli/handlers/commonOptions.d.ts +0 -54
- package/dist/cli/handlers/commonOptions.d.ts.map +0 -1
- package/dist/cli/handlers/commonOptions.js +0 -64
- package/dist/cli/handlers/commonOptions.js.map +0 -1
- package/dist/cli/handlers/daemonSessionController.d.ts +0 -23
- package/dist/cli/handlers/daemonSessionController.d.ts.map +0 -1
- package/dist/cli/handlers/daemonSessionController.js +0 -79
- package/dist/cli/handlers/daemonSessionController.js.map +0 -1
- package/dist/cli/handlers/landingPage.d.ts +0 -8
- package/dist/cli/handlers/landingPage.d.ts.map +0 -1
- package/dist/cli/handlers/landingPage.js +0 -8
- package/dist/cli/handlers/landingPage.js.map +0 -1
- package/dist/cli/handlers/sessionController.d.ts +0 -21
- package/dist/cli/handlers/sessionController.d.ts.map +0 -1
- package/dist/cli/handlers/sessionController.js +0 -55
- package/dist/cli/handlers/sessionController.js.map +0 -1
- package/dist/cli/registry.d.ts +0 -11
- package/dist/cli/registry.d.ts.map +0 -1
- package/dist/cli/registry.js +0 -46
- package/dist/cli/registry.js.map +0 -1
- package/dist/collectors/__tests__/network.contract.test.d.ts +0 -28
- package/dist/collectors/__tests__/network.contract.test.d.ts.map +0 -1
- package/dist/collectors/__tests__/network.contract.test.js +0 -540
- package/dist/collectors/__tests__/network.contract.test.js.map +0 -1
- package/dist/collectors/console.d.ts +0 -19
- package/dist/collectors/console.d.ts.map +0 -1
- package/dist/collectors/console.js +0 -87
- package/dist/collectors/console.js.map +0 -1
- package/dist/collectors/dom.d.ts +0 -21
- package/dist/collectors/dom.d.ts.map +0 -1
- package/dist/collectors/dom.js +0 -99
- package/dist/collectors/dom.js.map +0 -1
- package/dist/collectors/network.d.ts +0 -33
- package/dist/collectors/network.d.ts.map +0 -1
- package/dist/collectors/network.js +0 -191
- package/dist/collectors/network.js.map +0 -1
- package/dist/commandRegistry.d.ts +0 -11
- package/dist/commandRegistry.d.ts.map +0 -1
- package/dist/commandRegistry.js +0 -45
- package/dist/commandRegistry.js.map +0 -1
- package/dist/commands/domErrorHandler.d.ts +0 -45
- package/dist/commands/domErrorHandler.d.ts.map +0 -1
- package/dist/commands/domErrorHandler.js +0 -71
- package/dist/commands/domErrorHandler.js.map +0 -1
- package/dist/dom/cache.d.ts +0 -36
- package/dist/dom/cache.d.ts.map +0 -1
- package/dist/dom/cache.js +0 -65
- package/dist/dom/cache.js.map +0 -1
- package/dist/dom/index.d.ts +0 -9
- package/dist/dom/index.d.ts.map +0 -1
- package/dist/dom/index.js +0 -9
- package/dist/dom/index.js.map +0 -1
- package/dist/dom/query.d.ts +0 -48
- package/dist/dom/query.d.ts.map +0 -1
- package/dist/dom/query.js +0 -104
- package/dist/dom/query.js.map +0 -1
- package/dist/ui/errors.d.ts.map +0 -1
- package/dist/ui/errors.js.map +0 -1
- package/dist/ui/messages/index.d.ts +0 -12
- package/dist/ui/messages/index.d.ts.map +0 -1
- package/dist/ui/messages/index.js +0 -12
- package/dist/ui/messages/index.js.map +0 -1
- package/dist/utils/__tests__/filters.unit.test.d.ts.map +0 -1
- package/dist/utils/__tests__/filters.unit.test.js.map +0 -1
- package/dist/utils/cdpHandlers.d.ts +0 -31
- package/dist/utils/cdpHandlers.d.ts.map +0 -1
- package/dist/utils/cdpHandlers.js +0 -38
- package/dist/utils/cdpHandlers.js.map +0 -1
- package/dist/utils/chromeDiagnostics.d.ts.map +0 -1
- package/dist/utils/chromeDiagnostics.js.map +0 -1
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/filters.d.ts.map +0 -1
- package/dist/utils/filters.js.map +0 -1
- package/dist/utils/formatters/network.d.ts +0 -23
- package/dist/utils/formatters/network.d.ts.map +0 -1
- package/dist/utils/formatters/network.js +0 -35
- package/dist/utils/formatters/network.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/pageReadiness.d.ts.map +0 -1
- package/dist/utils/pageReadiness.js.map +0 -1
- package/dist/utils/ui.d.ts +0 -36
- package/dist/utils/ui.d.ts.map +0 -1
- package/dist/utils/ui.js +0 -47
- package/dist/utils/ui.js.map +0 -1
- package/dist/utils/url/safeParseUrl.d.ts +0 -63
- package/dist/utils/url/safeParseUrl.d.ts.map +0 -1
- package/dist/utils/url/safeParseUrl.js +0 -84
- package/dist/utils/url/safeParseUrl.js.map +0 -1
- /package/dist/{utils → connection}/pageReadiness.d.ts +0 -0
- /package/dist/{utils → telemetry}/__tests__/filters.unit.test.d.ts +0 -0
- /package/dist/{utils → ui/logging}/logger.js +0 -0
|
@@ -72,11 +72,11 @@ async function waitForLoadEvent(cdp, deadline) {
|
|
|
72
72
|
await cdp.send('Page.enable');
|
|
73
73
|
// Check if page already loaded (handles Chrome pre-navigation)
|
|
74
74
|
try {
|
|
75
|
-
const result = await cdp.send('Runtime.evaluate', {
|
|
75
|
+
const result = (await cdp.send('Runtime.evaluate', {
|
|
76
76
|
expression: 'document.readyState',
|
|
77
77
|
returnByValue: true,
|
|
78
|
-
});
|
|
79
|
-
if (result.result
|
|
78
|
+
}));
|
|
79
|
+
if (result.result.value === 'complete') {
|
|
80
80
|
// Load event already fired
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
@@ -111,23 +111,21 @@ async function waitForLoadEvent(cdp, deadline) {
|
|
|
111
111
|
});
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
|
-
* Wait for network to stabilize
|
|
114
|
+
* Wait for network to stabilize
|
|
115
115
|
*
|
|
116
|
-
*
|
|
117
|
-
* -
|
|
118
|
-
* -
|
|
116
|
+
* Uses a fixed 200ms idle threshold which works well for most pages:
|
|
117
|
+
* - Fast enough for quick sites (avoids unnecessary waiting)
|
|
118
|
+
* - Patient enough for API-heavy apps (catches late requests)
|
|
119
|
+
* - Simpler and more predictable than adaptive learning
|
|
119
120
|
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
* - Steady pattern (100-500ms): 500ms idle = stable
|
|
123
|
-
* - Slow pattern (\> 500ms): 1000ms idle = stable
|
|
121
|
+
* Network is considered stable when there are zero active requests
|
|
122
|
+
* for at least 200ms continuously.
|
|
124
123
|
*
|
|
125
124
|
* Why this works:
|
|
126
|
-
* -
|
|
127
|
-
* -
|
|
128
|
-
* - API
|
|
129
|
-
*
|
|
130
|
-
* Framework-agnostic - adapts to actual behavior.
|
|
125
|
+
* - Catches initial request bursts (CSS, JS, images)
|
|
126
|
+
* - Waits for lazy-loaded resources
|
|
127
|
+
* - Detects API calls triggered by hydration
|
|
128
|
+
* - Framework-agnostic - based on actual network activity
|
|
131
129
|
*
|
|
132
130
|
* @param cdp - CDP connection
|
|
133
131
|
* @param deadline - Timestamp when to timeout
|
|
@@ -182,23 +180,24 @@ async function waitForNetworkStable(cdp, deadline) {
|
|
|
182
180
|
}
|
|
183
181
|
}
|
|
184
182
|
/**
|
|
185
|
-
* Wait for DOM to stabilize
|
|
183
|
+
* Wait for DOM to stabilize
|
|
184
|
+
*
|
|
185
|
+
* Uses a MutationObserver to detect when the DOM stops changing.
|
|
186
|
+
* DOM is considered stable when there are no mutations for 300ms continuously.
|
|
186
187
|
*
|
|
187
188
|
* HOW IT WORKS:
|
|
188
|
-
* 1. Inject MutationObserver into page
|
|
189
|
-
* 2.
|
|
190
|
-
* 3.
|
|
191
|
-
*
|
|
192
|
-
* - Medium rate (10-50 mutations/sec): 500ms no-change = stable
|
|
193
|
-
* - Low rate (\<10 mutations/sec): 300ms no-change = stable
|
|
194
|
-
* 4. Wait for DOM to remain unchanged for threshold duration
|
|
189
|
+
* 1. Inject MutationObserver into page to track all DOM changes
|
|
190
|
+
* 2. Monitor childList, attributes, subtree, and characterData changes
|
|
191
|
+
* 3. Wait for 300ms of continuous no-change activity
|
|
192
|
+
* 4. Clean up observer when complete
|
|
195
193
|
*
|
|
196
194
|
* Why this works:
|
|
197
|
-
* - SSR hydration causes DOM mutations
|
|
198
|
-
* -
|
|
199
|
-
* - When mutations stop,
|
|
195
|
+
* - SSR hydration causes DOM mutations (React, Vue, Svelte)
|
|
196
|
+
* - Client-side rendering creates DOM elements
|
|
197
|
+
* - When mutations stop, framework initialization is complete
|
|
198
|
+
* - 300ms is long enough to catch batched updates, short enough to be responsive
|
|
200
199
|
*
|
|
201
|
-
* Framework-agnostic - detects actual mutations.
|
|
200
|
+
* Framework-agnostic - detects actual mutations regardless of framework.
|
|
202
201
|
*
|
|
203
202
|
* @param cdp - CDP connection
|
|
204
203
|
* @param deadline - Timestamp when to timeout
|
|
@@ -232,11 +231,11 @@ async function waitForDOMStable(cdp, deadline) {
|
|
|
232
231
|
const stableThreshold = 300; // 300ms no mutations = DOM stable
|
|
233
232
|
// Detection phase: wait for stability
|
|
234
233
|
while (Date.now() < deadline) {
|
|
235
|
-
const checkResult = await cdp.send('Runtime.evaluate', {
|
|
234
|
+
const checkResult = (await cdp.send('Runtime.evaluate', {
|
|
236
235
|
expression: 'Date.now() - window.__bdg_lastMutation',
|
|
237
236
|
returnByValue: true,
|
|
238
|
-
});
|
|
239
|
-
const timeSinceLastMutation = checkResult.result
|
|
237
|
+
}));
|
|
238
|
+
const timeSinceLastMutation = checkResult.result.value ?? 0;
|
|
240
239
|
if (timeSinceLastMutation >= stableThreshold) {
|
|
241
240
|
return timeSinceLastMutation; // Success!
|
|
242
241
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageReadiness.js","sourceRoot":"","sources":["../../src/connection/pageReadiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-safe CDP Connection Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Provides compile-time type safety for Chrome DevTools Protocol methods
|
|
5
|
+
* using official TypeScript definitions from devtools-protocol package.
|
|
6
|
+
*
|
|
7
|
+
* Benefits:
|
|
8
|
+
* - Autocomplete for all 300+ CDP methods
|
|
9
|
+
* - Type-checked parameters and return values
|
|
10
|
+
* - Type-safe event handlers
|
|
11
|
+
* - No runtime overhead (types erased at compile time)
|
|
12
|
+
*/
|
|
13
|
+
import type { CDPConnection } from './cdp.js';
|
|
14
|
+
import type Protocol from 'devtools-protocol/types/protocol';
|
|
15
|
+
import type ProtocolMapping from 'devtools-protocol/types/protocol-mapping';
|
|
16
|
+
/**
|
|
17
|
+
* Extract parameter type from a CDP command.
|
|
18
|
+
*
|
|
19
|
+
* If command has no parameters, returns empty object type.
|
|
20
|
+
* If command has single parameter array, returns first element.
|
|
21
|
+
*/
|
|
22
|
+
type CommandParams<T extends keyof ProtocolMapping.Commands> = ProtocolMapping.Commands[T]['paramsType'] extends [infer P] ? P : ProtocolMapping.Commands[T]['paramsType'] extends [] ? Record<string, never> : never;
|
|
23
|
+
/**
|
|
24
|
+
* Extract return type from a CDP command.
|
|
25
|
+
*/
|
|
26
|
+
type CommandReturn<T extends keyof ProtocolMapping.Commands> = ProtocolMapping.Commands[T]['returnType'];
|
|
27
|
+
/**
|
|
28
|
+
* Extract event parameter type from a CDP event.
|
|
29
|
+
*
|
|
30
|
+
* If event has no parameters, returns empty object.
|
|
31
|
+
* If event has single parameter array, returns first element.
|
|
32
|
+
*/
|
|
33
|
+
type EventParams<T extends keyof ProtocolMapping.Events> = ProtocolMapping.Events[T] extends [
|
|
34
|
+
infer P
|
|
35
|
+
] ? P : ProtocolMapping.Events[T] extends [] ? void : never;
|
|
36
|
+
/**
|
|
37
|
+
* Type-safe wrapper around CDPConnection.
|
|
38
|
+
*
|
|
39
|
+
* Provides strongly-typed methods for sending CDP commands and
|
|
40
|
+
* registering event handlers.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const cdp = new CDPConnection(wsUrl);
|
|
45
|
+
* const typed = new TypedCDPConnection(cdp);
|
|
46
|
+
*
|
|
47
|
+
* // Type-safe command with autocomplete
|
|
48
|
+
* const response = await typed.send('Network.getCookies', { urls: ['http://example.com'] });
|
|
49
|
+
* // response type: Protocol.Network.GetCookiesResponse
|
|
50
|
+
*
|
|
51
|
+
* // Type-safe event handler
|
|
52
|
+
* typed.on('Network.requestWillBeSent', (event) => {
|
|
53
|
+
* // event type: Protocol.Network.RequestWillBeSentEvent
|
|
54
|
+
* console.log(event.request.url);
|
|
55
|
+
* });
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare class TypedCDPConnection {
|
|
59
|
+
private cdp;
|
|
60
|
+
constructor(cdp: CDPConnection);
|
|
61
|
+
/**
|
|
62
|
+
* Send a type-safe CDP command.
|
|
63
|
+
*
|
|
64
|
+
* @param method - CDP method name (autocomplete available for 300+ methods)
|
|
65
|
+
* @param params - Command parameters (type-checked)
|
|
66
|
+
* @returns Promise resolving to command response (type-safe)
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* // Network domain
|
|
71
|
+
* const cookies = await typed.send('Network.getCookies', { urls: ['http://example.com'] });
|
|
72
|
+
*
|
|
73
|
+
* // Runtime domain
|
|
74
|
+
* const result = await typed.send('Runtime.evaluate', {
|
|
75
|
+
* expression: 'document.title',
|
|
76
|
+
* returnByValue: true
|
|
77
|
+
* });
|
|
78
|
+
*
|
|
79
|
+
* // DOM domain
|
|
80
|
+
* const doc = await typed.send('DOM.getDocument', {});
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
send<T extends keyof ProtocolMapping.Commands>(method: T, params: CommandParams<T>): Promise<CommandReturn<T>>;
|
|
84
|
+
/**
|
|
85
|
+
* Register a type-safe event handler.
|
|
86
|
+
*
|
|
87
|
+
* @param event - CDP event name (autocomplete available)
|
|
88
|
+
* @param handler - Event handler with type-safe parameters
|
|
89
|
+
* @returns Handler ID for later removal
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* // Network events
|
|
94
|
+
* const id = typed.on('Network.requestWillBeSent', (event) => {
|
|
95
|
+
* console.log(event.request.url, event.request.method);
|
|
96
|
+
* });
|
|
97
|
+
*
|
|
98
|
+
* // Console events
|
|
99
|
+
* typed.on('Runtime.consoleAPICalled', (event) => {
|
|
100
|
+
* console.log(event.type, event.args);
|
|
101
|
+
* });
|
|
102
|
+
*
|
|
103
|
+
* // Page events
|
|
104
|
+
* typed.on('Page.loadEventFired', (event) => {
|
|
105
|
+
* console.log('Page loaded at:', event.timestamp);
|
|
106
|
+
* });
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
on<T extends keyof ProtocolMapping.Events>(event: T, handler: (params: EventParams<T>) => void): number;
|
|
110
|
+
/**
|
|
111
|
+
* Remove an event handler by ID.
|
|
112
|
+
*
|
|
113
|
+
* @param event - CDP event name
|
|
114
|
+
* @param handlerId - Handler ID returned from on()
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const id = typed.on('Network.requestWillBeSent', handler);
|
|
119
|
+
* // Later...
|
|
120
|
+
* typed.off('Network.requestWillBeSent', id);
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
off(event: string, handlerId: number): void;
|
|
124
|
+
/**
|
|
125
|
+
* Access underlying CDPConnection for advanced use cases.
|
|
126
|
+
*
|
|
127
|
+
* Use this when you need to call methods not covered by the typed wrapper,
|
|
128
|
+
* or when you need to access connection state/methods directly.
|
|
129
|
+
*/
|
|
130
|
+
get raw(): CDPConnection;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Re-export Protocol namespace for easy access to types.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* import { Protocol } from '../connection/typed-cdp.js';
|
|
138
|
+
*
|
|
139
|
+
* type Cookie = Protocol.Network.Cookie;
|
|
140
|
+
* type Headers = Protocol.Network.Headers;
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
export type { Protocol };
|
|
144
|
+
//# sourceMappingURL=typed-cdp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-cdp.d.ts","sourceRoot":"","sources":["../../src/connection/typed-cdp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,kCAAkC,CAAC;AAC7D,OAAO,KAAK,eAAe,MAAM,0CAA0C,CAAC;AAE5E;;;;;GAKG;AACH,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,eAAe,CAAC,QAAQ,IACzD,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GACvD,CAAC,GACD,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,GAClD,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACrB,KAAK,CAAC;AAEd;;GAEG;AACH,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,eAAe,CAAC,QAAQ,IACzD,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AAE5C;;;;;GAKG;AACH,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;IAC3F,MAAM,CAAC;CACR,GACG,CAAC,GACD,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,GAClC,IAAI,GACJ,KAAK,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAEtC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,IAAI,CAAC,CAAC,SAAS,MAAM,eAAe,CAAC,QAAQ,EACjD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAK5B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,CAAC,MAAM,EACvC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GACxC,MAAM;IAIT;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;;OAKG;IACH,IAAI,GAAG,IAAI,aAAa,CAEvB;CACF;AAED;;;;;;;;;;GAUG;AACH,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-safe CDP Connection Wrapper
|
|
3
|
+
*
|
|
4
|
+
* Provides compile-time type safety for Chrome DevTools Protocol methods
|
|
5
|
+
* using official TypeScript definitions from devtools-protocol package.
|
|
6
|
+
*
|
|
7
|
+
* Benefits:
|
|
8
|
+
* - Autocomplete for all 300+ CDP methods
|
|
9
|
+
* - Type-checked parameters and return values
|
|
10
|
+
* - Type-safe event handlers
|
|
11
|
+
* - No runtime overhead (types erased at compile time)
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Type-safe wrapper around CDPConnection.
|
|
15
|
+
*
|
|
16
|
+
* Provides strongly-typed methods for sending CDP commands and
|
|
17
|
+
* registering event handlers.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const cdp = new CDPConnection(wsUrl);
|
|
22
|
+
* const typed = new TypedCDPConnection(cdp);
|
|
23
|
+
*
|
|
24
|
+
* // Type-safe command with autocomplete
|
|
25
|
+
* const response = await typed.send('Network.getCookies', { urls: ['http://example.com'] });
|
|
26
|
+
* // response type: Protocol.Network.GetCookiesResponse
|
|
27
|
+
*
|
|
28
|
+
* // Type-safe event handler
|
|
29
|
+
* typed.on('Network.requestWillBeSent', (event) => {
|
|
30
|
+
* // event type: Protocol.Network.RequestWillBeSentEvent
|
|
31
|
+
* console.log(event.request.url);
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export class TypedCDPConnection {
|
|
36
|
+
cdp;
|
|
37
|
+
constructor(cdp) {
|
|
38
|
+
this.cdp = cdp;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Send a type-safe CDP command.
|
|
42
|
+
*
|
|
43
|
+
* @param method - CDP method name (autocomplete available for 300+ methods)
|
|
44
|
+
* @param params - Command parameters (type-checked)
|
|
45
|
+
* @returns Promise resolving to command response (type-safe)
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Network domain
|
|
50
|
+
* const cookies = await typed.send('Network.getCookies', { urls: ['http://example.com'] });
|
|
51
|
+
*
|
|
52
|
+
* // Runtime domain
|
|
53
|
+
* const result = await typed.send('Runtime.evaluate', {
|
|
54
|
+
* expression: 'document.title',
|
|
55
|
+
* returnByValue: true
|
|
56
|
+
* });
|
|
57
|
+
*
|
|
58
|
+
* // DOM domain
|
|
59
|
+
* const doc = await typed.send('DOM.getDocument', {});
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
async send(method, params) {
|
|
63
|
+
const result = await this.cdp.send(method, params);
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Register a type-safe event handler.
|
|
68
|
+
*
|
|
69
|
+
* @param event - CDP event name (autocomplete available)
|
|
70
|
+
* @param handler - Event handler with type-safe parameters
|
|
71
|
+
* @returns Handler ID for later removal
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* // Network events
|
|
76
|
+
* const id = typed.on('Network.requestWillBeSent', (event) => {
|
|
77
|
+
* console.log(event.request.url, event.request.method);
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* // Console events
|
|
81
|
+
* typed.on('Runtime.consoleAPICalled', (event) => {
|
|
82
|
+
* console.log(event.type, event.args);
|
|
83
|
+
* });
|
|
84
|
+
*
|
|
85
|
+
* // Page events
|
|
86
|
+
* typed.on('Page.loadEventFired', (event) => {
|
|
87
|
+
* console.log('Page loaded at:', event.timestamp);
|
|
88
|
+
* });
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
on(event, handler) {
|
|
92
|
+
return this.cdp.on(event, handler);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Remove an event handler by ID.
|
|
96
|
+
*
|
|
97
|
+
* @param event - CDP event name
|
|
98
|
+
* @param handlerId - Handler ID returned from on()
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const id = typed.on('Network.requestWillBeSent', handler);
|
|
103
|
+
* // Later...
|
|
104
|
+
* typed.off('Network.requestWillBeSent', id);
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
off(event, handlerId) {
|
|
108
|
+
this.cdp.off(event, handlerId);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Access underlying CDPConnection for advanced use cases.
|
|
112
|
+
*
|
|
113
|
+
* Use this when you need to call methods not covered by the typed wrapper,
|
|
114
|
+
* or when you need to access connection state/methods directly.
|
|
115
|
+
*/
|
|
116
|
+
get raw() {
|
|
117
|
+
return this.cdp;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=typed-cdp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-cdp.js","sourceRoot":"","sources":["../../src/connection/typed-cdp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuCH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,kBAAkB;IACT;IAApB,YAAoB,GAAkB;QAAlB,QAAG,GAAH,GAAG,CAAe;IAAG,CAAC;IAE1C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,IAAI,CACR,MAAS,EACT,MAAwB;QAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAiC,CAAC,CAAC;QAC9E,OAAO,MAA0B,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,EAAE,CACA,KAAQ,EACR,OAAyC;QAEzC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,OAAoC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,KAAa,EAAE,SAAiB;QAClC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export declare const DEFAULT_CHROME_HANDLE_SIGINT = false;
|
|
|
24
24
|
/**
|
|
25
25
|
* Persistent Chrome profile directory path (relative to user home)
|
|
26
26
|
*/
|
|
27
|
-
export declare const CHROME_PROFILE_DIR = "
|
|
27
|
+
export declare const CHROME_PROFILE_DIR = "chrome-profile";
|
|
28
28
|
/**
|
|
29
29
|
* Maximum CDP connection retry attempts before failing
|
|
30
30
|
*/
|
|
@@ -34,6 +34,16 @@ export declare const CDP_MAX_CONNECTION_RETRIES = 3;
|
|
|
34
34
|
* Maximum time to wait for WebSocket connection to establish
|
|
35
35
|
*/
|
|
36
36
|
export declare const CDP_CONNECTION_TIMEOUT_MS = 10000;
|
|
37
|
+
/**
|
|
38
|
+
* WebSocket handshake timeout in milliseconds (5 seconds)
|
|
39
|
+
* Maximum time to wait for WebSocket handshake to complete
|
|
40
|
+
*/
|
|
41
|
+
export declare const WEBSOCKET_HANDSHAKE_TIMEOUT_MS = 5000;
|
|
42
|
+
/**
|
|
43
|
+
* WebSocket maximum payload size in bytes (100MB)
|
|
44
|
+
* Allows large DOM snapshots without hitting payload limits
|
|
45
|
+
*/
|
|
46
|
+
export declare const WEBSOCKET_MAX_PAYLOAD_BYTES: number;
|
|
37
47
|
/**
|
|
38
48
|
* CDP command timeout in milliseconds (30 seconds)
|
|
39
49
|
* Maximum time to wait for CDP command responses
|
|
@@ -45,10 +55,6 @@ export declare const CDP_COMMAND_TIMEOUT_MS = 30000;
|
|
|
45
55
|
* Prevents connection timeout during long-running sessions
|
|
46
56
|
*/
|
|
47
57
|
export declare const CDP_KEEPALIVE_INTERVAL = 30000;
|
|
48
|
-
/**
|
|
49
|
-
* Enable CDP target discovery for tab detection
|
|
50
|
-
*/
|
|
51
|
-
export declare const CDP_DISCOVER_TARGETS = true;
|
|
52
58
|
/**
|
|
53
59
|
* CDP reconnection retry limit
|
|
54
60
|
* Maximum number of reconnection attempts before giving up
|
|
@@ -94,26 +100,6 @@ export declare const WEBSOCKET_NO_PONG_CLOSURE = 1001;
|
|
|
94
100
|
* Standard encoding for text data conversion
|
|
95
101
|
*/
|
|
96
102
|
export declare const UTF8_ENCODING = "utf8";
|
|
97
|
-
/**
|
|
98
|
-
* CDP target type for browser pages
|
|
99
|
-
* Identifies page-type targets (vs service workers, extensions, etc.)
|
|
100
|
-
*/
|
|
101
|
-
export declare const PAGE_TARGET_TYPE = "page";
|
|
102
|
-
/**
|
|
103
|
-
* Blank page URL used by Chrome
|
|
104
|
-
* Standard initial/empty page URL
|
|
105
|
-
*/
|
|
106
|
-
export declare const BLANK_PAGE_URL = "about:blank";
|
|
107
|
-
/**
|
|
108
|
-
* CDP createTarget new window flag (default: false for tabs)
|
|
109
|
-
* Controls whether targets are created as new windows or tabs
|
|
110
|
-
*/
|
|
111
|
-
export declare const CDP_NEW_WINDOW_FLAG = false;
|
|
112
|
-
/**
|
|
113
|
-
* CDP attachToTarget flatten flag (default: true for simplified sessions)
|
|
114
|
-
* Prevents nested session hierarchies for easier management
|
|
115
|
-
*/
|
|
116
|
-
export declare const CDP_FLATTEN_SESSION_FLAG = true;
|
|
117
103
|
/**
|
|
118
104
|
* HTTP localhost address for CDP endpoints
|
|
119
105
|
* Standard loopback address for Chrome DevTools Protocol
|
|
@@ -127,8 +113,17 @@ export declare const HEADLESS_FLAG = "--headless=new";
|
|
|
127
113
|
/**
|
|
128
114
|
* BDG-specific Chrome flags for automation and popup suppression
|
|
129
115
|
* These flags are automatically applied when launching Chrome via chrome-launcher
|
|
116
|
+
*
|
|
117
|
+
* Note: Chrome has a known issue (Chromium bug #854609) where it steals focus on macOS
|
|
118
|
+
* despite --disable-background-mode. This is a long-standing Chrome bug with no workaround.
|
|
119
|
+
* Headless mode (--headless) avoids this issue entirely.
|
|
130
120
|
*/
|
|
131
121
|
export declare const BDG_CHROME_FLAGS: string[];
|
|
122
|
+
/**
|
|
123
|
+
* Docker-specific Chrome flags to work around GPU/graphics limitations
|
|
124
|
+
* These flags disable hardware acceleration and GPU features that fail in containerized environments
|
|
125
|
+
*/
|
|
126
|
+
export declare const DOCKER_CHROME_FLAGS: string[];
|
|
132
127
|
/**
|
|
133
128
|
* BDG-specific Chrome preferences for automation
|
|
134
129
|
* These preferences are automatically merged with user preferences when launching Chrome
|
|
@@ -179,11 +174,6 @@ export declare const STALE_REQUEST_TIMEOUT = 60000;
|
|
|
179
174
|
* How often to check for and remove stale network requests
|
|
180
175
|
*/
|
|
181
176
|
export declare const STALE_REQUEST_CLEANUP_INTERVAL = 30000;
|
|
182
|
-
/**
|
|
183
|
-
* Memory usage logging interval (30 seconds)
|
|
184
|
-
* How often to log memory statistics during session collection
|
|
185
|
-
*/
|
|
186
|
-
export declare const MEMORY_LOG_INTERVAL = 30000;
|
|
187
177
|
/**
|
|
188
178
|
* Default page readiness timeout (2 seconds)
|
|
189
179
|
* Maximum time to wait for page to be ready before proceeding
|
|
@@ -209,16 +199,6 @@ export declare const PORT_OPTION_DESCRIPTION = "Chrome debugging port";
|
|
|
209
199
|
* Description for timeout option in CLI commands
|
|
210
200
|
*/
|
|
211
201
|
export declare const TIMEOUT_OPTION_DESCRIPTION = "Auto-stop after timeout (optional)";
|
|
212
|
-
/**
|
|
213
|
-
* Description for reuse-tab option in CLI commands
|
|
214
|
-
*/
|
|
215
|
-
export declare const REUSE_TAB_OPTION_DESCRIPTION = "Navigate existing tab instead of creating new one";
|
|
216
|
-
/**
|
|
217
|
-
* Default value for reuse-tab option
|
|
218
|
-
* When true, bdg will attempt to find and reuse existing tabs instead of creating new ones
|
|
219
|
-
* This is the preferred default for better UX and avoiding tab proliferation
|
|
220
|
-
*/
|
|
221
|
-
export declare const DEFAULT_REUSE_TAB = true;
|
|
222
202
|
/**
|
|
223
203
|
* Description for user-data-dir option in CLI commands
|
|
224
204
|
*/
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,8BAA8B,OAAO,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAoB,CAAC;AAE7D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,cAAc,cAAc,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,aAAa,mBAAmB,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UAS5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UAK/B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAIpD,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAQ,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAkB,CAAC;AAMjD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,kCAAkC,QAAmB,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAkB,CAAC;AAMtD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,OAAO,CAAC;AAMtD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAMD;;GAEG;AACH,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,0BAA0B,uCAAuC,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,gCAAgC,gEACkB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -27,7 +27,7 @@ export const DEFAULT_CHROME_HANDLE_SIGINT = false;
|
|
|
27
27
|
/**
|
|
28
28
|
* Persistent Chrome profile directory path (relative to user home)
|
|
29
29
|
*/
|
|
30
|
-
export const CHROME_PROFILE_DIR = '
|
|
30
|
+
export const CHROME_PROFILE_DIR = 'chrome-profile';
|
|
31
31
|
/**
|
|
32
32
|
* Maximum CDP connection retry attempts before failing
|
|
33
33
|
*/
|
|
@@ -37,6 +37,16 @@ export const CDP_MAX_CONNECTION_RETRIES = 3;
|
|
|
37
37
|
* Maximum time to wait for WebSocket connection to establish
|
|
38
38
|
*/
|
|
39
39
|
export const CDP_CONNECTION_TIMEOUT_MS = 10000;
|
|
40
|
+
/**
|
|
41
|
+
* WebSocket handshake timeout in milliseconds (5 seconds)
|
|
42
|
+
* Maximum time to wait for WebSocket handshake to complete
|
|
43
|
+
*/
|
|
44
|
+
export const WEBSOCKET_HANDSHAKE_TIMEOUT_MS = 5000;
|
|
45
|
+
/**
|
|
46
|
+
* WebSocket maximum payload size in bytes (100MB)
|
|
47
|
+
* Allows large DOM snapshots without hitting payload limits
|
|
48
|
+
*/
|
|
49
|
+
export const WEBSOCKET_MAX_PAYLOAD_BYTES = 100 * 1024 * 1024;
|
|
40
50
|
/**
|
|
41
51
|
* CDP command timeout in milliseconds (30 seconds)
|
|
42
52
|
* Maximum time to wait for CDP command responses
|
|
@@ -48,10 +58,6 @@ export const CDP_COMMAND_TIMEOUT_MS = 30000;
|
|
|
48
58
|
* Prevents connection timeout during long-running sessions
|
|
49
59
|
*/
|
|
50
60
|
export const CDP_KEEPALIVE_INTERVAL = 30000;
|
|
51
|
-
/**
|
|
52
|
-
* Enable CDP target discovery for tab detection
|
|
53
|
-
*/
|
|
54
|
-
export const CDP_DISCOVER_TARGETS = true;
|
|
55
61
|
/**
|
|
56
62
|
* CDP reconnection retry limit
|
|
57
63
|
* Maximum number of reconnection attempts before giving up
|
|
@@ -97,26 +103,6 @@ export const WEBSOCKET_NO_PONG_CLOSURE = 1001;
|
|
|
97
103
|
* Standard encoding for text data conversion
|
|
98
104
|
*/
|
|
99
105
|
export const UTF8_ENCODING = 'utf8';
|
|
100
|
-
/**
|
|
101
|
-
* CDP target type for browser pages
|
|
102
|
-
* Identifies page-type targets (vs service workers, extensions, etc.)
|
|
103
|
-
*/
|
|
104
|
-
export const PAGE_TARGET_TYPE = 'page';
|
|
105
|
-
/**
|
|
106
|
-
* Blank page URL used by Chrome
|
|
107
|
-
* Standard initial/empty page URL
|
|
108
|
-
*/
|
|
109
|
-
export const BLANK_PAGE_URL = 'about:blank';
|
|
110
|
-
/**
|
|
111
|
-
* CDP createTarget new window flag (default: false for tabs)
|
|
112
|
-
* Controls whether targets are created as new windows or tabs
|
|
113
|
-
*/
|
|
114
|
-
export const CDP_NEW_WINDOW_FLAG = false;
|
|
115
|
-
/**
|
|
116
|
-
* CDP attachToTarget flatten flag (default: true for simplified sessions)
|
|
117
|
-
* Prevents nested session hierarchies for easier management
|
|
118
|
-
*/
|
|
119
|
-
export const CDP_FLATTEN_SESSION_FLAG = true;
|
|
120
106
|
/**
|
|
121
107
|
* HTTP localhost address for CDP endpoints
|
|
122
108
|
* Standard loopback address for Chrome DevTools Protocol
|
|
@@ -130,6 +116,10 @@ export const HEADLESS_FLAG = '--headless=new';
|
|
|
130
116
|
/**
|
|
131
117
|
* BDG-specific Chrome flags for automation and popup suppression
|
|
132
118
|
* These flags are automatically applied when launching Chrome via chrome-launcher
|
|
119
|
+
*
|
|
120
|
+
* Note: Chrome has a known issue (Chromium bug #854609) where it steals focus on macOS
|
|
121
|
+
* despite --disable-background-mode. This is a long-standing Chrome bug with no workaround.
|
|
122
|
+
* Headless mode (--headless) avoids this issue entirely.
|
|
133
123
|
*/
|
|
134
124
|
export const BDG_CHROME_FLAGS = [
|
|
135
125
|
'--no-first-run',
|
|
@@ -139,6 +129,17 @@ export const BDG_CHROME_FLAGS = [
|
|
|
139
129
|
'--disable-infobars', // Disable all info bars including restore prompt
|
|
140
130
|
'--disable-notifications', // Suppress notification permission prompts
|
|
141
131
|
'--disable-features=Translate', // Suppress Google Translate popup (replaces deprecated --disable-translate)
|
|
132
|
+
'--disable-background-mode', // Attempt to prevent focus stealing (doesn't work reliably on macOS)
|
|
133
|
+
];
|
|
134
|
+
/**
|
|
135
|
+
* Docker-specific Chrome flags to work around GPU/graphics limitations
|
|
136
|
+
* These flags disable hardware acceleration and GPU features that fail in containerized environments
|
|
137
|
+
*/
|
|
138
|
+
export const DOCKER_CHROME_FLAGS = [
|
|
139
|
+
'--disable-gpu', // Disable GPU hardware acceleration
|
|
140
|
+
'--disable-dev-shm-usage', // Overcome limited resource problems in Docker
|
|
141
|
+
'--disable-software-rasterizer', // Don't fall back to software rendering
|
|
142
|
+
'--single-process', // Run Chrome in single-process mode (safer in containers)
|
|
142
143
|
];
|
|
143
144
|
/**
|
|
144
145
|
* BDG-specific Chrome preferences for automation
|
|
@@ -203,11 +204,6 @@ export const STALE_REQUEST_TIMEOUT = 60000;
|
|
|
203
204
|
* How often to check for and remove stale network requests
|
|
204
205
|
*/
|
|
205
206
|
export const STALE_REQUEST_CLEANUP_INTERVAL = 30000;
|
|
206
|
-
/**
|
|
207
|
-
* Memory usage logging interval (30 seconds)
|
|
208
|
-
* How often to log memory statistics during session collection
|
|
209
|
-
*/
|
|
210
|
-
export const MEMORY_LOG_INTERVAL = 30000;
|
|
211
207
|
/**
|
|
212
208
|
* Default page readiness timeout (2 seconds)
|
|
213
209
|
* Maximum time to wait for page to be ready before proceeding
|
|
@@ -243,16 +239,6 @@ export const PORT_OPTION_DESCRIPTION = 'Chrome debugging port';
|
|
|
243
239
|
* Description for timeout option in CLI commands
|
|
244
240
|
*/
|
|
245
241
|
export const TIMEOUT_OPTION_DESCRIPTION = 'Auto-stop after timeout (optional)';
|
|
246
|
-
/**
|
|
247
|
-
* Description for reuse-tab option in CLI commands
|
|
248
|
-
*/
|
|
249
|
-
export const REUSE_TAB_OPTION_DESCRIPTION = 'Navigate existing tab instead of creating new one';
|
|
250
|
-
/**
|
|
251
|
-
* Default value for reuse-tab option
|
|
252
|
-
* When true, bdg will attempt to find and reuse existing tabs instead of creating new ones
|
|
253
|
-
* This is the preferred default for better UX and avoiding tab proliferation
|
|
254
|
-
*/
|
|
255
|
-
export const DEFAULT_REUSE_TAB = true;
|
|
256
242
|
/**
|
|
257
243
|
* Description for user-data-dir option in CLI commands
|
|
258
244
|
*/
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|