browser-debugger-cli 0.3.0 → 0.5.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/README.md +137 -126
- 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 +106 -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/cli/commands/__tests__/start.unit.test.d.ts +2 -0
- package/dist/cli/commands/__tests__/start.unit.test.d.ts.map +1 -0
- package/dist/cli/commands/__tests__/start.unit.test.js +131 -0
- package/dist/cli/commands/__tests__/start.unit.test.js.map +1 -0
- package/dist/cli/commands/cleanup.d.ts +1 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +80 -61
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/details.d.ts +2 -1
- package/dist/cli/commands/details.d.ts.map +1 -1
- package/dist/cli/commands/details.js +104 -52
- package/dist/cli/commands/details.js.map +1 -1
- package/dist/cli/commands/peek.d.ts +2 -1
- package/dist/cli/commands/peek.d.ts.map +1 -1
- package/dist/cli/commands/peek.js +22 -67
- package/dist/cli/commands/peek.js.map +1 -1
- 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 +125 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/start.d.ts +74 -0
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +147 -38
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +37 -49
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.d.ts +1 -0
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +106 -120
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/formatters/detailsFormatter.d.ts +1 -1
- package/dist/cli/formatters/previewFormatter.d.ts +7 -7
- package/dist/cli/formatters/previewFormatter.d.ts.map +1 -1
- package/dist/cli/formatters/previewFormatter.js +5 -10
- package/dist/cli/formatters/previewFormatter.js.map +1 -1
- package/dist/cli/formatters/statusFormatter.d.ts +13 -10
- package/dist/cli/formatters/statusFormatter.d.ts.map +1 -1
- package/dist/cli/formatters/statusFormatter.js +26 -53
- package/dist/cli/formatters/statusFormatter.js.map +1 -1
- 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/OutputBuilder.d.ts +2 -3
- package/dist/cli/handlers/OutputBuilder.d.ts.map +1 -1
- package/dist/cli/handlers/OutputBuilder.js +2 -4
- package/dist/cli/handlers/OutputBuilder.js.map +1 -1
- 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 +118 -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 +35 -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 +41 -0
- package/dist/cli/handlers/ShutdownController.d.ts.map +1 -0
- package/dist/cli/handlers/ShutdownController.js +94 -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/sessionController.d.ts +41 -0
- package/dist/cli/handlers/sessionController.d.ts.map +1 -1
- package/dist/cli/handlers/sessionController.js +266 -5
- package/dist/cli/handlers/sessionController.js.map +1 -1
- package/dist/cli/registry.d.ts +2 -2
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/registry.js +12 -37
- package/dist/cli/registry.js.map +1 -1
- package/dist/collectors/console.d.ts +1 -1
- package/dist/collectors/console.js +2 -2
- package/dist/collectors/console.js.map +1 -1
- package/dist/collectors/dom.d.ts +1 -1
- package/dist/collectors/network.d.ts +1 -2
- package/dist/collectors/network.d.ts.map +1 -1
- package/dist/collectors/network.js +3 -3
- package/dist/collectors/network.js.map +1 -1
- package/dist/commands/cdp.js +1 -1
- package/dist/commands/cdp.js.map +1 -1
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +12 -15
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/dom.d.ts.map +1 -1
- package/dist/commands/dom.js +13 -19
- package/dist/commands/dom.js.map +1 -1
- package/dist/commands/domEvalHelpers.d.ts +1 -1
- 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/shared/CommandRunner.d.ts.map +1 -1
- package/dist/commands/shared/CommandRunner.js +2 -3
- 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 +9 -3
- 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 +16 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +72 -55
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +11 -25
- 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 +114 -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 +71 -5
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/diagnostics.d.ts +16 -0
- package/dist/connection/diagnostics.d.ts.map +1 -0
- package/dist/connection/diagnostics.js +37 -0
- package/dist/connection/diagnostics.js.map +1 -0
- package/dist/connection/errors.d.ts +74 -0
- package/dist/connection/errors.d.ts.map +1 -0
- package/dist/connection/errors.js +83 -0
- package/dist/connection/errors.js.map +1 -0
- package/dist/connection/handlers.d.ts +31 -0
- package/dist/connection/handlers.d.ts.map +1 -0
- package/dist/connection/handlers.js +38 -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 +130 -32
- package/dist/connection/launcher.js.map +1 -1
- package/dist/connection/pageReadiness.d.ts +46 -0
- package/dist/connection/pageReadiness.d.ts.map +1 -0
- package/dist/connection/pageReadiness.js +270 -0
- package/dist/connection/pageReadiness.js.map +1 -0
- package/dist/connection/tabs.d.ts +52 -0
- package/dist/connection/tabs.d.ts.map +1 -0
- package/dist/connection/tabs.js +227 -0
- package/dist/connection/tabs.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/help/machineReadableHelp.d.ts +100 -0
- package/dist/help/machineReadableHelp.d.ts.map +1 -0
- package/dist/help/machineReadableHelp.js +139 -0
- package/dist/help/machineReadableHelp.js.map +1 -0
- 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/BdgSession.d.ts +91 -0
- package/dist/session/BdgSession.d.ts.map +1 -0
- package/dist/session/BdgSession.js +230 -0
- package/dist/session/BdgSession.js.map +1 -0
- 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 +2 -0
- package/dist/telemetry/__tests__/filters.unit.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/filters.unit.test.js +239 -0
- package/dist/telemetry/__tests__/filters.unit.test.js.map +1 -0
- package/dist/telemetry/console.d.ts +1 -1
- package/dist/telemetry/console.d.ts.map +1 -1
- package/dist/telemetry/console.js +5 -3
- 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/filters.d.ts +148 -0
- package/dist/telemetry/filters.d.ts.map +1 -0
- package/dist/telemetry/filters.js +358 -0
- 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 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/errors/CommandError.d.ts +39 -0
- package/dist/ui/errors/CommandError.d.ts.map +1 -0
- package/dist/ui/errors/CommandError.js +48 -0
- package/dist/ui/errors/CommandError.js.map +1 -0
- package/dist/ui/errors/SystemErrors.d.ts +22 -0
- package/dist/ui/errors/SystemErrors.d.ts.map +1 -0
- package/dist/ui/errors/SystemErrors.js +23 -0
- package/dist/ui/errors/SystemErrors.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/ui/logging/logger.d.ts +98 -0
- package/dist/ui/logging/logger.d.ts.map +1 -0
- package/dist/ui/logging/logger.js +93 -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/deprecation.d.ts +30 -0
- package/dist/ui/messages/deprecation.d.ts.map +1 -0
- package/dist/ui/messages/deprecation.js +49 -0
- package/dist/ui/messages/deprecation.js.map +1 -0
- 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 +21 -7
- package/dist/ui/messages/session.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/filters.d.ts +40 -0
- package/dist/utils/filters.d.ts.map +1 -1
- package/dist/utils/filters.js +54 -0
- package/dist/utils/filters.js.map +1 -1
- package/dist/utils/pageReadiness.js +24 -25
- package/dist/utils/pageReadiness.js.map +1 -1
- package/dist/utils/session.d.ts +200 -0
- package/dist/utils/session.d.ts.map +1 -0
- package/dist/utils/session.js +498 -0
- package/dist/utils/session.js.map +1 -0
- 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/dist/utils/validation.d.ts +12 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +20 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +2 -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/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/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/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/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/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/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/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/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
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for shutdown callback
|
|
3
|
+
*/
|
|
4
|
+
export interface SignalHandlerOptions {
|
|
5
|
+
onShutdown: () => Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Manages process signal handling for graceful shutdown
|
|
9
|
+
*/
|
|
10
|
+
export declare class SignalHandler {
|
|
11
|
+
private options;
|
|
12
|
+
private isHandling;
|
|
13
|
+
constructor(options: SignalHandlerOptions);
|
|
14
|
+
/**
|
|
15
|
+
* Register signal handlers for graceful shutdown.
|
|
16
|
+
*/
|
|
17
|
+
register(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Unregister all signal handlers.
|
|
20
|
+
*/
|
|
21
|
+
unregister(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Handle shutdown signals (SIGINT, SIGTERM)
|
|
24
|
+
*/
|
|
25
|
+
private handleSignal;
|
|
26
|
+
/**
|
|
27
|
+
* Handle unhandled promise rejections
|
|
28
|
+
*/
|
|
29
|
+
private handleUnhandledRejection;
|
|
30
|
+
/**
|
|
31
|
+
* Handle uncaught exceptions
|
|
32
|
+
*/
|
|
33
|
+
private handleUncaughtException;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=SignalHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignalHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/SignalHandler.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,UAAU,CAAS;gBAEP,OAAO,EAAE,oBAAoB;IAEjD;;OAEG;IACH,QAAQ,IAAI,IAAI;IAUhB;;OAEG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAqBpB;;OAEG;IACH,OAAO,CAAC,wBAAwB,CAS9B;IAEF;;OAEG;IACH,OAAO,CAAC,uBAAuB,CAS7B;CACH"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
2
|
+
import { cleanupSession } from '../../utils/session.js';
|
|
3
|
+
/**
|
|
4
|
+
* Manages process signal handling for graceful shutdown
|
|
5
|
+
*/
|
|
6
|
+
export class SignalHandler {
|
|
7
|
+
options;
|
|
8
|
+
isHandling = false;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Register signal handlers for graceful shutdown.
|
|
14
|
+
*/
|
|
15
|
+
register() {
|
|
16
|
+
const handler = (signal) => this.handleSignal(signal);
|
|
17
|
+
process.on('SIGINT', () => handler('SIGINT'));
|
|
18
|
+
process.on('SIGTERM', () => handler('SIGTERM'));
|
|
19
|
+
process.on('unhandledRejection', this.handleUnhandledRejection);
|
|
20
|
+
process.on('uncaughtException', this.handleUncaughtException);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Unregister all signal handlers.
|
|
24
|
+
*/
|
|
25
|
+
unregister() {
|
|
26
|
+
process.removeAllListeners('SIGINT');
|
|
27
|
+
process.removeAllListeners('SIGTERM');
|
|
28
|
+
process.removeAllListeners('unhandledRejection');
|
|
29
|
+
process.removeAllListeners('uncaughtException');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Handle shutdown signals (SIGINT, SIGTERM)
|
|
33
|
+
*/
|
|
34
|
+
handleSignal(signal) {
|
|
35
|
+
if (this.isHandling) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.isHandling = true;
|
|
39
|
+
console.error(`\nReceived ${signal}, shutting down gracefully...`);
|
|
40
|
+
this.unregister();
|
|
41
|
+
void (async () => {
|
|
42
|
+
try {
|
|
43
|
+
await this.options.onShutdown();
|
|
44
|
+
// onShutdown calls process.exit(), so we should never reach here
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
console.error('Fatal error during shutdown:', error);
|
|
48
|
+
process.exit(EXIT_CODES.SIGNAL_HANDLER_ERROR);
|
|
49
|
+
}
|
|
50
|
+
})();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Handle unhandled promise rejections
|
|
54
|
+
*/
|
|
55
|
+
handleUnhandledRejection = (reason) => {
|
|
56
|
+
console.error('Unhandled rejection:', reason);
|
|
57
|
+
console.error('Cleaning up session files...');
|
|
58
|
+
try {
|
|
59
|
+
cleanupSession();
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error('Error during cleanup:', error);
|
|
63
|
+
}
|
|
64
|
+
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Handle uncaught exceptions
|
|
68
|
+
*/
|
|
69
|
+
handleUncaughtException = (error) => {
|
|
70
|
+
console.error('Uncaught exception:', error);
|
|
71
|
+
console.error('Cleaning up session files...');
|
|
72
|
+
try {
|
|
73
|
+
cleanupSession();
|
|
74
|
+
}
|
|
75
|
+
catch (cleanupError) {
|
|
76
|
+
console.error('Error during cleanup:', cleanupError);
|
|
77
|
+
}
|
|
78
|
+
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=SignalHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignalHandler.js","sourceRoot":"","sources":["../../../src/cli/handlers/SignalHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BdgSession } from '../../session/BdgSession.js';
|
|
2
|
+
import type { CDPTarget, SessionOptions } from '../../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Handles CDP target setup and session creation
|
|
5
|
+
*/
|
|
6
|
+
export declare class TargetSetup {
|
|
7
|
+
/**
|
|
8
|
+
* Create CDP connection and find/create target tab
|
|
9
|
+
*
|
|
10
|
+
* @param url - Original URL from CLI (for matching)
|
|
11
|
+
* @param targetUrl - Normalized target URL
|
|
12
|
+
* @param port - Chrome debugging port
|
|
13
|
+
* @param reuseTab - Whether to reuse existing tab
|
|
14
|
+
* @param sessionOptions - Session-level collection options
|
|
15
|
+
* @returns Session and target metadata
|
|
16
|
+
*/
|
|
17
|
+
static setup(url: string, targetUrl: string, port: number, reuseTab: boolean, sessionOptions?: SessionOptions): Promise<{
|
|
18
|
+
session: BdgSession;
|
|
19
|
+
target: CDPTarget;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* Fetch the current list of available CDP targets from Chrome.
|
|
23
|
+
* Used during session bootstrap to select a temporary connection target and to
|
|
24
|
+
* refresh metadata when the session creates or reuses tabs.
|
|
25
|
+
*
|
|
26
|
+
* @param port - Chrome debugging port
|
|
27
|
+
* @returns Array of CDP targets
|
|
28
|
+
*/
|
|
29
|
+
private static fetchTargets;
|
|
30
|
+
/**
|
|
31
|
+
* Locate a specific CDP target by ID. Falls back to a fresh fetch when cached
|
|
32
|
+
* metadata is missing or incomplete (e.g., webSocketDebuggerUrl absent).
|
|
33
|
+
*
|
|
34
|
+
* @param targetId - Target ID to find
|
|
35
|
+
* @param port - Chrome debugging port
|
|
36
|
+
* @param cachedTargets - Optional cached target list
|
|
37
|
+
* @returns CDP target with webSocketDebuggerUrl
|
|
38
|
+
* @throws Error if target not found or missing webSocketDebuggerUrl
|
|
39
|
+
*/
|
|
40
|
+
private static findTargetById;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=TargetSetup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TargetSetup.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/TargetSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzD;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;;;;;;OASG;WACU,KAAK,CAChB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,cAAc,GAAE,cAAmB,GAClC,OAAO,CAAC;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;IAoCtD;;;;;;;OAOG;mBACkB,YAAY;IAKjC;;;;;;;;;OASG;mBACkB,cAAc;CA2BpC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { createOrFindTarget } from '../../connection/tabs.js';
|
|
2
|
+
import { BdgSession } from '../../session/BdgSession.js';
|
|
3
|
+
/**
|
|
4
|
+
* Handles CDP target setup and session creation
|
|
5
|
+
*/
|
|
6
|
+
export class TargetSetup {
|
|
7
|
+
/**
|
|
8
|
+
* Create CDP connection and find/create target tab
|
|
9
|
+
*
|
|
10
|
+
* @param url - Original URL from CLI (for matching)
|
|
11
|
+
* @param targetUrl - Normalized target URL
|
|
12
|
+
* @param port - Chrome debugging port
|
|
13
|
+
* @param reuseTab - Whether to reuse existing tab
|
|
14
|
+
* @param sessionOptions - Session-level collection options
|
|
15
|
+
* @returns Session and target metadata
|
|
16
|
+
*/
|
|
17
|
+
static async setup(url, targetUrl, port, reuseTab, sessionOptions = {}) {
|
|
18
|
+
// Fetch targets once
|
|
19
|
+
const initialTargets = await this.fetchTargets(port);
|
|
20
|
+
if (initialTargets.length === 0) {
|
|
21
|
+
throw new Error('No targets available in Chrome');
|
|
22
|
+
}
|
|
23
|
+
// Use first available target to establish CDP connection
|
|
24
|
+
const tempTarget = initialTargets[0];
|
|
25
|
+
if (!tempTarget) {
|
|
26
|
+
throw new Error('No targets available in Chrome');
|
|
27
|
+
}
|
|
28
|
+
const tempSession = new BdgSession(tempTarget, port, sessionOptions);
|
|
29
|
+
await tempSession.connect();
|
|
30
|
+
if (!tempSession.isConnected()) {
|
|
31
|
+
throw new Error('Failed to establish CDP connection');
|
|
32
|
+
}
|
|
33
|
+
// Create or find target tab using TabManager
|
|
34
|
+
console.error(`Finding or creating tab for: ${targetUrl}`);
|
|
35
|
+
const target = await createOrFindTarget(url, tempSession.getCDP(), reuseTab);
|
|
36
|
+
console.error(`Using tab: ${target.url}`);
|
|
37
|
+
// Find full target metadata (refetches only if not in cache or new tab created)
|
|
38
|
+
const fullTarget = await this.findTargetById(target.id, port, initialTargets);
|
|
39
|
+
// Close temp session and reconnect to the correct target
|
|
40
|
+
tempSession.getCDP().close();
|
|
41
|
+
const session = new BdgSession(fullTarget, port, sessionOptions);
|
|
42
|
+
await session.connect();
|
|
43
|
+
return { session, target: fullTarget };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Fetch the current list of available CDP targets from Chrome.
|
|
47
|
+
* Used during session bootstrap to select a temporary connection target and to
|
|
48
|
+
* refresh metadata when the session creates or reuses tabs.
|
|
49
|
+
*
|
|
50
|
+
* @param port - Chrome debugging port
|
|
51
|
+
* @returns Array of CDP targets
|
|
52
|
+
*/
|
|
53
|
+
static async fetchTargets(port) {
|
|
54
|
+
const response = await fetch(`http://127.0.0.1:${port}/json/list`);
|
|
55
|
+
return (await response.json());
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Locate a specific CDP target by ID. Falls back to a fresh fetch when cached
|
|
59
|
+
* metadata is missing or incomplete (e.g., webSocketDebuggerUrl absent).
|
|
60
|
+
*
|
|
61
|
+
* @param targetId - Target ID to find
|
|
62
|
+
* @param port - Chrome debugging port
|
|
63
|
+
* @param cachedTargets - Optional cached target list
|
|
64
|
+
* @returns CDP target with webSocketDebuggerUrl
|
|
65
|
+
* @throws Error if target not found or missing webSocketDebuggerUrl
|
|
66
|
+
*/
|
|
67
|
+
static async findTargetById(targetId, port, cachedTargets) {
|
|
68
|
+
// First check cached targets if provided
|
|
69
|
+
if (cachedTargets) {
|
|
70
|
+
const cached = cachedTargets.find((t) => t.id === targetId);
|
|
71
|
+
if (cached?.webSocketDebuggerUrl) {
|
|
72
|
+
return cached;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Not in cache or missing webSocketDebuggerUrl - refetch
|
|
76
|
+
const targets = await this.fetchTargets(port);
|
|
77
|
+
const target = targets.find((t) => t.id === targetId);
|
|
78
|
+
if (!target) {
|
|
79
|
+
throw new Error(`Could not find target ${targetId}`);
|
|
80
|
+
}
|
|
81
|
+
if (!target.webSocketDebuggerUrl) {
|
|
82
|
+
throw new Error(`Could not find webSocketDebuggerUrl for target ${targetId}`);
|
|
83
|
+
}
|
|
84
|
+
return target;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=TargetSetup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TargetSetup.js","sourceRoot":"","sources":["../../../src/cli/handlers/TargetSetup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CollectorType } from '../../types.js';
|
|
1
2
|
/**
|
|
2
3
|
* Aggressively cleanup stale Chrome processes launched by bdg.
|
|
3
4
|
*
|
|
@@ -18,4 +19,44 @@
|
|
|
18
19
|
* @returns Number of errors encountered during cleanup
|
|
19
20
|
*/
|
|
20
21
|
export declare function cleanupStaleChrome(): Promise<number>;
|
|
22
|
+
/**
|
|
23
|
+
* Start a new session
|
|
24
|
+
*
|
|
25
|
+
* @param url - Target URL to navigate to
|
|
26
|
+
* @param options - Session configuration options
|
|
27
|
+
* @param options.port - Chrome debugging port
|
|
28
|
+
* @param options.timeout - Auto-stop after timeout (seconds)
|
|
29
|
+
* @param options.reuseTab - Navigate existing tab instead of creating new one
|
|
30
|
+
* @param options.userDataDir - Chrome user data directory
|
|
31
|
+
* @param options.includeAll - Include all data (disable filtering)
|
|
32
|
+
* @param options.logLevel - Chrome launcher log level
|
|
33
|
+
* @param options.prefs - Chrome preferences as object
|
|
34
|
+
* @param options.prefsFile - Path to JSON file containing Chrome preferences
|
|
35
|
+
* @param options.chromeFlags - Additional Chrome command-line flags
|
|
36
|
+
* @param options.connectionPollInterval - Milliseconds between CDP readiness checks
|
|
37
|
+
* @param options.maxConnectionRetries - Maximum retry attempts before failing
|
|
38
|
+
* @param options.portStrictMode - Fail if Chrome debugging port is already in use
|
|
39
|
+
* @param collectors - Array of collector types to enable ('dom', 'network', 'console')
|
|
40
|
+
* @returns Promise that resolves when session completes
|
|
41
|
+
*/
|
|
42
|
+
export declare function startSession(url: string, options: {
|
|
43
|
+
port: number;
|
|
44
|
+
timeout?: number | undefined;
|
|
45
|
+
reuseTab?: boolean | undefined;
|
|
46
|
+
userDataDir?: string | undefined;
|
|
47
|
+
includeAll?: boolean | undefined;
|
|
48
|
+
logLevel?: 'verbose' | 'info' | 'error' | 'silent' | undefined;
|
|
49
|
+
prefs?: Record<string, unknown> | undefined;
|
|
50
|
+
prefsFile?: string | undefined;
|
|
51
|
+
chromeFlags?: string[] | undefined;
|
|
52
|
+
connectionPollInterval?: number | undefined;
|
|
53
|
+
maxConnectionRetries?: number | undefined;
|
|
54
|
+
portStrictMode?: boolean | undefined;
|
|
55
|
+
fetchAllBodies?: boolean | undefined;
|
|
56
|
+
fetchBodiesInclude?: string[] | undefined;
|
|
57
|
+
fetchBodiesExclude?: string[] | undefined;
|
|
58
|
+
networkInclude?: string[] | undefined;
|
|
59
|
+
networkExclude?: string[] | undefined;
|
|
60
|
+
compact?: boolean | undefined;
|
|
61
|
+
}, collectors: CollectorType[]): Promise<void>;
|
|
21
62
|
//# sourceMappingURL=sessionController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionController.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/sessionController.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"sessionController.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/sessionController.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAA6C,MAAM,SAAS,CAAC;AA4CxF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CA0C1D;AA8HD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,EACD,UAAU,EAAE,aAAa,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CA6If"}
|
|
@@ -1,4 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getChromeDiagnostics, formatDiagnosticsForError } from '../../utils/chromeDiagnostics.js';
|
|
2
|
+
import { ChromeLaunchError } from '../../utils/errors.js';
|
|
3
|
+
import { getExitCodeForError } from '../../utils/exitCodes.js';
|
|
4
|
+
import { writePid, writeSessionMetadata, writeChromePid } from '../../utils/session.js';
|
|
5
|
+
import { ChromeBootstrap } from './ChromeBootstrap.js';
|
|
6
|
+
import { OutputBuilder } from './OutputBuilder.js';
|
|
7
|
+
import { PreviewWriter } from './PreviewWriter.js';
|
|
8
|
+
import { SessionLock } from './SessionLock.js';
|
|
9
|
+
import { SessionLoop } from './SessionLoop.js';
|
|
10
|
+
import { ShutdownController } from './ShutdownController.js';
|
|
11
|
+
import { SignalHandler } from './SignalHandler.js';
|
|
12
|
+
import { TargetSetup } from './TargetSetup.js';
|
|
13
|
+
/**
|
|
14
|
+
* Report detailed diagnostic information when Chrome fails to launch.
|
|
15
|
+
*
|
|
16
|
+
* Uses chrome-launcher APIs to detect available Chrome installations and
|
|
17
|
+
* provide actionable error messages to help users troubleshoot.
|
|
18
|
+
*
|
|
19
|
+
* @param error Original error that caused the failure
|
|
20
|
+
*/
|
|
21
|
+
function reportLauncherFailure(error) {
|
|
22
|
+
console.error('\n--- Chrome Launch Diagnostics ---\n');
|
|
23
|
+
// Show original error
|
|
24
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
25
|
+
console.error(`Error: ${errorMessage}\n`);
|
|
26
|
+
// Get diagnostics using shared utility (cached to avoid repeated scans)
|
|
27
|
+
const diagnostics = getChromeDiagnostics();
|
|
28
|
+
const diagnosticLines = formatDiagnosticsForError(diagnostics);
|
|
29
|
+
diagnosticLines.forEach((line) => console.error(line));
|
|
30
|
+
// Provide troubleshooting steps
|
|
31
|
+
console.error('Troubleshooting:');
|
|
32
|
+
console.error(' 1. Verify Chrome is installed and accessible');
|
|
33
|
+
console.error(' 2. Check file permissions for Chrome binary');
|
|
34
|
+
console.error(' 3. Try specifying a custom port: bdg <url> --port 9223');
|
|
35
|
+
console.error(' 4. Use strict port mode: bdg <url> --port-strict');
|
|
36
|
+
console.error(' 5. Check if another process is using the debugging port\n');
|
|
37
|
+
}
|
|
2
38
|
/**
|
|
3
39
|
* Aggressively cleanup stale Chrome processes launched by bdg.
|
|
4
40
|
*
|
|
@@ -22,8 +58,8 @@ export async function cleanupStaleChrome() {
|
|
|
22
58
|
console.error('\nAttempting to kill stale Chrome processes...');
|
|
23
59
|
try {
|
|
24
60
|
// Import session utilities (dynamic import for ES modules)
|
|
25
|
-
const
|
|
26
|
-
const { killChromeProcess } =
|
|
61
|
+
const sessionModule = await import('../../utils/session.js');
|
|
62
|
+
const { readChromePid, clearChromePid, killChromeProcess } = sessionModule;
|
|
27
63
|
// Read Chrome PID from persistent cache
|
|
28
64
|
const chromePid = readChromePid();
|
|
29
65
|
if (!chromePid) {
|
|
@@ -42,14 +78,239 @@ export async function cleanupStaleChrome() {
|
|
|
42
78
|
return 0;
|
|
43
79
|
}
|
|
44
80
|
catch (killError) {
|
|
45
|
-
|
|
81
|
+
const errorMessage = killError instanceof Error ? killError.message : String(killError);
|
|
82
|
+
console.error(`Error: Failed to kill Chrome process: ${errorMessage}`);
|
|
46
83
|
console.error(' Try manually killing Chrome processes if issues persist\n');
|
|
47
84
|
return 1;
|
|
48
85
|
}
|
|
49
86
|
}
|
|
50
87
|
catch (error) {
|
|
51
|
-
console.error(`Error: Failed to cleanup Chrome processes: ${
|
|
88
|
+
console.error(`Error: Failed to cleanup Chrome processes: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
52
89
|
return 1;
|
|
53
90
|
}
|
|
54
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Encapsulates session state and lifecycle management
|
|
94
|
+
*/
|
|
95
|
+
class SessionContext {
|
|
96
|
+
session = null;
|
|
97
|
+
launchedChrome = null;
|
|
98
|
+
isShuttingDown = false;
|
|
99
|
+
previewWriter = null;
|
|
100
|
+
startTime;
|
|
101
|
+
target = null;
|
|
102
|
+
compact;
|
|
103
|
+
shutdownController;
|
|
104
|
+
/**
|
|
105
|
+
* Create a new session context and track the start timestamp.
|
|
106
|
+
* The context is shared with signal handlers so they can orchestrate shutdown.
|
|
107
|
+
*
|
|
108
|
+
* @param compact - If true, use compact JSON format (no indentation)
|
|
109
|
+
*/
|
|
110
|
+
constructor(compact = false) {
|
|
111
|
+
this.startTime = Date.now();
|
|
112
|
+
this.compact = compact;
|
|
113
|
+
this.shutdownController = new ShutdownController(this);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Handle graceful shutdown: stops collectors, writes output, and exits.
|
|
117
|
+
*
|
|
118
|
+
* Idempotent — repeated calls after shutdown has started are ignored.
|
|
119
|
+
*/
|
|
120
|
+
async stop() {
|
|
121
|
+
await this.shutdownController.shutdown();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Cleanup on error paths without exiting the process.
|
|
125
|
+
* Clears timers, tears down Chrome if bdg launched it, and removes session files.
|
|
126
|
+
*/
|
|
127
|
+
async cleanup() {
|
|
128
|
+
await this.shutdownController.cleanup();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Phase 4: start requested collectors and persist session metadata for tooling.
|
|
133
|
+
*
|
|
134
|
+
* @param session Active BDG session instance
|
|
135
|
+
* @param collectors Collector types requested by the CLI
|
|
136
|
+
* @param startTime Timestamp when the session began
|
|
137
|
+
* @param port Chrome debugging port in use
|
|
138
|
+
* @param target Target metadata (includes websocket URL)
|
|
139
|
+
* @param chromePid PID of Chrome if bdg launched it (optional)
|
|
140
|
+
*/
|
|
141
|
+
async function startCollectorsAndMetadata(session, collectors, startTime, port, target, chromePid) {
|
|
142
|
+
// Start collectors with timing
|
|
143
|
+
const collectorStartTime = Date.now();
|
|
144
|
+
for (const collector of collectors) {
|
|
145
|
+
const individualStart = Date.now();
|
|
146
|
+
await session.startCollector(collector);
|
|
147
|
+
const individualDuration = Date.now() - individualStart;
|
|
148
|
+
console.error(`[PERF] Collector '${collector}' initialized: ${individualDuration}ms`);
|
|
149
|
+
}
|
|
150
|
+
const totalCollectorDuration = Date.now() - collectorStartTime;
|
|
151
|
+
console.error(`[PERF] All collectors initialized: ${totalCollectorDuration}ms`);
|
|
152
|
+
// Write session metadata
|
|
153
|
+
writePid(process.pid);
|
|
154
|
+
writeSessionMetadata({
|
|
155
|
+
bdgPid: process.pid,
|
|
156
|
+
chromePid,
|
|
157
|
+
startTime,
|
|
158
|
+
port,
|
|
159
|
+
targetId: target.id,
|
|
160
|
+
webSocketDebuggerUrl: target.webSocketDebuggerUrl,
|
|
161
|
+
activeCollectors: collectors,
|
|
162
|
+
});
|
|
163
|
+
// Note: Chrome PID cache is written immediately after launch (Phase 2)
|
|
164
|
+
// to ensure it's available even if later phases fail
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Phase 5: Start preview writer with two-tier system
|
|
168
|
+
*
|
|
169
|
+
* Uses async I/O with mutex to prevent event loop blocking and overlapping writes.
|
|
170
|
+
*/
|
|
171
|
+
function startPreviewWriter(context, compact) {
|
|
172
|
+
if (!context.session) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
// Create and start preview writer
|
|
176
|
+
context.previewWriter = new PreviewWriter(context.session, context.startTime, 5000, // intervalMs
|
|
177
|
+
compact);
|
|
178
|
+
context.previewWriter.start();
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Print collection status message
|
|
182
|
+
*/
|
|
183
|
+
function printCollectionStatus(collectors, timeout) {
|
|
184
|
+
const collectorNames = collectors.length === 3 ? 'network, console, and DOM' : collectors.join(', ');
|
|
185
|
+
if (timeout) {
|
|
186
|
+
console.error(`Collecting ${collectorNames}... (Ctrl+C to stop and output, or wait ${timeout}s for timeout)`);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
console.error(`Collecting ${collectorNames}... (Ctrl+C to stop and output, or use 'bdg stop')`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Start a new session
|
|
194
|
+
*
|
|
195
|
+
* @param url - Target URL to navigate to
|
|
196
|
+
* @param options - Session configuration options
|
|
197
|
+
* @param options.port - Chrome debugging port
|
|
198
|
+
* @param options.timeout - Auto-stop after timeout (seconds)
|
|
199
|
+
* @param options.reuseTab - Navigate existing tab instead of creating new one
|
|
200
|
+
* @param options.userDataDir - Chrome user data directory
|
|
201
|
+
* @param options.includeAll - Include all data (disable filtering)
|
|
202
|
+
* @param options.logLevel - Chrome launcher log level
|
|
203
|
+
* @param options.prefs - Chrome preferences as object
|
|
204
|
+
* @param options.prefsFile - Path to JSON file containing Chrome preferences
|
|
205
|
+
* @param options.chromeFlags - Additional Chrome command-line flags
|
|
206
|
+
* @param options.connectionPollInterval - Milliseconds between CDP readiness checks
|
|
207
|
+
* @param options.maxConnectionRetries - Maximum retry attempts before failing
|
|
208
|
+
* @param options.portStrictMode - Fail if Chrome debugging port is already in use
|
|
209
|
+
* @param collectors - Array of collector types to enable ('dom', 'network', 'console')
|
|
210
|
+
* @returns Promise that resolves when session completes
|
|
211
|
+
*/
|
|
212
|
+
export async function startSession(url, options, collectors) {
|
|
213
|
+
const context = new SessionContext(options.compact ?? false);
|
|
214
|
+
// Setup signal handlers for graceful shutdown
|
|
215
|
+
const signalHandler = new SignalHandler({
|
|
216
|
+
onShutdown: async () => {
|
|
217
|
+
await context.stop();
|
|
218
|
+
},
|
|
219
|
+
});
|
|
220
|
+
signalHandler.register();
|
|
221
|
+
try {
|
|
222
|
+
// Phase 1: Lock acquisition and validation
|
|
223
|
+
const targetUrl = SessionLock.acquire(url, collectors);
|
|
224
|
+
// Phase 2: Chrome bootstrap
|
|
225
|
+
// Build launcher options, filtering out undefined values
|
|
226
|
+
const launchOptions = Object.fromEntries(Object.entries({
|
|
227
|
+
userDataDir: options.userDataDir,
|
|
228
|
+
logLevel: options.logLevel,
|
|
229
|
+
prefs: options.prefs,
|
|
230
|
+
prefsFile: options.prefsFile,
|
|
231
|
+
chromeFlags: options.chromeFlags,
|
|
232
|
+
connectionPollInterval: options.connectionPollInterval,
|
|
233
|
+
maxConnectionRetries: options.maxConnectionRetries,
|
|
234
|
+
portStrictMode: options.portStrictMode,
|
|
235
|
+
}).filter(([, value]) => value !== undefined));
|
|
236
|
+
context.launchedChrome = await ChromeBootstrap.launch(options.port, targetUrl, launchOptions);
|
|
237
|
+
// Write Chrome PID to persistent cache immediately after launch
|
|
238
|
+
// This must happen before Phase 3 so it's available even if setup fails
|
|
239
|
+
if (context.launchedChrome?.pid) {
|
|
240
|
+
writeChromePid(context.launchedChrome.pid);
|
|
241
|
+
}
|
|
242
|
+
// Phase 3: CDP connection and target setup
|
|
243
|
+
const setupStart = Date.now();
|
|
244
|
+
const sessionOptions = {
|
|
245
|
+
includeAll: options.includeAll ?? false,
|
|
246
|
+
fetchAllBodies: options.fetchAllBodies ?? false,
|
|
247
|
+
compact: options.compact ?? false,
|
|
248
|
+
};
|
|
249
|
+
if (options.fetchBodiesInclude !== undefined) {
|
|
250
|
+
sessionOptions.fetchBodiesInclude = options.fetchBodiesInclude;
|
|
251
|
+
}
|
|
252
|
+
if (options.fetchBodiesExclude !== undefined) {
|
|
253
|
+
sessionOptions.fetchBodiesExclude = options.fetchBodiesExclude;
|
|
254
|
+
}
|
|
255
|
+
if (options.networkInclude !== undefined) {
|
|
256
|
+
sessionOptions.networkInclude = options.networkInclude;
|
|
257
|
+
}
|
|
258
|
+
if (options.networkExclude !== undefined) {
|
|
259
|
+
sessionOptions.networkExclude = options.networkExclude;
|
|
260
|
+
}
|
|
261
|
+
const setupResult = await TargetSetup.setup(url, targetUrl, options.port, options.reuseTab ?? false, sessionOptions);
|
|
262
|
+
const session = setupResult.session;
|
|
263
|
+
const target = setupResult.target;
|
|
264
|
+
context.session = session;
|
|
265
|
+
context.target = target;
|
|
266
|
+
console.error(`[PERF] CDP connection and target setup: ${Date.now() - setupStart}ms`);
|
|
267
|
+
// Phase 4: Start collectors and write metadata
|
|
268
|
+
await startCollectorsAndMetadata(session, collectors, context.startTime, options.port, target, context.launchedChrome?.pid);
|
|
269
|
+
// Log active collectors for forensic tracking and optimization prioritization
|
|
270
|
+
console.error(`[bdg] active collectors: ${collectors.join(', ')} (${url}, port ${options.port})`);
|
|
271
|
+
// Total session startup time
|
|
272
|
+
const totalStartupTime = Date.now() - context.startTime;
|
|
273
|
+
console.error(`[PERF] Total session startup: ${totalStartupTime}ms`);
|
|
274
|
+
// Print status
|
|
275
|
+
printCollectionStatus(collectors, options.timeout);
|
|
276
|
+
// Set timeout if explicitly provided
|
|
277
|
+
if (options.timeout) {
|
|
278
|
+
setTimeout(() => {
|
|
279
|
+
console.error(`\nTimeout reached (${options.timeout}s)`);
|
|
280
|
+
void context.stop();
|
|
281
|
+
}, options.timeout * 1000);
|
|
282
|
+
}
|
|
283
|
+
// Phase 5: Start preview writer
|
|
284
|
+
startPreviewWriter(context, options.compact ?? false);
|
|
285
|
+
// Optional: Log memory usage periodically (every 30s)
|
|
286
|
+
const memoryLogInterval = setInterval(() => {
|
|
287
|
+
const usage = process.memoryUsage();
|
|
288
|
+
const heapUsedMB = (usage.heapUsed / 1024 / 1024).toFixed(2);
|
|
289
|
+
const heapTotalMB = (usage.heapTotal / 1024 / 1024).toFixed(2);
|
|
290
|
+
const rssMB = (usage.rss / 1024 / 1024).toFixed(2);
|
|
291
|
+
console.error(`[PERF] Memory: Heap ${heapUsedMB}/${heapTotalMB} MB, RSS ${rssMB} MB`);
|
|
292
|
+
}, 30000);
|
|
293
|
+
// Store interval in context for cleanup
|
|
294
|
+
const originalCleanup = context.cleanup.bind(context);
|
|
295
|
+
context.cleanup = async () => {
|
|
296
|
+
clearInterval(memoryLogInterval);
|
|
297
|
+
await originalCleanup();
|
|
298
|
+
};
|
|
299
|
+
// Phase 6: Run session loop
|
|
300
|
+
await SessionLoop.run(session, target);
|
|
301
|
+
}
|
|
302
|
+
catch (error) {
|
|
303
|
+
// Show diagnostic information for Chrome launch failures
|
|
304
|
+
if (error instanceof ChromeLaunchError) {
|
|
305
|
+
reportLauncherFailure(error);
|
|
306
|
+
}
|
|
307
|
+
const errorOutput = OutputBuilder.buildError(error, context.startTime, context.target ?? undefined);
|
|
308
|
+
console.log(JSON.stringify(errorOutput, null, 2));
|
|
309
|
+
// Cleanup on error
|
|
310
|
+
await context.cleanup();
|
|
311
|
+
// Use semantic exit codes based on error type
|
|
312
|
+
const exitCode = getExitCodeForError(error);
|
|
313
|
+
process.exit(exitCode);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
55
316
|
//# sourceMappingURL=sessionController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionController.js","sourceRoot":"","sources":["../../../src/cli/handlers/sessionController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sessionController.js","sourceRoot":"","sources":["../../../src/cli/handlers/sessionController.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/registry.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ import type { Command } from 'commander';
|
|
|
4
4
|
*/
|
|
5
5
|
export type CommandRegistrar = (program: Command) => void;
|
|
6
6
|
/**
|
|
7
|
-
* Registry of all CLI commands
|
|
8
|
-
* Order matters:
|
|
7
|
+
* Registry of all CLI commands
|
|
8
|
+
* Order matters: start commands first (includes default), then others
|
|
9
9
|
*/
|
|
10
10
|
export declare const commandRegistry: CommandRegistrar[];
|
|
11
11
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/cli/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAQ7C,CAAC"}
|