browser-debugger-cli 0.1.0 → 0.3.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/dist/__testfixtures__/cdpMessages.d.ts +1 -1
- package/dist/__testfixtures__/connectionTargets.d.ts +1 -1
- package/dist/__tests__/fixtures/schema-v0.2.1.golden.json +47 -0
- package/dist/__tests__/schema.contract.test.d.ts +19 -0
- package/dist/__tests__/schema.contract.test.d.ts.map +1 -0
- package/dist/__tests__/schema.contract.test.js +236 -0
- package/dist/__tests__/schema.contract.test.js.map +1 -0
- package/dist/__testutils__/assertions.d.ts +1 -1
- package/dist/__testutils__/testFixtures.d.ts +1 -1
- package/dist/cli/commands/cdp.js +1 -1
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +12 -13
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/console.js +2 -2
- package/dist/cli/commands/details.js +3 -3
- package/dist/cli/commands/details.js.map +1 -1
- package/dist/cli/commands/dom/helpers/errorHandler.d.ts.map +1 -1
- package/dist/cli/commands/dom/helpers/errorHandler.js +4 -3
- package/dist/cli/commands/dom/helpers/errorHandler.js.map +1 -1
- package/dist/cli/commands/dom/index.js +1 -1
- package/dist/cli/commands/dom.d.ts.map +1 -0
- package/dist/cli/commands/dom.js +257 -0
- package/dist/cli/commands/dom.js.map +1 -0
- package/dist/cli/commands/domErrorHandler.d.ts +45 -0
- package/dist/cli/commands/domErrorHandler.d.ts.map +1 -0
- package/dist/cli/commands/domErrorHandler.js +71 -0
- package/dist/cli/commands/domErrorHandler.js.map +1 -0
- package/dist/cli/commands/domEvalHelpers.d.ts +52 -0
- package/dist/cli/commands/domEvalHelpers.d.ts.map +1 -0
- package/dist/cli/commands/domEvalHelpers.js +76 -0
- package/dist/cli/commands/domEvalHelpers.js.map +1 -0
- package/dist/cli/commands/domOptionsBuilder.d.ts +35 -0
- package/dist/cli/commands/domOptionsBuilder.d.ts.map +1 -0
- package/dist/cli/commands/domOptionsBuilder.js +51 -0
- package/dist/cli/commands/domOptionsBuilder.js.map +1 -0
- package/dist/cli/{collectors/helpers/selectorParser.d.ts → commands/domSelectorParser.d.ts} +1 -1
- package/dist/cli/commands/domSelectorParser.d.ts.map +1 -0
- package/dist/cli/{collectors/helpers/selectorParser.js → commands/domSelectorParser.js} +1 -1
- package/dist/cli/commands/domSelectorParser.js.map +1 -0
- package/dist/cli/commands/network.d.ts.map +1 -1
- package/dist/cli/commands/network.js +8 -5
- package/dist/cli/commands/network.js.map +1 -1
- package/dist/cli/commands/peek.d.ts.map +1 -1
- package/dist/cli/commands/peek.js +7 -7
- package/dist/cli/commands/peek.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +19 -2
- 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 +13 -10
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.d.ts.map +1 -1
- package/dist/cli/commands/stop.js +7 -6
- 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 +1 -1
- package/dist/cli/formatters/previewFormatter.js +1 -1
- package/dist/cli/formatters/previewFormatter.js.map +1 -1
- package/dist/cli/formatters/statusFormatter.d.ts +6 -1
- package/dist/cli/formatters/statusFormatter.d.ts.map +1 -1
- package/dist/cli/formatters/statusFormatter.js +49 -4
- package/dist/cli/formatters/statusFormatter.js.map +1 -1
- package/dist/cli/handlers/CommandRunner.d.ts.map +1 -1
- package/dist/cli/handlers/CommandRunner.js +5 -5
- package/dist/cli/handlers/CommandRunner.js.map +1 -1
- package/dist/cli/handlers/OutputBuilder.d.ts +1 -1
- package/dist/cli/handlers/daemonSessionController.d.ts +1 -1
- package/dist/cli/handlers/daemonSessionController.d.ts.map +1 -1
- package/dist/cli/handlers/daemonSessionController.js +16 -45
- package/dist/cli/handlers/daemonSessionController.js.map +1 -1
- package/dist/cli/handlers/landingPage.d.ts +8 -0
- package/dist/cli/handlers/landingPage.d.ts.map +1 -0
- package/dist/cli/handlers/landingPage.js +8 -0
- package/dist/cli/handlers/landingPage.js.map +1 -0
- package/dist/cli/registry.js +10 -10
- package/dist/cli/registry.js.map +1 -1
- package/dist/collectors/__tests__/network.contract.test.js +25 -10
- package/dist/collectors/__tests__/network.contract.test.js.map +1 -1
- package/dist/collectors/console.d.ts +1 -1
- package/dist/collectors/console.js.map +1 -1
- package/dist/collectors/dom.d.ts +1 -1
- package/dist/collectors/network.d.ts +1 -1
- package/dist/collectors/network.js.map +1 -1
- package/dist/commandRegistry.d.ts +11 -0
- package/dist/commandRegistry.d.ts.map +1 -0
- package/dist/commandRegistry.js +45 -0
- package/dist/commandRegistry.js.map +1 -0
- package/dist/commands/__tests__/cdp.contract.test.d.ts +24 -0
- package/dist/commands/__tests__/cdp.contract.test.d.ts.map +1 -0
- package/dist/commands/__tests__/cdp.contract.test.js +466 -0
- package/dist/commands/__tests__/cdp.contract.test.js.map +1 -0
- package/dist/commands/__tests__/domEval.contract.test.d.ts +17 -0
- package/dist/commands/__tests__/domEval.contract.test.d.ts.map +1 -0
- package/dist/commands/__tests__/domEval.contract.test.js +231 -0
- package/dist/commands/__tests__/domEval.contract.test.js.map +1 -0
- package/dist/commands/cdp.d.ts +8 -0
- package/dist/commands/cdp.d.ts.map +1 -0
- package/dist/commands/cdp.js +45 -0
- package/dist/commands/cdp.js.map +1 -0
- package/dist/commands/cleanup.d.ts +8 -0
- package/dist/commands/cleanup.d.ts.map +1 -0
- package/dist/commands/cleanup.js +170 -0
- package/dist/commands/cleanup.js.map +1 -0
- package/dist/commands/console.d.ts +8 -0
- package/dist/commands/console.d.ts.map +1 -0
- package/dist/commands/console.js +92 -0
- package/dist/commands/console.js.map +1 -0
- package/dist/commands/details.d.ts +8 -0
- package/dist/commands/details.d.ts.map +1 -0
- package/dist/commands/details.js +68 -0
- package/dist/commands/details.js.map +1 -0
- package/dist/commands/dom.d.ts +8 -0
- package/dist/commands/dom.d.ts.map +1 -0
- package/dist/commands/dom.js +249 -0
- package/dist/commands/dom.js.map +1 -0
- package/dist/commands/domErrorHandler.d.ts +45 -0
- package/dist/commands/domErrorHandler.d.ts.map +1 -0
- package/dist/commands/domErrorHandler.js +71 -0
- package/dist/commands/domErrorHandler.js.map +1 -0
- package/dist/commands/domEvalHelpers.d.ts +48 -0
- package/dist/commands/domEvalHelpers.d.ts.map +1 -0
- package/dist/commands/domEvalHelpers.js +72 -0
- package/dist/commands/domEvalHelpers.js.map +1 -0
- package/dist/commands/domOptionsBuilder.d.ts +35 -0
- package/dist/commands/domOptionsBuilder.d.ts.map +1 -0
- package/dist/commands/domOptionsBuilder.js +51 -0
- package/dist/commands/domOptionsBuilder.js.map +1 -0
- package/dist/commands/domSelectorParser.d.ts +20 -0
- package/dist/commands/domSelectorParser.d.ts.map +1 -0
- package/dist/commands/domSelectorParser.js +20 -0
- package/dist/commands/domSelectorParser.js.map +1 -0
- package/dist/commands/network.d.ts +8 -0
- package/dist/commands/network.d.ts.map +1 -0
- package/dist/commands/network.js +41 -0
- package/dist/commands/network.js.map +1 -0
- package/dist/commands/peek.d.ts +8 -0
- package/dist/commands/peek.d.ts.map +1 -0
- package/dist/commands/peek.js +115 -0
- package/dist/commands/peek.js.map +1 -0
- package/dist/commands/shared/CommandRunner.d.ts +62 -0
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -0
- package/dist/commands/shared/CommandRunner.js +97 -0
- package/dist/commands/shared/CommandRunner.js.map +1 -0
- package/dist/commands/shared/OutputBuilder.d.ts +60 -0
- package/dist/commands/shared/OutputBuilder.d.ts.map +1 -0
- package/dist/commands/shared/OutputBuilder.js +138 -0
- package/dist/commands/shared/OutputBuilder.js.map +1 -0
- package/dist/commands/shared/commonOptions.d.ts +54 -0
- package/dist/commands/shared/commonOptions.d.ts.map +1 -0
- package/dist/commands/shared/commonOptions.js +65 -0
- package/dist/commands/shared/commonOptions.js.map +1 -0
- package/dist/commands/shared/daemonSessionController.d.ts +23 -0
- package/dist/commands/shared/daemonSessionController.d.ts.map +1 -0
- package/dist/commands/shared/daemonSessionController.js +79 -0
- package/dist/commands/shared/daemonSessionController.js.map +1 -0
- package/dist/commands/shared/landingPage.d.ts +8 -0
- package/dist/commands/shared/landingPage.d.ts.map +1 -0
- package/dist/commands/shared/landingPage.js +8 -0
- package/dist/commands/shared/landingPage.js.map +1 -0
- package/dist/commands/shared/sessionController.d.ts +21 -0
- package/dist/commands/shared/sessionController.d.ts.map +1 -0
- package/dist/commands/shared/sessionController.js +54 -0
- package/dist/commands/shared/sessionController.js.map +1 -0
- package/dist/commands/start.d.ts +9 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +85 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/{cli/commands/query.d.ts → commands/status.d.ts} +3 -3
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +88 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +8 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +152 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/commands.d.ts +11 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +45 -0
- package/dist/commands.js.map +1 -0
- package/dist/connection/__tests__/cdp.contract.test.d.ts.map +1 -1
- package/dist/connection/__tests__/cdp.contract.test.js +1 -2
- package/dist/connection/__tests__/cdp.contract.test.js.map +1 -1
- package/dist/connection/__tests__/finder.contract.test.js +1 -1
- package/dist/connection/__tests__/finder.contract.test.js.map +1 -1
- package/dist/connection/cdp.d.ts +1 -1
- package/dist/connection/cdp.js.map +1 -1
- package/dist/connection/domOperations.d.ts +48 -0
- package/dist/connection/domOperations.d.ts.map +1 -0
- package/dist/connection/domOperations.js +104 -0
- package/dist/connection/domOperations.js.map +1 -0
- package/dist/connection/finder.js.map +1 -1
- package/dist/connection/launcher.d.ts +7 -3
- package/dist/connection/launcher.d.ts.map +1 -1
- package/dist/connection/launcher.js +82 -21
- package/dist/connection/launcher.js.map +1 -1
- package/dist/constants.d.ts +17 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +28 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/__tests__/ipcServer.contract.test.js +25 -11
- package/dist/daemon/__tests__/ipcServer.contract.test.js.map +1 -1
- package/dist/daemon/ipcServer.d.ts.map +1 -1
- package/dist/daemon/ipcServer.js +86 -6
- package/dist/daemon/ipcServer.js.map +1 -1
- package/dist/daemon/launcher.d.ts.map +1 -1
- package/dist/daemon/launcher.js +8 -6
- package/dist/daemon/launcher.js.map +1 -1
- package/dist/daemon/startSession.d.ts +2 -2
- package/dist/daemon/startSession.d.ts.map +1 -1
- package/dist/daemon/startSession.js +14 -11
- package/dist/daemon/startSession.js.map +1 -1
- package/dist/daemon/worker.d.ts +1 -1
- package/dist/daemon/worker.js +179 -52
- package/dist/daemon/worker.js.map +1 -1
- package/dist/{cli/collectors/helpers/domCache.d.ts → dom/cache.d.ts} +1 -5
- package/dist/dom/cache.d.ts.map +1 -0
- package/dist/{cli/collectors/helpers/domCache.js → dom/cache.js} +5 -19
- package/dist/dom/cache.js.map +1 -0
- package/dist/dom/index.d.ts +9 -0
- package/dist/dom/index.d.ts.map +1 -0
- package/dist/dom/index.js +9 -0
- package/dist/dom/index.js.map +1 -0
- package/dist/{cli/collectors/helpers/domQuery.d.ts → dom/query.d.ts} +5 -2
- package/dist/dom/query.d.ts.map +1 -0
- package/dist/{cli/collectors/helpers/domQuery.js → dom/query.js} +11 -7
- package/dist/dom/query.js.map +1 -0
- package/dist/index.js +117 -35
- package/dist/index.js.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.js +11 -1
- package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
- package/dist/ipc/client.d.ts +17 -4
- package/dist/ipc/client.d.ts.map +1 -1
- package/dist/ipc/client.js +26 -6
- package/dist/ipc/client.js.map +1 -1
- package/dist/ipc/commands.d.ts +52 -1
- package/dist/ipc/commands.d.ts.map +1 -1
- package/dist/ipc/commands.js +8 -0
- package/dist/ipc/commands.js.map +1 -1
- package/dist/ipc/types.d.ts +34 -3
- package/dist/ipc/types.d.ts.map +1 -1
- package/dist/ipc/types.js.map +1 -1
- package/dist/session/metadata.d.ts +2 -2
- package/dist/session/metadata.d.ts.map +1 -1
- package/dist/session/output.d.ts +1 -1
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +4 -3
- package/dist/session/process.js.map +1 -1
- package/dist/session/queryCache.d.ts +36 -0
- package/dist/session/queryCache.d.ts.map +1 -0
- package/dist/session/queryCache.js +66 -0
- package/dist/session/queryCache.js.map +1 -0
- package/dist/telemetry/__tests__/network.contract.test.d.ts +28 -0
- package/dist/telemetry/__tests__/network.contract.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/network.contract.test.js +540 -0
- package/dist/telemetry/__tests__/network.contract.test.js.map +1 -0
- package/dist/telemetry/console.d.ts +19 -0
- package/dist/telemetry/console.d.ts.map +1 -0
- package/dist/telemetry/console.js +87 -0
- package/dist/telemetry/console.js.map +1 -0
- package/dist/telemetry/dom.d.ts +21 -0
- package/dist/telemetry/dom.d.ts.map +1 -0
- package/dist/telemetry/dom.js +99 -0
- package/dist/telemetry/dom.js.map +1 -0
- package/dist/telemetry/network.d.ts +33 -0
- package/dist/telemetry/network.d.ts.map +1 -0
- package/dist/telemetry/network.js +191 -0
- package/dist/telemetry/network.js.map +1 -0
- package/dist/types.d.ts +25 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/errors.d.ts +39 -0
- package/dist/ui/errors.d.ts.map +1 -0
- package/dist/ui/errors.js +48 -0
- package/dist/ui/errors.js.map +1 -0
- package/dist/ui/formatters/cookies.d.ts +32 -0
- package/dist/ui/formatters/cookies.d.ts.map +1 -0
- package/dist/ui/formatters/cookies.js +45 -0
- package/dist/ui/formatters/cookies.js.map +1 -0
- package/dist/ui/formatters/details.d.ts +10 -0
- package/dist/ui/formatters/details.d.ts.map +1 -0
- package/dist/ui/formatters/details.js +61 -0
- package/dist/ui/formatters/details.js.map +1 -0
- package/dist/ui/formatters/dom.d.ts +135 -0
- package/dist/ui/formatters/dom.d.ts.map +1 -0
- package/dist/ui/formatters/dom.js +193 -0
- package/dist/ui/formatters/dom.js.map +1 -0
- package/dist/ui/formatters/index.d.ts +11 -0
- package/dist/ui/formatters/index.d.ts.map +1 -0
- package/dist/ui/formatters/index.js +11 -0
- package/dist/ui/formatters/index.js.map +1 -0
- package/dist/ui/formatters/preview.d.ts +25 -0
- package/dist/ui/formatters/preview.d.ts.map +1 -0
- package/dist/ui/formatters/preview.js +182 -0
- package/dist/ui/formatters/preview.js.map +1 -0
- package/dist/ui/formatters/status.d.ts +39 -0
- package/dist/ui/formatters/status.d.ts.map +1 -0
- package/dist/ui/formatters/status.js +153 -0
- package/dist/ui/formatters/status.js.map +1 -0
- package/dist/ui/formatting.d.ts +300 -0
- package/dist/ui/formatting.d.ts.map +1 -0
- package/dist/ui/formatting.js +454 -0
- package/dist/ui/formatting.js.map +1 -0
- package/dist/ui/messages/chrome.d.ts +172 -0
- package/dist/ui/messages/chrome.d.ts.map +1 -0
- package/dist/ui/messages/chrome.js +253 -0
- package/dist/ui/messages/chrome.js.map +1 -0
- package/dist/ui/messages/commands.d.ts +88 -0
- package/dist/ui/messages/commands.d.ts.map +1 -0
- package/dist/ui/messages/commands.js +150 -0
- package/dist/ui/messages/commands.js.map +1 -0
- package/dist/ui/messages/consoleMessages.d.ts +39 -0
- package/dist/ui/messages/consoleMessages.d.ts.map +1 -0
- package/dist/ui/messages/consoleMessages.js +48 -0
- package/dist/ui/messages/consoleMessages.js.map +1 -0
- package/dist/ui/messages/debug.d.ts +182 -0
- package/dist/ui/messages/debug.d.ts.map +1 -0
- package/dist/ui/messages/debug.js +243 -0
- package/dist/ui/messages/debug.js.map +1 -0
- package/dist/ui/messages/errors.d.ts +91 -0
- package/dist/ui/messages/errors.d.ts.map +1 -0
- package/dist/ui/messages/errors.js +135 -0
- package/dist/ui/messages/errors.js.map +1 -0
- package/dist/ui/messages/index.d.ts +12 -0
- package/dist/ui/messages/index.d.ts.map +1 -0
- package/dist/ui/messages/index.js +12 -0
- package/dist/ui/messages/index.js.map +1 -0
- package/dist/ui/messages/internal.d.ts +30 -0
- package/dist/ui/messages/internal.d.ts.map +1 -0
- package/dist/ui/messages/internal.js +42 -0
- package/dist/ui/messages/internal.js.map +1 -0
- package/dist/ui/messages/preview.d.ts +51 -0
- package/dist/ui/messages/preview.d.ts.map +1 -0
- package/dist/ui/messages/preview.js +76 -0
- package/dist/ui/messages/preview.js.map +1 -0
- package/dist/ui/messages/session.d.ts +54 -0
- package/dist/ui/messages/session.d.ts.map +1 -0
- package/dist/ui/messages/session.js +77 -0
- package/dist/ui/messages/session.js.map +1 -0
- package/dist/ui/messages/validation.d.ts +34 -0
- package/dist/ui/messages/validation.d.ts.map +1 -0
- package/dist/ui/messages/validation.js +38 -0
- package/dist/ui/messages/validation.js.map +1 -0
- package/dist/utils/__tests__/filters.unit.test.js +1 -1
- package/dist/utils/cdpHandlers.d.ts +1 -1
- package/dist/utils/cdpHandlers.js +1 -1
- package/dist/utils/chromeDiagnostics.d.ts +0 -12
- package/dist/utils/chromeDiagnostics.d.ts.map +1 -1
- package/dist/utils/chromeDiagnostics.js +0 -51
- package/dist/utils/chromeDiagnostics.js.map +1 -1
- package/dist/utils/filters.js +1 -1
- package/dist/utils/filters.js.map +1 -1
- package/dist/utils/http.d.ts +1 -1
- package/dist/utils/http.js.map +1 -1
- package/dist/utils/logger.d.ts +68 -12
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +62 -12
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/pageReadiness.d.ts +46 -0
- package/dist/utils/pageReadiness.d.ts.map +1 -0
- package/dist/utils/pageReadiness.js +271 -0
- package/dist/utils/pageReadiness.js.map +1 -0
- package/dist/utils/ui.d.ts +36 -0
- package/dist/utils/ui.d.ts.map +1 -0
- package/dist/utils/ui.js +47 -0
- package/dist/utils/ui.js.map +1 -0
- package/dist/utils/url.d.ts +60 -26
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +130 -84
- package/dist/utils/url.js.map +1 -1
- package/package.json +2 -5
- package/dist/cli/collectors/dom.d.ts.map +0 -1
- package/dist/cli/collectors/dom.js +0 -361
- package/dist/cli/collectors/dom.js.map +0 -1
- package/dist/cli/collectors/helpers/domCache.d.ts.map +0 -1
- package/dist/cli/collectors/helpers/domCache.js.map +0 -1
- package/dist/cli/collectors/helpers/domQuery.d.ts.map +0 -1
- package/dist/cli/collectors/helpers/domQuery.js.map +0 -1
- package/dist/cli/collectors/helpers/selectorParser.d.ts.map +0 -1
- package/dist/cli/collectors/helpers/selectorParser.js.map +0 -1
- package/dist/cli/commands/__tests__/ipcTest.test.d.ts +0 -2
- package/dist/cli/commands/__tests__/ipcTest.test.d.ts.map +0 -1
- package/dist/cli/commands/__tests__/ipcTest.test.js +0 -37
- package/dist/cli/commands/__tests__/ipcTest.test.js.map +0 -1
- package/dist/cli/commands/ipcTest.d.ts +0 -23
- package/dist/cli/commands/ipcTest.d.ts.map +0 -1
- package/dist/cli/commands/ipcTest.js +0 -181
- package/dist/cli/commands/ipcTest.js.map +0 -1
- package/dist/cli/commands/query.d.ts.map +0 -1
- package/dist/cli/commands/query.js +0 -127
- package/dist/cli/commands/query.js.map +0 -1
- package/dist/cli/handlers/ChromeBootstrap.d.ts +0 -24
- package/dist/cli/handlers/ChromeBootstrap.d.ts.map +0 -1
- package/dist/cli/handlers/ChromeBootstrap.js +0 -50
- package/dist/cli/handlers/ChromeBootstrap.js.map +0 -1
- package/dist/cli/handlers/OutputWriter.d.ts +0 -15
- package/dist/cli/handlers/OutputWriter.d.ts.map +0 -1
- package/dist/cli/handlers/OutputWriter.js +0 -34
- package/dist/cli/handlers/OutputWriter.js.map +0 -1
- package/dist/cli/handlers/PreviewWriter.d.ts +0 -52
- package/dist/cli/handlers/PreviewWriter.d.ts.map +0 -1
- package/dist/cli/handlers/PreviewWriter.js +0 -119
- package/dist/cli/handlers/PreviewWriter.js.map +0 -1
- package/dist/cli/handlers/SessionLock.d.ts +0 -16
- package/dist/cli/handlers/SessionLock.d.ts.map +0 -1
- package/dist/cli/handlers/SessionLock.js +0 -38
- package/dist/cli/handlers/SessionLock.js.map +0 -1
- package/dist/cli/handlers/SessionLoop.d.ts +0 -19
- package/dist/cli/handlers/SessionLoop.d.ts.map +0 -1
- package/dist/cli/handlers/SessionLoop.js +0 -47
- package/dist/cli/handlers/SessionLoop.js.map +0 -1
- package/dist/cli/handlers/ShutdownController.d.ts +0 -38
- package/dist/cli/handlers/ShutdownController.d.ts.map +0 -1
- package/dist/cli/handlers/ShutdownController.js +0 -83
- package/dist/cli/handlers/ShutdownController.js.map +0 -1
- package/dist/cli/handlers/SignalHandler.d.ts +0 -35
- package/dist/cli/handlers/SignalHandler.d.ts.map +0 -1
- package/dist/cli/handlers/SignalHandler.js +0 -81
- package/dist/cli/handlers/SignalHandler.js.map +0 -1
- package/dist/cli/handlers/TargetSetup.d.ts +0 -42
- package/dist/cli/handlers/TargetSetup.d.ts.map +0 -1
- package/dist/cli/handlers/TargetSetup.js +0 -87
- package/dist/cli/handlers/TargetSetup.js.map +0 -1
- package/dist/connection/__tests__/tabs.contract.test.d.ts +0 -2
- package/dist/connection/__tests__/tabs.contract.test.d.ts.map +0 -1
- package/dist/connection/__tests__/tabs.contract.test.js +0 -137
- package/dist/connection/__tests__/tabs.contract.test.js.map +0 -1
- package/dist/connection/tabs.d.ts +0 -82
- package/dist/connection/tabs.d.ts.map +0 -1
- package/dist/connection/tabs.js +0 -577
- package/dist/connection/tabs.js.map +0 -1
- package/dist/session/BdgSession.d.ts +0 -129
- package/dist/session/BdgSession.d.ts.map +0 -1
- package/dist/session/BdgSession.js +0 -270
- package/dist/session/BdgSession.js.map +0 -1
- package/dist/session/index.d.ts +0 -15
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/index.js +0 -23
- package/dist/session/index.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -12
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -20
- package/dist/utils/validation.js.map +0 -1
- /package/dist/cli/{collectors → commands}/dom.d.ts +0 -0
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IPC Test Command - Minimal handshake MVP
|
|
3
|
-
*
|
|
4
|
-
* Tests IPC communication between CLI client and daemon server.
|
|
5
|
-
* Ensures daemon is running, performs handshake, and prints response.
|
|
6
|
-
*/
|
|
7
|
-
import { spawn } from 'node:child_process';
|
|
8
|
-
import { connect as connectSocket } from 'node:net';
|
|
9
|
-
import { dirname, join, isAbsolute } from 'node:path';
|
|
10
|
-
import { fileURLToPath } from 'node:url';
|
|
11
|
-
import { IPCServer } from '../../daemon/ipcServer.js';
|
|
12
|
-
import { connectToDaemon } from '../../ipc/client.js';
|
|
13
|
-
import { cleanupStaleSession } from '../../session/cleanup.js';
|
|
14
|
-
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
15
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
16
|
-
const __dirname = dirname(__filename);
|
|
17
|
-
const DAEMON_SCRIPT = join(__dirname, '..', '..', 'daemon.js');
|
|
18
|
-
const DEFAULT_WAIT_TIMEOUT_MS = 10_000;
|
|
19
|
-
const DEFAULT_WAIT_POLL_MS = 100;
|
|
20
|
-
/**
|
|
21
|
-
* Resolve the absolute daemon entry point path.
|
|
22
|
-
*/
|
|
23
|
-
export function resolveDaemonEntryPoint() {
|
|
24
|
-
if (!isAbsolute(DAEMON_SCRIPT)) {
|
|
25
|
-
throw new Error(`Resolved daemon entry point is not absolute: ${DAEMON_SCRIPT}`);
|
|
26
|
-
}
|
|
27
|
-
return DAEMON_SCRIPT;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Wait for a Unix domain socket to become available.
|
|
31
|
-
*/
|
|
32
|
-
export async function waitForSocket(socketPath, options = {}) {
|
|
33
|
-
const timeoutMs = options.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS;
|
|
34
|
-
const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_WAIT_POLL_MS;
|
|
35
|
-
const start = Date.now();
|
|
36
|
-
while (true) {
|
|
37
|
-
try {
|
|
38
|
-
await attemptConnect(socketPath);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
const elapsed = Date.now() - start;
|
|
43
|
-
if (elapsed >= timeoutMs) {
|
|
44
|
-
const details = error instanceof Error ? error.message : typeof error === 'string' ? error : 'unknown';
|
|
45
|
-
throw new Error(`Socket "${socketPath}" not ready within ${timeoutMs}ms (last error: ${details})`);
|
|
46
|
-
}
|
|
47
|
-
await delay(pollIntervalMs);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
async function attemptConnect(socketPath) {
|
|
52
|
-
return new Promise((resolve, reject) => {
|
|
53
|
-
const socket = connectSocket(socketPath);
|
|
54
|
-
const handleError = (err) => {
|
|
55
|
-
socket.destroy();
|
|
56
|
-
reject(err instanceof Error ? err : new Error(String(err)));
|
|
57
|
-
};
|
|
58
|
-
socket.once('error', handleError);
|
|
59
|
-
socket.once('connect', () => {
|
|
60
|
-
socket.destroy();
|
|
61
|
-
resolve();
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
async function delay(ms) {
|
|
66
|
-
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Register the ipc-test command for IPC handshake testing.
|
|
70
|
-
*/
|
|
71
|
-
export function registerIpcTestCommand(program) {
|
|
72
|
-
program
|
|
73
|
-
.command('ipc-test')
|
|
74
|
-
.description('Test IPC handshake with daemon (MVP)')
|
|
75
|
-
.action(async () => {
|
|
76
|
-
try {
|
|
77
|
-
console.error('[ipc-test] Starting IPC handshake test...');
|
|
78
|
-
// Clean up any stale session files before starting
|
|
79
|
-
console.error('[ipc-test] Checking for stale session files...');
|
|
80
|
-
const cleaned = cleanupStaleSession();
|
|
81
|
-
if (cleaned) {
|
|
82
|
-
console.error('[ipc-test] Cleaned up stale session files');
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
console.error('[ipc-test] No stale files to clean');
|
|
86
|
-
}
|
|
87
|
-
// Ensure daemon is running
|
|
88
|
-
if (!IPCServer.isRunning()) {
|
|
89
|
-
console.error('[ipc-test] Daemon not running, starting it...');
|
|
90
|
-
await startDaemon();
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
console.error('[ipc-test] Daemon already running');
|
|
94
|
-
}
|
|
95
|
-
// Perform handshake
|
|
96
|
-
console.error('[ipc-test] Connecting to daemon...');
|
|
97
|
-
const response = await connectToDaemon();
|
|
98
|
-
// Print response
|
|
99
|
-
console.log(JSON.stringify(response, null, 2));
|
|
100
|
-
if (response.status === 'ok') {
|
|
101
|
-
console.error('[ipc-test] Handshake successful!');
|
|
102
|
-
process.exit(EXIT_CODES.SUCCESS);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
console.error('[ipc-test] Handshake failed:', response.message);
|
|
106
|
-
process.exit(EXIT_CODES.GENERIC_FAILURE);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
console.error('[ipc-test] Error:', error);
|
|
111
|
-
process.exit(EXIT_CODES.GENERIC_FAILURE);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Start the daemon process in the background.
|
|
117
|
-
*
|
|
118
|
-
* Uses import.meta.url to resolve daemon script path correctly
|
|
119
|
-
* regardless of current working directory.
|
|
120
|
-
*/
|
|
121
|
-
async function startDaemon() {
|
|
122
|
-
return new Promise((resolve, reject) => {
|
|
123
|
-
let daemon;
|
|
124
|
-
try {
|
|
125
|
-
const entryPoint = resolveDaemonEntryPoint();
|
|
126
|
-
console.error(`[ipc-test] Starting daemon: ${process.execPath} ${entryPoint}`);
|
|
127
|
-
// Spawn daemon process with absolute script path
|
|
128
|
-
daemon = spawn(process.execPath, [entryPoint], {
|
|
129
|
-
detached: true,
|
|
130
|
-
stdio: 'ignore',
|
|
131
|
-
});
|
|
132
|
-
daemon.unref();
|
|
133
|
-
}
|
|
134
|
-
catch (err) {
|
|
135
|
-
reject(new Error(`Failed to spawn daemon: ${err instanceof Error ? err.message : String(err)}`));
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
const socketPath = IPCServer.getSocketPath();
|
|
139
|
-
let settled = false;
|
|
140
|
-
const cleanup = () => {
|
|
141
|
-
daemon.off('error', onError);
|
|
142
|
-
daemon.off('exit', onExit);
|
|
143
|
-
};
|
|
144
|
-
const onError = (err) => {
|
|
145
|
-
if (settled)
|
|
146
|
-
return;
|
|
147
|
-
settled = true;
|
|
148
|
-
cleanup();
|
|
149
|
-
reject(new Error(`Daemon process error: ${err.message}`));
|
|
150
|
-
};
|
|
151
|
-
const onExit = (code, signal) => {
|
|
152
|
-
if (settled)
|
|
153
|
-
return;
|
|
154
|
-
settled = true;
|
|
155
|
-
cleanup();
|
|
156
|
-
reject(new Error(`Daemon exited unexpectedly (code: ${code ?? 'null'}, signal: ${signal ?? 'null'})`));
|
|
157
|
-
};
|
|
158
|
-
daemon.once('error', onError);
|
|
159
|
-
daemon.once('exit', onExit);
|
|
160
|
-
waitForSocket(socketPath, {
|
|
161
|
-
timeoutMs: DEFAULT_WAIT_TIMEOUT_MS,
|
|
162
|
-
pollIntervalMs: DEFAULT_WAIT_POLL_MS,
|
|
163
|
-
})
|
|
164
|
-
.then(() => {
|
|
165
|
-
if (settled)
|
|
166
|
-
return;
|
|
167
|
-
settled = true;
|
|
168
|
-
cleanup();
|
|
169
|
-
console.error('[ipc-test] Daemon socket ready');
|
|
170
|
-
resolve();
|
|
171
|
-
})
|
|
172
|
-
.catch((error) => {
|
|
173
|
-
if (settled)
|
|
174
|
-
return;
|
|
175
|
-
settled = true;
|
|
176
|
-
cleanup();
|
|
177
|
-
reject(error instanceof Error ? error : new Error(String(error)));
|
|
178
|
-
});
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
//# sourceMappingURL=ipcTest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ipcTest.js","sourceRoot":"","sources":["../../../src/cli/commands/ipcTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkJ3D"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { OutputBuilder } from '../handlers/OutputBuilder.js';
|
|
2
|
-
import { DEFAULT_DEBUG_PORT, PORT_OPTION_DESCRIPTION } from '../../constants.js';
|
|
3
|
-
import { readPid } from '../../session/pid.js';
|
|
4
|
-
import { isProcessAlive } from '../../session/process.js';
|
|
5
|
-
import { getErrorMessage } from '../../utils/errors.js';
|
|
6
|
-
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
7
|
-
/**
|
|
8
|
-
* Register query command
|
|
9
|
-
*
|
|
10
|
-
* @param program - Commander.js Command instance to register commands on
|
|
11
|
-
* @returns void
|
|
12
|
-
*/
|
|
13
|
-
export function registerQueryCommand(program) {
|
|
14
|
-
program
|
|
15
|
-
.command('query')
|
|
16
|
-
.description('Execute JavaScript in the active session for live debugging')
|
|
17
|
-
.argument('<script>', 'JavaScript to execute (e.g., "document.querySelector(\'input[type=email]\').value")')
|
|
18
|
-
.option('-p, --port <number>', PORT_OPTION_DESCRIPTION, DEFAULT_DEBUG_PORT)
|
|
19
|
-
.option('-j, --json', 'Wrap result in version/success format')
|
|
20
|
-
.action(async (script, options) => {
|
|
21
|
-
try {
|
|
22
|
-
const port = parseInt(options.port, 10);
|
|
23
|
-
// Check if session is running
|
|
24
|
-
const pid = readPid();
|
|
25
|
-
if (!pid || !isProcessAlive(pid)) {
|
|
26
|
-
const errorMsg = 'No active session running';
|
|
27
|
-
if (options.json) {
|
|
28
|
-
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg, {
|
|
29
|
-
suggestion: 'Start a session with: bdg <url>',
|
|
30
|
-
}), null, 2));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
console.error(`Error: ${errorMsg}`);
|
|
34
|
-
console.error('Start a session with: bdg <url>');
|
|
35
|
-
}
|
|
36
|
-
process.exit(EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
37
|
-
}
|
|
38
|
-
// Read session metadata to get the target ID
|
|
39
|
-
const { readSessionMetadata } = await import('../../session/metadata.js');
|
|
40
|
-
const metadata = readSessionMetadata();
|
|
41
|
-
if (!metadata?.targetId || !metadata.webSocketDebuggerUrl) {
|
|
42
|
-
const errorMsg = 'No target information in session metadata';
|
|
43
|
-
if (options.json) {
|
|
44
|
-
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg, {
|
|
45
|
-
note: 'Session may have been started with an older version',
|
|
46
|
-
}), null, 2));
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
console.error(`Error: ${errorMsg}`);
|
|
50
|
-
console.error('Session may have been started with an older version');
|
|
51
|
-
}
|
|
52
|
-
process.exit(EXIT_CODES.SESSION_FILE_ERROR);
|
|
53
|
-
}
|
|
54
|
-
// Verify the target still exists
|
|
55
|
-
const response = await fetch(`http://127.0.0.1:${port}/json/list`);
|
|
56
|
-
const targetsData = await response.json();
|
|
57
|
-
if (!Array.isArray(targetsData)) {
|
|
58
|
-
const errorMsg = 'Invalid response from CDP';
|
|
59
|
-
if (options.json) {
|
|
60
|
-
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg), null, 2));
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
console.error(`Error: ${errorMsg}`);
|
|
64
|
-
}
|
|
65
|
-
process.exit(EXIT_CODES.CDP_CONNECTION_FAILURE);
|
|
66
|
-
}
|
|
67
|
-
const target = targetsData.find((t) => t.id === metadata.targetId);
|
|
68
|
-
if (!target) {
|
|
69
|
-
const errorMsg = 'Session target not found (tab may have been closed)';
|
|
70
|
-
if (options.json) {
|
|
71
|
-
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg, {
|
|
72
|
-
suggestion: 'Start a new session with: bdg <url>',
|
|
73
|
-
}), null, 2));
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
console.error(`Error: ${errorMsg}`);
|
|
77
|
-
console.error('Start a new session with: bdg <url>');
|
|
78
|
-
}
|
|
79
|
-
process.exit(EXIT_CODES.RESOURCE_NOT_FOUND);
|
|
80
|
-
}
|
|
81
|
-
// Create temporary CDP connection using stored webSocketDebuggerUrl
|
|
82
|
-
const { CDPConnection } = await import('../../connection/cdp.js');
|
|
83
|
-
const cdp = new CDPConnection();
|
|
84
|
-
await cdp.connect(metadata.webSocketDebuggerUrl);
|
|
85
|
-
// Execute JavaScript
|
|
86
|
-
const result = (await cdp.send('Runtime.evaluate', {
|
|
87
|
-
expression: script,
|
|
88
|
-
returnByValue: true,
|
|
89
|
-
awaitPromise: true,
|
|
90
|
-
}));
|
|
91
|
-
cdp.close();
|
|
92
|
-
// Output result
|
|
93
|
-
if (result.exceptionDetails) {
|
|
94
|
-
const errorMsg = result.exceptionDetails.exception?.description ?? 'Unknown error executing script';
|
|
95
|
-
if (options.json) {
|
|
96
|
-
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg), null, 2));
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
console.error('Error executing script:');
|
|
100
|
-
console.error(errorMsg);
|
|
101
|
-
}
|
|
102
|
-
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
103
|
-
}
|
|
104
|
-
// Output result (wrapped if --json, raw otherwise)
|
|
105
|
-
if (options.json) {
|
|
106
|
-
console.log(JSON.stringify(OutputBuilder.buildJsonSuccess({
|
|
107
|
-
result: result.result?.value,
|
|
108
|
-
}), null, 2));
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
console.log(JSON.stringify(result.result?.value, null, 2));
|
|
112
|
-
}
|
|
113
|
-
process.exit(EXIT_CODES.SUCCESS);
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
const errorMsg = getErrorMessage(error);
|
|
117
|
-
if (options.json) {
|
|
118
|
-
console.log(JSON.stringify(OutputBuilder.buildJsonError(errorMsg), null, 2));
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
console.error(`Error: ${errorMsg}`);
|
|
122
|
-
}
|
|
123
|
-
process.exit(EXIT_CODES.UNHANDLED_EXCEPTION);
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=query.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/cli/commands/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { type LaunchOptions } from '../../connection/launcher.js';
|
|
2
|
-
import type { LaunchedChrome } from '../../types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Handles Chrome browser launch and connection
|
|
5
|
-
*/
|
|
6
|
-
export declare class ChromeBootstrap {
|
|
7
|
-
/**
|
|
8
|
-
* Launch Chrome if not already running, or connect to existing instance.
|
|
9
|
-
*
|
|
10
|
-
* Delegates to chrome-launcher which handles:
|
|
11
|
-
* - Port availability checking
|
|
12
|
-
* - Strict mode enforcement (via portStrictMode option)
|
|
13
|
-
* - Chrome readiness polling
|
|
14
|
-
* - Reusing existing Chrome instances when port is occupied
|
|
15
|
-
*
|
|
16
|
-
* @param port - Chrome debugging port
|
|
17
|
-
* @param targetUrl - Initial URL to navigate to
|
|
18
|
-
* @param launchOptions - Chrome launcher options (userDataDir, logLevel, etc.)
|
|
19
|
-
* @returns LaunchedChrome instance if Chrome was launched, null if already running
|
|
20
|
-
* @throws Error if chrome-launcher fails to launch or connect
|
|
21
|
-
*/
|
|
22
|
-
static launch(port: number, targetUrl: string, launchOptions?: Partial<LaunchOptions>): Promise<LaunchedChrome | null>;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=ChromeBootstrap.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeBootstrap.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/ChromeBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;;;;;;;OAcG;WACU,MAAM,CACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GACrC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CA8BlC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { launchChrome } from '../../connection/launcher.js';
|
|
2
|
-
/**
|
|
3
|
-
* Handles Chrome browser launch and connection
|
|
4
|
-
*/
|
|
5
|
-
export class ChromeBootstrap {
|
|
6
|
-
/**
|
|
7
|
-
* Launch Chrome if not already running, or connect to existing instance.
|
|
8
|
-
*
|
|
9
|
-
* Delegates to chrome-launcher which handles:
|
|
10
|
-
* - Port availability checking
|
|
11
|
-
* - Strict mode enforcement (via portStrictMode option)
|
|
12
|
-
* - Chrome readiness polling
|
|
13
|
-
* - Reusing existing Chrome instances when port is occupied
|
|
14
|
-
*
|
|
15
|
-
* @param port - Chrome debugging port
|
|
16
|
-
* @param targetUrl - Initial URL to navigate to
|
|
17
|
-
* @param launchOptions - Chrome launcher options (userDataDir, logLevel, etc.)
|
|
18
|
-
* @returns LaunchedChrome instance if Chrome was launched, null if already running
|
|
19
|
-
* @throws Error if chrome-launcher fails to launch or connect
|
|
20
|
-
*/
|
|
21
|
-
static async launch(port, targetUrl, launchOptions) {
|
|
22
|
-
// Attempt launch - chrome-launcher handles everything:
|
|
23
|
-
// - Port availability checking
|
|
24
|
-
// - Launching new Chrome or reusing existing instance
|
|
25
|
-
// - Strict mode enforcement (throws if portStrictMode=true and can't connect)
|
|
26
|
-
// - Chrome readiness polling with retries
|
|
27
|
-
// Default to headless in CI environments (no display available)
|
|
28
|
-
// User can override via launchOptions.headless if needed
|
|
29
|
-
const isCI = process.env['CI'] === 'true' || process.env['CI'] === '1';
|
|
30
|
-
const headless = launchOptions?.headless ?? (isCI ? true : false);
|
|
31
|
-
const chrome = await launchChrome({
|
|
32
|
-
port,
|
|
33
|
-
headless,
|
|
34
|
-
url: targetUrl,
|
|
35
|
-
...launchOptions,
|
|
36
|
-
});
|
|
37
|
-
// chrome-launcher returns a valid LaunchedChrome when successful
|
|
38
|
-
// PID will be 0 or undefined if reusing an existing Chrome instance
|
|
39
|
-
const isNewLaunch = chrome.pid && chrome.pid > 0;
|
|
40
|
-
if (isNewLaunch) {
|
|
41
|
-
console.error(`Chrome launched (PID: ${chrome.pid})`);
|
|
42
|
-
return chrome; // Return handle so we can kill it on cleanup
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
console.error(`Chrome already running on port ${port}`);
|
|
46
|
-
return null; // Don't return handle - we don't own this Chrome instance
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=ChromeBootstrap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChromeBootstrap.js","sourceRoot":"","sources":["../../../src/cli/handlers/ChromeBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,0BAA0B,CAAC;AAG5E;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,IAAY,EACZ,SAAiB,EACjB,aAAsC;QAEtC,uDAAuD;QACvD,+BAA+B;QAC/B,sDAAsD;QACtD,8EAA8E;QAC9E,0CAA0C;QAE1C,gEAAgE;QAChE,yDAAyD;QACzD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;QACvE,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,IAAI;YACJ,QAAQ;YACR,GAAG,EAAE,SAAS;YACd,GAAG,aAAa;SACjB,CAAC,CAAC;QAEH,iEAAiE;QACjE,oEAAoE;QACpE,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,CAAC,6CAA6C;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,CAAC,0DAA0D;QACzE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { BdgOutput } from '../../types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Handles writing session output to files and console
|
|
4
|
-
*/
|
|
5
|
-
export declare class OutputWriter {
|
|
6
|
-
/**
|
|
7
|
-
* Write session output to file and stdout.
|
|
8
|
-
*
|
|
9
|
-
* @param output - The output payload to write
|
|
10
|
-
* @param exitCode - 0 for success, 1 for error
|
|
11
|
-
* @param compact - If true, use compact JSON format (no indentation)
|
|
12
|
-
*/
|
|
13
|
-
writeSessionOutput(output: BdgOutput, exitCode: 0 | 1, compact?: boolean): void;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=OutputWriter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OutputWriter.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/OutputWriter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;GAEG;AACH,qBAAa,YAAY;IACvB;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,GAAE,OAAe,GAAG,IAAI;CAsBvF"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { writeSessionOutput } from '../../session/output.js';
|
|
2
|
-
/**
|
|
3
|
-
* Handles writing session output to files and console
|
|
4
|
-
*/
|
|
5
|
-
export class OutputWriter {
|
|
6
|
-
/**
|
|
7
|
-
* Write session output to file and stdout.
|
|
8
|
-
*
|
|
9
|
-
* @param output - The output payload to write
|
|
10
|
-
* @param exitCode - 0 for success, 1 for error
|
|
11
|
-
* @param compact - If true, use compact JSON format (no indentation)
|
|
12
|
-
*/
|
|
13
|
-
writeSessionOutput(output, exitCode, compact = false) {
|
|
14
|
-
// Write output to file for 'bdg stop' to read
|
|
15
|
-
try {
|
|
16
|
-
const message = exitCode === 0 ? 'Writing session output...' : 'Writing error output...';
|
|
17
|
-
console.error(message);
|
|
18
|
-
writeSessionOutput(output, compact);
|
|
19
|
-
const successMessage = exitCode === 0
|
|
20
|
-
? 'Session output written successfully'
|
|
21
|
-
: 'Error output written successfully';
|
|
22
|
-
console.error(successMessage);
|
|
23
|
-
}
|
|
24
|
-
catch (writeError) {
|
|
25
|
-
const errorMessage = exitCode === 0 ? 'Failed to write session output:' : 'Failed to write error output:';
|
|
26
|
-
console.error(errorMessage, writeError);
|
|
27
|
-
console.error('Write error details:', writeError);
|
|
28
|
-
}
|
|
29
|
-
// Output to stdout (for foreground use)
|
|
30
|
-
const jsonString = compact ? JSON.stringify(output) : JSON.stringify(output, null, 2);
|
|
31
|
-
console.log(jsonString);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=OutputWriter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OutputWriter.js","sourceRoot":"","sources":["../../../src/cli/handlers/OutputWriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB;;;;;;OAMG;IACH,kBAAkB,CAAC,MAAiB,EAAE,QAAe,EAAE,UAAmB,KAAK;QAC7E,8CAA8C;QAC9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,yBAAyB,CAAC;YACzF,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACvB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACpC,MAAM,cAAc,GAClB,QAAQ,KAAK,CAAC;gBACZ,CAAC,CAAC,qCAAqC;gBACvC,CAAC,CAAC,mCAAmC,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,MAAM,YAAY,GAChB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,+BAA+B,CAAC;YACvF,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;QAED,wCAAwC;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import type { CDPTarget, NetworkRequest, ConsoleMessage, CollectorType } from '../../types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Interface for accessing session data without direct coupling
|
|
4
|
-
*/
|
|
5
|
-
export interface PreviewDataSource {
|
|
6
|
-
getTarget: () => CDPTarget;
|
|
7
|
-
getNetworkRequests: () => NetworkRequest[];
|
|
8
|
-
getConsoleLogs: () => ConsoleMessage[];
|
|
9
|
-
getActiveCollectors: () => CollectorType[];
|
|
10
|
-
isConnected: () => boolean;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Manages two-tier preview system with async I/O and mutex
|
|
14
|
-
*
|
|
15
|
-
* Periodically writes both lightweight preview and full data files
|
|
16
|
-
* to enable efficient monitoring without stopping collection.
|
|
17
|
-
*/
|
|
18
|
-
export declare class PreviewWriter {
|
|
19
|
-
private dataSource;
|
|
20
|
-
private startTime;
|
|
21
|
-
private intervalMs;
|
|
22
|
-
private compact;
|
|
23
|
-
private interval;
|
|
24
|
-
private pendingWrite;
|
|
25
|
-
private isWriting;
|
|
26
|
-
constructor(dataSource: PreviewDataSource, startTime: number, intervalMs?: number, compact?: boolean);
|
|
27
|
-
/**
|
|
28
|
-
* Start periodic preview writes.
|
|
29
|
-
*/
|
|
30
|
-
start(): void;
|
|
31
|
-
/**
|
|
32
|
-
* Stop preview writes and clear interval.
|
|
33
|
-
*/
|
|
34
|
-
stop(): void;
|
|
35
|
-
/**
|
|
36
|
-
* Wait for any in-flight write to complete.
|
|
37
|
-
* Called during shutdown to prevent race conditions.
|
|
38
|
-
*/
|
|
39
|
-
waitForPendingWrite(): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* Execute a single preview write cycle (internal)
|
|
42
|
-
*/
|
|
43
|
-
private writePreview;
|
|
44
|
-
/**
|
|
45
|
-
* Perform the actual write operation (internal)
|
|
46
|
-
*
|
|
47
|
-
* Passes original arrays for active collectors, empty arrays for inactive ones.
|
|
48
|
-
* No cloning needed - OutputBuilder serializes immediately, avoiding unnecessary copies.
|
|
49
|
-
*/
|
|
50
|
-
private doWrite;
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=PreviewWriter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewWriter.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/PreviewWriter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAKxF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,SAAS,CAAC;IAC3B,kBAAkB,EAAE,MAAM,cAAc,EAAE,CAAC;IAC3C,cAAc,EAAE,MAAM,cAAc,EAAE,CAAC;IACvC,mBAAmB,EAAE,MAAM,aAAa,EAAE,CAAC;IAC3C,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IAMtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IARjB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,SAAS,CAAS;gBAGhB,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAa,EACzB,OAAO,GAAE,OAAe;IAGlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,IAAI,IAAI,IAAI;IAOZ;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAY1C;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;;;OAKG;YACW,OAAO;CAqCtB"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { writePartialOutputAsync, writeFullOutputAsync } from '../../session/output.js';
|
|
2
|
-
import { getErrorMessage } from '../../utils/errors.js';
|
|
3
|
-
import { OutputBuilder } from './OutputBuilder.js';
|
|
4
|
-
/**
|
|
5
|
-
* Manages two-tier preview system with async I/O and mutex
|
|
6
|
-
*
|
|
7
|
-
* Periodically writes both lightweight preview and full data files
|
|
8
|
-
* to enable efficient monitoring without stopping collection.
|
|
9
|
-
*/
|
|
10
|
-
export class PreviewWriter {
|
|
11
|
-
dataSource;
|
|
12
|
-
startTime;
|
|
13
|
-
intervalMs;
|
|
14
|
-
compact;
|
|
15
|
-
interval = null;
|
|
16
|
-
pendingWrite = null;
|
|
17
|
-
isWriting = false;
|
|
18
|
-
constructor(dataSource, startTime, intervalMs = 5000, compact = false) {
|
|
19
|
-
this.dataSource = dataSource;
|
|
20
|
-
this.startTime = startTime;
|
|
21
|
-
this.intervalMs = intervalMs;
|
|
22
|
-
this.compact = compact;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Start periodic preview writes.
|
|
26
|
-
*/
|
|
27
|
-
start() {
|
|
28
|
-
this.interval = setInterval(() => {
|
|
29
|
-
this.writePreview();
|
|
30
|
-
}, this.intervalMs);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Stop preview writes and clear interval.
|
|
34
|
-
*/
|
|
35
|
-
stop() {
|
|
36
|
-
if (this.interval) {
|
|
37
|
-
clearInterval(this.interval);
|
|
38
|
-
this.interval = null;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Wait for any in-flight write to complete.
|
|
43
|
-
* Called during shutdown to prevent race conditions.
|
|
44
|
-
*/
|
|
45
|
-
async waitForPendingWrite() {
|
|
46
|
-
if (this.pendingWrite) {
|
|
47
|
-
console.error('Waiting for in-flight write to complete...');
|
|
48
|
-
try {
|
|
49
|
-
await this.pendingWrite;
|
|
50
|
-
console.error('In-flight write completed');
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
console.error('Error in pending write (ignoring):', error);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Execute a single preview write cycle (internal)
|
|
59
|
-
*/
|
|
60
|
-
writePreview() {
|
|
61
|
-
// Skip if previous write in progress or disconnected
|
|
62
|
-
if (this.isWriting || !this.dataSource.isConnected()) {
|
|
63
|
-
if (this.isWriting) {
|
|
64
|
-
console.error('[PERF] Skipping preview write (previous write still in progress)');
|
|
65
|
-
}
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
this.isWriting = true;
|
|
69
|
-
// Create and track the write promise so shutdown can await it
|
|
70
|
-
this.pendingWrite = this.doWrite()
|
|
71
|
-
.catch((error) => {
|
|
72
|
-
console.error('Warning: Failed to write preview data:', getErrorMessage(error));
|
|
73
|
-
})
|
|
74
|
-
.finally(() => {
|
|
75
|
-
this.isWriting = false;
|
|
76
|
-
this.pendingWrite = null;
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Perform the actual write operation (internal)
|
|
81
|
-
*
|
|
82
|
-
* Passes original arrays for active collectors, empty arrays for inactive ones.
|
|
83
|
-
* No cloning needed - OutputBuilder serializes immediately, avoiding unnecessary copies.
|
|
84
|
-
*/
|
|
85
|
-
async doWrite() {
|
|
86
|
-
const target = this.dataSource.getTarget();
|
|
87
|
-
const activeCollectors = this.dataSource.getActiveCollectors();
|
|
88
|
-
// Pass original arrays when active, empty arrays when inactive (no cloning needed)
|
|
89
|
-
const networkRequests = activeCollectors.includes('network')
|
|
90
|
-
? this.dataSource.getNetworkRequests()
|
|
91
|
-
: [];
|
|
92
|
-
const consoleLogs = activeCollectors.includes('console')
|
|
93
|
-
? this.dataSource.getConsoleLogs()
|
|
94
|
-
: [];
|
|
95
|
-
// Build both preview and full outputs
|
|
96
|
-
const previewOutput = OutputBuilder.build({
|
|
97
|
-
mode: 'preview',
|
|
98
|
-
target,
|
|
99
|
-
startTime: this.startTime,
|
|
100
|
-
networkRequests,
|
|
101
|
-
consoleLogs,
|
|
102
|
-
activeCollectors,
|
|
103
|
-
});
|
|
104
|
-
const fullOutput = OutputBuilder.build({
|
|
105
|
-
mode: 'full',
|
|
106
|
-
target,
|
|
107
|
-
startTime: this.startTime,
|
|
108
|
-
networkRequests,
|
|
109
|
-
consoleLogs,
|
|
110
|
-
activeCollectors,
|
|
111
|
-
});
|
|
112
|
-
// Write both files in parallel (async, non-blocking)
|
|
113
|
-
await Promise.all([
|
|
114
|
-
writePartialOutputAsync(previewOutput, this.compact), // ~500KB - for 'bdg peek'
|
|
115
|
-
writeFullOutputAsync(fullOutput, this.compact), // ~87MB - for 'bdg details'
|
|
116
|
-
]);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=PreviewWriter.js.map
|