browser-debugger-cli 0.7.2 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -6
- package/dist/cdp/protocol.d.ts +1 -1
- package/dist/cdp/protocol.js +1 -1
- package/dist/cdp/schema.d.ts +14 -1
- package/dist/cdp/schema.js +61 -7
- package/dist/commands/cdp.js +76 -23
- package/dist/commands/cleanup.d.ts +11 -0
- package/dist/commands/cleanup.js +167 -55
- package/dist/commands/console.d.ts +38 -2
- package/dist/commands/console.js +147 -62
- package/dist/commands/details.js +15 -4
- package/dist/commands/dom/DomElementResolver.d.ts +34 -72
- package/dist/commands/dom/DomElementResolver.js +93 -166
- package/dist/commands/dom/a11y.d.ts +10 -0
- package/dist/commands/dom/a11y.js +75 -34
- package/dist/commands/dom/eval.d.ts +15 -0
- package/dist/commands/dom/eval.js +68 -0
- package/dist/commands/dom/form.js +109 -199
- package/dist/commands/dom/formInteraction.d.ts +6 -1
- package/dist/commands/dom/formInteraction.js +319 -362
- package/dist/commands/dom/formSummary.d.ts +49 -0
- package/dist/commands/dom/formSummary.js +180 -0
- package/dist/commands/dom/frames.d.ts +13 -0
- package/dist/commands/dom/frames.js +43 -0
- package/dist/commands/dom/get.d.ts +21 -0
- package/dist/commands/dom/get.js +151 -0
- package/dist/commands/dom/helpers/index.d.ts +11 -0
- package/dist/commands/dom/helpers/index.js +10 -0
- package/dist/commands/dom/helpers/query.d.ts +105 -0
- package/dist/commands/dom/helpers/query.js +604 -0
- package/dist/commands/dom/helpers/runElementCommand.d.ts +64 -0
- package/dist/commands/dom/helpers/runElementCommand.js +130 -0
- package/dist/commands/dom/helpers/screenshot.d.ts +33 -0
- package/dist/commands/dom/helpers/screenshot.js +489 -0
- package/dist/commands/dom/index.d.ts +17 -3
- package/dist/commands/dom/index.js +61 -517
- package/dist/commands/dom/layout.d.ts +14 -0
- package/dist/commands/dom/layout.js +54 -0
- package/dist/commands/dom/listeners.d.ts +20 -0
- package/dist/commands/dom/listeners.js +64 -0
- package/dist/commands/dom/query.d.ts +14 -0
- package/dist/commands/dom/query.js +35 -0
- package/dist/commands/dom/screenshot.d.ts +31 -0
- package/dist/commands/dom/screenshot.js +272 -0
- package/dist/commands/dom/semanticUtils.d.ts +37 -0
- package/dist/commands/dom/semanticUtils.js +98 -0
- package/dist/commands/dom/wait.d.ts +13 -0
- package/dist/commands/dom/wait.js +83 -0
- package/dist/commands/helpJson.d.ts +4 -2
- package/dist/commands/helpJson.js +12 -32
- package/dist/commands/helpTopic.d.ts +32 -0
- package/dist/commands/helpTopic.js +58 -0
- package/dist/commands/network/har.js +50 -24
- package/dist/commands/network/list.js +97 -71
- package/dist/commands/network/shared.d.ts +9 -15
- package/dist/commands/network/shared.js +30 -51
- package/dist/commands/optionBehaviors.d.ts +1 -9
- package/dist/commands/optionBehaviors.js +148 -36
- package/dist/commands/page.d.ts +12 -0
- package/dist/commands/page.js +148 -0
- package/dist/commands/peek.js +64 -57
- package/dist/commands/sessions.d.ts +8 -0
- package/dist/commands/sessions.js +19 -0
- package/dist/commands/shared/CommandRunner.d.ts +18 -1
- package/dist/commands/shared/CommandRunner.js +83 -26
- package/dist/commands/shared/commonOptions.d.ts +10 -0
- package/dist/commands/shared/commonOptions.js +12 -0
- package/dist/commands/shared/daemonErrorHandler.d.ts +9 -0
- package/dist/commands/shared/daemonErrorHandler.js +31 -11
- package/dist/commands/shared/dataFetcher.d.ts +33 -10
- package/dist/commands/shared/dataFetcher.js +57 -20
- package/dist/commands/shared/followMode.d.ts +21 -4
- package/dist/commands/shared/followMode.js +34 -12
- package/dist/commands/shared/handleValidationError.d.ts +14 -0
- package/dist/commands/shared/handleValidationError.js +48 -0
- package/dist/commands/shared/optionTypes.d.ts +80 -25
- package/dist/commands/shared/outputFile.d.ts +33 -0
- package/dist/commands/shared/outputFile.js +78 -0
- package/dist/commands/shared/startHelpers.d.ts +5 -8
- package/dist/commands/shared/startHelpers.js +235 -37
- package/dist/commands/shared/validation.d.ts +43 -0
- package/dist/commands/shared/validation.js +102 -22
- package/dist/commands/start.d.ts +91 -1
- package/dist/commands/start.js +328 -40
- package/dist/commands/status.js +76 -17
- package/dist/commands/stop.js +21 -30
- package/dist/commands/tail.js +22 -44
- package/dist/commands/types.d.ts +2 -0
- package/dist/commands.js +4 -0
- package/dist/connection/cdp.d.ts +12 -6
- package/dist/connection/cdp.js +59 -16
- package/dist/connection/chromeIdentity.d.ts +65 -0
- package/dist/connection/chromeIdentity.js +143 -0
- package/dist/connection/diagnostics.d.ts +0 -9
- package/dist/connection/diagnostics.js +0 -13
- package/dist/connection/errors.d.ts +36 -1
- package/dist/connection/errors.js +43 -3
- package/dist/connection/handlers.d.ts +5 -5
- package/dist/connection/handlers.js +1 -1
- package/dist/connection/inFlightRequests.d.ts +33 -0
- package/dist/connection/inFlightRequests.js +52 -0
- package/dist/connection/launcher/binaryResolver.js +20 -7
- package/dist/connection/launcher/flagsBuilder.d.ts +24 -54
- package/dist/connection/launcher/flagsBuilder.js +65 -40
- package/dist/connection/launcher/preferencesLoader.js +27 -8
- package/dist/connection/launcher/profilePreferences.d.ts +47 -0
- package/dist/connection/launcher/profilePreferences.js +151 -0
- package/dist/connection/launcher.d.ts +22 -1
- package/dist/connection/launcher.js +89 -44
- package/dist/connection/pageReadiness.d.ts +5 -6
- package/dist/connection/pageReadiness.js +63 -120
- package/dist/connection/portReservation.d.ts +20 -0
- package/dist/connection/portReservation.js +52 -2
- package/dist/connection/startupExit.d.ts +45 -0
- package/dist/connection/startupExit.js +116 -0
- package/dist/connection/typed-cdp.d.ts +8 -6
- package/dist/connection/typed-cdp.js +5 -3
- package/dist/connection/types.d.ts +3 -0
- package/dist/constants.d.ts +27 -24
- package/dist/constants.js +37 -27
- package/dist/daemon/SessionController.d.ts +125 -0
- package/dist/daemon/SessionController.js +488 -0
- package/dist/daemon/errors.d.ts +15 -19
- package/dist/daemon/errors.js +18 -21
- package/dist/daemon/ipcServer.d.ts +44 -30
- package/dist/daemon/ipcServer.js +164 -132
- package/dist/daemon/launcher.d.ts +14 -21
- package/dist/daemon/launcher.js +94 -102
- package/dist/daemon/messages.d.ts +29 -0
- package/dist/daemon/messages.js +35 -0
- package/dist/daemon/patternDefinitions.d.ts +1 -1
- package/dist/daemon/patternDefinitions.js +3 -2
- package/dist/daemon/patternDetector.d.ts +13 -29
- package/dist/daemon/patternDetector.js +26 -47
- package/dist/daemon/server/SocketServer.d.ts +56 -2
- package/dist/daemon/server/SocketServer.js +130 -30
- package/dist/daemon/session/Session.d.ts +150 -0
- package/dist/daemon/session/Session.js +337 -0
- package/dist/daemon/session/TelemetryStore.d.ts +30 -0
- package/dist/daemon/session/TelemetryStore.js +44 -0
- package/dist/daemon/session/cdpSetup.d.ts +47 -0
- package/dist/daemon/session/cdpSetup.js +94 -0
- package/dist/daemon/session/chromeConnection.d.ts +47 -0
- package/dist/daemon/session/chromeConnection.js +215 -0
- package/dist/daemon/{worker → session}/collectors.d.ts +3 -3
- package/dist/daemon/{worker → session}/collectors.js +3 -3
- package/dist/daemon/session/commandRegistry.js +435 -0
- package/dist/daemon/session/interactions.d.ts +53 -0
- package/dist/daemon/session/interactions.js +71 -0
- package/dist/daemon/{worker → session}/plugins.d.ts +3 -3
- package/dist/daemon/session/plugins.js +219 -0
- package/dist/daemon/session/targetMismatch.d.ts +34 -0
- package/dist/daemon/session/targetMismatch.js +83 -0
- package/dist/daemon/session/teardown.d.ts +27 -0
- package/dist/daemon/session/teardown.js +128 -0
- package/dist/daemon/session/triggeredRequests.d.ts +67 -0
- package/dist/daemon/session/triggeredRequests.js +157 -0
- package/dist/daemon/session/types.d.ts +19 -0
- package/dist/daemon.d.ts +3 -4
- package/dist/daemon.js +19149 -24
- package/dist/{ui/errors → errors}/CommandError.js +1 -1
- package/dist/{ui/errors → errors}/index.d.ts +2 -0
- package/dist/errors/issues.d.ts +16 -0
- package/dist/errors/issues.js +11 -0
- package/dist/errors/messages.d.ts +908 -0
- package/dist/errors/messages.js +1653 -0
- package/dist/errors/notices.d.ts +30 -0
- package/dist/errors/notices.js +11 -0
- package/dist/{ui/errors → errors}/utils.js +1 -1
- package/dist/index.js +18828 -168
- package/dist/ipc/client.d.ts +56 -9
- package/dist/ipc/client.js +115 -19
- package/dist/ipc/index.d.ts +2 -2
- package/dist/ipc/index.js +2 -2
- package/dist/ipc/protocol/commands.d.ts +305 -59
- package/dist/ipc/protocol/commands.js +29 -21
- package/dist/ipc/protocol/domTypes.d.ts +487 -0
- package/dist/ipc/protocol/domTypes.js +10 -0
- package/dist/ipc/protocol/guards.d.ts +4 -4
- package/dist/ipc/protocol/guards.js +4 -4
- package/dist/ipc/protocol/messages.d.ts +9 -33
- package/dist/ipc/protocol/messages.js +1 -1
- package/dist/ipc/session/errors.d.ts +10 -2
- package/dist/ipc/session/errors.js +10 -2
- package/dist/ipc/session/lifecycle.d.ts +28 -23
- package/dist/ipc/session/queries.d.ts +26 -5
- package/dist/ipc/session/types.d.ts +6 -1
- package/dist/ipc/session/types.js +1 -1
- package/dist/ipc/transport/IPCError.d.ts +3 -3
- package/dist/ipc/transport/IPCError.js +3 -3
- package/dist/ipc/transport/index.d.ts +8 -1
- package/dist/ipc/transport/index.js +8 -3
- package/dist/ipc/transport/jsonl.d.ts +28 -2
- package/dist/ipc/transport/jsonl.js +57 -10
- package/dist/ipc/utils/errors.d.ts +4 -2
- package/dist/ipc/utils/errors.js +10 -4
- package/dist/ipc/utils/index.d.ts +0 -1
- package/dist/ipc/utils/index.js +0 -1
- package/dist/ipc/utils/responseValidator.d.ts +5 -1
- package/dist/ipc/utils/responseValidator.js +7 -3
- package/dist/runtime/dom/actionEffects.d.ts +106 -0
- package/dist/runtime/dom/actionEffects.js +256 -0
- package/dist/runtime/dom/actionEffectsScripts.d.ts +52 -0
- package/dist/runtime/dom/actionEffectsScripts.js +234 -0
- package/dist/runtime/dom/elementGeometry.d.ts +170 -0
- package/dist/runtime/dom/elementGeometry.js +553 -0
- package/dist/runtime/dom/elementInfo.d.ts +77 -0
- package/dist/runtime/dom/elementInfo.js +191 -0
- package/dist/runtime/dom/evalHelpers.d.ts +121 -0
- package/dist/runtime/dom/evalHelpers.js +516 -0
- package/dist/runtime/dom/eventListeners.d.ts +24 -0
- package/dist/runtime/dom/eventListeners.js +379 -0
- package/dist/runtime/dom/formDiscovery.d.ts +26 -0
- package/dist/{commands → runtime}/dom/formDiscovery.js +163 -24
- package/dist/runtime/dom/formFillHelpers/fill.d.ts +39 -0
- package/dist/runtime/dom/formFillHelpers/fill.js +414 -0
- package/dist/runtime/dom/formFillHelpers/index.d.ts +17 -0
- package/dist/runtime/dom/formFillHelpers/index.js +17 -0
- package/dist/runtime/dom/formFillHelpers/pressKey.d.ts +28 -0
- package/dist/runtime/dom/formFillHelpers/pressKey.js +206 -0
- package/dist/runtime/dom/formFillHelpers/scroll.d.ts +27 -0
- package/dist/runtime/dom/formFillHelpers/scroll.js +230 -0
- package/dist/runtime/dom/formFillHelpers/shared.d.ts +60 -0
- package/dist/runtime/dom/formFillHelpers/shared.js +124 -0
- package/dist/runtime/dom/formFillHelpers/stability.d.ts +28 -0
- package/dist/runtime/dom/formFillHelpers/stability.js +71 -0
- package/dist/runtime/dom/formSubmitHelpers.d.ts +32 -0
- package/dist/runtime/dom/formSubmitHelpers.js +326 -0
- package/dist/runtime/dom/formTypes.d.ts +8 -0
- package/dist/runtime/dom/frameLayout.d.ts +60 -0
- package/dist/runtime/dom/frameLayout.js +140 -0
- package/dist/runtime/dom/frameOrigin.d.ts +50 -0
- package/dist/runtime/dom/frameOrigin.js +62 -0
- package/dist/runtime/dom/frameScopedConnection.d.ts +92 -0
- package/dist/runtime/dom/frameScopedConnection.js +252 -0
- package/dist/runtime/dom/frameSelection.d.ts +27 -0
- package/dist/runtime/dom/frameSelection.js +66 -0
- package/dist/runtime/dom/frames.d.ts +61 -0
- package/dist/runtime/dom/frames.js +444 -0
- package/dist/runtime/dom/keyMapping.d.ts +103 -0
- package/dist/runtime/dom/keyMapping.js +232 -0
- package/dist/runtime/dom/layout.d.ts +67 -0
- package/dist/runtime/dom/layout.js +333 -0
- package/dist/runtime/dom/listenerPageScripts.d.ts +66 -0
- package/dist/runtime/dom/listenerPageScripts.js +279 -0
- package/dist/runtime/dom/listenerSummary.d.ts +193 -0
- package/dist/runtime/dom/listenerSummary.js +472 -0
- package/dist/runtime/dom/pageActivity.d.ts +41 -0
- package/dist/runtime/dom/pageActivity.js +123 -0
- package/dist/runtime/dom/reactEventHelpers.d.ts +117 -0
- package/dist/runtime/dom/reactEventHelpers.js +641 -0
- package/dist/runtime/dom/targetNode.d.ts +131 -0
- package/dist/runtime/dom/targetNode.js +370 -0
- package/dist/runtime/dom/wait.d.ts +25 -0
- package/dist/runtime/dom/wait.js +199 -0
- package/dist/runtime/dom/waitCondition.d.ts +71 -0
- package/dist/runtime/dom/waitCondition.js +75 -0
- package/dist/runtime/page/emulation.d.ts +51 -0
- package/dist/runtime/page/emulation.js +80 -0
- package/dist/runtime/page/loadingState.d.ts +36 -0
- package/dist/runtime/page/loadingState.js +86 -0
- package/dist/runtime/page/navigation.d.ts +78 -0
- package/dist/runtime/page/navigation.js +285 -0
- package/dist/session/QueryCacheManager.d.ts +36 -83
- package/dist/session/QueryCacheManager.js +63 -133
- package/dist/session/chrome.d.ts +21 -16
- package/dist/session/chrome.js +28 -44
- package/dist/session/chromeOwners.d.ts +34 -0
- package/dist/session/chromeOwners.js +51 -0
- package/dist/session/cleanup/staleSession.d.ts +59 -0
- package/dist/session/cleanup/staleSession.js +135 -0
- package/dist/session/cleanup/userCommands.d.ts +36 -0
- package/dist/session/cleanup/userCommands.js +93 -0
- package/dist/session/daemonSocket.d.ts +25 -0
- package/dist/session/daemonSocket.js +40 -0
- package/dist/session/lastSession.d.ts +29 -0
- package/dist/session/lastSession.js +45 -0
- package/dist/session/metadata.d.ts +7 -1
- package/dist/session/metadata.js +2 -1
- package/dist/session/paths.d.ts +79 -7
- package/dist/session/paths.js +113 -9
- package/dist/session/pid.d.ts +9 -38
- package/dist/session/pid.js +14 -64
- package/dist/session/port.d.ts +31 -12
- package/dist/session/port.js +56 -59
- package/dist/session/portClaims.d.ts +66 -0
- package/dist/session/portClaims.js +284 -0
- package/dist/session/sessionList.d.ts +58 -0
- package/dist/session/sessionList.js +199 -0
- package/dist/session/sessionName.d.ts +46 -0
- package/dist/session/sessionName.js +97 -0
- package/dist/telemetry/a11y.d.ts +31 -20
- package/dist/telemetry/a11y.js +304 -107
- package/dist/telemetry/attachedTargets.d.ts +36 -0
- package/dist/telemetry/attachedTargets.js +163 -0
- package/dist/telemetry/console.d.ts +21 -4
- package/dist/telemetry/console.js +122 -11
- package/dist/telemetry/dialogs.d.ts +4 -2
- package/dist/telemetry/dialogs.js +3 -1
- package/dist/telemetry/dom.d.ts +1 -11
- package/dist/telemetry/dom.js +0 -102
- package/dist/telemetry/filterDsl.d.ts +9 -1
- package/dist/telemetry/filterDsl.js +101 -31
- package/dist/telemetry/filterPresets.js +12 -2
- package/dist/telemetry/filters.d.ts +1 -1
- package/dist/telemetry/filters.js +38 -3
- package/dist/telemetry/har/builder.js +190 -160
- package/dist/telemetry/har/types.d.ts +21 -4
- package/dist/telemetry/navigation.d.ts +13 -29
- package/dist/telemetry/navigation.js +12 -46
- package/dist/telemetry/network.d.ts +37 -1
- package/dist/telemetry/network.js +343 -130
- package/dist/telemetry/networkExtraInfo.d.ts +106 -0
- package/dist/telemetry/networkExtraInfo.js +241 -0
- package/dist/telemetry/objectExpander.d.ts +14 -5
- package/dist/telemetry/objectExpander.js +13 -6
- package/dist/telemetry/remoteObject.d.ts +10 -2
- package/dist/telemetry/remoteObject.js +59 -2
- package/dist/telemetry/remoteObjectUtils.js +22 -3
- package/dist/telemetry/requestKinds.d.ts +32 -0
- package/dist/telemetry/requestKinds.js +61 -0
- package/dist/telemetry/requestState.d.ts +31 -0
- package/dist/telemetry/requestState.js +38 -0
- package/dist/types.d.ts +143 -46
- package/dist/types.js +1 -33
- package/dist/ui/OutputBuilder.d.ts +17 -14
- package/dist/ui/OutputBuilder.js +18 -87
- package/dist/ui/formatters/a11y.js +75 -9
- package/dist/ui/formatters/console/chronological.d.ts +22 -0
- package/dist/ui/formatters/console/chronological.js +71 -0
- package/dist/ui/formatters/console/follow.d.ts +18 -0
- package/dist/ui/formatters/console/follow.js +36 -0
- package/dist/ui/formatters/console/json.d.ts +21 -0
- package/dist/ui/formatters/console/json.js +52 -0
- package/dist/ui/formatters/console/shared.d.ts +148 -0
- package/dist/ui/formatters/console/shared.js +158 -0
- package/dist/ui/formatters/console/summarize.d.ts +10 -0
- package/dist/ui/formatters/console/summarize.js +63 -0
- package/dist/ui/formatters/console.d.ts +16 -137
- package/dist/ui/formatters/console.js +17 -418
- package/dist/ui/formatters/cookies.js +3 -3
- package/dist/ui/formatters/details.d.ts +5 -2
- package/dist/ui/formatters/details.js +184 -24
- package/dist/ui/formatters/dom.d.ts +42 -9
- package/dist/ui/formatters/dom.js +99 -34
- package/dist/ui/formatters/form.js +62 -72
- package/dist/ui/formatters/helpFormatters.js +5 -4
- package/dist/ui/formatters/layout.d.ts +31 -0
- package/dist/ui/formatters/layout.js +53 -0
- package/dist/ui/formatters/listeners.d.ts +25 -0
- package/dist/ui/formatters/listeners.js +160 -0
- package/dist/ui/formatters/networkHeaders.d.ts +3 -3
- package/dist/ui/formatters/networkHeaders.js +20 -4
- package/dist/ui/formatters/networkList.d.ts +14 -2
- package/dist/ui/formatters/networkList.js +80 -35
- package/dist/ui/formatters/preview.d.ts +21 -3
- package/dist/ui/formatters/preview.js +55 -73
- package/dist/ui/formatters/requestStatus.d.ts +18 -0
- package/dist/ui/formatters/requestStatus.js +27 -0
- package/dist/ui/formatters/semantic.d.ts +1 -1
- package/dist/ui/formatters/semantic.js +1 -1
- package/dist/ui/formatters/sessions.d.ts +12 -0
- package/dist/ui/formatters/sessions.js +40 -0
- package/dist/ui/formatters/status.d.ts +44 -7
- package/dist/ui/formatters/status.js +89 -28
- package/dist/ui/formatters/triggeredRequests.d.ts +36 -0
- package/dist/ui/formatters/triggeredRequests.js +65 -0
- package/dist/ui/formatting.d.ts +45 -0
- package/dist/ui/formatting.js +115 -24
- package/dist/ui/logging/logger.d.ts +1 -1
- package/dist/ui/messages/chrome.d.ts +41 -97
- package/dist/ui/messages/chrome.js +110 -132
- package/dist/ui/messages/commands.d.ts +495 -3
- package/dist/ui/messages/commands.js +796 -6
- package/dist/ui/messages/consoleMessages.d.ts +7 -3
- package/dist/ui/messages/consoleMessages.js +13 -4
- package/dist/ui/messages/hints.d.ts +9 -15
- package/dist/ui/messages/hints.js +18 -16
- package/dist/ui/messages/networkMessages.d.ts +0 -6
- package/dist/ui/messages/networkMessages.js +0 -8
- package/dist/ui/messages/preview.js +5 -4
- package/dist/ui/messages/session.d.ts +37 -21
- package/dist/ui/messages/session.js +59 -26
- package/dist/ui/messages/sessionCommand.d.ts +43 -0
- package/dist/ui/messages/sessionCommand.js +52 -0
- package/dist/ui/messages/validation.d.ts +15 -26
- package/dist/ui/messages/validation.js +33 -38
- package/dist/utils/async.d.ts +8 -0
- package/dist/utils/async.js +19 -0
- package/dist/utils/atomicFile.js +1 -1
- package/dist/utils/decisionTrees.js +1 -1
- package/dist/utils/errorMapping.js +15 -4
- package/dist/utils/errors.d.ts +13 -0
- package/dist/utils/errors.js +21 -0
- package/dist/utils/exitCodes.d.ts +5 -0
- package/dist/utils/exitCodes.js +36 -2
- package/dist/utils/http.d.ts +56 -4
- package/dist/utils/http.js +78 -6
- package/dist/utils/packageRoot.d.ts +12 -0
- package/dist/utils/packageRoot.js +33 -0
- package/dist/utils/process.d.ts +10 -0
- package/dist/utils/process.js +35 -3
- package/dist/utils/selectorFilters.d.ts +73 -0
- package/dist/utils/selectorFilters.js +438 -0
- package/dist/utils/shellDetection.d.ts +8 -2
- package/dist/utils/shellDetection.js +120 -33
- package/dist/utils/suggestions.d.ts +26 -0
- package/dist/utils/suggestions.js +74 -1
- package/dist/utils/taskMappings.js +17 -2
- package/dist/utils/typeGuards.js +2 -2
- package/dist/utils/url.d.ts +23 -5
- package/dist/utils/url.js +115 -52
- package/dist/utils/validation.d.ts +15 -93
- package/dist/utils/validation.js +10 -118
- package/dist/utils/version.js +3 -5
- package/package.json +39 -30
- package/dist/__testfixtures__/cdpMessages.d.ts +0 -43
- package/dist/__testfixtures__/cdpMessages.d.ts.map +0 -1
- package/dist/__testfixtures__/cdpMessages.js +0 -118
- package/dist/__testfixtures__/cdpMessages.js.map +0 -1
- package/dist/__testfixtures__/connectionTargets.d.ts +0 -21
- package/dist/__testfixtures__/connectionTargets.d.ts.map +0 -1
- package/dist/__testfixtures__/connectionTargets.js +0 -59
- package/dist/__testfixtures__/connectionTargets.js.map +0 -1
- package/dist/__tests__/fixtures/schema-v0.2.1.golden.json +0 -47
- package/dist/__tests__/integration/session-files.integration.test.d.ts +0 -2
- package/dist/__tests__/integration/session-files.integration.test.d.ts.map +0 -1
- package/dist/__tests__/integration/session-files.integration.test.js +0 -66
- package/dist/__tests__/integration/session-files.integration.test.js.map +0 -1
- package/dist/__tests__/schema.contract.test.d.ts +0 -19
- package/dist/__tests__/schema.contract.test.d.ts.map +0 -1
- package/dist/__tests__/schema.contract.test.js +0 -236
- package/dist/__tests__/schema.contract.test.js.map +0 -1
- package/dist/__tests__/smoke/error-handling.smoke.test.d.ts +0 -8
- package/dist/__tests__/smoke/error-handling.smoke.test.d.ts.map +0 -1
- package/dist/__tests__/smoke/error-handling.smoke.test.js +0 -66
- package/dist/__tests__/smoke/error-handling.smoke.test.js.map +0 -1
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts +0 -8
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.d.ts.map +0 -1
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js +0 -112
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js.map +0 -1
- package/dist/__tests__/telemetry/filterDsl.unit.test.d.ts +0 -12
- package/dist/__tests__/telemetry/filterDsl.unit.test.d.ts.map +0 -1
- package/dist/__tests__/telemetry/filterDsl.unit.test.js +0 -374
- package/dist/__tests__/telemetry/filterDsl.unit.test.js.map +0 -1
- package/dist/__tests__/telemetry/filterPresets.unit.test.d.ts +0 -10
- package/dist/__tests__/telemetry/filterPresets.unit.test.d.ts.map +0 -1
- package/dist/__tests__/telemetry/filterPresets.unit.test.js +0 -89
- package/dist/__tests__/telemetry/filterPresets.unit.test.js.map +0 -1
- package/dist/__testutils__/FakeClock.d.ts +0 -67
- package/dist/__testutils__/FakeClock.d.ts.map +0 -1
- package/dist/__testutils__/FakeClock.js +0 -132
- package/dist/__testutils__/FakeClock.js.map +0 -1
- package/dist/__testutils__/FakeWebSocket.d.ts +0 -106
- package/dist/__testutils__/FakeWebSocket.d.ts.map +0 -1
- package/dist/__testutils__/FakeWebSocket.js +0 -213
- package/dist/__testutils__/FakeWebSocket.js.map +0 -1
- package/dist/__testutils__/assertions.d.ts +0 -33
- package/dist/__testutils__/assertions.d.ts.map +0 -1
- package/dist/__testutils__/assertions.js +0 -57
- package/dist/__testutils__/assertions.js.map +0 -1
- package/dist/__testutils__/commandRunner.d.ts +0 -45
- package/dist/__testutils__/commandRunner.d.ts.map +0 -1
- package/dist/__testutils__/commandRunner.js +0 -108
- package/dist/__testutils__/commandRunner.js.map +0 -1
- package/dist/__testutils__/daemonHelpers.d.ts +0 -93
- package/dist/__testutils__/daemonHelpers.d.ts.map +0 -1
- package/dist/__testutils__/daemonHelpers.js +0 -255
- package/dist/__testutils__/daemonHelpers.js.map +0 -1
- package/dist/__testutils__/index.d.ts +0 -16
- package/dist/__testutils__/index.d.ts.map +0 -1
- package/dist/__testutils__/index.js +0 -16
- package/dist/__testutils__/index.js.map +0 -1
- package/dist/__testutils__/testCleanup.d.ts +0 -45
- package/dist/__testutils__/testCleanup.d.ts.map +0 -1
- package/dist/__testutils__/testCleanup.js +0 -87
- package/dist/__testutils__/testCleanup.js.map +0 -1
- package/dist/__testutils__/testClock.d.ts +0 -28
- package/dist/__testutils__/testClock.d.ts.map +0 -1
- package/dist/__testutils__/testClock.js +0 -81
- package/dist/__testutils__/testClock.js.map +0 -1
- package/dist/__testutils__/testFixtures.d.ts +0 -15
- package/dist/__testutils__/testFixtures.d.ts.map +0 -1
- package/dist/__testutils__/testFixtures.js +0 -23
- package/dist/__testutils__/testFixtures.js.map +0 -1
- package/dist/__testutils__/testHome.d.ts +0 -26
- package/dist/__testutils__/testHome.d.ts.map +0 -1
- package/dist/__testutils__/testHome.js +0 -57
- package/dist/__testutils__/testHome.js.map +0 -1
- package/dist/__testutils__/testProcess.d.ts +0 -46
- package/dist/__testutils__/testProcess.d.ts.map +0 -1
- package/dist/__testutils__/testProcess.js +0 -85
- package/dist/__testutils__/testProcess.js.map +0 -1
- package/dist/cdp/protocol.d.ts.map +0 -1
- package/dist/cdp/protocol.js.map +0 -1
- package/dist/cdp/schema.d.ts.map +0 -1
- package/dist/cdp/schema.js.map +0 -1
- package/dist/cdp/types.d.ts.map +0 -1
- package/dist/cdp/types.js.map +0 -1
- package/dist/commands/__tests__/cdp.contract.test.d.ts +0 -24
- package/dist/commands/__tests__/cdp.contract.test.d.ts.map +0 -1
- package/dist/commands/__tests__/cdp.contract.test.js +0 -466
- package/dist/commands/__tests__/cdp.contract.test.js.map +0 -1
- package/dist/commands/__tests__/console.contract.test.d.ts +0 -9
- package/dist/commands/__tests__/console.contract.test.d.ts.map +0 -1
- package/dist/commands/__tests__/console.contract.test.js +0 -118
- package/dist/commands/__tests__/console.contract.test.js.map +0 -1
- package/dist/commands/__tests__/domEval.contract.test.d.ts +0 -17
- package/dist/commands/__tests__/domEval.contract.test.d.ts.map +0 -1
- package/dist/commands/__tests__/domEval.contract.test.js +0 -235
- package/dist/commands/__tests__/domEval.contract.test.js.map +0 -1
- package/dist/commands/__tests__/helpJson.contract.test.d.ts +0 -12
- package/dist/commands/__tests__/helpJson.contract.test.d.ts.map +0 -1
- package/dist/commands/__tests__/helpJson.contract.test.js +0 -121
- package/dist/commands/__tests__/helpJson.contract.test.js.map +0 -1
- package/dist/commands/__tests__/machineReadableHelp.contract.test.d.ts +0 -12
- package/dist/commands/__tests__/machineReadableHelp.contract.test.d.ts.map +0 -1
- package/dist/commands/__tests__/machineReadableHelp.contract.test.js +0 -121
- package/dist/commands/__tests__/machineReadableHelp.contract.test.js.map +0 -1
- package/dist/commands/cdp.d.ts.map +0 -1
- package/dist/commands/cdp.js.map +0 -1
- package/dist/commands/cleanup.d.ts.map +0 -1
- package/dist/commands/cleanup.js.map +0 -1
- package/dist/commands/console.d.ts.map +0 -1
- package/dist/commands/console.js.map +0 -1
- package/dist/commands/details.d.ts.map +0 -1
- package/dist/commands/details.js.map +0 -1
- package/dist/commands/dom/DomElementResolver.d.ts.map +0 -1
- package/dist/commands/dom/DomElementResolver.js.map +0 -1
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts +0 -2
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.d.ts.map +0 -1
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.js +0 -184
- package/dist/commands/dom/__tests__/screenshotResize.unit.test.js.map +0 -1
- package/dist/commands/dom/a11y.d.ts.map +0 -1
- package/dist/commands/dom/a11y.js.map +0 -1
- package/dist/commands/dom/evalHelpers.d.ts +0 -38
- package/dist/commands/dom/evalHelpers.d.ts.map +0 -1
- package/dist/commands/dom/evalHelpers.js +0 -121
- package/dist/commands/dom/evalHelpers.js.map +0 -1
- package/dist/commands/dom/form.d.ts.map +0 -1
- package/dist/commands/dom/form.js.map +0 -1
- package/dist/commands/dom/formDiscovery.d.ts +0 -26
- package/dist/commands/dom/formDiscovery.d.ts.map +0 -1
- package/dist/commands/dom/formDiscovery.js.map +0 -1
- package/dist/commands/dom/formFillHelpers.d.ts +0 -186
- package/dist/commands/dom/formFillHelpers.d.ts.map +0 -1
- package/dist/commands/dom/formFillHelpers.js +0 -650
- package/dist/commands/dom/formFillHelpers.js.map +0 -1
- package/dist/commands/dom/formInteraction.d.ts.map +0 -1
- package/dist/commands/dom/formInteraction.js.map +0 -1
- package/dist/commands/dom/formSubmitHelpers.d.ts +0 -59
- package/dist/commands/dom/formSubmitHelpers.d.ts.map +0 -1
- package/dist/commands/dom/formSubmitHelpers.js +0 -163
- package/dist/commands/dom/formSubmitHelpers.js.map +0 -1
- package/dist/commands/dom/formTypes.d.ts +0 -75
- package/dist/commands/dom/formTypes.d.ts.map +0 -1
- package/dist/commands/dom/formTypes.js.map +0 -1
- package/dist/commands/dom/helpers.d.ts +0 -86
- package/dist/commands/dom/helpers.d.ts.map +0 -1
- package/dist/commands/dom/helpers.js +0 -656
- package/dist/commands/dom/helpers.js.map +0 -1
- package/dist/commands/dom/index.d.ts.map +0 -1
- package/dist/commands/dom/index.js.map +0 -1
- package/dist/commands/dom/keyMapping.d.ts +0 -56
- package/dist/commands/dom/keyMapping.d.ts.map +0 -1
- package/dist/commands/dom/keyMapping.js +0 -110
- package/dist/commands/dom/keyMapping.js.map +0 -1
- package/dist/commands/dom/reactEventHelpers.d.ts +0 -79
- package/dist/commands/dom/reactEventHelpers.d.ts.map +0 -1
- package/dist/commands/dom/reactEventHelpers.js +0 -239
- package/dist/commands/dom/reactEventHelpers.js.map +0 -1
- package/dist/commands/dom/screenshotResize.d.ts.map +0 -1
- package/dist/commands/dom/screenshotResize.js.map +0 -1
- package/dist/commands/helpJson.d.ts.map +0 -1
- package/dist/commands/helpJson.js.map +0 -1
- package/dist/commands/machineReadableHelp.d.ts +0 -165
- package/dist/commands/machineReadableHelp.d.ts.map +0 -1
- package/dist/commands/machineReadableHelp.js +0 -252
- package/dist/commands/machineReadableHelp.js.map +0 -1
- package/dist/commands/network/har.d.ts.map +0 -1
- package/dist/commands/network/har.js.map +0 -1
- package/dist/commands/network/index.d.ts.map +0 -1
- package/dist/commands/network/index.js.map +0 -1
- package/dist/commands/network/list.d.ts.map +0 -1
- package/dist/commands/network/list.js.map +0 -1
- package/dist/commands/network/shared.d.ts.map +0 -1
- package/dist/commands/network/shared.js.map +0 -1
- package/dist/commands/network.d.ts +0 -8
- package/dist/commands/network.d.ts.map +0 -1
- package/dist/commands/network.js +0 -216
- package/dist/commands/network.js.map +0 -1
- package/dist/commands/optionBehaviors.d.ts.map +0 -1
- package/dist/commands/optionBehaviors.js.map +0 -1
- package/dist/commands/peek.d.ts.map +0 -1
- package/dist/commands/peek.js.map +0 -1
- package/dist/commands/shared/CommandRunner.d.ts.map +0 -1
- package/dist/commands/shared/CommandRunner.js.map +0 -1
- package/dist/commands/shared/__tests__/validation.unit.test.d.ts +0 -7
- package/dist/commands/shared/__tests__/validation.unit.test.d.ts.map +0 -1
- package/dist/commands/shared/__tests__/validation.unit.test.js +0 -141
- package/dist/commands/shared/__tests__/validation.unit.test.js.map +0 -1
- package/dist/commands/shared/commonOptions.d.ts.map +0 -1
- package/dist/commands/shared/commonOptions.js.map +0 -1
- package/dist/commands/shared/daemonErrorHandler.d.ts.map +0 -1
- package/dist/commands/shared/daemonErrorHandler.js.map +0 -1
- package/dist/commands/shared/dataFetcher.d.ts.map +0 -1
- package/dist/commands/shared/dataFetcher.js.map +0 -1
- package/dist/commands/shared/followMode.d.ts.map +0 -1
- package/dist/commands/shared/followMode.js.map +0 -1
- package/dist/commands/shared/landingPage.d.ts.map +0 -1
- package/dist/commands/shared/landingPage.js.map +0 -1
- package/dist/commands/shared/optionTypes.d.ts.map +0 -1
- package/dist/commands/shared/optionTypes.js.map +0 -1
- package/dist/commands/shared/startHelpers.d.ts.map +0 -1
- package/dist/commands/shared/startHelpers.js.map +0 -1
- package/dist/commands/shared/validation.d.ts.map +0 -1
- package/dist/commands/shared/validation.js.map +0 -1
- package/dist/commands/start.d.ts.map +0 -1
- package/dist/commands/start.js.map +0 -1
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/stop.d.ts.map +0 -1
- package/dist/commands/stop.js.map +0 -1
- package/dist/commands/tail.d.ts.map +0 -1
- package/dist/commands/tail.js.map +0 -1
- package/dist/commands/types.d.ts.map +0 -1
- package/dist/commands/types.js.map +0 -1
- package/dist/commands.d.ts.map +0 -1
- package/dist/commands.js.map +0 -1
- package/dist/connection/__tests__/cdp.contract.test.d.ts +0 -16
- package/dist/connection/__tests__/cdp.contract.test.d.ts.map +0 -1
- package/dist/connection/__tests__/cdp.contract.test.js +0 -377
- package/dist/connection/__tests__/cdp.contract.test.js.map +0 -1
- package/dist/connection/__tests__/flagsBuilder.unit.test.d.ts +0 -9
- package/dist/connection/__tests__/flagsBuilder.unit.test.d.ts.map +0 -1
- package/dist/connection/__tests__/flagsBuilder.unit.test.js +0 -94
- package/dist/connection/__tests__/flagsBuilder.unit.test.js.map +0 -1
- package/dist/connection/__tests__/handlers.unit.test.d.ts +0 -11
- package/dist/connection/__tests__/handlers.unit.test.d.ts.map +0 -1
- package/dist/connection/__tests__/handlers.unit.test.js +0 -220
- package/dist/connection/__tests__/handlers.unit.test.js.map +0 -1
- package/dist/connection/__tests__/pageReadiness.contract.test.d.ts +0 -14
- package/dist/connection/__tests__/pageReadiness.contract.test.d.ts.map +0 -1
- package/dist/connection/__tests__/pageReadiness.contract.test.js +0 -382
- package/dist/connection/__tests__/pageReadiness.contract.test.js.map +0 -1
- package/dist/connection/__tests__/portReservation.contract.test.d.ts +0 -14
- package/dist/connection/__tests__/portReservation.contract.test.d.ts.map +0 -1
- package/dist/connection/__tests__/portReservation.contract.test.js +0 -250
- package/dist/connection/__tests__/portReservation.contract.test.js.map +0 -1
- package/dist/connection/cdp.d.ts.map +0 -1
- package/dist/connection/cdp.js.map +0 -1
- package/dist/connection/config.d.ts.map +0 -1
- package/dist/connection/config.js.map +0 -1
- package/dist/connection/diagnostics.d.ts.map +0 -1
- package/dist/connection/diagnostics.js.map +0 -1
- package/dist/connection/errors.d.ts.map +0 -1
- package/dist/connection/errors.js.map +0 -1
- package/dist/connection/events.d.ts.map +0 -1
- package/dist/connection/events.js.map +0 -1
- package/dist/connection/handlers.d.ts.map +0 -1
- package/dist/connection/handlers.js.map +0 -1
- package/dist/connection/launcher/binaryResolver.d.ts.map +0 -1
- package/dist/connection/launcher/binaryResolver.js.map +0 -1
- package/dist/connection/launcher/flagsBuilder.d.ts.map +0 -1
- package/dist/connection/launcher/flagsBuilder.js.map +0 -1
- package/dist/connection/launcher/preferencesLoader.d.ts.map +0 -1
- package/dist/connection/launcher/preferencesLoader.js.map +0 -1
- package/dist/connection/launcher.d.ts.map +0 -1
- package/dist/connection/launcher.js.map +0 -1
- package/dist/connection/pageReadiness.d.ts.map +0 -1
- package/dist/connection/pageReadiness.js.map +0 -1
- package/dist/connection/portReservation.d.ts.map +0 -1
- package/dist/connection/portReservation.js.map +0 -1
- package/dist/connection/typed-cdp.d.ts.map +0 -1
- package/dist/connection/typed-cdp.js.map +0 -1
- package/dist/connection/types.d.ts.map +0 -1
- package/dist/connection/types.js.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/daemon/__tests__/JsonlParser.unit.test.d.ts +0 -8
- package/dist/daemon/__tests__/JsonlParser.unit.test.d.ts.map +0 -1
- package/dist/daemon/__tests__/JsonlParser.unit.test.js +0 -140
- package/dist/daemon/__tests__/JsonlParser.unit.test.js.map +0 -1
- package/dist/daemon/__tests__/PendingRequestManager.unit.test.d.ts +0 -8
- package/dist/daemon/__tests__/PendingRequestManager.unit.test.d.ts.map +0 -1
- package/dist/daemon/__tests__/PendingRequestManager.unit.test.js +0 -276
- package/dist/daemon/__tests__/PendingRequestManager.unit.test.js.map +0 -1
- package/dist/daemon/__tests__/TelemetryStore.unit.test.d.ts +0 -8
- package/dist/daemon/__tests__/TelemetryStore.unit.test.d.ts.map +0 -1
- package/dist/daemon/__tests__/TelemetryStore.unit.test.js +0 -290
- package/dist/daemon/__tests__/TelemetryStore.unit.test.js.map +0 -1
- package/dist/daemon/__tests__/commandRegistry.contract.test.d.ts +0 -8
- package/dist/daemon/__tests__/commandRegistry.contract.test.d.ts.map +0 -1
- package/dist/daemon/__tests__/commandRegistry.contract.test.js +0 -647
- package/dist/daemon/__tests__/commandRegistry.contract.test.js.map +0 -1
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.d.ts +0 -19
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.d.ts.map +0 -1
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.js +0 -212
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.js.map +0 -1
- package/dist/daemon/__tests__/ipcServer.contract.test.d.ts +0 -23
- package/dist/daemon/__tests__/ipcServer.contract.test.d.ts.map +0 -1
- package/dist/daemon/__tests__/ipcServer.contract.test.js +0 -416
- package/dist/daemon/__tests__/ipcServer.contract.test.js.map +0 -1
- package/dist/daemon/__tests__/launcher.unit.test.d.ts +0 -8
- package/dist/daemon/__tests__/launcher.unit.test.d.ts.map +0 -1
- package/dist/daemon/__tests__/launcher.unit.test.js +0 -20
- package/dist/daemon/__tests__/launcher.unit.test.js.map +0 -1
- package/dist/daemon/errors.d.ts.map +0 -1
- package/dist/daemon/errors.js.map +0 -1
- package/dist/daemon/handlers/BaseHandler.d.ts +0 -75
- package/dist/daemon/handlers/BaseHandler.d.ts.map +0 -1
- package/dist/daemon/handlers/BaseHandler.js +0 -103
- package/dist/daemon/handlers/BaseHandler.js.map +0 -1
- package/dist/daemon/handlers/CommandHandlers.d.ts +0 -36
- package/dist/daemon/handlers/CommandHandlers.d.ts.map +0 -1
- package/dist/daemon/handlers/CommandHandlers.js +0 -60
- package/dist/daemon/handlers/CommandHandlers.js.map +0 -1
- package/dist/daemon/handlers/QueryHandlers.d.ts +0 -37
- package/dist/daemon/handlers/QueryHandlers.d.ts.map +0 -1
- package/dist/daemon/handlers/QueryHandlers.js +0 -126
- package/dist/daemon/handlers/QueryHandlers.js.map +0 -1
- package/dist/daemon/handlers/SessionHandlers.d.ts +0 -32
- package/dist/daemon/handlers/SessionHandlers.d.ts.map +0 -1
- package/dist/daemon/handlers/SessionHandlers.js +0 -213
- package/dist/daemon/handlers/SessionHandlers.js.map +0 -1
- package/dist/daemon/handlers/pendingRequests.d.ts +0 -50
- package/dist/daemon/handlers/pendingRequests.d.ts.map +0 -1
- package/dist/daemon/handlers/pendingRequests.js +0 -57
- package/dist/daemon/handlers/pendingRequests.js.map +0 -1
- package/dist/daemon/handlers/requestHandlers.d.ts +0 -55
- package/dist/daemon/handlers/requestHandlers.d.ts.map +0 -1
- package/dist/daemon/handlers/requestHandlers.js +0 -66
- package/dist/daemon/handlers/requestHandlers.js.map +0 -1
- package/dist/daemon/handlers/responseHandler.d.ts +0 -42
- package/dist/daemon/handlers/responseHandler.d.ts.map +0 -1
- package/dist/daemon/handlers/responseHandler.js +0 -217
- package/dist/daemon/handlers/responseHandler.js.map +0 -1
- package/dist/daemon/ipcServer.d.ts.map +0 -1
- package/dist/daemon/ipcServer.js.map +0 -1
- package/dist/daemon/launcher.d.ts.map +0 -1
- package/dist/daemon/launcher.js.map +0 -1
- package/dist/daemon/lifecycle/cdpSetup.d.ts +0 -24
- package/dist/daemon/lifecycle/cdpSetup.d.ts.map +0 -1
- package/dist/daemon/lifecycle/cdpSetup.js +0 -55
- package/dist/daemon/lifecycle/cdpSetup.js.map +0 -1
- package/dist/daemon/lifecycle/chromeConnection.d.ts +0 -17
- package/dist/daemon/lifecycle/chromeConnection.d.ts.map +0 -1
- package/dist/daemon/lifecycle/chromeConnection.js +0 -79
- package/dist/daemon/lifecycle/chromeConnection.js.map +0 -1
- package/dist/daemon/lifecycle/signalHandlers.d.ts +0 -14
- package/dist/daemon/lifecycle/signalHandlers.d.ts.map +0 -1
- package/dist/daemon/lifecycle/signalHandlers.js +0 -48
- package/dist/daemon/lifecycle/signalHandlers.js.map +0 -1
- package/dist/daemon/lifecycle/workerCleanup.d.ts +0 -27
- package/dist/daemon/lifecycle/workerCleanup.d.ts.map +0 -1
- package/dist/daemon/lifecycle/workerCleanup.js +0 -143
- package/dist/daemon/lifecycle/workerCleanup.js.map +0 -1
- package/dist/daemon/lifecycle/workerConfig.d.ts +0 -14
- package/dist/daemon/lifecycle/workerConfig.d.ts.map +0 -1
- package/dist/daemon/lifecycle/workerConfig.js +0 -69
- package/dist/daemon/lifecycle/workerConfig.js.map +0 -1
- package/dist/daemon/lifecycle/workerIpc.d.ts +0 -14
- package/dist/daemon/lifecycle/workerIpc.d.ts.map +0 -1
- package/dist/daemon/lifecycle/workerIpc.js +0 -86
- package/dist/daemon/lifecycle/workerIpc.js.map +0 -1
- package/dist/daemon/patternDefinitions.d.ts.map +0 -1
- package/dist/daemon/patternDefinitions.js.map +0 -1
- package/dist/daemon/patternDetector.d.ts.map +0 -1
- package/dist/daemon/patternDetector.js.map +0 -1
- package/dist/daemon/server/JsonlParser.d.ts +0 -31
- package/dist/daemon/server/JsonlParser.d.ts.map +0 -1
- package/dist/daemon/server/JsonlParser.js +0 -55
- package/dist/daemon/server/JsonlParser.js.map +0 -1
- package/dist/daemon/server/SocketServer.d.ts.map +0 -1
- package/dist/daemon/server/SocketServer.js.map +0 -1
- package/dist/daemon/server/WorkerManager.d.ts +0 -36
- package/dist/daemon/server/WorkerManager.d.ts.map +0 -1
- package/dist/daemon/server/WorkerManager.js +0 -89
- package/dist/daemon/server/WorkerManager.js.map +0 -1
- package/dist/daemon/services/SessionService.d.ts +0 -87
- package/dist/daemon/services/SessionService.d.ts.map +0 -1
- package/dist/daemon/services/SessionService.js +0 -45
- package/dist/daemon/services/SessionService.js.map +0 -1
- package/dist/daemon/startSession.d.ts +0 -55
- package/dist/daemon/startSession.d.ts.map +0 -1
- package/dist/daemon/startSession.js +0 -168
- package/dist/daemon/startSession.js.map +0 -1
- package/dist/daemon/worker/TelemetryStore.d.ts +0 -19
- package/dist/daemon/worker/TelemetryStore.d.ts.map +0 -1
- package/dist/daemon/worker/TelemetryStore.js +0 -53
- package/dist/daemon/worker/TelemetryStore.js.map +0 -1
- package/dist/daemon/worker/__tests__/PatternDetector.unit.test.d.ts +0 -11
- package/dist/daemon/worker/__tests__/PatternDetector.unit.test.d.ts.map +0 -1
- package/dist/daemon/worker/__tests__/PatternDetector.unit.test.js +0 -136
- package/dist/daemon/worker/__tests__/PatternDetector.unit.test.js.map +0 -1
- package/dist/daemon/worker/collectors.d.ts.map +0 -1
- package/dist/daemon/worker/collectors.js.map +0 -1
- package/dist/daemon/worker/commandRegistry.d.ts.map +0 -1
- package/dist/daemon/worker/commandRegistry.js +0 -236
- package/dist/daemon/worker/commandRegistry.js.map +0 -1
- package/dist/daemon/worker/plugins.d.ts.map +0 -1
- package/dist/daemon/worker/plugins.js +0 -75
- package/dist/daemon/worker/plugins.js.map +0 -1
- package/dist/daemon/worker/types.d.ts +0 -15
- package/dist/daemon/worker/types.d.ts.map +0 -1
- package/dist/daemon/worker/types.js.map +0 -1
- package/dist/daemon/worker.d.ts +0 -9
- package/dist/daemon/worker.d.ts.map +0 -1
- package/dist/daemon/worker.js +0 -98
- package/dist/daemon/worker.js.map +0 -1
- package/dist/daemon/workerIpc.d.ts +0 -33
- package/dist/daemon/workerIpc.d.ts.map +0 -1
- package/dist/daemon/workerIpc.js +0 -8
- package/dist/daemon/workerIpc.js.map +0 -1
- package/dist/daemon.d.ts.map +0 -1
- package/dist/daemon.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/ipc/__tests__/client.contract.test.d.ts +0 -8
- package/dist/ipc/__tests__/client.contract.test.d.ts.map +0 -1
- package/dist/ipc/__tests__/client.contract.test.js +0 -693
- package/dist/ipc/__tests__/client.contract.test.js.map +0 -1
- package/dist/ipc/__tests__/errors.unit.test.d.ts +0 -7
- package/dist/ipc/__tests__/errors.unit.test.d.ts.map +0 -1
- package/dist/ipc/__tests__/errors.unit.test.js +0 -77
- package/dist/ipc/__tests__/errors.unit.test.js.map +0 -1
- package/dist/ipc/__tests__/guards.unit.test.d.ts +0 -7
- package/dist/ipc/__tests__/guards.unit.test.d.ts.map +0 -1
- package/dist/ipc/__tests__/guards.unit.test.js +0 -73
- package/dist/ipc/__tests__/guards.unit.test.js.map +0 -1
- package/dist/ipc/__tests__/jsonl.unit.test.d.ts +0 -7
- package/dist/ipc/__tests__/jsonl.unit.test.d.ts.map +0 -1
- package/dist/ipc/__tests__/jsonl.unit.test.js +0 -103
- package/dist/ipc/__tests__/jsonl.unit.test.js.map +0 -1
- package/dist/ipc/__tests__/validation.unit.test.d.ts +0 -7
- package/dist/ipc/__tests__/validation.unit.test.d.ts.map +0 -1
- package/dist/ipc/__tests__/validation.unit.test.js +0 -60
- package/dist/ipc/__tests__/validation.unit.test.js.map +0 -1
- package/dist/ipc/client.d.ts.map +0 -1
- package/dist/ipc/client.js.map +0 -1
- package/dist/ipc/index.d.ts.map +0 -1
- package/dist/ipc/index.js.map +0 -1
- package/dist/ipc/protocol/commands.d.ts.map +0 -1
- package/dist/ipc/protocol/commands.js.map +0 -1
- package/dist/ipc/protocol/guards.d.ts.map +0 -1
- package/dist/ipc/protocol/guards.js.map +0 -1
- package/dist/ipc/protocol/index.d.ts.map +0 -1
- package/dist/ipc/protocol/index.js.map +0 -1
- package/dist/ipc/protocol/messages.d.ts.map +0 -1
- package/dist/ipc/protocol/messages.js.map +0 -1
- package/dist/ipc/session/errors.d.ts.map +0 -1
- package/dist/ipc/session/errors.js.map +0 -1
- package/dist/ipc/session/index.d.ts.map +0 -1
- package/dist/ipc/session/index.js.map +0 -1
- package/dist/ipc/session/lifecycle.d.ts.map +0 -1
- package/dist/ipc/session/lifecycle.js.map +0 -1
- package/dist/ipc/session/queries.d.ts.map +0 -1
- package/dist/ipc/session/queries.js.map +0 -1
- package/dist/ipc/session/types.d.ts.map +0 -1
- package/dist/ipc/session/types.js.map +0 -1
- package/dist/ipc/transport/IPCError.d.ts.map +0 -1
- package/dist/ipc/transport/IPCError.js.map +0 -1
- package/dist/ipc/transport/errors.d.ts.map +0 -1
- package/dist/ipc/transport/errors.js.map +0 -1
- package/dist/ipc/transport/index.d.ts.map +0 -1
- package/dist/ipc/transport/index.js.map +0 -1
- package/dist/ipc/transport/jsonl.d.ts.map +0 -1
- package/dist/ipc/transport/jsonl.js.map +0 -1
- package/dist/ipc/transport/socket.d.ts.map +0 -1
- package/dist/ipc/transport/socket.js.map +0 -1
- package/dist/ipc/transport/validation.d.ts.map +0 -1
- package/dist/ipc/transport/validation.js.map +0 -1
- package/dist/ipc/utils/errors.d.ts.map +0 -1
- package/dist/ipc/utils/errors.js.map +0 -1
- package/dist/ipc/utils/index.d.ts.map +0 -1
- package/dist/ipc/utils/index.js.map +0 -1
- package/dist/ipc/utils/requestId.d.ts +0 -23
- package/dist/ipc/utils/requestId.d.ts.map +0 -1
- package/dist/ipc/utils/requestId.js +0 -27
- package/dist/ipc/utils/requestId.js.map +0 -1
- package/dist/ipc/utils/responseValidator.d.ts.map +0 -1
- package/dist/ipc/utils/responseValidator.js.map +0 -1
- package/dist/ipc/utils/session.d.ts.map +0 -1
- package/dist/ipc/utils/session.js.map +0 -1
- package/dist/ipc/utils/types.d.ts.map +0 -1
- package/dist/ipc/utils/types.js.map +0 -1
- package/dist/session/QueryCacheManager.d.ts.map +0 -1
- package/dist/session/QueryCacheManager.js.map +0 -1
- package/dist/session/__tests__/chrome-cache.contract.test.d.ts +0 -7
- package/dist/session/__tests__/chrome-cache.contract.test.d.ts.map +0 -1
- package/dist/session/__tests__/chrome-cache.contract.test.js +0 -77
- package/dist/session/__tests__/chrome-cache.contract.test.js.map +0 -1
- package/dist/session/__tests__/cleanup.contract.test.d.ts +0 -7
- package/dist/session/__tests__/cleanup.contract.test.d.ts.map +0 -1
- package/dist/session/__tests__/cleanup.contract.test.js +0 -84
- package/dist/session/__tests__/cleanup.contract.test.js.map +0 -1
- package/dist/session/__tests__/lock.contract.test.d.ts +0 -7
- package/dist/session/__tests__/lock.contract.test.d.ts.map +0 -1
- package/dist/session/__tests__/lock.contract.test.js +0 -77
- package/dist/session/__tests__/lock.contract.test.js.map +0 -1
- package/dist/session/__tests__/metadata.contract.test.d.ts +0 -7
- package/dist/session/__tests__/metadata.contract.test.d.ts.map +0 -1
- package/dist/session/__tests__/metadata.contract.test.js +0 -87
- package/dist/session/__tests__/metadata.contract.test.js.map +0 -1
- package/dist/session/chrome.d.ts.map +0 -1
- package/dist/session/chrome.js.map +0 -1
- package/dist/session/cleanup.d.ts +0 -141
- package/dist/session/cleanup.d.ts.map +0 -1
- package/dist/session/cleanup.js +0 -514
- package/dist/session/cleanup.js.map +0 -1
- package/dist/session/lock.d.ts +0 -57
- package/dist/session/lock.d.ts.map +0 -1
- package/dist/session/lock.js +0 -165
- package/dist/session/lock.js.map +0 -1
- package/dist/session/metadata.d.ts.map +0 -1
- package/dist/session/metadata.js.map +0 -1
- package/dist/session/output.d.ts +0 -18
- package/dist/session/output.d.ts.map +0 -1
- package/dist/session/output.js +0 -24
- package/dist/session/output.js.map +0 -1
- package/dist/session/paths.d.ts.map +0 -1
- package/dist/session/paths.js.map +0 -1
- package/dist/session/pid.d.ts.map +0 -1
- package/dist/session/pid.js.map +0 -1
- package/dist/session/port.d.ts.map +0 -1
- package/dist/session/port.js.map +0 -1
- package/dist/session/process.d.ts +0 -8
- package/dist/session/process.d.ts.map +0 -1
- package/dist/session/process.js +0 -8
- package/dist/session/process.js.map +0 -1
- package/dist/session/queryCache.d.ts +0 -46
- package/dist/session/queryCache.d.ts.map +0 -1
- package/dist/session/queryCache.js +0 -54
- package/dist/session/queryCache.js.map +0 -1
- package/dist/session/statusData.d.ts.map +0 -1
- package/dist/session/statusData.js.map +0 -1
- package/dist/telemetry/__tests__/a11y.unit.test.d.ts +0 -10
- package/dist/telemetry/__tests__/a11y.unit.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/a11y.unit.test.js +0 -265
- package/dist/telemetry/__tests__/a11y.unit.test.js.map +0 -1
- package/dist/telemetry/__tests__/filters.unit.test.d.ts +0 -2
- package/dist/telemetry/__tests__/filters.unit.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/filters.unit.test.js +0 -357
- package/dist/telemetry/__tests__/filters.unit.test.js.map +0 -1
- package/dist/telemetry/__tests__/navigation.contract.test.d.ts +0 -8
- package/dist/telemetry/__tests__/navigation.contract.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/navigation.contract.test.js +0 -211
- package/dist/telemetry/__tests__/navigation.contract.test.js.map +0 -1
- package/dist/telemetry/__tests__/network.contract.test.d.ts +0 -8
- package/dist/telemetry/__tests__/network.contract.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/network.contract.test.js +0 -623
- package/dist/telemetry/__tests__/network.contract.test.js.map +0 -1
- package/dist/telemetry/__tests__/remoteObject.unit.test.d.ts +0 -2
- package/dist/telemetry/__tests__/remoteObject.unit.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/remoteObject.unit.test.js +0 -261
- package/dist/telemetry/__tests__/remoteObject.unit.test.js.map +0 -1
- package/dist/telemetry/__tests__/roleInference.unit.test.d.ts +0 -9
- package/dist/telemetry/__tests__/roleInference.unit.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/roleInference.unit.test.js +0 -138
- package/dist/telemetry/__tests__/roleInference.unit.test.js.map +0 -1
- package/dist/telemetry/__tests__/utils.unit.test.d.ts +0 -7
- package/dist/telemetry/__tests__/utils.unit.test.d.ts.map +0 -1
- package/dist/telemetry/__tests__/utils.unit.test.js +0 -91
- package/dist/telemetry/__tests__/utils.unit.test.js.map +0 -1
- package/dist/telemetry/a11y.d.ts.map +0 -1
- package/dist/telemetry/a11y.js.map +0 -1
- package/dist/telemetry/console.d.ts.map +0 -1
- package/dist/telemetry/console.js.map +0 -1
- package/dist/telemetry/dialogs.d.ts.map +0 -1
- package/dist/telemetry/dialogs.js.map +0 -1
- package/dist/telemetry/dom.d.ts.map +0 -1
- package/dist/telemetry/dom.js.map +0 -1
- package/dist/telemetry/filterDsl.d.ts.map +0 -1
- package/dist/telemetry/filterDsl.js.map +0 -1
- package/dist/telemetry/filterPresets.d.ts.map +0 -1
- package/dist/telemetry/filterPresets.js.map +0 -1
- package/dist/telemetry/filters.d.ts.map +0 -1
- package/dist/telemetry/filters.js.map +0 -1
- package/dist/telemetry/har/__tests__/builder.unit.test.d.ts +0 -8
- package/dist/telemetry/har/__tests__/builder.unit.test.d.ts.map +0 -1
- package/dist/telemetry/har/__tests__/builder.unit.test.js +0 -694
- package/dist/telemetry/har/__tests__/builder.unit.test.js.map +0 -1
- package/dist/telemetry/har/builder.d.ts.map +0 -1
- package/dist/telemetry/har/builder.js.map +0 -1
- package/dist/telemetry/har/types.d.ts.map +0 -1
- package/dist/telemetry/har/types.js.map +0 -1
- package/dist/telemetry/navigation.d.ts.map +0 -1
- package/dist/telemetry/navigation.js.map +0 -1
- package/dist/telemetry/network.d.ts.map +0 -1
- package/dist/telemetry/network.js.map +0 -1
- package/dist/telemetry/objectExpander.d.ts.map +0 -1
- package/dist/telemetry/objectExpander.js.map +0 -1
- package/dist/telemetry/remoteObject.d.ts.map +0 -1
- package/dist/telemetry/remoteObject.js.map +0 -1
- package/dist/telemetry/remoteObjectUtils.d.ts.map +0 -1
- package/dist/telemetry/remoteObjectUtils.js.map +0 -1
- package/dist/telemetry/roleInference.d.ts.map +0 -1
- package/dist/telemetry/roleInference.js.map +0 -1
- package/dist/telemetry/utils.d.ts.map +0 -1
- package/dist/telemetry/utils.js.map +0 -1
- package/dist/types/dom.d.ts +0 -77
- package/dist/types/dom.d.ts.map +0 -1
- package/dist/types/dom.js +0 -8
- package/dist/types/dom.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/ui/OutputBuilder.d.ts.map +0 -1
- package/dist/ui/OutputBuilder.js.map +0 -1
- package/dist/ui/errors/CommandError.d.ts.map +0 -1
- package/dist/ui/errors/CommandError.js.map +0 -1
- package/dist/ui/errors/index.d.ts.map +0 -1
- package/dist/ui/errors/index.js.map +0 -1
- package/dist/ui/errors/utils.d.ts.map +0 -1
- package/dist/ui/errors/utils.js.map +0 -1
- package/dist/ui/formatters/__tests__/preview.unit.test.d.ts +0 -13
- package/dist/ui/formatters/__tests__/preview.unit.test.d.ts.map +0 -1
- package/dist/ui/formatters/__tests__/preview.unit.test.js +0 -180
- package/dist/ui/formatters/__tests__/preview.unit.test.js.map +0 -1
- package/dist/ui/formatters/__tests__/semantic.unit.test.d.ts +0 -2
- package/dist/ui/formatters/__tests__/semantic.unit.test.d.ts.map +0 -1
- package/dist/ui/formatters/__tests__/semantic.unit.test.js +0 -111
- package/dist/ui/formatters/__tests__/semantic.unit.test.js.map +0 -1
- package/dist/ui/formatters/a11y.d.ts.map +0 -1
- package/dist/ui/formatters/a11y.js.map +0 -1
- package/dist/ui/formatters/console.d.ts.map +0 -1
- package/dist/ui/formatters/console.js.map +0 -1
- package/dist/ui/formatters/cookies.d.ts.map +0 -1
- package/dist/ui/formatters/cookies.js.map +0 -1
- package/dist/ui/formatters/details.d.ts.map +0 -1
- package/dist/ui/formatters/details.js.map +0 -1
- package/dist/ui/formatters/dom.d.ts.map +0 -1
- package/dist/ui/formatters/dom.js.map +0 -1
- package/dist/ui/formatters/form.d.ts.map +0 -1
- package/dist/ui/formatters/form.js.map +0 -1
- package/dist/ui/formatters/helpFormatters.d.ts.map +0 -1
- package/dist/ui/formatters/helpFormatters.js.map +0 -1
- package/dist/ui/formatters/index.d.ts.map +0 -1
- package/dist/ui/formatters/index.js.map +0 -1
- package/dist/ui/formatters/networkHeaders.d.ts.map +0 -1
- package/dist/ui/formatters/networkHeaders.js.map +0 -1
- package/dist/ui/formatters/networkList.d.ts.map +0 -1
- package/dist/ui/formatters/networkList.js.map +0 -1
- package/dist/ui/formatters/preview.d.ts.map +0 -1
- package/dist/ui/formatters/preview.js.map +0 -1
- package/dist/ui/formatters/semantic.d.ts.map +0 -1
- package/dist/ui/formatters/semantic.js.map +0 -1
- package/dist/ui/formatters/sessionFormatters.d.ts +0 -58
- package/dist/ui/formatters/sessionFormatters.d.ts.map +0 -1
- package/dist/ui/formatters/sessionFormatters.js +0 -118
- package/dist/ui/formatters/sessionFormatters.js.map +0 -1
- package/dist/ui/formatters/status.d.ts.map +0 -1
- package/dist/ui/formatters/status.js.map +0 -1
- package/dist/ui/formatting.d.ts.map +0 -1
- package/dist/ui/formatting.js.map +0 -1
- package/dist/ui/logging/index.d.ts.map +0 -1
- package/dist/ui/logging/index.js.map +0 -1
- package/dist/ui/logging/logger.d.ts.map +0 -1
- package/dist/ui/logging/logger.js.map +0 -1
- package/dist/ui/messages/chrome.d.ts.map +0 -1
- package/dist/ui/messages/chrome.js.map +0 -1
- package/dist/ui/messages/commands.d.ts.map +0 -1
- package/dist/ui/messages/commands.js.map +0 -1
- package/dist/ui/messages/consoleMessages.d.ts.map +0 -1
- package/dist/ui/messages/consoleMessages.js.map +0 -1
- package/dist/ui/messages/debug.d.ts +0 -168
- package/dist/ui/messages/debug.d.ts.map +0 -1
- package/dist/ui/messages/debug.js +0 -219
- package/dist/ui/messages/debug.js.map +0 -1
- package/dist/ui/messages/dom.d.ts +0 -14
- package/dist/ui/messages/dom.d.ts.map +0 -1
- package/dist/ui/messages/dom.js +0 -28
- package/dist/ui/messages/dom.js.map +0 -1
- package/dist/ui/messages/errors.d.ts +0 -233
- package/dist/ui/messages/errors.d.ts.map +0 -1
- package/dist/ui/messages/errors.js +0 -395
- package/dist/ui/messages/errors.js.map +0 -1
- package/dist/ui/messages/hints.d.ts.map +0 -1
- package/dist/ui/messages/hints.js.map +0 -1
- package/dist/ui/messages/internal.d.ts +0 -23
- package/dist/ui/messages/internal.d.ts.map +0 -1
- package/dist/ui/messages/internal.js +0 -27
- package/dist/ui/messages/internal.js.map +0 -1
- package/dist/ui/messages/networkMessages.d.ts.map +0 -1
- package/dist/ui/messages/networkMessages.js.map +0 -1
- package/dist/ui/messages/preview.d.ts.map +0 -1
- package/dist/ui/messages/preview.js.map +0 -1
- package/dist/ui/messages/session.d.ts.map +0 -1
- package/dist/ui/messages/session.js.map +0 -1
- package/dist/ui/messages/validation.d.ts.map +0 -1
- package/dist/ui/messages/validation.js.map +0 -1
- package/dist/utils/__tests__/atomicFile.test.d.ts +0 -2
- package/dist/utils/__tests__/atomicFile.test.d.ts.map +0 -1
- package/dist/utils/__tests__/atomicFile.test.js +0 -43
- package/dist/utils/__tests__/atomicFile.test.js.map +0 -1
- package/dist/utils/__tests__/errors.unit.test.d.ts +0 -12
- package/dist/utils/__tests__/errors.unit.test.d.ts.map +0 -1
- package/dist/utils/__tests__/errors.unit.test.js +0 -255
- package/dist/utils/__tests__/errors.unit.test.js.map +0 -1
- package/dist/utils/__tests__/http.unit.test.d.ts +0 -12
- package/dist/utils/__tests__/http.unit.test.d.ts.map +0 -1
- package/dist/utils/__tests__/http.unit.test.js +0 -218
- package/dist/utils/__tests__/http.unit.test.js.map +0 -1
- package/dist/utils/__tests__/objects.test.d.ts +0 -2
- package/dist/utils/__tests__/objects.test.d.ts.map +0 -1
- package/dist/utils/__tests__/objects.test.js +0 -50
- package/dist/utils/__tests__/objects.test.js.map +0 -1
- package/dist/utils/__tests__/process.unit.test.d.ts +0 -14
- package/dist/utils/__tests__/process.unit.test.d.ts.map +0 -1
- package/dist/utils/__tests__/process.unit.test.js +0 -124
- package/dist/utils/__tests__/process.unit.test.js.map +0 -1
- package/dist/utils/__tests__/session.contract.test.d.ts +0 -2
- package/dist/utils/__tests__/session.contract.test.d.ts.map +0 -1
- package/dist/utils/__tests__/session.contract.test.js +0 -258
- package/dist/utils/__tests__/session.contract.test.js.map +0 -1
- package/dist/utils/__tests__/shellDetection.unit.test.d.ts +0 -12
- package/dist/utils/__tests__/shellDetection.unit.test.d.ts.map +0 -1
- package/dist/utils/__tests__/shellDetection.unit.test.js +0 -220
- package/dist/utils/__tests__/shellDetection.unit.test.js.map +0 -1
- package/dist/utils/__tests__/url.test.d.ts +0 -2
- package/dist/utils/__tests__/url.test.d.ts.map +0 -1
- package/dist/utils/__tests__/url.test.js +0 -42
- package/dist/utils/__tests__/url.test.js.map +0 -1
- package/dist/utils/async.d.ts.map +0 -1
- package/dist/utils/async.js.map +0 -1
- package/dist/utils/atomicFile.d.ts.map +0 -1
- package/dist/utils/atomicFile.js.map +0 -1
- package/dist/utils/concurrency.d.ts.map +0 -1
- package/dist/utils/concurrency.js.map +0 -1
- package/dist/utils/daemonErrors.d.ts +0 -60
- package/dist/utils/daemonErrors.d.ts.map +0 -1
- package/dist/utils/daemonErrors.js +0 -58
- package/dist/utils/daemonErrors.js.map +0 -1
- package/dist/utils/decisionTrees.d.ts.map +0 -1
- package/dist/utils/decisionTrees.js.map +0 -1
- package/dist/utils/errorMapping.d.ts.map +0 -1
- package/dist/utils/errorMapping.js.map +0 -1
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/exitCodes.d.ts.map +0 -1
- package/dist/utils/exitCodes.js.map +0 -1
- package/dist/utils/file.d.ts.map +0 -1
- package/dist/utils/file.js.map +0 -1
- package/dist/utils/http.d.ts.map +0 -1
- package/dist/utils/http.js.map +0 -1
- package/dist/utils/levenshtein.d.ts.map +0 -1
- package/dist/utils/levenshtein.js.map +0 -1
- package/dist/utils/objects.d.ts.map +0 -1
- package/dist/utils/objects.js.map +0 -1
- package/dist/utils/process.d.ts.map +0 -1
- package/dist/utils/process.js.map +0 -1
- package/dist/utils/shellDetection.d.ts.map +0 -1
- package/dist/utils/shellDetection.js.map +0 -1
- package/dist/utils/strings.d.ts.map +0 -1
- package/dist/utils/strings.js.map +0 -1
- package/dist/utils/suggestions.d.ts.map +0 -1
- package/dist/utils/suggestions.js.map +0 -1
- package/dist/utils/taskMappings.d.ts.map +0 -1
- package/dist/utils/taskMappings.js.map +0 -1
- package/dist/utils/typeGuards.d.ts.map +0 -1
- package/dist/utils/typeGuards.js.map +0 -1
- package/dist/utils/url.d.ts.map +0 -1
- package/dist/utils/url.js.map +0 -1
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js.map +0 -1
- package/dist/utils/version.d.ts.map +0 -1
- package/dist/utils/version.js.map +0 -1
- /package/dist/daemon/{worker → session}/commandRegistry.d.ts +0 -0
- /package/dist/daemon/{worker → session}/types.js +0 -0
- /package/dist/{ui/errors → errors}/CommandError.d.ts +0 -0
- /package/dist/{ui/errors → errors}/index.js +0 -0
- /package/dist/{ui/errors → errors}/utils.d.ts +0 -0
- /package/dist/{commands → runtime}/dom/formTypes.js +0 -0
|
@@ -3,21 +3,29 @@ import * as os from 'os';
|
|
|
3
3
|
import * as path from 'path';
|
|
4
4
|
import * as chromeLauncher from 'chrome-launcher';
|
|
5
5
|
import { BDG_CHROME_PREFS, DEFAULT_CDP_PORT, CHROME_PROFILE_DIR, DEFAULT_CHROME_LOG_LEVEL, DEFAULT_CHROME_HANDLE_SIGINT, } from '../constants.js';
|
|
6
|
-
import { chromeLaunchSuccessMessage, chromeUserDataDirMessage, invalidPortError, userDataDirError, chromeLaunchFailedError, } from '../ui/messages/chrome.js';
|
|
7
6
|
import { getErrorMessage } from '../utils/errors.js';
|
|
8
7
|
import { filterDefined } from '../utils/objects.js';
|
|
9
8
|
import { isProcessAlive } from '../utils/process.js';
|
|
10
|
-
import {
|
|
9
|
+
import { verifyLaunchedChrome } from './chromeIdentity.js';
|
|
11
10
|
import { ChromeLaunchError } from './errors.js';
|
|
12
11
|
import { resolveChromeBinary } from './launcher/binaryResolver.js';
|
|
13
12
|
import { buildChromeFlags } from './launcher/flagsBuilder.js';
|
|
14
13
|
import { loadChromePrefs, ensureJSONCompatiblePrefs } from './launcher/preferencesLoader.js';
|
|
14
|
+
import { writeProfilePreferences } from './launcher/profilePreferences.js';
|
|
15
15
|
import { reservePort } from './portReservation.js';
|
|
16
|
+
import { markStartupLogs, watchStartupExit } from './startupExit.js';
|
|
16
17
|
/**
|
|
17
18
|
* Default logger instance for launcher (uses console).
|
|
18
19
|
*
|
|
19
20
|
* Can be overridden in tests or when launcher is used as a library.
|
|
20
21
|
*/
|
|
22
|
+
/**
|
|
23
|
+
* How often to check whether Chrome's debugging port answers (chrome-launcher
|
|
24
|
+
* defaults to 500 ms; Chrome is usually listening within 100–300 ms)
|
|
25
|
+
*/
|
|
26
|
+
const CHROME_READY_POLL_MS = 50;
|
|
27
|
+
/** Checks before giving up: 25 s in all, as with chrome-launcher's defaults */
|
|
28
|
+
const CHROME_READY_POLL_ATTEMPTS = 500;
|
|
21
29
|
const defaultLogger = {
|
|
22
30
|
info: (msg) => console.error(msg),
|
|
23
31
|
debug: () => { }, // No-op by default
|
|
@@ -45,54 +53,58 @@ export async function launchChrome(options = {}) {
|
|
|
45
53
|
const logger = options.logger ?? defaultLogger;
|
|
46
54
|
const port = options.port ?? DEFAULT_CDP_PORT;
|
|
47
55
|
if (port < 1 || port > 65535) {
|
|
48
|
-
throw new ChromeLaunchError(
|
|
56
|
+
throw new ChromeLaunchError(`Invalid port number: ${port}`, {
|
|
57
|
+
issue: { code: 'INVALID_PORT', context: { port } },
|
|
58
|
+
});
|
|
49
59
|
}
|
|
50
60
|
const reservation = await reservePort(port);
|
|
51
61
|
reservation.release();
|
|
52
|
-
const userDataDir = options.userDataDir ?? getPersistentUserDataDir(options.baseDir);
|
|
62
|
+
const userDataDir = options.userDataDir ?? getPersistentUserDataDir(options.baseDir ?? options.sessionDir);
|
|
53
63
|
if (!fs.existsSync(userDataDir)) {
|
|
54
64
|
try {
|
|
55
65
|
fs.mkdirSync(userDataDir, { recursive: true });
|
|
56
66
|
}
|
|
57
67
|
catch (error) {
|
|
58
|
-
throw new ChromeLaunchError(
|
|
68
|
+
throw new ChromeLaunchError(`Failed to create user data directory`, {
|
|
69
|
+
cause: error,
|
|
70
|
+
issue: {
|
|
71
|
+
code: 'USER_DATA_DIR_CREATE_FAILED',
|
|
72
|
+
context: { userDataDir, reason: getErrorMessage(error) },
|
|
73
|
+
},
|
|
74
|
+
});
|
|
59
75
|
}
|
|
60
76
|
}
|
|
61
77
|
logger.info(`Launching Chrome on port ${port}...`);
|
|
62
|
-
logger.debug(
|
|
63
|
-
|
|
78
|
+
logger.debug(`User data directory: ${userDataDir}`);
|
|
79
|
+
applyProfilePreferences(userDataDir, options, logger);
|
|
80
|
+
const chromeOptions = buildChromeOptions({ ...options, port });
|
|
64
81
|
const launcher = new chromeLauncher.Launcher(chromeOptions);
|
|
82
|
+
const logs = markStartupLogs(userDataDir);
|
|
83
|
+
const startup = watchStartupExit(() => launcher.chromeProcess, logs, userDataDir);
|
|
65
84
|
try {
|
|
66
85
|
const launchStart = Date.now();
|
|
67
|
-
await launcher.launch();
|
|
68
86
|
logger.info('Waiting for Chrome to be ready...');
|
|
69
|
-
await launcher.
|
|
87
|
+
await Promise.race([launcher.launch(), startup.exited]);
|
|
88
|
+
startup.stop();
|
|
70
89
|
const launchDurationMs = Date.now() - launchStart;
|
|
71
90
|
logger.info(`✓ Chrome ready (${launchDurationMs}ms)`);
|
|
72
91
|
const chromeProcessPid = launcher.pid ?? 0;
|
|
73
92
|
if (!chromeProcessPid || chromeProcessPid <= 0 || !isProcessAlive(chromeProcessPid)) {
|
|
74
93
|
launcher.kill();
|
|
75
94
|
launcher.destroyTmp();
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
` - Chrome binary not found\n` +
|
|
84
|
-
` - Insufficient permissions\n` +
|
|
85
|
-
` - Chrome crashed on startup\n\n` +
|
|
86
|
-
`${diagnosticLines.join('\n')}\n\n` +
|
|
87
|
-
`Try:\n` +
|
|
88
|
-
` - bdg cleanup\n` +
|
|
89
|
-
` - Kill conflicting process: kill $(lsof -ti:${port})\n` +
|
|
90
|
-
` - Use different port: bdg <url> --port ${port + 1}`);
|
|
95
|
+
const didNotStart = !chromeProcessPid || chromeProcessPid <= 0;
|
|
96
|
+
throw new ChromeLaunchError(`Chrome ${didNotStart ? 'failed to launch' : 'died immediately after launch'} (PID: ${chromeProcessPid})`, {
|
|
97
|
+
issue: {
|
|
98
|
+
code: didNotStart ? 'CHROME_LAUNCH_FAILED' : 'CHROME_DIED_AFTER_LAUNCH',
|
|
99
|
+
context: { port, pid: chromeProcessPid },
|
|
100
|
+
},
|
|
101
|
+
});
|
|
91
102
|
}
|
|
92
|
-
|
|
103
|
+
await verifyLaunchedChrome({ logs, port, pid: chromeProcessPid });
|
|
104
|
+
logger.info(`Chrome launched successfully (PID: ${chromeProcessPid}, ${launchDurationMs}ms)`);
|
|
93
105
|
return {
|
|
94
106
|
pid: chromeProcessPid,
|
|
95
|
-
port
|
|
107
|
+
port,
|
|
96
108
|
userDataDir: launcher.userDataDir,
|
|
97
109
|
kill: async () => {
|
|
98
110
|
return Promise.resolve().then(() => {
|
|
@@ -103,19 +115,27 @@ export async function launchChrome(options = {}) {
|
|
|
103
115
|
};
|
|
104
116
|
}
|
|
105
117
|
catch (error) {
|
|
118
|
+
startup.stop();
|
|
106
119
|
launcher.kill();
|
|
107
120
|
launcher.destroyTmp();
|
|
108
121
|
if (error instanceof ChromeLaunchError) {
|
|
109
122
|
throw error;
|
|
110
123
|
}
|
|
111
|
-
|
|
112
|
-
|
|
124
|
+
throw new ChromeLaunchError(`Failed to launch Chrome: ${getErrorMessage(error)}`, {
|
|
125
|
+
...(error instanceof Error && { cause: error }),
|
|
126
|
+
issue: {
|
|
127
|
+
code: 'CHROME_LAUNCH_FAILED',
|
|
128
|
+
context: { port, reason: getErrorMessage(error) },
|
|
129
|
+
},
|
|
130
|
+
});
|
|
113
131
|
}
|
|
114
132
|
}
|
|
115
133
|
/**
|
|
116
134
|
* Get the default persistent user-data-dir path.
|
|
117
135
|
*
|
|
118
|
-
* Uses the session directory (
|
|
136
|
+
* Uses the session directory (`~/.bdg`, `$BDG_SESSION_DIR`, or
|
|
137
|
+
* `<base>/sessions/<name>` for a named session, passed as `sessionDir`) to
|
|
138
|
+
* store Chrome profile data,
|
|
119
139
|
* ensuring each session has its own isolated Chrome profile. This prevents
|
|
120
140
|
* SingletonLock conflicts when multiple agents run concurrently.
|
|
121
141
|
*
|
|
@@ -123,7 +143,7 @@ export async function launchChrome(options = {}) {
|
|
|
123
143
|
* For shared login state across sessions, use --user-data-dir to specify a
|
|
124
144
|
* shared location explicitly.
|
|
125
145
|
*
|
|
126
|
-
* @param baseDir - Optional base directory (defaults to
|
|
146
|
+
* @param baseDir - Optional base directory (defaults to `~/.bdg` or `$BDG_SESSION_DIR`). Allows injection for testing or custom locations.
|
|
127
147
|
* @returns Absolute path to session-isolated user-data-dir
|
|
128
148
|
* @throws Error if user data directory cannot be created due to permission issues
|
|
129
149
|
*/
|
|
@@ -143,51 +163,76 @@ function getPersistentUserDataDir(baseDir) {
|
|
|
143
163
|
fs.mkdirSync(userDataDir, { recursive: true });
|
|
144
164
|
}
|
|
145
165
|
catch (error) {
|
|
146
|
-
throw new
|
|
166
|
+
throw new ChromeLaunchError(`Failed to create user data directory`, {
|
|
167
|
+
cause: error,
|
|
168
|
+
issue: {
|
|
169
|
+
code: 'USER_DATA_DIR_CREATE_FAILED',
|
|
170
|
+
context: { userDataDir, reason: getErrorMessage(error) },
|
|
171
|
+
},
|
|
172
|
+
});
|
|
147
173
|
}
|
|
148
174
|
}
|
|
149
175
|
return userDataDir;
|
|
150
176
|
}
|
|
151
177
|
/**
|
|
152
|
-
*
|
|
178
|
+
* Preferences for the launched profile: bdg's defaults (no translate prompt,
|
|
179
|
+
* no password manager or leak check, whose bubbles capture input) for
|
|
180
|
+
* profiles bdg manages, with the caller's preferences on top. A profile the
|
|
181
|
+
* user chose (`--user-data-dir`) gets only preferences the caller passed.
|
|
153
182
|
*
|
|
154
183
|
* File-based preferences take precedence over inline preferences because
|
|
155
184
|
* files allow for complex, reusable configurations that can be version
|
|
156
185
|
* controlled and shared across team members or CI environments.
|
|
157
186
|
*
|
|
158
187
|
* @param options - Launch options containing prefs or prefsFile
|
|
159
|
-
* @returns
|
|
160
|
-
* @throws ChromeLaunchError if prefs file cannot be read
|
|
188
|
+
* @returns Merged preferences (empty when there is nothing to apply)
|
|
189
|
+
* @throws ChromeLaunchError if prefs file cannot be read or parsed, or prefs are not JSON
|
|
190
|
+
*/
|
|
191
|
+
export function resolveChromePrefs(options) {
|
|
192
|
+
const defaults = options.userDataDir === undefined ? BDG_CHROME_PREFS : {};
|
|
193
|
+
const prefs = { ...defaults, ...loadChromePrefs(options) };
|
|
194
|
+
ensureJSONCompatiblePrefs(prefs);
|
|
195
|
+
return prefs;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Write the launch preferences into the profile, if there are any.
|
|
199
|
+
*
|
|
200
|
+
* @param userDataDir - Chrome user data directory
|
|
201
|
+
* @param options - Launch options
|
|
202
|
+
* @param logger - Logger for failures
|
|
203
|
+
* @throws ChromeLaunchError if prefs file cannot be read or parsed, or prefs are not JSON
|
|
161
204
|
*/
|
|
205
|
+
function applyProfilePreferences(userDataDir, options, logger) {
|
|
206
|
+
const prefs = resolveChromePrefs(options);
|
|
207
|
+
if (Object.keys(prefs).length > 0)
|
|
208
|
+
writeProfilePreferences(userDataDir, prefs, logger);
|
|
209
|
+
}
|
|
162
210
|
/**
|
|
163
211
|
* Build chrome-launcher options from bdg launch options.
|
|
164
212
|
*
|
|
165
213
|
* Maps LaunchOptions to chrome-launcher API format using a clean utility approach
|
|
166
|
-
* that filters out undefined values automatically.
|
|
167
|
-
*
|
|
214
|
+
* that filters out undefined values automatically. Preferences are not passed:
|
|
215
|
+
* chrome-launcher would replace whole nested sections of an existing profile's
|
|
216
|
+
* Preferences, so `writeProfilePreferences` merges them instead.
|
|
168
217
|
*
|
|
169
218
|
* @param options - bdg launch options to convert
|
|
170
219
|
* @returns chrome-launcher compatible options object
|
|
171
|
-
* @throws ChromeLaunchError if preference loading fails
|
|
172
220
|
*/
|
|
173
221
|
function buildChromeOptions(options) {
|
|
174
|
-
const
|
|
175
|
-
const userDataDir = options.userDataDir ?? getPersistentUserDataDir(options.baseDir);
|
|
222
|
+
const userDataDir = options.userDataDir ?? getPersistentUserDataDir(options.baseDir ?? options.sessionDir);
|
|
176
223
|
const chromePathOverride = resolveChromeBinary(options);
|
|
177
|
-
const mergedPrefs = userPrefs ? { ...BDG_CHROME_PREFS, ...userPrefs } : BDG_CHROME_PREFS;
|
|
178
224
|
return {
|
|
179
225
|
logLevel: options.logLevel ?? DEFAULT_CHROME_LOG_LEVEL,
|
|
180
226
|
handleSIGINT: options.handleSIGINT ?? DEFAULT_CHROME_HANDLE_SIGINT,
|
|
181
|
-
ignoreDefaultFlags:
|
|
227
|
+
ignoreDefaultFlags: true,
|
|
182
228
|
chromeFlags: buildChromeFlags(options),
|
|
183
229
|
userDataDir,
|
|
184
230
|
...filterDefined({
|
|
185
231
|
port: options.port,
|
|
186
232
|
startingUrl: options.url,
|
|
187
|
-
connectionPollInterval: options.connectionPollInterval,
|
|
188
|
-
maxConnectionRetries: options.maxConnectionRetries,
|
|
233
|
+
connectionPollInterval: options.connectionPollInterval ?? CHROME_READY_POLL_MS,
|
|
234
|
+
maxConnectionRetries: options.maxConnectionRetries ?? CHROME_READY_POLL_ATTEMPTS,
|
|
189
235
|
portStrictMode: options.portStrictMode,
|
|
190
|
-
prefs: ensureJSONCompatiblePrefs(mergedPrefs),
|
|
191
236
|
envVars: options.envVars,
|
|
192
237
|
chromePath: chromePathOverride,
|
|
193
238
|
}),
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
* Smart page readiness detection using fixed thresholds
|
|
3
3
|
*
|
|
4
4
|
* This module provides page load detection that works for most page types
|
|
5
|
-
* without configuration. It uses a
|
|
5
|
+
* without configuration. It uses a two-phase approach:
|
|
6
6
|
* 1. Load event (baseline readiness)
|
|
7
|
-
* 2. Network
|
|
8
|
-
* 3. DOM stability (300ms idle threshold)
|
|
7
|
+
* 2. Network (200ms idle) and DOM (300ms without mutations) quiet at once
|
|
9
8
|
*/
|
|
10
|
-
import type { CDPConnection } from '
|
|
9
|
+
import type { CDPConnection } from './cdp.js';
|
|
11
10
|
/**
|
|
12
11
|
* Options for page readiness detection
|
|
13
12
|
*/
|
|
@@ -23,8 +22,8 @@ export interface PageReadinessOptions {
|
|
|
23
22
|
*
|
|
24
23
|
* Strategy (always applied):
|
|
25
24
|
* 1. Wait for load event (baseline readiness)
|
|
26
|
-
* 2. Wait for network
|
|
27
|
-
*
|
|
25
|
+
* 2. Wait for the network (200ms idle) and the DOM (300ms without
|
|
26
|
+
* mutations) to be quiet at the same time
|
|
28
27
|
*
|
|
29
28
|
* Uses fixed thresholds that work well for most pages.
|
|
30
29
|
* No framework detection, no configuration needed.
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Smart page readiness detection using fixed thresholds
|
|
3
3
|
*
|
|
4
4
|
* This module provides page load detection that works for most page types
|
|
5
|
-
* without configuration. It uses a
|
|
5
|
+
* without configuration. It uses a two-phase approach:
|
|
6
6
|
* 1. Load event (baseline readiness)
|
|
7
|
-
* 2. Network
|
|
8
|
-
* 3. DOM stability (300ms idle threshold)
|
|
7
|
+
* 2. Network (200ms idle) and DOM (300ms without mutations) quiet at once
|
|
9
8
|
*/
|
|
9
|
+
import { trackInFlightRequests } from './inFlightRequests.js';
|
|
10
10
|
import { createLogger } from '../ui/logging/index.js';
|
|
11
11
|
import { delay } from '../utils/async.js';
|
|
12
12
|
import { getErrorMessage } from '../utils/errors.js';
|
|
@@ -17,15 +17,15 @@ const NETWORK_IDLE_THRESHOLD_MS = 200;
|
|
|
17
17
|
const DOM_STABLE_THRESHOLD_MS = 300;
|
|
18
18
|
/** Interval for checking deadline expiration in milliseconds */
|
|
19
19
|
const DEADLINE_CHECK_INTERVAL_MS = 100;
|
|
20
|
-
/** Interval for checking network activity in milliseconds */
|
|
21
|
-
const
|
|
20
|
+
/** Interval for checking network and DOM activity in milliseconds */
|
|
21
|
+
const QUIET_CHECK_INTERVAL_MS = 50;
|
|
22
22
|
/**
|
|
23
23
|
* Wait for page to be ready using fixed thresholds
|
|
24
24
|
*
|
|
25
25
|
* Strategy (always applied):
|
|
26
26
|
* 1. Wait for load event (baseline readiness)
|
|
27
|
-
* 2. Wait for network
|
|
28
|
-
*
|
|
27
|
+
* 2. Wait for the network (200ms idle) and the DOM (300ms without
|
|
28
|
+
* mutations) to be quiet at the same time
|
|
29
29
|
*
|
|
30
30
|
* Uses fixed thresholds that work well for most pages.
|
|
31
31
|
* No framework detection, no configuration needed.
|
|
@@ -49,9 +49,8 @@ export async function waitForPageReady(cdp, options = {}) {
|
|
|
49
49
|
try {
|
|
50
50
|
await waitForLoadEvent(cdp, deadline);
|
|
51
51
|
log.info('Load event fired');
|
|
52
|
-
const networkIdleMs = await
|
|
52
|
+
const { networkIdleMs, domIdleMs } = await waitForQuiet(cdp, deadline);
|
|
53
53
|
log.info(`Network stable (${networkIdleMs}ms idle)`);
|
|
54
|
-
const domIdleMs = await waitForDOMStable(cdp, deadline);
|
|
55
54
|
log.info(`DOM stable (${domIdleMs}ms idle)`);
|
|
56
55
|
log.info('Page ready');
|
|
57
56
|
}
|
|
@@ -116,135 +115,79 @@ async function waitForLoadEvent(cdp, deadline) {
|
|
|
116
115
|
});
|
|
117
116
|
}
|
|
118
117
|
/**
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
* - Fast enough for quick sites (avoids unnecessary waiting)
|
|
123
|
-
* - Patient enough for API-heavy apps (catches late requests)
|
|
124
|
-
* - Simpler and more predictable than adaptive learning
|
|
125
|
-
*
|
|
126
|
-
* Network is considered stable when there are zero active requests
|
|
127
|
-
* for at least 200ms continuously.
|
|
128
|
-
*
|
|
129
|
-
* Why this works:
|
|
130
|
-
* - Catches initial request bursts (CSS, JS, images)
|
|
131
|
-
* - Waits for lazy-loaded resources
|
|
132
|
-
* - Detects API calls triggered by hydration
|
|
133
|
-
* - Framework-agnostic - based on actual network activity
|
|
134
|
-
*
|
|
135
|
-
* @param cdp - CDP connection
|
|
136
|
-
* @param deadline - Timestamp when to timeout
|
|
137
|
-
* @returns Actual idle duration detected
|
|
138
|
-
* @throws Error if deadline exceeded
|
|
118
|
+
* Page script tracking DOM mutations until {@link REMOVE_MUTATION_OBSERVER_JS}.
|
|
119
|
+
* Installs only once per document: a page that navigated itself (a redirect
|
|
120
|
+
* right after load) gets a new observer, its quiet time counted from then.
|
|
139
121
|
*/
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
if (activeRequests === 0) {
|
|
160
|
-
const idleTime = Date.now() - lastActivity;
|
|
161
|
-
if (idleTime >= NETWORK_IDLE_THRESHOLD_MS) {
|
|
162
|
-
return idleTime; // Success!
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
await delay(NETWORK_CHECK_INTERVAL_MS);
|
|
166
|
-
}
|
|
167
|
-
throw new Error('Network stability timeout');
|
|
168
|
-
}
|
|
169
|
-
finally {
|
|
170
|
-
cleanupRequest();
|
|
171
|
-
cleanupFinished();
|
|
172
|
-
cleanupFailed();
|
|
173
|
-
}
|
|
174
|
-
}
|
|
122
|
+
const INSTALL_MUTATION_OBSERVER_JS = `
|
|
123
|
+
if (!window.__bdg_observer) {
|
|
124
|
+
window.__bdg_lastMutation = Date.now();
|
|
125
|
+
window.__bdg_observer = new MutationObserver(() => {
|
|
126
|
+
window.__bdg_lastMutation = Date.now();
|
|
127
|
+
});
|
|
128
|
+
window.__bdg_observer.observe(document.body ?? document.documentElement, {
|
|
129
|
+
childList: true,
|
|
130
|
+
subtree: true,
|
|
131
|
+
attributes: true,
|
|
132
|
+
characterData: true
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
`;
|
|
136
|
+
const REMOVE_MUTATION_OBSERVER_JS = `
|
|
137
|
+
window.__bdg_observer?.disconnect();
|
|
138
|
+
delete window.__bdg_observer;
|
|
139
|
+
delete window.__bdg_lastMutation;
|
|
140
|
+
`;
|
|
175
141
|
/**
|
|
176
|
-
* Wait
|
|
142
|
+
* Wait until the network and the DOM are both quiet: no request in flight
|
|
143
|
+
* for 200 ms and no DOM mutation for 300 ms (hydration, client rendering,
|
|
144
|
+
* lazy-loaded resources and API calls all show up in one or the other).
|
|
177
145
|
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
* HOW IT WORKS:
|
|
182
|
-
* 1. Inject MutationObserver into page to track all DOM changes
|
|
183
|
-
* 2. Monitor childList, attributes, subtree, and characterData changes
|
|
184
|
-
* 3. Wait for 300ms of continuous no-change activity
|
|
185
|
-
* 4. Clean up observer when complete
|
|
186
|
-
*
|
|
187
|
-
* Why this works:
|
|
188
|
-
* - SSR hydration causes DOM mutations (React, Vue, Svelte)
|
|
189
|
-
* - Client-side rendering creates DOM elements
|
|
190
|
-
* - When mutations stop, framework initialization is complete
|
|
191
|
-
* - 300ms is long enough to catch batched updates, short enough to be responsive
|
|
192
|
-
*
|
|
193
|
-
* Framework-agnostic - detects actual mutations regardless of framework.
|
|
146
|
+
* Both are watched at once, so a page that is already quiet is ready after
|
|
147
|
+
* 300 ms, not after 200 ms and then another 300 ms.
|
|
194
148
|
*
|
|
195
149
|
* @param cdp - CDP connection
|
|
196
150
|
* @param deadline - Timestamp when to timeout
|
|
197
|
-
* @returns
|
|
151
|
+
* @returns How long each has been quiet
|
|
198
152
|
* @throws Error if deadline exceeded
|
|
199
153
|
*/
|
|
200
|
-
async function
|
|
201
|
-
await cdp.send('
|
|
202
|
-
|
|
203
|
-
window.__bdg_mutations = 0;
|
|
204
|
-
window.__bdg_lastMutation = Date.now();
|
|
205
|
-
|
|
206
|
-
const observer = new MutationObserver(() => {
|
|
207
|
-
window.__bdg_mutations++;
|
|
208
|
-
window.__bdg_lastMutation = Date.now();
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
observer.observe(document.body, {
|
|
212
|
-
childList: true,
|
|
213
|
-
subtree: true,
|
|
214
|
-
attributes: true,
|
|
215
|
-
characterData: true
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
window.__bdg_observer = observer;
|
|
219
|
-
`,
|
|
220
|
-
});
|
|
154
|
+
async function waitForQuiet(cdp, deadline) {
|
|
155
|
+
await cdp.send('Network.enable');
|
|
156
|
+
const requests = trackInFlightRequests(cdp);
|
|
221
157
|
try {
|
|
158
|
+
await cdp.send('Runtime.evaluate', { expression: INSTALL_MUTATION_OBSERVER_JS });
|
|
222
159
|
while (Date.now() < deadline) {
|
|
223
|
-
const
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
if (timeSinceLastMutation >= DOM_STABLE_THRESHOLD_MS) {
|
|
229
|
-
return timeSinceLastMutation; // Success!
|
|
160
|
+
const networkIdleMs = requests.count === 0 ? Date.now() - requests.lastActivity : 0;
|
|
161
|
+
if (networkIdleMs >= NETWORK_IDLE_THRESHOLD_MS) {
|
|
162
|
+
const domIdleMs = await msSinceLastMutation(cdp);
|
|
163
|
+
if (domIdleMs >= DOM_STABLE_THRESHOLD_MS)
|
|
164
|
+
return { networkIdleMs, domIdleMs };
|
|
230
165
|
}
|
|
231
|
-
await delay(
|
|
166
|
+
await delay(QUIET_CHECK_INTERVAL_MS);
|
|
232
167
|
}
|
|
233
|
-
throw new Error('
|
|
168
|
+
throw new Error('Page stability timeout');
|
|
234
169
|
}
|
|
235
170
|
finally {
|
|
171
|
+
requests.dispose();
|
|
236
172
|
await cdp
|
|
237
|
-
.send('Runtime.evaluate', {
|
|
238
|
-
expression: `
|
|
239
|
-
window.__bdg_observer?.disconnect();
|
|
240
|
-
delete window.__bdg_observer;
|
|
241
|
-
delete window.__bdg_mutations;
|
|
242
|
-
delete window.__bdg_lastMutation;
|
|
243
|
-
`,
|
|
244
|
-
})
|
|
173
|
+
.send('Runtime.evaluate', { expression: REMOVE_MUTATION_OBSERVER_JS })
|
|
245
174
|
.catch((error) => {
|
|
246
175
|
log.debug(`Failed to clean up DOM observer: ${getErrorMessage(error)}`);
|
|
247
176
|
});
|
|
248
177
|
}
|
|
249
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Time since the page's DOM last changed.
|
|
181
|
+
*
|
|
182
|
+
* @param cdp - CDP connection
|
|
183
|
+
* @returns Milliseconds since the last mutation (0 when unknown)
|
|
184
|
+
*/
|
|
185
|
+
async function msSinceLastMutation(cdp) {
|
|
186
|
+
const check = (await cdp.send('Runtime.evaluate', {
|
|
187
|
+
expression: `${INSTALL_MUTATION_OBSERVER_JS}; Date.now() - window.__bdg_lastMutation`,
|
|
188
|
+
returnByValue: true,
|
|
189
|
+
}));
|
|
190
|
+
const value = check.result.value;
|
|
191
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : 0;
|
|
192
|
+
}
|
|
250
193
|
//# sourceMappingURL=pageReadiness.js.map
|
|
@@ -11,6 +11,26 @@ export interface PortReservation {
|
|
|
11
11
|
/** Release the port reservation */
|
|
12
12
|
release: () => void;
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Whether something already accepts connections on host:port.
|
|
16
|
+
*
|
|
17
|
+
* @param port - Port to check
|
|
18
|
+
* @param host - Address to connect to
|
|
19
|
+
* @returns True if a connection was accepted
|
|
20
|
+
*/
|
|
21
|
+
export declare function acceptsConnections(port: number, host: string): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Whether something already accepts connections on the port, on 127.0.0.1 or
|
|
24
|
+
* ::1. A listener on all interfaces (`0.0.0.0`/`::`) does not stop bdg from
|
|
25
|
+
* binding 127.0.0.1 on macOS, but Chrome would then fail to listen; a Chrome
|
|
26
|
+
* on [::1] (one that found 127.0.0.1 taken) does not stop it either, but a
|
|
27
|
+
* second Chrome would be reached through the first one's port. Both are found
|
|
28
|
+
* by connecting.
|
|
29
|
+
*
|
|
30
|
+
* @param port - Port to check
|
|
31
|
+
* @returns True if a connection was accepted on either address
|
|
32
|
+
*/
|
|
33
|
+
export declare function isPortAnswering(port: number): Promise<boolean>;
|
|
14
34
|
/**
|
|
15
35
|
* Atomically reserve a port to prevent race conditions during Chrome launch.
|
|
16
36
|
*
|
|
@@ -5,8 +5,56 @@
|
|
|
5
5
|
* Chrome launch when multiple processes might try to bind to the same port.
|
|
6
6
|
*/
|
|
7
7
|
import * as net from 'net';
|
|
8
|
-
import { portInUseError } from '../ui/messages/chrome.js';
|
|
9
8
|
import { ChromeLaunchError } from './errors.js';
|
|
9
|
+
/** How long a connection attempt may take when checking a port */
|
|
10
|
+
const CONNECT_CHECK_MS = 500;
|
|
11
|
+
/** Loopback addresses Chrome may listen on (it falls back to IPv6 when IPv4 is taken) */
|
|
12
|
+
const LOOPBACK_HOSTS = ['127.0.0.1', '::1'];
|
|
13
|
+
/**
|
|
14
|
+
* Whether something already accepts connections on host:port.
|
|
15
|
+
*
|
|
16
|
+
* @param port - Port to check
|
|
17
|
+
* @param host - Address to connect to
|
|
18
|
+
* @returns True if a connection was accepted
|
|
19
|
+
*/
|
|
20
|
+
export function acceptsConnections(port, host) {
|
|
21
|
+
return new Promise((resolve) => {
|
|
22
|
+
const socket = net.connect({ port, host });
|
|
23
|
+
const finish = (answering) => {
|
|
24
|
+
socket.destroy();
|
|
25
|
+
resolve(answering);
|
|
26
|
+
};
|
|
27
|
+
socket.setTimeout(CONNECT_CHECK_MS, () => finish(false));
|
|
28
|
+
socket.once('connect', () => finish(true));
|
|
29
|
+
socket.once('error', () => finish(false));
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Whether something already accepts connections on the port, on 127.0.0.1 or
|
|
34
|
+
* ::1. A listener on all interfaces (`0.0.0.0`/`::`) does not stop bdg from
|
|
35
|
+
* binding 127.0.0.1 on macOS, but Chrome would then fail to listen; a Chrome
|
|
36
|
+
* on [::1] (one that found 127.0.0.1 taken) does not stop it either, but a
|
|
37
|
+
* second Chrome would be reached through the first one's port. Both are found
|
|
38
|
+
* by connecting.
|
|
39
|
+
*
|
|
40
|
+
* @param port - Port to check
|
|
41
|
+
* @returns True if a connection was accepted on either address
|
|
42
|
+
*/
|
|
43
|
+
export async function isPortAnswering(port) {
|
|
44
|
+
const answers = await Promise.all(LOOPBACK_HOSTS.map((host) => acceptsConnections(port, host)));
|
|
45
|
+
return answers.some(Boolean);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The error for a port another process uses.
|
|
49
|
+
*
|
|
50
|
+
* @param port - Port
|
|
51
|
+
* @returns Launch error with the PORT_IN_USE issue
|
|
52
|
+
*/
|
|
53
|
+
function portInUseError(port) {
|
|
54
|
+
return new ChromeLaunchError(`Port ${port} is already in use`, {
|
|
55
|
+
issue: { code: 'PORT_IN_USE', context: { port } },
|
|
56
|
+
});
|
|
57
|
+
}
|
|
10
58
|
/**
|
|
11
59
|
* Atomically reserve a port to prevent race conditions during Chrome launch.
|
|
12
60
|
*
|
|
@@ -33,11 +81,13 @@ import { ChromeLaunchError } from './errors.js';
|
|
|
33
81
|
* ```
|
|
34
82
|
*/
|
|
35
83
|
export async function reservePort(port) {
|
|
84
|
+
if (await isPortAnswering(port))
|
|
85
|
+
throw portInUseError(port);
|
|
36
86
|
return new Promise((resolve, reject) => {
|
|
37
87
|
const server = net.createServer();
|
|
38
88
|
server.once('error', (err) => {
|
|
39
89
|
if (err.code === 'EADDRINUSE') {
|
|
40
|
-
reject(
|
|
90
|
+
reject(portInUseError(port));
|
|
41
91
|
}
|
|
42
92
|
else {
|
|
43
93
|
reject(err);
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notice when Chrome exits while bdg waits for its debugging port.
|
|
3
|
+
*
|
|
4
|
+
* chrome-launcher only polls the port (about 25 s) and then reports a refused
|
|
5
|
+
* connection, which reads like a port conflict. Chrome that exits right away
|
|
6
|
+
* (an unknown flag taken as a URL, a profile already open in another Chrome)
|
|
7
|
+
* says why on stderr: that is reported instead, as soon as it exits.
|
|
8
|
+
*/
|
|
9
|
+
import type { ChildProcess } from 'child_process';
|
|
10
|
+
/** Chrome's log files in the profile directory, and their size before the launch */
|
|
11
|
+
export interface StartupLogs {
|
|
12
|
+
files: Array<{
|
|
13
|
+
file: string;
|
|
14
|
+
offset: number;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Remember where Chrome's logs end before the launch, so only this launch's
|
|
19
|
+
* output is reported.
|
|
20
|
+
*
|
|
21
|
+
* @param userDataDir - Chrome profile directory
|
|
22
|
+
* @returns Log positions
|
|
23
|
+
*/
|
|
24
|
+
export declare function markStartupLogs(userDataDir: string): StartupLogs;
|
|
25
|
+
/**
|
|
26
|
+
* Chrome's output (stderr, then stdout) since {@link markStartupLogs}. The
|
|
27
|
+
* marked offsets are byte sizes, so the files are cut before decoding.
|
|
28
|
+
*
|
|
29
|
+
* @param logs - Log positions
|
|
30
|
+
* @returns Output lines
|
|
31
|
+
*/
|
|
32
|
+
export declare function readStartupLines(logs: StartupLogs): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Reject when the launched Chrome exits before it is ready.
|
|
35
|
+
*
|
|
36
|
+
* @param getProcess - Returns the spawned process once chrome-launcher has it
|
|
37
|
+
* @param logs - Log positions from before the launch
|
|
38
|
+
* @param userDataDir - Chrome profile directory (named in the error)
|
|
39
|
+
* @returns A promise that only rejects, and a function to stop watching
|
|
40
|
+
*/
|
|
41
|
+
export declare function watchStartupExit(getProcess: () => ChildProcess | undefined, logs: StartupLogs, userDataDir: string): {
|
|
42
|
+
exited: Promise<never>;
|
|
43
|
+
stop: () => void;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=startupExit.d.ts.map
|