browser-debugger-cli 0.1.0 → 0.2.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/__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 +467 -0
- package/dist/commands/__tests__/cdp.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 +129 -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 +257 -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 +52 -0
- package/dist/commands/domEvalHelpers.d.ts.map +1 -0
- package/dist/commands/domEvalHelpers.js +76 -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 +43 -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 +114 -0
- package/dist/commands/peek.js.map +1 -0
- package/dist/commands/shared/CommandRunner.d.ts +60 -0
- package/dist/commands/shared/CommandRunner.d.ts.map +1 -0
- package/dist/commands/shared/CommandRunner.js +81 -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 +64 -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 +55 -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 +87 -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 +150 -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.js +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 +72 -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 +12 -11
- package/dist/daemon/startSession.js.map +1 -1
- package/dist/daemon/worker.d.ts +1 -1
- package/dist/daemon/worker.js +97 -41
- 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 +4 -4
- package/dist/ipc/client.d.ts.map +1 -1
- package/dist/ipc/client.js +10 -6
- package/dist/ipc/client.js.map +1 -1
- package/dist/ipc/commands.d.ts +33 -1
- package/dist/ipc/commands.d.ts.map +1 -1
- package/dist/ipc/commands.js +4 -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 +1 -1
- 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 +48 -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 +63 -0
- package/dist/ui/formatters/details.js.map +1 -0
- package/dist/ui/formatters/index.d.ts +10 -0
- package/dist/ui/formatters/index.d.ts.map +1 -0
- package/dist/ui/formatters/index.js +10 -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 +177 -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 +197 -0
- package/dist/ui/formatting.d.ts.map +1 -0
- package/dist/ui/formatting.js +318 -0
- package/dist/ui/formatting.js.map +1 -0
- package/dist/ui/messages/chrome.d.ts +102 -0
- package/dist/ui/messages/chrome.d.ts.map +1 -0
- package/dist/ui/messages/chrome.js +162 -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 +180 -0
- package/dist/ui/messages/debug.d.ts.map +1 -0
- package/dist/ui/messages/debug.js +241 -0
- package/dist/ui/messages/debug.js.map +1 -0
- package/dist/ui/messages/errors.d.ts +80 -0
- package/dist/ui/messages/errors.d.ts.map +1 -0
- package/dist/ui/messages/errors.js +122 -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 +27 -0
- package/dist/ui/messages/preview.d.ts.map +1 -0
- package/dist/ui/messages/preview.js +45 -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 +20 -0
- package/dist/ui/messages/validation.d.ts.map +1 -0
- package/dist/ui/messages/validation.js +22 -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/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 +51 -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 +6 -24
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +6 -67
- package/dist/utils/url.js.map +1 -1
- package/package.json +1 -1
- 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
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Smart page readiness detection using self-tuning thresholds
|
|
3
|
+
*
|
|
4
|
+
* This module provides adaptive page load detection that works for any page type
|
|
5
|
+
* without configuration. It uses a three-phase approach:
|
|
6
|
+
* 1. Load event (baseline readiness)
|
|
7
|
+
* 2. Network stability (adapts to request patterns)
|
|
8
|
+
* 3. DOM stability (adapts to mutation rate)
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Wait for page to be ready using self-tuning detection
|
|
12
|
+
*
|
|
13
|
+
* Strategy:
|
|
14
|
+
* 1. Wait for load event (baseline)
|
|
15
|
+
* 2. Wait for network to stabilize (adaptive)
|
|
16
|
+
* 3. Wait for DOM to stabilize (adaptive)
|
|
17
|
+
*
|
|
18
|
+
* All thresholds adapt to observed page behavior.
|
|
19
|
+
* No framework detection, no configuration needed.
|
|
20
|
+
*
|
|
21
|
+
* @param cdp - CDP connection
|
|
22
|
+
* @param options - Optional configuration
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Default: Self-tuning for any page
|
|
27
|
+
* await waitForPageReady(cdp);
|
|
28
|
+
*
|
|
29
|
+
* // Custom timeout for slow apps
|
|
30
|
+
* await waitForPageReady(cdp, { maxWaitMs: 60000 });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export async function waitForPageReady(cdp, options = {}) {
|
|
34
|
+
const maxWaitMs = options.maxWaitMs ?? 2000;
|
|
35
|
+
const deadline = Date.now() + maxWaitMs;
|
|
36
|
+
try {
|
|
37
|
+
// Phase 1: Wait for load event (sufficient for most pages)
|
|
38
|
+
await waitForLoadEvent(cdp, deadline);
|
|
39
|
+
console.error('[readiness] ✓ Load event');
|
|
40
|
+
// Optional: Wait for network/DOM stability (only for SPAs with heavy hydration)
|
|
41
|
+
if (options.waitForStability) {
|
|
42
|
+
const networkIdleMs = await waitForNetworkStable(cdp, deadline);
|
|
43
|
+
console.error(`[readiness] ✓ Network stable (${networkIdleMs}ms idle)`);
|
|
44
|
+
const domIdleMs = await waitForDOMStable(cdp, deadline);
|
|
45
|
+
console.error(`[readiness] ✓ DOM stable (${domIdleMs}ms idle)`);
|
|
46
|
+
}
|
|
47
|
+
console.error('[readiness] ✓ Page ready');
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
51
|
+
console.error(`[readiness] ${message}, proceeding anyway`);
|
|
52
|
+
// Don't rethrow - allow session to continue
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Wait for Page.loadEventFired (window.onload equivalent)
|
|
57
|
+
*
|
|
58
|
+
* This is the browser's native load event - fires when:
|
|
59
|
+
* - Document is fully loaded
|
|
60
|
+
* - All synchronous scripts executed
|
|
61
|
+
* - DOMContentLoaded already fired
|
|
62
|
+
*
|
|
63
|
+
* Framework-agnostic baseline.
|
|
64
|
+
*
|
|
65
|
+
* Handles edge case where load event already fired (Chrome navigates during launch).
|
|
66
|
+
*
|
|
67
|
+
* @param cdp - CDP connection
|
|
68
|
+
* @param deadline - Timestamp when to timeout
|
|
69
|
+
* @throws Error if deadline exceeded
|
|
70
|
+
*/
|
|
71
|
+
async function waitForLoadEvent(cdp, deadline) {
|
|
72
|
+
await cdp.send('Page.enable');
|
|
73
|
+
// Check if page already loaded (handles Chrome pre-navigation)
|
|
74
|
+
try {
|
|
75
|
+
const result = await cdp.send('Runtime.evaluate', {
|
|
76
|
+
expression: 'document.readyState',
|
|
77
|
+
returnByValue: true,
|
|
78
|
+
});
|
|
79
|
+
if (result.result?.value === 'complete') {
|
|
80
|
+
// Load event already fired
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Ignore evaluation errors, proceed to wait for event
|
|
86
|
+
}
|
|
87
|
+
return new Promise((resolve, reject) => {
|
|
88
|
+
let timeout;
|
|
89
|
+
let handlerId;
|
|
90
|
+
const cleanup = () => {
|
|
91
|
+
clearTimeout(timeout);
|
|
92
|
+
if (handlerId !== undefined) {
|
|
93
|
+
cdp.off('Page.loadEventFired', handlerId);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const checkDeadline = () => {
|
|
97
|
+
if (Date.now() >= deadline) {
|
|
98
|
+
cleanup();
|
|
99
|
+
reject(new Error('Load event timeout'));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
timeout = setTimeout(checkDeadline, 100);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const loadHandler = () => {
|
|
106
|
+
cleanup();
|
|
107
|
+
resolve();
|
|
108
|
+
};
|
|
109
|
+
handlerId = cdp.on('Page.loadEventFired', loadHandler);
|
|
110
|
+
checkDeadline();
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Wait for network to stabilize using adaptive thresholds
|
|
115
|
+
*
|
|
116
|
+
* LEARNING PHASE (first 2s):
|
|
117
|
+
* - Track request intervals
|
|
118
|
+
* - Calculate average request frequency
|
|
119
|
+
*
|
|
120
|
+
* DETECTION PHASE:
|
|
121
|
+
* - Fast pattern (avg \< 100ms): 200ms idle = stable
|
|
122
|
+
* - Steady pattern (100-500ms): 500ms idle = stable
|
|
123
|
+
* - Slow pattern (\> 500ms): 1000ms idle = stable
|
|
124
|
+
*
|
|
125
|
+
* Why this works:
|
|
126
|
+
* - Fast sites: Quick bursts, fast stabilization
|
|
127
|
+
* - SSR apps: Steady hydration requests, medium wait
|
|
128
|
+
* - API-heavy: Slow requests, longer patience
|
|
129
|
+
*
|
|
130
|
+
* Framework-agnostic - adapts to actual behavior.
|
|
131
|
+
*
|
|
132
|
+
* @param cdp - CDP connection
|
|
133
|
+
* @param deadline - Timestamp when to timeout
|
|
134
|
+
* @returns Actual idle duration detected
|
|
135
|
+
* @throws Error if deadline exceeded
|
|
136
|
+
*/
|
|
137
|
+
async function waitForNetworkStable(cdp, deadline) {
|
|
138
|
+
await cdp.send('Network.enable');
|
|
139
|
+
let activeRequests = 0;
|
|
140
|
+
let lastActivity = Date.now();
|
|
141
|
+
const intervals = [];
|
|
142
|
+
let lastRequestTime = Date.now();
|
|
143
|
+
// Track request patterns
|
|
144
|
+
const requestHandler = () => {
|
|
145
|
+
const now = Date.now();
|
|
146
|
+
const interval = now - lastRequestTime;
|
|
147
|
+
if (interval < 5000)
|
|
148
|
+
intervals.push(interval);
|
|
149
|
+
lastRequestTime = now;
|
|
150
|
+
activeRequests++;
|
|
151
|
+
lastActivity = now;
|
|
152
|
+
};
|
|
153
|
+
const finishHandler = () => {
|
|
154
|
+
activeRequests--;
|
|
155
|
+
if (activeRequests === 0) {
|
|
156
|
+
lastActivity = Date.now();
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
const requestHandlerId = cdp.on('Network.requestWillBeSent', requestHandler);
|
|
160
|
+
const loadingFinishedId = cdp.on('Network.loadingFinished', finishHandler);
|
|
161
|
+
const loadingFailedId = cdp.on('Network.loadingFailed', finishHandler);
|
|
162
|
+
try {
|
|
163
|
+
// Use fixed threshold for immediate detection
|
|
164
|
+
const idleThreshold = 200; // 200ms idle = network stable
|
|
165
|
+
// Detection phase: wait for stability
|
|
166
|
+
while (Date.now() < deadline) {
|
|
167
|
+
if (activeRequests === 0) {
|
|
168
|
+
const idleTime = Date.now() - lastActivity;
|
|
169
|
+
if (idleTime >= idleThreshold) {
|
|
170
|
+
return idleTime; // Success!
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
await delay(50); // Check every 50ms
|
|
174
|
+
}
|
|
175
|
+
throw new Error('Network stability timeout');
|
|
176
|
+
}
|
|
177
|
+
finally {
|
|
178
|
+
// Cleanup handlers
|
|
179
|
+
cdp.off('Network.requestWillBeSent', requestHandlerId);
|
|
180
|
+
cdp.off('Network.loadingFinished', loadingFinishedId);
|
|
181
|
+
cdp.off('Network.loadingFailed', loadingFailedId);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Wait for DOM to stabilize using adaptive thresholds
|
|
186
|
+
*
|
|
187
|
+
* HOW IT WORKS:
|
|
188
|
+
* 1. Inject MutationObserver into page
|
|
189
|
+
* 2. Track mutation rate for 1 second
|
|
190
|
+
* 3. Calculate adaptive stability threshold:
|
|
191
|
+
* - High rate (\>50 mutations/sec): 1000ms no-change = stable
|
|
192
|
+
* - Medium rate (10-50 mutations/sec): 500ms no-change = stable
|
|
193
|
+
* - Low rate (\<10 mutations/sec): 300ms no-change = stable
|
|
194
|
+
* 4. Wait for DOM to remain unchanged for threshold duration
|
|
195
|
+
*
|
|
196
|
+
* Why this works:
|
|
197
|
+
* - SSR hydration causes DOM mutations
|
|
198
|
+
* - React/Vue/Svelte all mutate during hydration
|
|
199
|
+
* - When mutations stop, hydration is complete
|
|
200
|
+
*
|
|
201
|
+
* Framework-agnostic - detects actual mutations.
|
|
202
|
+
*
|
|
203
|
+
* @param cdp - CDP connection
|
|
204
|
+
* @param deadline - Timestamp when to timeout
|
|
205
|
+
* @returns Actual stable duration detected
|
|
206
|
+
* @throws Error if deadline exceeded
|
|
207
|
+
*/
|
|
208
|
+
async function waitForDOMStable(cdp, deadline) {
|
|
209
|
+
// Inject mutation observer
|
|
210
|
+
await cdp.send('Runtime.evaluate', {
|
|
211
|
+
expression: `
|
|
212
|
+
window.__bdg_mutations = 0;
|
|
213
|
+
window.__bdg_lastMutation = Date.now();
|
|
214
|
+
|
|
215
|
+
const observer = new MutationObserver(() => {
|
|
216
|
+
window.__bdg_mutations++;
|
|
217
|
+
window.__bdg_lastMutation = Date.now();
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
observer.observe(document.body, {
|
|
221
|
+
childList: true,
|
|
222
|
+
subtree: true,
|
|
223
|
+
attributes: true,
|
|
224
|
+
characterData: true
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
window.__bdg_observer = observer;
|
|
228
|
+
`,
|
|
229
|
+
});
|
|
230
|
+
try {
|
|
231
|
+
// Use fixed threshold for immediate detection
|
|
232
|
+
const stableThreshold = 300; // 300ms no mutations = DOM stable
|
|
233
|
+
// Detection phase: wait for stability
|
|
234
|
+
while (Date.now() < deadline) {
|
|
235
|
+
const checkResult = await cdp.send('Runtime.evaluate', {
|
|
236
|
+
expression: 'Date.now() - window.__bdg_lastMutation',
|
|
237
|
+
returnByValue: true,
|
|
238
|
+
});
|
|
239
|
+
const timeSinceLastMutation = checkResult.result?.value ?? 0;
|
|
240
|
+
if (timeSinceLastMutation >= stableThreshold) {
|
|
241
|
+
return timeSinceLastMutation; // Success!
|
|
242
|
+
}
|
|
243
|
+
await delay(100); // Check every 100ms
|
|
244
|
+
}
|
|
245
|
+
throw new Error('DOM stability timeout');
|
|
246
|
+
}
|
|
247
|
+
finally {
|
|
248
|
+
// Cleanup observer
|
|
249
|
+
await cdp
|
|
250
|
+
.send('Runtime.evaluate', {
|
|
251
|
+
expression: `
|
|
252
|
+
window.__bdg_observer?.disconnect();
|
|
253
|
+
delete window.__bdg_observer;
|
|
254
|
+
delete window.__bdg_mutations;
|
|
255
|
+
delete window.__bdg_lastMutation;
|
|
256
|
+
`,
|
|
257
|
+
})
|
|
258
|
+
.catch(() => {
|
|
259
|
+
// Ignore cleanup errors
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Delay utility
|
|
265
|
+
*
|
|
266
|
+
* @param ms - Milliseconds to delay
|
|
267
|
+
*/
|
|
268
|
+
function delay(ms) {
|
|
269
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=pageReadiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageReadiness.js","sourceRoot":"","sources":["../../src/utils/pageReadiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI utilities for enhanced terminal output.
|
|
3
|
+
*
|
|
4
|
+
* WHY: Provides visual feedback and branding for CLI operations.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Options for the landing page display.
|
|
8
|
+
*/
|
|
9
|
+
export interface LandingPageOptions {
|
|
10
|
+
/** Target URL being monitored */
|
|
11
|
+
url: string;
|
|
12
|
+
/** Worker process ID */
|
|
13
|
+
workerPid: number;
|
|
14
|
+
/** Chrome process ID */
|
|
15
|
+
chromePid: number;
|
|
16
|
+
/** Collectors enabled */
|
|
17
|
+
collectors: string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Generate the landing page display for session start.
|
|
21
|
+
*
|
|
22
|
+
* @param options - Landing page options
|
|
23
|
+
* @returns Formatted landing page string
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* landingPage({
|
|
28
|
+
* url: 'http://localhost:3000',
|
|
29
|
+
* workerPid: 12345,
|
|
30
|
+
* chromePid: 12346,
|
|
31
|
+
* collectors: ['network', 'console', 'dom']
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function landingPage(options: LandingPageOptions): string;
|
|
36
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA2B/D"}
|
package/dist/utils/ui.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI utilities for enhanced terminal output.
|
|
3
|
+
*
|
|
4
|
+
* WHY: Provides visual feedback and branding for CLI operations.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Generate the landing page display for session start.
|
|
8
|
+
*
|
|
9
|
+
* @param options - Landing page options
|
|
10
|
+
* @returns Formatted landing page string
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* landingPage({
|
|
15
|
+
* url: 'http://localhost:3000',
|
|
16
|
+
* workerPid: 12345,
|
|
17
|
+
* chromePid: 12346,
|
|
18
|
+
* collectors: ['network', 'console', 'dom']
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export function landingPage(options) {
|
|
23
|
+
const { url, workerPid, chromePid, collectors } = options;
|
|
24
|
+
const lines = [];
|
|
25
|
+
lines.push('');
|
|
26
|
+
lines.push(' bdg');
|
|
27
|
+
lines.push('');
|
|
28
|
+
lines.push(' ▲ Session Started');
|
|
29
|
+
lines.push('');
|
|
30
|
+
lines.push(` ○ Target ${url}`);
|
|
31
|
+
lines.push(` ○ Chrome PID ${chromePid}`);
|
|
32
|
+
lines.push(` ○ Worker PID ${workerPid}`);
|
|
33
|
+
lines.push(` ○ Collecting ${collectors.join(', ')}`);
|
|
34
|
+
lines.push('');
|
|
35
|
+
lines.push(' Ready — use these commands:');
|
|
36
|
+
lines.push('');
|
|
37
|
+
lines.push(' bdg status Session info');
|
|
38
|
+
lines.push(' bdg peek Preview data');
|
|
39
|
+
lines.push(' bdg cdp <method> [params] Execute CDP commands');
|
|
40
|
+
lines.push(' bdg stop Stop & save');
|
|
41
|
+
lines.push('');
|
|
42
|
+
lines.push(' 💡 Run any Chrome DevTools Protocol command:');
|
|
43
|
+
lines.push(' bdg cdp Runtime.evaluate \'{"expression": "document.title"}\'');
|
|
44
|
+
lines.push('');
|
|
45
|
+
return lines.join('\n');
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,qBAAqB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;IAClF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/utils/url.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL normalization and validation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Note: Display formatting functions (truncateUrl, truncateText) have been
|
|
5
|
+
* moved to \@/ui/formatting.js as part of UI centralization.
|
|
6
|
+
*/
|
|
1
7
|
/**
|
|
2
8
|
* Normalize a URL by adding http:// protocol if missing.
|
|
3
9
|
*
|
|
@@ -17,30 +23,6 @@
|
|
|
17
23
|
* ```
|
|
18
24
|
*/
|
|
19
25
|
export declare function normalizeUrl(url: string): string;
|
|
20
|
-
/**
|
|
21
|
-
* Truncate a URL for compact display.
|
|
22
|
-
*
|
|
23
|
-
* Removes www. prefix, shortens long paths with ellipsis, and truncates to maxLength.
|
|
24
|
-
*
|
|
25
|
-
* @param url - URL string to truncate
|
|
26
|
-
* @param maxLength - Maximum length of output (default: 60)
|
|
27
|
-
* @returns Truncated URL for display
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```typescript
|
|
31
|
-
* truncateUrl('https://i.clarity.ms/collect')
|
|
32
|
-
* // → 'clarity.ms/collect'
|
|
33
|
-
* truncateUrl('https://aswpapius.com/api/web-channels/47d7def8-d602-49ec-bfdb-c959b1346774')
|
|
34
|
-
* // → 'aswpapius.com/.../47d7def8'
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export declare function truncateUrl(url: string, maxLength?: number): string;
|
|
38
|
-
/**
|
|
39
|
-
* Truncate console message text (especially stack traces)
|
|
40
|
-
* @param text - The console message text
|
|
41
|
-
* @param maxLines - Maximum number of lines to show (default: 3)
|
|
42
|
-
*/
|
|
43
|
-
export declare function truncateText(text: string, maxLines?: number): string;
|
|
44
26
|
/**
|
|
45
27
|
* Validate that a URL is valid and usable for Chrome navigation.
|
|
46
28
|
*
|
package/dist/utils/url.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBhD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CA4CA"}
|
package/dist/utils/url.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* URL normalization and validation utilities.
|
|
3
|
+
*
|
|
4
|
+
* Note: Display formatting functions (truncateUrl, truncateText) have been
|
|
5
|
+
* moved to \@/ui/formatting.js as part of UI centralization.
|
|
6
|
+
*/
|
|
2
7
|
/**
|
|
3
8
|
* Normalize a URL by adding http:// protocol if missing.
|
|
4
9
|
*
|
|
@@ -32,72 +37,6 @@ export function normalizeUrl(url) {
|
|
|
32
37
|
}
|
|
33
38
|
return `http://${url}`;
|
|
34
39
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Truncate a URL for compact display.
|
|
37
|
-
*
|
|
38
|
-
* Removes www. prefix, shortens long paths with ellipsis, and truncates to maxLength.
|
|
39
|
-
*
|
|
40
|
-
* @param url - URL string to truncate
|
|
41
|
-
* @param maxLength - Maximum length of output (default: 60)
|
|
42
|
-
* @returns Truncated URL for display
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* truncateUrl('https://i.clarity.ms/collect')
|
|
47
|
-
* // → 'clarity.ms/collect'
|
|
48
|
-
* truncateUrl('https://aswpapius.com/api/web-channels/47d7def8-d602-49ec-bfdb-c959b1346774')
|
|
49
|
-
* // → 'aswpapius.com/.../47d7def8'
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
export function truncateUrl(url, maxLength = 60) {
|
|
53
|
-
const parsed = safeParseUrl(url);
|
|
54
|
-
if (!parsed) {
|
|
55
|
-
// Fallback: simple string truncation if URL parsing fails
|
|
56
|
-
return url.length > maxLength ? url.substring(0, maxLength - 3) + '...' : url;
|
|
57
|
-
}
|
|
58
|
-
// Remove www. prefix
|
|
59
|
-
const domain = parsed.hostname.replace(/^www\./, '');
|
|
60
|
-
// Get path without leading slash
|
|
61
|
-
const path = parsed.pathname.substring(1);
|
|
62
|
-
// Start with domain + path
|
|
63
|
-
let result = domain + (path ? `/${path}` : '');
|
|
64
|
-
// If still too long, truncate the path
|
|
65
|
-
if (result.length > maxLength) {
|
|
66
|
-
const pathParts = path.split('/');
|
|
67
|
-
if (pathParts.length > 2) {
|
|
68
|
-
// Show first part, ellipsis, and last part
|
|
69
|
-
const first = pathParts[0];
|
|
70
|
-
const last = pathParts[pathParts.length - 1];
|
|
71
|
-
if (first && last) {
|
|
72
|
-
result = `${domain}/${first}/.../${last}`;
|
|
73
|
-
// If still too long, truncate the last part
|
|
74
|
-
if (result.length > maxLength) {
|
|
75
|
-
const truncatedLast = last.substring(0, 8);
|
|
76
|
-
result = `${domain}/${first}/.../${truncatedLast}`;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
// Simple truncation
|
|
82
|
-
result = result.substring(0, maxLength - 3) + '...';
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return result;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Truncate console message text (especially stack traces)
|
|
89
|
-
* @param text - The console message text
|
|
90
|
-
* @param maxLines - Maximum number of lines to show (default: 3)
|
|
91
|
-
*/
|
|
92
|
-
export function truncateText(text, maxLines = 3) {
|
|
93
|
-
const lines = text.split('\n');
|
|
94
|
-
if (lines.length <= maxLines) {
|
|
95
|
-
return text;
|
|
96
|
-
}
|
|
97
|
-
const truncated = lines.slice(0, maxLines).join('\n');
|
|
98
|
-
const hiddenCount = lines.length - maxLines;
|
|
99
|
-
return `${truncated}\n ... (${hiddenCount} more lines)`;
|
|
100
|
-
}
|
|
101
40
|
/**
|
|
102
41
|
* Validate that a URL is valid and usable for Chrome navigation.
|
|
103
42
|
*
|
package/dist/utils/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,kDAAkD;IAClD,IACE,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;QAC1B,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;QAC7B,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;QAC3B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EACvB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,UAAU,GAAG,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IAKrC,YAAY;IACZ,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,qBAAqB;YAC5B,UAAU,EAAE,kDAAkD;SAC/D,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAErC,sBAAsB;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnC,2BAA2B;QAC3B,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAClF,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,sBAAsB,MAAM,CAAC,QAAQ,GAAG;gBAC/C,UAAU,EAAE,2DAA2D;aACxE,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtF,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,wBAAwB,GAAG,sBAAsB;gBACxD,UAAU,EAAE,8DAA8D;aAC3E,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,wBAAwB,GAAG,GAAG;YACrC,UAAU,EAAE,0DAA0D;SACvE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/cli/collectors/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsZzC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmD1D"}
|