browser-debugger-cli 0.7.1 → 0.8.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 +14 -6
- package/dist/cdp/protocol.d.ts +1 -1
- package/dist/cdp/protocol.js +1 -1
- package/dist/cdp/schema.d.ts +10 -0
- package/dist/cdp/schema.js +13 -0
- package/dist/commands/cdp.js +75 -23
- package/dist/commands/cleanup.js +31 -23
- package/dist/commands/console.d.ts +18 -1
- package/dist/commands/console.js +98 -53
- package/dist/commands/details.js +13 -3
- package/dist/commands/dom/DomElementResolver.d.ts +24 -69
- package/dist/commands/dom/DomElementResolver.js +71 -162
- package/dist/commands/dom/a11y.js +52 -33
- package/dist/commands/dom/eval.d.ts +13 -0
- package/dist/commands/dom/eval.js +43 -0
- package/dist/commands/dom/form.js +103 -147
- package/dist/commands/dom/formInteraction.d.ts +6 -1
- package/dist/commands/dom/formInteraction.js +223 -305
- package/dist/commands/dom/frames.d.ts +12 -0
- package/dist/commands/dom/frames.js +28 -0
- package/dist/commands/dom/get.d.ts +20 -0
- package/dist/commands/dom/get.js +141 -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 +78 -0
- package/dist/commands/dom/helpers/query.js +457 -0
- package/dist/commands/dom/helpers/runElementCommand.d.ts +56 -0
- package/dist/commands/dom/helpers/runElementCommand.js +63 -0
- package/dist/commands/dom/helpers/screenshot.d.ts +30 -0
- package/dist/commands/dom/helpers/screenshot.js +374 -0
- package/dist/commands/dom/index.d.ts +15 -3
- package/dist/commands/dom/index.js +45 -511
- package/dist/commands/dom/listeners.d.ts +16 -0
- package/dist/commands/dom/listeners.js +54 -0
- package/dist/commands/dom/query.d.ts +14 -0
- package/dist/commands/dom/query.js +36 -0
- package/dist/commands/dom/screenshot.d.ts +21 -0
- package/dist/commands/dom/screenshot.js +248 -0
- package/dist/commands/dom/semanticUtils.d.ts +44 -0
- package/dist/commands/dom/semanticUtils.js +102 -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 +96 -63
- 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 +46 -25
- package/dist/commands/page.d.ts +11 -0
- package/dist/commands/page.js +112 -0
- package/dist/commands/peek.js +62 -48
- 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 +0 -3
- package/dist/commands/shared/followMode.js +6 -11
- package/dist/commands/shared/handleValidationError.d.ts +14 -0
- package/dist/commands/shared/handleValidationError.js +39 -0
- package/dist/commands/shared/optionTypes.d.ts +42 -22
- 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 +226 -37
- package/dist/commands/shared/validation.d.ts +42 -0
- package/dist/commands/shared/validation.js +101 -22
- package/dist/commands/start.d.ts +28 -1
- package/dist/commands/start.js +226 -38
- package/dist/commands/status.js +48 -11
- package/dist/commands/stop.js +16 -26
- package/dist/commands/tail.js +20 -35
- package/dist/commands.js +2 -0
- package/dist/connection/cdp.d.ts +12 -6
- package/dist/connection/cdp.js +59 -16
- 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.d.ts +2 -0
- package/dist/connection/launcher.js +48 -29
- package/dist/connection/pageReadiness.d.ts +5 -6
- package/dist/connection/pageReadiness.js +63 -120
- package/dist/connection/portReservation.d.ts +10 -0
- package/dist/connection/portReservation.js +37 -2
- package/dist/connection/startupExit.d.ts +37 -0
- package/dist/connection/startupExit.js +107 -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 +21 -22
- package/dist/constants.js +28 -25
- package/dist/daemon/SessionController.d.ts +125 -0
- package/dist/daemon/SessionController.js +472 -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 +13 -21
- package/dist/daemon/launcher.js +94 -101
- 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 +131 -30
- package/dist/daemon/session/Session.d.ts +137 -0
- package/dist/daemon/session/Session.js +288 -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 +38 -0
- package/dist/daemon/session/chromeConnection.js +178 -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 +445 -0
- package/dist/daemon/session/interactions.d.ts +27 -0
- package/dist/daemon/session/interactions.js +44 -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/{worker → session}/types.d.ts +2 -2
- package/dist/daemon.d.ts +3 -4
- package/dist/daemon.js +15356 -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 +545 -0
- package/dist/errors/messages.js +959 -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 +16410 -168
- package/dist/ipc/client.d.ts +44 -8
- package/dist/ipc/client.js +95 -18
- package/dist/ipc/index.d.ts +2 -2
- package/dist/ipc/index.js +2 -2
- package/dist/ipc/protocol/commands.d.ts +220 -59
- package/dist/ipc/protocol/commands.js +27 -21
- package/dist/ipc/protocol/domTypes.d.ts +236 -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 +20 -22
- package/dist/ipc/session/queries.d.ts +21 -4
- package/dist/ipc/session/types.d.ts +1 -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 +7 -1
- package/dist/ipc/transport/index.js +7 -2
- 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/evalHelpers.d.ts +76 -0
- package/dist/runtime/dom/evalHelpers.js +406 -0
- package/dist/runtime/dom/eventListeners.d.ts +23 -0
- package/dist/runtime/dom/eventListeners.js +252 -0
- package/dist/runtime/dom/formDiscovery.d.ts +26 -0
- package/dist/{commands → runtime}/dom/formDiscovery.js +48 -9
- package/dist/runtime/dom/formFillHelpers/fill.d.ts +29 -0
- package/dist/runtime/dom/formFillHelpers/fill.js +299 -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 +195 -0
- package/dist/runtime/dom/formFillHelpers/scroll.d.ts +24 -0
- package/dist/runtime/dom/formFillHelpers/scroll.js +188 -0
- package/dist/runtime/dom/formFillHelpers/shared.d.ts +43 -0
- package/dist/runtime/dom/formFillHelpers/shared.js +100 -0
- package/dist/runtime/dom/formFillHelpers/stability.d.ts +14 -0
- package/dist/runtime/dom/formFillHelpers/stability.js +40 -0
- package/dist/runtime/dom/formSubmitHelpers.d.ts +29 -0
- package/dist/runtime/dom/formSubmitHelpers.js +252 -0
- package/dist/runtime/dom/formTypes.d.ts +8 -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 +38 -0
- package/dist/runtime/dom/frames.js +305 -0
- package/dist/runtime/dom/keyMapping.d.ts +103 -0
- package/dist/runtime/dom/keyMapping.js +232 -0
- package/dist/runtime/dom/listenerSummary.d.ts +72 -0
- package/dist/runtime/dom/listenerSummary.js +150 -0
- package/dist/runtime/dom/reactEventHelpers.d.ts +61 -0
- package/dist/runtime/dom/reactEventHelpers.js +470 -0
- package/dist/runtime/dom/targetNode.d.ts +78 -0
- package/dist/runtime/dom/targetNode.js +154 -0
- package/dist/runtime/page/navigation.d.ts +34 -0
- package/dist/runtime/page/navigation.js +249 -0
- package/dist/session/QueryCacheManager.d.ts +25 -82
- package/dist/session/QueryCacheManager.js +41 -133
- package/dist/session/chrome.d.ts +21 -16
- package/dist/session/chrome.js +28 -44
- package/dist/session/cleanup/staleSession.d.ts +49 -0
- package/dist/session/cleanup/staleSession.js +124 -0
- package/dist/session/cleanup/userCommands.d.ts +36 -0
- package/dist/session/cleanup/userCommands.js +95 -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 +3 -1
- package/dist/session/paths.d.ts +2 -4
- package/dist/session/paths.js +2 -4
- package/dist/session/pid.d.ts +9 -38
- package/dist/session/pid.js +14 -64
- package/dist/session/port.d.ts +0 -5
- package/dist/session/port.js +9 -19
- package/dist/telemetry/a11y.d.ts +26 -20
- package/dist/telemetry/a11y.js +237 -104
- 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/types.d.ts +64 -44
- 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 +72 -9
- package/dist/ui/formatters/console/chronological.d.ts +14 -0
- package/dist/ui/formatters/console/chronological.js +58 -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 +53 -0
- package/dist/ui/formatters/console/shared.d.ts +136 -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 +183 -24
- package/dist/ui/formatters/dom.d.ts +27 -6
- package/dist/ui/formatters/dom.js +80 -28
- package/dist/ui/formatters/form.js +35 -56
- package/dist/ui/formatters/helpFormatters.js +5 -4
- package/dist/ui/formatters/listeners.d.ts +24 -0
- package/dist/ui/formatters/listeners.js +96 -0
- package/dist/ui/formatters/networkHeaders.d.ts +3 -3
- package/dist/ui/formatters/networkHeaders.js +7 -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 +53 -72
- package/dist/ui/formatters/requestStatus.d.ts +34 -0
- package/dist/ui/formatters/requestStatus.js +55 -0
- package/dist/ui/formatters/semantic.d.ts +1 -1
- package/dist/ui/formatters/semantic.js +1 -1
- package/dist/ui/formatters/sessionFormatters.js +11 -8
- package/dist/ui/formatters/status.d.ts +23 -5
- package/dist/ui/formatters/status.js +48 -24
- package/dist/ui/formatting.d.ts +35 -0
- package/dist/ui/formatting.js +122 -23
- package/dist/ui/logging/logger.d.ts +1 -1
- package/dist/ui/messages/chrome.d.ts +35 -100
- package/dist/ui/messages/chrome.js +102 -136
- package/dist/ui/messages/commands.d.ts +121 -3
- package/dist/ui/messages/commands.js +153 -6
- package/dist/ui/messages/consoleMessages.d.ts +0 -6
- package/dist/ui/messages/consoleMessages.js +0 -8
- package/dist/ui/messages/hints.d.ts +9 -15
- package/dist/ui/messages/hints.js +17 -16
- package/dist/ui/messages/networkMessages.d.ts +0 -6
- package/dist/ui/messages/networkMessages.js +0 -8
- package/dist/ui/messages/preview.js +2 -2
- package/dist/ui/messages/session.d.ts +24 -3
- package/dist/ui/messages/session.js +38 -7
- package/dist/ui/messages/validation.d.ts +15 -26
- package/dist/ui/messages/validation.js +33 -38
- 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 +35 -4
- package/dist/utils/http.js +59 -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 +45 -0
- package/dist/utils/selectorFilters.js +224 -0
- package/dist/utils/suggestions.js +1 -1
- package/dist/utils/taskMappings.js +7 -2
- package/dist/utils/typeGuards.js +2 -2
- package/dist/utils/url.d.ts +13 -5
- package/dist/utils/url.js +53 -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.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.map +0 -1
- 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
package/dist/telemetry/a11y.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
import { CommandError } from '../errors/index.js';
|
|
2
|
+
import { unknownQueryFieldError } from '../errors/messages.js';
|
|
1
3
|
import { callCDP } from '../ipc/client.js';
|
|
4
|
+
import { EXIT_CODES } from '../utils/exitCodes.js';
|
|
2
5
|
/**
|
|
3
6
|
* Builds accessibility tree from raw CDP nodes.
|
|
4
7
|
*
|
|
5
8
|
* Pure function that filters out ignored nodes and builds the tree structure.
|
|
9
|
+
* Children that are ignored are replaced by their own non-ignored children
|
|
10
|
+
* (as DevTools shows the tree), so every `childIds` entry is in `nodes`, and
|
|
11
|
+
* nodes are listed depth-first from the root (document order).
|
|
6
12
|
* Separated from collectA11yTree for easier unit testing.
|
|
7
13
|
*
|
|
8
14
|
* @param rawNodes - Raw AXNode array from CDP
|
|
@@ -10,29 +16,55 @@ import { callCDP } from '../ipc/client.js';
|
|
|
10
16
|
* @throws Error if no root node found
|
|
11
17
|
*/
|
|
12
18
|
export function buildTreeFromRawNodes(rawNodes) {
|
|
19
|
+
const rawById = new Map(rawNodes.map((rawNode) => [rawNode.nodeId, rawNode]));
|
|
20
|
+
const rootRaw = rawNodes.find((rawNode) => !rawNode.ignored);
|
|
21
|
+
if (!rootRaw) {
|
|
22
|
+
throw new CommandError('No root node found in accessibility tree', { suggestion: 'The page may not be fully loaded. Wait and retry.' }, EXIT_CODES.SOFTWARE_ERROR);
|
|
23
|
+
}
|
|
13
24
|
const nodes = new Map();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
25
|
+
const visit = (rawNode) => {
|
|
26
|
+
if (nodes.has(rawNode.nodeId))
|
|
27
|
+
return;
|
|
19
28
|
const node = parseA11yNode(rawNode);
|
|
29
|
+
const childIds = visibleChildIds(rawNode, rawById);
|
|
30
|
+
if (childIds.length > 0)
|
|
31
|
+
node.childIds = childIds;
|
|
32
|
+
else
|
|
33
|
+
delete node.childIds;
|
|
20
34
|
nodes.set(node.nodeId, node);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return {
|
|
27
|
-
root,
|
|
28
|
-
nodes,
|
|
29
|
-
count: nodes.size,
|
|
35
|
+
for (const childId of childIds) {
|
|
36
|
+
const child = rawById.get(childId);
|
|
37
|
+
if (child)
|
|
38
|
+
visit(child);
|
|
39
|
+
}
|
|
30
40
|
};
|
|
41
|
+
visit(rootRaw);
|
|
42
|
+
rawNodes.filter((rawNode) => !rawNode.ignored).forEach(visit);
|
|
43
|
+
const root = nodes.get(rootRaw.nodeId);
|
|
44
|
+
return { root, nodes, count: nodes.size };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Ids of a node's children as shown: ignored children are replaced by their
|
|
48
|
+
* own non-ignored descendants; ids missing from the tree are dropped.
|
|
49
|
+
*
|
|
50
|
+
* @param rawNode - Node whose children to list
|
|
51
|
+
* @param rawById - All raw nodes by id
|
|
52
|
+
* @param seen - Ids already listed (guards against cycles)
|
|
53
|
+
* @returns Child ids, all of non-ignored nodes in the tree
|
|
54
|
+
*/
|
|
55
|
+
function visibleChildIds(rawNode, rawById, seen = new Set()) {
|
|
56
|
+
return (rawNode.childIds ?? []).flatMap((childId) => {
|
|
57
|
+
const child = rawById.get(childId);
|
|
58
|
+
if (!child || seen.has(childId))
|
|
59
|
+
return [];
|
|
60
|
+
seen.add(childId);
|
|
61
|
+
return child.ignored ? visibleChildIds(child, rawById, seen) : [childId];
|
|
62
|
+
});
|
|
31
63
|
}
|
|
32
64
|
/**
|
|
33
65
|
* Collects the full accessibility tree from the page via IPC.
|
|
34
66
|
*
|
|
35
|
-
* Uses the
|
|
67
|
+
* Uses the session's persistent CDP connection through callCDP for consistency
|
|
36
68
|
* with other DOM commands and to avoid connection conflicts.
|
|
37
69
|
*
|
|
38
70
|
* @returns Parsed and filtered accessibility tree
|
|
@@ -44,14 +76,86 @@ export async function collectA11yTree() {
|
|
|
44
76
|
const response = await callCDP('Accessibility.getFullAXTree', {});
|
|
45
77
|
const result = response.data?.result;
|
|
46
78
|
if (!result?.nodes) {
|
|
47
|
-
throw new
|
|
79
|
+
throw new CommandError('Failed to get accessibility tree', { suggestion: 'CDP returned no nodes. The page may not be fully loaded.' }, EXIT_CODES.SOFTWARE_ERROR);
|
|
48
80
|
}
|
|
49
|
-
return buildTreeFromRawNodes(result.nodes);
|
|
81
|
+
return buildTreeFromRawNodes([...result.nodes, ...(await collectFrameNodes(result.nodes))]);
|
|
50
82
|
}
|
|
51
83
|
finally {
|
|
52
84
|
await callCDP('Accessibility.disable', {});
|
|
53
85
|
}
|
|
54
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Accessibility nodes of the page's iframes, attached under their `Iframe`
|
|
89
|
+
* node (the page's own tree stops there). Frames in another process
|
|
90
|
+
* (cross-origin) cannot be read this way and are skipped. Node ids are
|
|
91
|
+
* prefixed per frame, as each frame numbers its nodes on its own.
|
|
92
|
+
*
|
|
93
|
+
* @param pageNodes - The page's nodes (their iframe nodes get the frame root as
|
|
94
|
+
* child; nested frames attach to their parent frame's nodes)
|
|
95
|
+
* @returns Nodes of all readable frames
|
|
96
|
+
*/
|
|
97
|
+
async function collectFrameNodes(pageNodes) {
|
|
98
|
+
const tree = (await callCDP('Page.getFrameTree', {})).data?.result;
|
|
99
|
+
const known = [...pageNodes];
|
|
100
|
+
const collected = [];
|
|
101
|
+
for (const [index, frameId] of childFrames(tree?.frameTree).entries()) {
|
|
102
|
+
const nodes = await frameNodes(frameId, `f${index}:`, known);
|
|
103
|
+
known.push(...nodes);
|
|
104
|
+
collected.push(...nodes);
|
|
105
|
+
}
|
|
106
|
+
return collected;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Ids of all frames below a frame tree's root.
|
|
110
|
+
*
|
|
111
|
+
* @param tree - Frame tree
|
|
112
|
+
* @returns Frame ids, depth-first
|
|
113
|
+
*/
|
|
114
|
+
function childFrames(tree) {
|
|
115
|
+
return (tree?.childFrames ?? []).flatMap((child) => [child.frame.id, ...childFrames(child)]);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* One frame's nodes, with ids prefixed, its root attached to the node of its
|
|
119
|
+
* `<iframe>` element.
|
|
120
|
+
*
|
|
121
|
+
* @param frameId - Frame id
|
|
122
|
+
* @param prefix - Prefix for the frame's node ids
|
|
123
|
+
* @param ownerNodes - Nodes that may contain the frame's `<iframe>` node
|
|
124
|
+
* @returns The frame's nodes, or none when it cannot be read
|
|
125
|
+
*/
|
|
126
|
+
async function frameNodes(frameId, prefix, ownerNodes) {
|
|
127
|
+
const response = await callCDP('Accessibility.getFullAXTree', { frameId });
|
|
128
|
+
const nodes = response.data?.result
|
|
129
|
+
?.nodes;
|
|
130
|
+
const owner = (await callCDP('DOM.getFrameOwner', { frameId })).data?.result;
|
|
131
|
+
if (!nodes?.length || !owner)
|
|
132
|
+
return [];
|
|
133
|
+
const prefixed = nodes.map((node) => ({
|
|
134
|
+
...node,
|
|
135
|
+
nodeId: prefix + node.nodeId,
|
|
136
|
+
...(node.parentId && { parentId: prefix + node.parentId }),
|
|
137
|
+
...(node.childIds && { childIds: node.childIds.map((id) => prefix + id) }),
|
|
138
|
+
}));
|
|
139
|
+
const root = prefixed.find((node) => !node.parentId);
|
|
140
|
+
const iframeNode = ownerNodes.find((node) => node.backendDOMNodeId === owner.backendNodeId);
|
|
141
|
+
if (root && iframeNode)
|
|
142
|
+
iframeNode.childIds = [...(iframeNode.childIds ?? []), root.nodeId];
|
|
143
|
+
return prefixed;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Chrome reports some states (`checked`, `pressed`) as the strings "true" and
|
|
147
|
+
* "false" (they may also be "mixed"); make those booleans like the others.
|
|
148
|
+
*
|
|
149
|
+
* @param value - Property value
|
|
150
|
+
* @returns The value, with "true"/"false" as booleans
|
|
151
|
+
*/
|
|
152
|
+
function booleanIfFlag(value) {
|
|
153
|
+
if (value === 'true')
|
|
154
|
+
return true;
|
|
155
|
+
if (value === 'false')
|
|
156
|
+
return false;
|
|
157
|
+
return value;
|
|
158
|
+
}
|
|
55
159
|
/**
|
|
56
160
|
* Parses raw CDP AXNode into simplified A11yNode format.
|
|
57
161
|
*
|
|
@@ -91,7 +195,7 @@ function parseA11yNode(rawNode) {
|
|
|
91
195
|
node.required = prop.value.value === true;
|
|
92
196
|
}
|
|
93
197
|
else {
|
|
94
|
-
props[prop.name] = prop.value.value;
|
|
198
|
+
props[prop.name] = booleanIfFlag(prop.value.value);
|
|
95
199
|
}
|
|
96
200
|
}
|
|
97
201
|
if (Object.keys(props).length > 0) {
|
|
@@ -120,6 +224,12 @@ function extractRole(rawNode) {
|
|
|
120
224
|
}
|
|
121
225
|
return 'unknown';
|
|
122
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Roles of text nodes: they repeat the name of the element they are in (a
|
|
229
|
+
* name search found every button three times) and are not elements that
|
|
230
|
+
* commands can act on. Left out unless the query asks for the role.
|
|
231
|
+
*/
|
|
232
|
+
const TEXT_ROLES = new Set(['statictext', 'inlinetextbox']);
|
|
123
233
|
/**
|
|
124
234
|
* Queries accessibility tree by pattern (role, name, description).
|
|
125
235
|
*
|
|
@@ -143,7 +253,10 @@ function extractRole(rawNode) {
|
|
|
143
253
|
*/
|
|
144
254
|
export function queryA11yTree(tree, pattern) {
|
|
145
255
|
const matches = [];
|
|
256
|
+
const wantsText = pattern.role !== undefined && TEXT_ROLES.has(pattern.role.toLowerCase());
|
|
146
257
|
for (const node of tree.nodes.values()) {
|
|
258
|
+
if (!wantsText && TEXT_ROLES.has(node.role.toLowerCase()))
|
|
259
|
+
continue;
|
|
147
260
|
if (matchesPattern(node, pattern)) {
|
|
148
261
|
matches.push(node);
|
|
149
262
|
}
|
|
@@ -154,128 +267,112 @@ export function queryA11yTree(tree, pattern) {
|
|
|
154
267
|
pattern,
|
|
155
268
|
};
|
|
156
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* Match a value against a query term.
|
|
272
|
+
*
|
|
273
|
+
* Without `*` the term matches as a case-insensitive substring (or exactly,
|
|
274
|
+
* for `exact`); `*` matches any run of characters.
|
|
275
|
+
*
|
|
276
|
+
* @param value - Node value (role, name, description)
|
|
277
|
+
* @param term - Query term
|
|
278
|
+
* @param exact - Whole-value match instead of substring
|
|
279
|
+
* @returns True on match
|
|
280
|
+
*/
|
|
281
|
+
function matchesTerm(value, term, exact = false) {
|
|
282
|
+
if (value === undefined)
|
|
283
|
+
return false;
|
|
284
|
+
if (!term.includes('*')) {
|
|
285
|
+
const [v, t] = [value.toLowerCase(), term.toLowerCase()];
|
|
286
|
+
return exact ? v === t : v.includes(t);
|
|
287
|
+
}
|
|
288
|
+
const source = term
|
|
289
|
+
.split('*')
|
|
290
|
+
.map((part) => part.replace(/[.+?^${}()|[\]\\]/g, '\\$&'))
|
|
291
|
+
.join('[\\s\\S]*');
|
|
292
|
+
return new RegExp(exact ? `^${source}$` : source, 'i').test(value);
|
|
293
|
+
}
|
|
157
294
|
/**
|
|
158
295
|
* Checks if a node matches the query pattern.
|
|
159
296
|
*
|
|
160
|
-
* All specified fields must match (AND logic)
|
|
161
|
-
*
|
|
297
|
+
* All specified fields must match (AND logic), case-insensitively: role
|
|
298
|
+
* exactly, name and description as substrings; `*` is a wildcard.
|
|
162
299
|
*
|
|
163
300
|
* @param node - A11y node to test
|
|
164
301
|
* @param pattern - Query pattern
|
|
165
302
|
* @returns True if node matches all pattern criteria
|
|
166
303
|
*/
|
|
167
304
|
function matchesPattern(node, pattern) {
|
|
168
|
-
if (pattern.role)
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
if (!node.name) {
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
if (!node.name.toLowerCase().includes(pattern.name.toLowerCase())) {
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
if (pattern.description) {
|
|
182
|
-
if (!node.description) {
|
|
183
|
-
return false;
|
|
184
|
-
}
|
|
185
|
-
if (!node.description.toLowerCase().includes(pattern.description.toLowerCase())) {
|
|
186
|
-
return false;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
305
|
+
if (pattern.role && !matchesTerm(node.role, pattern.role, true))
|
|
306
|
+
return false;
|
|
307
|
+
if (pattern.name && !matchesTerm(node.name, pattern.name))
|
|
308
|
+
return false;
|
|
309
|
+
if (pattern.description && !matchesTerm(node.description, pattern.description))
|
|
310
|
+
return false;
|
|
189
311
|
return true;
|
|
190
312
|
}
|
|
313
|
+
/** Query fields and their aliases. */
|
|
314
|
+
const QUERY_FIELDS = {
|
|
315
|
+
role: 'role',
|
|
316
|
+
name: 'name',
|
|
317
|
+
description: 'description',
|
|
318
|
+
desc: 'description',
|
|
319
|
+
};
|
|
320
|
+
/**
|
|
321
|
+
* One `key:value` (or `key=value`) field: the value is quoted, or runs until
|
|
322
|
+
* the next `key:`/`key=` after a space or comma.
|
|
323
|
+
*/
|
|
324
|
+
const QUERY_FIELD = /([a-z]+)\s*[:=](?:\s*("[^"]*"|'[^']*')|((?:(?![\s,]+[a-z]+\s*[:=]).)*))/gis;
|
|
191
325
|
/**
|
|
192
326
|
* Parses query pattern string into A11yQueryPattern object.
|
|
193
327
|
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
328
|
+
* Fields are `key:value` or `key=value`, separated by spaces or commas.
|
|
329
|
+
* Values may contain spaces (quote them if they contain `key:`-like text).
|
|
330
|
+
* Keys: role, name, description (desc). Case-insensitive.
|
|
197
331
|
*
|
|
198
332
|
* @param patternString - Query pattern string
|
|
199
333
|
* @returns Parsed query pattern
|
|
334
|
+
* @throws CommandError (81) for unknown keys
|
|
200
335
|
*
|
|
201
336
|
* @example
|
|
202
337
|
* ```typescript
|
|
203
|
-
* parseQueryPattern('role:button name:Submit')
|
|
204
|
-
* //
|
|
205
|
-
*
|
|
206
|
-
* parseQueryPattern('role=heading')
|
|
207
|
-
* // => { role: 'heading' }
|
|
208
|
-
*
|
|
209
|
-
* parseQueryPattern('name:Email')
|
|
210
|
-
* // => { name: 'Email' }
|
|
338
|
+
* parseQueryPattern('role:button name:Submit') // { role: 'button', name: 'Submit' }
|
|
339
|
+
* parseQueryPattern('role=link,name=Google Chrome') // { role: 'link', name: 'Google Chrome' }
|
|
340
|
+
* parseQueryPattern('name:"Sign in" role:button') // { name: 'Sign in', role: 'button' }
|
|
211
341
|
* ```
|
|
212
342
|
*/
|
|
213
343
|
export function parseQueryPattern(patternString) {
|
|
214
344
|
const pattern = {};
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
const
|
|
218
|
-
if (!
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const separator = separatorMatch[0];
|
|
222
|
-
const [key, ...valueParts] = part.split(separator);
|
|
223
|
-
const value = valueParts.join(separator);
|
|
224
|
-
if (!value) {
|
|
225
|
-
continue;
|
|
226
|
-
}
|
|
227
|
-
if (!key) {
|
|
228
|
-
continue;
|
|
229
|
-
}
|
|
230
|
-
const normalizedKey = key.toLowerCase();
|
|
231
|
-
if (normalizedKey === 'role') {
|
|
232
|
-
pattern.role = value;
|
|
233
|
-
}
|
|
234
|
-
else if (normalizedKey === 'name') {
|
|
235
|
-
pattern.name = value;
|
|
236
|
-
}
|
|
237
|
-
else if (normalizedKey === 'description' || normalizedKey === 'desc') {
|
|
238
|
-
pattern.description = value;
|
|
345
|
+
for (const [, rawKey = '', quoted, plain = ''] of patternString.matchAll(QUERY_FIELD)) {
|
|
346
|
+
const rawValue = quoted ?? plain;
|
|
347
|
+
const field = QUERY_FIELDS[rawKey.toLowerCase()];
|
|
348
|
+
if (!field) {
|
|
349
|
+
const err = unknownQueryFieldError(rawKey);
|
|
350
|
+
throw new CommandError(err.message, { suggestion: err.suggestion }, EXIT_CODES.INVALID_ARGUMENTS);
|
|
239
351
|
}
|
|
352
|
+
const value = rawValue
|
|
353
|
+
.trim()
|
|
354
|
+
.replace(/,+$/, '')
|
|
355
|
+
.replace(/^(["'])(.*)\1$/s, '$2');
|
|
356
|
+
if (value)
|
|
357
|
+
pattern[field] = value;
|
|
240
358
|
}
|
|
241
359
|
return pattern;
|
|
242
360
|
}
|
|
243
361
|
/**
|
|
244
|
-
* Resolve accessibility properties for a DOM node
|
|
362
|
+
* Resolve accessibility properties for a DOM node via IPC.
|
|
245
363
|
*
|
|
246
|
-
* Uses the
|
|
247
|
-
*
|
|
364
|
+
* Uses the session's persistent CDP connection through callCDP for consistency.
|
|
365
|
+
* Selectors are resolved by the caller (see `resolveBackendNodeIds`), so they
|
|
366
|
+
* reach shadow roots and same-origin iframes like every other DOM command.
|
|
248
367
|
*
|
|
249
|
-
* @param
|
|
250
|
-
* @param nodeId - Optional nodeId to use directly instead of querying by selector
|
|
368
|
+
* @param target - Node reference
|
|
251
369
|
* @returns A11y node or null if not found
|
|
252
|
-
* @throws Error if selector is invalid or element not found
|
|
253
370
|
*/
|
|
254
|
-
export async function resolveA11yNode(
|
|
371
|
+
export async function resolveA11yNode(target) {
|
|
255
372
|
await callCDP('Accessibility.enable', {});
|
|
256
373
|
try {
|
|
257
|
-
let targetNodeId;
|
|
258
|
-
if (nodeId !== undefined) {
|
|
259
|
-
targetNodeId = nodeId;
|
|
260
|
-
}
|
|
261
|
-
else {
|
|
262
|
-
const docResponse = await callCDP('DOM.getDocument', {});
|
|
263
|
-
const doc = docResponse.data?.result;
|
|
264
|
-
if (!doc?.root?.nodeId) {
|
|
265
|
-
throw new Error('Failed to get document root');
|
|
266
|
-
}
|
|
267
|
-
const nodeResponse = await callCDP('DOM.querySelector', {
|
|
268
|
-
nodeId: doc.root.nodeId,
|
|
269
|
-
selector,
|
|
270
|
-
});
|
|
271
|
-
const nodeResult = nodeResponse.data?.result;
|
|
272
|
-
if (!nodeResult?.nodeId) {
|
|
273
|
-
return null;
|
|
274
|
-
}
|
|
275
|
-
targetNodeId = nodeResult.nodeId;
|
|
276
|
-
}
|
|
277
374
|
const a11yResponse = await callCDP('Accessibility.getPartialAXTree', {
|
|
278
|
-
|
|
375
|
+
...target,
|
|
279
376
|
fetchRelatives: false,
|
|
280
377
|
});
|
|
281
378
|
const a11yResult = a11yResponse.data?.result;
|
|
@@ -292,4 +389,40 @@ export async function resolveA11yNode(selector, nodeId) {
|
|
|
292
389
|
await callCDP('Accessibility.disable', {});
|
|
293
390
|
}
|
|
294
391
|
}
|
|
392
|
+
/**
|
|
393
|
+
* Why an element has no node in the accessibility tree (e.g. it is not
|
|
394
|
+
* rendered, aria-hidden, or a decorative image with `alt=""`).
|
|
395
|
+
*
|
|
396
|
+
* @param target - Node reference
|
|
397
|
+
* @returns Chrome's reasons in plain words (empty if unknown)
|
|
398
|
+
*/
|
|
399
|
+
export async function a11yIgnoredReasons(target) {
|
|
400
|
+
await callCDP('Accessibility.enable', {});
|
|
401
|
+
try {
|
|
402
|
+
const response = await callCDP('Accessibility.getPartialAXTree', {
|
|
403
|
+
...target,
|
|
404
|
+
fetchRelatives: false,
|
|
405
|
+
});
|
|
406
|
+
const nodes = response.data?.result?.nodes;
|
|
407
|
+
return (nodes?.[0]?.ignoredReasons ?? []).map((reason) => IGNORED_REASONS[reason.name] ?? reason.name);
|
|
408
|
+
}
|
|
409
|
+
finally {
|
|
410
|
+
await callCDP('Accessibility.disable', {});
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
/** Chrome's ignored reasons in plain words */
|
|
414
|
+
const IGNORED_REASONS = {
|
|
415
|
+
notRendered: 'not rendered (display: none or hidden)',
|
|
416
|
+
notVisible: 'not visible',
|
|
417
|
+
ariaHiddenElement: 'aria-hidden="true"',
|
|
418
|
+
ariaHiddenSubtree: 'inside an aria-hidden element',
|
|
419
|
+
presentationalRole: 'presentational (e.g. an image with alt="")',
|
|
420
|
+
emptyAlt: 'an image with alt=""',
|
|
421
|
+
inertElement: 'inert',
|
|
422
|
+
inertSubtree: 'inside an inert element',
|
|
423
|
+
activeModalDialog: 'outside the open modal dialog',
|
|
424
|
+
probablyPresentational: 'probably decorative',
|
|
425
|
+
uninteresting: 'has no role or name',
|
|
426
|
+
labelFor: 'a label (its text names another element)',
|
|
427
|
+
};
|
|
295
428
|
//# sourceMappingURL=a11y.js.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attach to the page's child targets: out-of-process (cross-origin) iframes
|
|
3
|
+
* and workers.
|
|
4
|
+
*
|
|
5
|
+
* Their console, log and network events do not reach the page's own session.
|
|
6
|
+
* With flattened auto-attach, each child gets a session on the same
|
|
7
|
+
* connection; its events arrive with that session id, and commands are sent
|
|
8
|
+
* to it by id. Children start paused, so every collector can enable its
|
|
9
|
+
* domains before the child loads anything; they are resumed afterwards.
|
|
10
|
+
*/
|
|
11
|
+
import type { CDPConnection } from '../connection/cdp.js';
|
|
12
|
+
import type { CleanupFunction } from '../types.js';
|
|
13
|
+
/** Enables what a collector needs on a child session (e.g. `Runtime.enable`) */
|
|
14
|
+
type ChildSetup = (sessionId: string) => Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Attach to child targets of the page and run `setup` on each one's session
|
|
17
|
+
* before it starts. Children that are already attached (e.g. when another
|
|
18
|
+
* collector registered first) get the setup right away.
|
|
19
|
+
*
|
|
20
|
+
* @param cdp - CDP connection to the page
|
|
21
|
+
* @param setup - Enables domains on a child session (e.g. `Runtime.enable`)
|
|
22
|
+
* @returns Cleanup function that stops running `setup` for new targets
|
|
23
|
+
*/
|
|
24
|
+
export declare function attachChildTargets(cdp: CDPConnection, setup: ChildSetup): Promise<CleanupFunction>;
|
|
25
|
+
/**
|
|
26
|
+
* Session of an attached child target (e.g. an out-of-process iframe) on the
|
|
27
|
+
* connection. Its commands are answered even while the target's scripts keep
|
|
28
|
+
* it busy, unlike those of a session attached afterwards.
|
|
29
|
+
*
|
|
30
|
+
* @param cdp - CDP connection to the page
|
|
31
|
+
* @param targetId - Target id (an iframe target's id is its frame id)
|
|
32
|
+
* @returns The session, undefined when the target is not attached
|
|
33
|
+
*/
|
|
34
|
+
export declare function attachedSessionOf(cdp: CDPConnection, targetId: string): string | undefined;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=attachedTargets.d.ts.map
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attach to the page's child targets: out-of-process (cross-origin) iframes
|
|
3
|
+
* and workers.
|
|
4
|
+
*
|
|
5
|
+
* Their console, log and network events do not reach the page's own session.
|
|
6
|
+
* With flattened auto-attach, each child gets a session on the same
|
|
7
|
+
* connection; its events arrive with that session id, and commands are sent
|
|
8
|
+
* to it by id. Children start paused, so every collector can enable its
|
|
9
|
+
* domains before the child loads anything; they are resumed afterwards.
|
|
10
|
+
*/
|
|
11
|
+
import { CDPHandlerRegistry } from '../connection/handlers.js';
|
|
12
|
+
import { TypedCDPConnection } from '../connection/typed-cdp.js';
|
|
13
|
+
import { createLogger } from '../ui/logging/index.js';
|
|
14
|
+
import { getErrorMessage } from '../utils/errors.js';
|
|
15
|
+
const log = createLogger('targets');
|
|
16
|
+
/** Auto-attach settings: children wait until set up; one connection for all sessions */
|
|
17
|
+
const AUTO_ATTACH = { autoAttach: true, waitForDebuggerOnStart: true, flatten: true };
|
|
18
|
+
/**
|
|
19
|
+
* How long a paused child waits for the collectors' setup before it is
|
|
20
|
+
* resumed anyway. A paused service worker answers no command until it runs,
|
|
21
|
+
* so waiting for its setup kept it (and the page's `register()`) paused
|
|
22
|
+
* forever; its pending commands complete once it runs.
|
|
23
|
+
*/
|
|
24
|
+
const SETUP_WAIT_MS = 1000;
|
|
25
|
+
/** Turns auto-attach off again (children attached afterwards would stay paused) */
|
|
26
|
+
const NO_AUTO_ATTACH = { autoAttach: false, waitForDebuggerOnStart: false };
|
|
27
|
+
const managers = new WeakMap();
|
|
28
|
+
/**
|
|
29
|
+
* Run setups on a child session, logging (not throwing) failures.
|
|
30
|
+
*
|
|
31
|
+
* @param sessionId - Session of the attached target
|
|
32
|
+
* @param url - Target URL (for logs)
|
|
33
|
+
* @param setups - Collector setups to run
|
|
34
|
+
*/
|
|
35
|
+
async function runSetups(sessionId, url, setups) {
|
|
36
|
+
const results = await Promise.allSettled([...setups].map((setup) => setup(sessionId)));
|
|
37
|
+
for (const result of results) {
|
|
38
|
+
if (result.status === 'rejected') {
|
|
39
|
+
log.debug(`Setup of attached target ${url} failed: ${getErrorMessage(result.reason)}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Prepare a newly attached child target: run every collector's setup on its
|
|
45
|
+
* session, auto-attach to its own children (iframes nested in iframes), and
|
|
46
|
+
* resume it (after at most {@link SETUP_WAIT_MS}).
|
|
47
|
+
*
|
|
48
|
+
* @param manager - Shared manager of the connection
|
|
49
|
+
* @param sessionId - Session of the attached target
|
|
50
|
+
* @param child - Target URL (for logs) and id
|
|
51
|
+
*/
|
|
52
|
+
async function prepareChild(manager, sessionId, child) {
|
|
53
|
+
const { url } = child;
|
|
54
|
+
manager.sessions.set(sessionId, child);
|
|
55
|
+
try {
|
|
56
|
+
let timer;
|
|
57
|
+
await Promise.race([
|
|
58
|
+
Promise.all([
|
|
59
|
+
runSetups(sessionId, url, manager.setups),
|
|
60
|
+
manager.typed.send('Target.setAutoAttach', AUTO_ATTACH, sessionId),
|
|
61
|
+
]),
|
|
62
|
+
new Promise((resolve) => (timer = setTimeout(resolve, SETUP_WAIT_MS))),
|
|
63
|
+
]).finally(() => clearTimeout(timer));
|
|
64
|
+
log.debug(`Attached to ${url || 'a new target'}`);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
log.debug(`Could not prepare attached target ${url}: ${getErrorMessage(error)}`);
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
await manager.typed
|
|
71
|
+
.send('Runtime.runIfWaitingForDebugger', {}, sessionId)
|
|
72
|
+
.catch((error) => log.debug(`Could not resume ${url}: ${getErrorMessage(error)}`));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create the shared manager of a connection (auto-attach starts once the
|
|
77
|
+
* first setup is registered).
|
|
78
|
+
*
|
|
79
|
+
* @param cdp - CDP connection to the page
|
|
80
|
+
* @returns The manager
|
|
81
|
+
*/
|
|
82
|
+
function createManager(cdp) {
|
|
83
|
+
const typed = new TypedCDPConnection(cdp);
|
|
84
|
+
const manager = {
|
|
85
|
+
typed,
|
|
86
|
+
setups: new Set(),
|
|
87
|
+
sessions: new Map(),
|
|
88
|
+
registry: new CDPHandlerRegistry(),
|
|
89
|
+
};
|
|
90
|
+
manager.registry.registerTyped(typed, 'Target.attachedToTarget', (params) => {
|
|
91
|
+
const { url, targetId } = params.targetInfo;
|
|
92
|
+
void prepareChild(manager, params.sessionId, { url, targetId });
|
|
93
|
+
});
|
|
94
|
+
manager.registry.registerTyped(typed, 'Target.detachedFromTarget', (params) => {
|
|
95
|
+
manager.sessions.delete(params.sessionId);
|
|
96
|
+
});
|
|
97
|
+
managers.set(cdp, manager);
|
|
98
|
+
return manager;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Stop auto-attaching once no collector needs children any more.
|
|
102
|
+
*
|
|
103
|
+
* @param cdp - CDP connection to the page
|
|
104
|
+
* @param manager - The connection's manager
|
|
105
|
+
*/
|
|
106
|
+
function retireManager(cdp, manager) {
|
|
107
|
+
manager.registry.cleanup();
|
|
108
|
+
managers.delete(cdp);
|
|
109
|
+
void manager.typed
|
|
110
|
+
.send('Target.setAutoAttach', { ...NO_AUTO_ATTACH, flatten: true })
|
|
111
|
+
.catch((error) => log.debug(`Auto-attach not turned off: ${getErrorMessage(error)}`));
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Attach to child targets of the page and run `setup` on each one's session
|
|
115
|
+
* before it starts. Children that are already attached (e.g. when another
|
|
116
|
+
* collector registered first) get the setup right away.
|
|
117
|
+
*
|
|
118
|
+
* @param cdp - CDP connection to the page
|
|
119
|
+
* @param setup - Enables domains on a child session (e.g. `Runtime.enable`)
|
|
120
|
+
* @returns Cleanup function that stops running `setup` for new targets
|
|
121
|
+
*/
|
|
122
|
+
export async function attachChildTargets(cdp, setup) {
|
|
123
|
+
const existing = managers.get(cdp);
|
|
124
|
+
const manager = existing ?? createManager(cdp);
|
|
125
|
+
manager.setups.add(setup);
|
|
126
|
+
const cleanup = () => {
|
|
127
|
+
manager.setups.delete(setup);
|
|
128
|
+
if (manager.setups.size === 0 && managers.get(cdp) === manager)
|
|
129
|
+
retireManager(cdp, manager);
|
|
130
|
+
};
|
|
131
|
+
if (existing) {
|
|
132
|
+
for (const [sessionId, { url }] of manager.sessions)
|
|
133
|
+
void runSetups(sessionId, url, [setup]);
|
|
134
|
+
return cleanup;
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
await manager.typed.send('Target.setAutoAttach', AUTO_ATTACH);
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
manager.setups.delete(setup);
|
|
141
|
+
manager.registry.cleanup();
|
|
142
|
+
managers.delete(cdp);
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
return cleanup;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Session of an attached child target (e.g. an out-of-process iframe) on the
|
|
149
|
+
* connection. Its commands are answered even while the target's scripts keep
|
|
150
|
+
* it busy, unlike those of a session attached afterwards.
|
|
151
|
+
*
|
|
152
|
+
* @param cdp - CDP connection to the page
|
|
153
|
+
* @param targetId - Target id (an iframe target's id is its frame id)
|
|
154
|
+
* @returns The session, undefined when the target is not attached
|
|
155
|
+
*/
|
|
156
|
+
export function attachedSessionOf(cdp, targetId) {
|
|
157
|
+
for (const [sessionId, child] of managers.get(cdp)?.sessions ?? []) {
|
|
158
|
+
if (child.targetId === targetId)
|
|
159
|
+
return sessionId;
|
|
160
|
+
}
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=attachedTargets.js.map
|
|
@@ -1,13 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Console message collection via CDP Runtime
|
|
2
|
+
* Console message collection via CDP Runtime and Log domains.
|
|
3
3
|
*
|
|
4
4
|
* Captures console.log, console.error, etc. and JavaScript exceptions
|
|
5
|
-
* with automatic nested object expansion
|
|
5
|
+
* with automatic nested object expansion, browser messages (failed loads,
|
|
6
|
+
* CORS, security, deprecations), and the same from cross-origin iframes and
|
|
7
|
+
* workers.
|
|
6
8
|
*/
|
|
7
9
|
import type { CDPConnection } from '../connection/cdp.js';
|
|
8
|
-
import type {
|
|
10
|
+
import type { Protocol } from '../connection/typed-cdp.js';
|
|
11
|
+
import type { ConsoleMessage, CleanupFunction } from '../types.js';
|
|
9
12
|
/**
|
|
10
|
-
*
|
|
13
|
+
* Build the message text for an uncaught exception, as DevTools shows it.
|
|
14
|
+
*
|
|
15
|
+
* CDP's `text` is usually just "Uncaught" or "Uncaught (in promise)"; the
|
|
16
|
+
* actual error lives in `exception.description` (Errors) or `exception.value`
|
|
17
|
+
* (thrown primitives). The description's stack frames (` at ...` lines)
|
|
18
|
+
* are dropped, since the stack is kept separately on the message; multi-line
|
|
19
|
+
* error messages are kept whole.
|
|
20
|
+
*
|
|
21
|
+
* @param details - CDP exception details
|
|
22
|
+
* @returns e.g. "Uncaught TypeError: x is not a function"
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatExceptionText(details: Protocol.Runtime.ExceptionDetails): string;
|
|
25
|
+
/**
|
|
26
|
+
* Start collecting console messages, exceptions and browser log entries from
|
|
27
|
+
* the page and its cross-origin iframes and workers.
|
|
11
28
|
*
|
|
12
29
|
* @param cdp - CDP connection instance
|
|
13
30
|
* @param messages - Array to populate with console messages
|