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
|
@@ -1,66 +1,167 @@
|
|
|
1
|
-
import { unlinkSync } from 'fs';
|
|
1
|
+
import { linkSync, lstatSync, unlinkSync } from 'fs';
|
|
2
2
|
import { createServer } from 'net';
|
|
3
|
+
import { DaemonError } from '../errors.js';
|
|
4
|
+
import { probeDaemonSocket } from '../../session/daemonSocket.js';
|
|
3
5
|
import { createLogger } from '../../ui/logging/index.js';
|
|
6
|
+
import { getErrorMessage } from '../../utils/errors.js';
|
|
7
|
+
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
8
|
+
/** Unix socket path limit (sun_path is 104 bytes on macOS incl. NUL; 108 on Linux). */
|
|
9
|
+
const MAX_SOCKET_PATH_BYTES = 103;
|
|
10
|
+
/** Error code thrown when another daemon already owns the socket path. */
|
|
11
|
+
export const DAEMON_ALREADY_RUNNING_CODE = 'DAEMON_ALREADY_RUNNING';
|
|
4
12
|
/**
|
|
5
13
|
* Thin wrapper around Node's net.Server that centralizes socket lifecycle
|
|
6
14
|
* management (setup, connection tracking, teardown).
|
|
15
|
+
*
|
|
16
|
+
* Claims the socket path exclusively: the server listens on a private
|
|
17
|
+
* temporary path and then hard-links it to the public path. `link()` fails
|
|
18
|
+
* with EEXIST if the path exists, so two daemons can never both own it.
|
|
19
|
+
* On shutdown the public path is removed only if it still refers to our
|
|
20
|
+
* socket inode.
|
|
7
21
|
*/
|
|
8
22
|
export class SocketServer {
|
|
9
23
|
server = null;
|
|
10
24
|
sockets = new Set();
|
|
11
25
|
socketPath = null;
|
|
26
|
+
socketInode = null;
|
|
12
27
|
log = createLogger('daemon');
|
|
13
28
|
/**
|
|
14
29
|
* Start listening on the provided Unix domain socket path.
|
|
30
|
+
*
|
|
31
|
+
* @param socketPath - Public socket path to claim
|
|
32
|
+
* @param handler - Connection handler
|
|
33
|
+
* @throws DaemonError with code DAEMON_ALREADY_RUNNING if a live daemon owns the path
|
|
15
34
|
*/
|
|
16
35
|
async start(socketPath, handler) {
|
|
36
|
+
const privatePath = `${socketPath}.${process.pid}`;
|
|
37
|
+
if (Buffer.byteLength(privatePath) > MAX_SOCKET_PATH_BYTES) {
|
|
38
|
+
throw new DaemonError(`Socket path too long (${Buffer.byteLength(privatePath)} bytes, max ${MAX_SOCKET_PATH_BYTES}): ${privatePath}`, 'SOCKET_PATH_TOO_LONG', EXIT_CODES.INVALID_ARGUMENTS);
|
|
39
|
+
}
|
|
40
|
+
this.removeFile(privatePath);
|
|
41
|
+
await this.listen(privatePath, handler);
|
|
42
|
+
try {
|
|
43
|
+
await this.claim(privatePath, socketPath);
|
|
44
|
+
this.socketInode = lstatSync(privatePath).ino;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
await this.closeServer();
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
this.removeFile(privatePath);
|
|
52
|
+
}
|
|
17
53
|
this.socketPath = socketPath;
|
|
18
|
-
this.
|
|
19
|
-
|
|
54
|
+
this.log.info(`IPC server listening on ${socketPath}`);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Remove the public socket file so no new clients can connect, while
|
|
58
|
+
* keeping existing connections open to flush their final responses.
|
|
59
|
+
*/
|
|
60
|
+
unpublish() {
|
|
61
|
+
if (!this.socketPath)
|
|
62
|
+
return;
|
|
63
|
+
if (this.ownsPath(this.socketPath)) {
|
|
64
|
+
this.removeFile(this.socketPath);
|
|
65
|
+
}
|
|
66
|
+
this.socketPath = null;
|
|
67
|
+
this.socketInode = null;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Check that a path still refers to the socket this server claimed.
|
|
71
|
+
*
|
|
72
|
+
* Guards against removing another daemon's socket if ours was replaced
|
|
73
|
+
* (e.g. two daemons racing to replace the same stale socket file).
|
|
74
|
+
*
|
|
75
|
+
* @param path - Public socket path
|
|
76
|
+
* @returns True if the path is our socket inode
|
|
77
|
+
*/
|
|
78
|
+
ownsPath(path) {
|
|
79
|
+
try {
|
|
80
|
+
return lstatSync(path).ino === this.socketInode;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Unpublish the socket, drop all connections and close the server.
|
|
88
|
+
*/
|
|
89
|
+
async stop() {
|
|
90
|
+
this.unpublish();
|
|
91
|
+
for (const socket of this.sockets) {
|
|
92
|
+
socket.destroy();
|
|
93
|
+
}
|
|
94
|
+
this.sockets.clear();
|
|
95
|
+
await this.closeServer();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Listen on a socket path.
|
|
99
|
+
*
|
|
100
|
+
* @param path - Socket path
|
|
101
|
+
* @param handler - Connection handler
|
|
102
|
+
*/
|
|
103
|
+
listen(path, handler) {
|
|
104
|
+
return new Promise((resolve, reject) => {
|
|
20
105
|
this.server = createServer((socket) => {
|
|
21
106
|
this.sockets.add(socket);
|
|
22
107
|
socket.on('close', () => this.sockets.delete(socket));
|
|
23
108
|
handler(socket);
|
|
24
109
|
});
|
|
25
|
-
this.server.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.server.listen(socketPath, () => {
|
|
30
|
-
this.log.info(`[daemon] IPC server listening on ${socketPath}`);
|
|
110
|
+
this.server.once('error', reject);
|
|
111
|
+
this.server.listen(path, () => {
|
|
112
|
+
this.server?.off('error', reject);
|
|
113
|
+
this.server?.on('error', (error) => this.log.info(`Socket server error: ${error.message}`));
|
|
31
114
|
resolve();
|
|
32
115
|
});
|
|
33
116
|
});
|
|
34
117
|
}
|
|
35
118
|
/**
|
|
36
|
-
*
|
|
119
|
+
* Atomically publish the listening socket at the public path.
|
|
120
|
+
*
|
|
121
|
+
* A stale socket file (nothing listening) is removed and the claim retried once.
|
|
122
|
+
*
|
|
123
|
+
* @param privatePath - Path the server is listening on
|
|
124
|
+
* @param socketPath - Public path to claim
|
|
125
|
+
* @throws DaemonError if a live daemon already owns the public path
|
|
37
126
|
*/
|
|
38
|
-
async
|
|
39
|
-
for (
|
|
40
|
-
|
|
127
|
+
async claim(privatePath, socketPath) {
|
|
128
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
129
|
+
try {
|
|
130
|
+
linkSync(privatePath, socketPath);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
if (error.code !== 'EEXIST')
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
if ((await probeDaemonSocket(socketPath)) === 'alive')
|
|
138
|
+
break;
|
|
139
|
+
this.log.info('Removing stale daemon socket');
|
|
140
|
+
this.removeFile(socketPath);
|
|
41
141
|
}
|
|
42
|
-
|
|
43
|
-
if (this.server) {
|
|
44
|
-
await new Promise((resolve) => {
|
|
45
|
-
this.server?.close(() => {
|
|
46
|
-
this.log.info('[daemon] IPC server stopped');
|
|
47
|
-
resolve();
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
this.server = null;
|
|
51
|
-
}
|
|
52
|
-
this.cleanupStaleSocket();
|
|
53
|
-
this.socketPath = null;
|
|
142
|
+
throw new DaemonError('Another bdg daemon is already running', DAEMON_ALREADY_RUNNING_CODE, EXIT_CODES.DAEMON_ALREADY_RUNNING);
|
|
54
143
|
}
|
|
55
|
-
|
|
56
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Close the underlying server if it is open.
|
|
146
|
+
*/
|
|
147
|
+
async closeServer() {
|
|
148
|
+
const server = this.server;
|
|
149
|
+
if (!server)
|
|
57
150
|
return;
|
|
58
|
-
|
|
151
|
+
this.server = null;
|
|
152
|
+
await new Promise((resolve) => server.close(() => resolve()));
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Remove a file, ignoring errors.
|
|
156
|
+
*
|
|
157
|
+
* @param path - File path
|
|
158
|
+
*/
|
|
159
|
+
removeFile(path) {
|
|
59
160
|
try {
|
|
60
|
-
unlinkSync(
|
|
161
|
+
unlinkSync(path);
|
|
61
162
|
}
|
|
62
163
|
catch (error) {
|
|
63
|
-
this.log.debug(`Failed to remove
|
|
164
|
+
this.log.debug(`Failed to remove ${path}: ${getErrorMessage(error)}`);
|
|
64
165
|
}
|
|
65
166
|
}
|
|
66
167
|
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-process browser session owned by the daemon.
|
|
3
|
+
*
|
|
4
|
+
* A Session launches (or attaches to) Chrome, connects over CDP, runs the
|
|
5
|
+
* telemetry collectors and executes session commands directly. There is no
|
|
6
|
+
* separate worker process: the daemon process *is* the session.
|
|
7
|
+
*/
|
|
8
|
+
import type { CommandName, CommandSchemas } from '../../ipc/index.js';
|
|
9
|
+
import type { SessionOptions } from '../../ipc/session/lifecycle.js';
|
|
10
|
+
import type { StatusResponseData } from '../../ipc/session/queries.js';
|
|
11
|
+
/** Why a session ended. */
|
|
12
|
+
export type SessionEndReason = 'normal' | 'crash' | 'timeout' | 'closed';
|
|
13
|
+
/** Summary of a running session, as reported to the CLI on start. */
|
|
14
|
+
export interface SessionInfo {
|
|
15
|
+
chromePid: number;
|
|
16
|
+
port: number;
|
|
17
|
+
targetUrl: string;
|
|
18
|
+
targetTitle?: string;
|
|
19
|
+
/** HTTP status of the page's main document, when known */
|
|
20
|
+
documentStatus?: number;
|
|
21
|
+
}
|
|
22
|
+
/** Session metadata as reported in status responses. */
|
|
23
|
+
export type SessionStatusMetadata = NonNullable<StatusResponseData['sessionMetadata']>;
|
|
24
|
+
/**
|
|
25
|
+
* A launch that failed because the session was stopped while starting.
|
|
26
|
+
*/
|
|
27
|
+
export declare class StartCancelledError extends Error {
|
|
28
|
+
readonly name = "StartCancelledError";
|
|
29
|
+
constructor();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A running browser session.
|
|
33
|
+
*/
|
|
34
|
+
export declare class Session {
|
|
35
|
+
private config;
|
|
36
|
+
private readonly onEnded;
|
|
37
|
+
private readonly store;
|
|
38
|
+
private readonly registry;
|
|
39
|
+
private readonly notify;
|
|
40
|
+
private chrome;
|
|
41
|
+
private cdp;
|
|
42
|
+
private cleanupFunctions;
|
|
43
|
+
private timeoutTimer;
|
|
44
|
+
/** When `--timeout` stops the session (epoch ms) */
|
|
45
|
+
private autoStopAt;
|
|
46
|
+
private stopping;
|
|
47
|
+
/** Why the session was first asked to stop ('normal' = user, signal or abandoned start) */
|
|
48
|
+
private stopReason;
|
|
49
|
+
/** Aborted by stop(), so launch steps that wait or retry end at once */
|
|
50
|
+
private readonly launchAbort;
|
|
51
|
+
private started;
|
|
52
|
+
private documentRequestId;
|
|
53
|
+
private constructor();
|
|
54
|
+
/**
|
|
55
|
+
* Validate the request and create a session that has not been launched yet.
|
|
56
|
+
*
|
|
57
|
+
* Synchronous so the caller can register the session (and stop it) before
|
|
58
|
+
* any asynchronous work starts; the CDP port is resolved in {@link launch}.
|
|
59
|
+
*
|
|
60
|
+
* @param url - Target URL
|
|
61
|
+
* @param options - Session options from the start request
|
|
62
|
+
* @param onEnded - Called once when a launched session ends for any reason
|
|
63
|
+
* @returns Unlaunched session
|
|
64
|
+
* @throws CommandError for an invalid URL
|
|
65
|
+
*/
|
|
66
|
+
static create(url: string, options: SessionOptions, onEnded: (reason: SessionEndReason) => void): Session;
|
|
67
|
+
/**
|
|
68
|
+
* Launch: start Chrome (or attach), connect CDP, start collectors, navigate.
|
|
69
|
+
*
|
|
70
|
+
* Every resource is owned by the session as soon as it is acquired, so a
|
|
71
|
+
* concurrent {@link stop} (signal, disconnect) can always release it. On
|
|
72
|
+
* failure or abort, whatever was acquired is released before rethrowing;
|
|
73
|
+
* `onEnded` is only called for sessions that finished launching.
|
|
74
|
+
*
|
|
75
|
+
* @throws Launch/connection errors, or an abort error if stopped meanwhile
|
|
76
|
+
*/
|
|
77
|
+
launch(): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Execute a registered command against this session.
|
|
80
|
+
*
|
|
81
|
+
* @param name - Command name
|
|
82
|
+
* @param params - Command parameters
|
|
83
|
+
* @returns Command result
|
|
84
|
+
*/
|
|
85
|
+
execute<K extends CommandName>(name: K, params: CommandSchemas[K]['requestSchema']): Promise<CommandSchemas[K]['responseSchema']>;
|
|
86
|
+
/**
|
|
87
|
+
* Summary of this session for start responses.
|
|
88
|
+
*
|
|
89
|
+
* @returns Session info
|
|
90
|
+
*/
|
|
91
|
+
info(): SessionInfo;
|
|
92
|
+
/**
|
|
93
|
+
* Metadata for status responses and session-conflict checks.
|
|
94
|
+
*
|
|
95
|
+
* @returns Session metadata
|
|
96
|
+
*/
|
|
97
|
+
metadata(): SessionStatusMetadata;
|
|
98
|
+
/**
|
|
99
|
+
* Whether stop() has been called.
|
|
100
|
+
*
|
|
101
|
+
* @returns True once the session is stopping
|
|
102
|
+
*/
|
|
103
|
+
stopRequested(): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Stop the session: stop collectors, close CDP, terminate Chrome.
|
|
106
|
+
*
|
|
107
|
+
* Idempotent: concurrent and repeated calls share one stop. Safe to call
|
|
108
|
+
* while launching; the launch then aborts and releases what it acquired.
|
|
109
|
+
*
|
|
110
|
+
* @param reason - Why the session is ending
|
|
111
|
+
* @returns Promise resolved when teardown is complete
|
|
112
|
+
*/
|
|
113
|
+
stop(reason: SessionEndReason): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Acquire Chrome, CDP and collectors, checking for a concurrent stop after each step.
|
|
116
|
+
*/
|
|
117
|
+
private acquireResources;
|
|
118
|
+
/**
|
|
119
|
+
* End the session after its page connection was lost. A launched Chrome
|
|
120
|
+
* still running a moment later means the tab was closed (e.g.
|
|
121
|
+
* `Target.closeTarget`), a normal end; otherwise Chrome went away (a
|
|
122
|
+
* crashing Chrome can drop the connection just before it exits).
|
|
123
|
+
*/
|
|
124
|
+
private endAfterDisconnect;
|
|
125
|
+
/**
|
|
126
|
+
* Abort a launch that was stopped while in progress.
|
|
127
|
+
*
|
|
128
|
+
* @throws Error if the session is stopping
|
|
129
|
+
*/
|
|
130
|
+
private throwIfStopping;
|
|
131
|
+
/**
|
|
132
|
+
* Release every resource currently held. Each resource is released once:
|
|
133
|
+
* later calls only release what was acquired since.
|
|
134
|
+
*/
|
|
135
|
+
private releaseResources;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=Session.d.ts.map
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-process browser session owned by the daemon.
|
|
3
|
+
*
|
|
4
|
+
* A Session launches (or attaches to) Chrome, connects over CDP, runs the
|
|
5
|
+
* telemetry collectors and executes session commands directly. There is no
|
|
6
|
+
* separate worker process: the daemon process *is* the session.
|
|
7
|
+
*/
|
|
8
|
+
import { TelemetryStore } from './TelemetryStore.js';
|
|
9
|
+
import { connectCDP, navigateToTarget } from './cdpSetup.js';
|
|
10
|
+
import { externalChromePort, findPageTarget, setupChromeConnection, } from './chromeConnection.js';
|
|
11
|
+
import { startTelemetryCollectors } from './collectors.js';
|
|
12
|
+
import { createCommandRegistry } from './commandRegistry.js';
|
|
13
|
+
import { teardownSession } from './teardown.js';
|
|
14
|
+
import { CommandError } from '../../errors/index.js';
|
|
15
|
+
import { reapOrphanedChrome, removeSessionFiles } from '../../session/cleanup/staleSession.js';
|
|
16
|
+
import { writeSessionMetadata } from '../../session/metadata.js';
|
|
17
|
+
import { getSessionPort } from '../../session/port.js';
|
|
18
|
+
import { createLogger } from '../../ui/logging/index.js';
|
|
19
|
+
import { formatChromeNotice } from '../../ui/messages/chrome.js';
|
|
20
|
+
import { delay } from '../../utils/async.js';
|
|
21
|
+
import { EXIT_CODES } from '../../utils/exitCodes.js';
|
|
22
|
+
import { filterDefined } from '../../utils/objects.js';
|
|
23
|
+
import { isProcessAlive } from '../../utils/process.js';
|
|
24
|
+
import { validateUrl } from '../../utils/url.js';
|
|
25
|
+
const log = createLogger('session');
|
|
26
|
+
/** How long Chrome gets to exit after the page connection drops, before the end is called a closed tab */
|
|
27
|
+
const CRASH_SETTLE_MS = 500;
|
|
28
|
+
/**
|
|
29
|
+
* A launch that failed because the session was stopped while starting.
|
|
30
|
+
*/
|
|
31
|
+
export class StartCancelledError extends Error {
|
|
32
|
+
name = 'StartCancelledError';
|
|
33
|
+
constructor() {
|
|
34
|
+
super('The start was cancelled: the session was stopped while it was starting');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A running browser session.
|
|
39
|
+
*/
|
|
40
|
+
export class Session {
|
|
41
|
+
config;
|
|
42
|
+
onEnded;
|
|
43
|
+
store = new TelemetryStore();
|
|
44
|
+
registry = createCommandRegistry(this.store);
|
|
45
|
+
notify = (notice) => log.info(formatChromeNotice(notice));
|
|
46
|
+
chrome = null;
|
|
47
|
+
cdp = null;
|
|
48
|
+
cleanupFunctions = [];
|
|
49
|
+
timeoutTimer = null;
|
|
50
|
+
/** When `--timeout` stops the session (epoch ms) */
|
|
51
|
+
autoStopAt;
|
|
52
|
+
stopping = null;
|
|
53
|
+
/** Why the session was first asked to stop ('normal' = user, signal or abandoned start) */
|
|
54
|
+
stopReason = null;
|
|
55
|
+
/** Aborted by stop(), so launch steps that wait or retry end at once */
|
|
56
|
+
launchAbort = new AbortController();
|
|
57
|
+
started = false;
|
|
58
|
+
documentRequestId;
|
|
59
|
+
constructor(config, onEnded) {
|
|
60
|
+
this.config = config;
|
|
61
|
+
this.onEnded = onEnded;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Validate the request and create a session that has not been launched yet.
|
|
65
|
+
*
|
|
66
|
+
* Synchronous so the caller can register the session (and stop it) before
|
|
67
|
+
* any asynchronous work starts; the CDP port is resolved in {@link launch}.
|
|
68
|
+
*
|
|
69
|
+
* @param url - Target URL
|
|
70
|
+
* @param options - Session options from the start request
|
|
71
|
+
* @param onEnded - Called once when a launched session ends for any reason
|
|
72
|
+
* @returns Unlaunched session
|
|
73
|
+
* @throws CommandError for an invalid URL
|
|
74
|
+
*/
|
|
75
|
+
static create(url, options, onEnded) {
|
|
76
|
+
const validation = validateUrl(url);
|
|
77
|
+
if (!validation.valid) {
|
|
78
|
+
throw new CommandError(validation.error, filterDefined({ suggestion: validation.suggestion }), EXIT_CODES.INVALID_URL);
|
|
79
|
+
}
|
|
80
|
+
return new Session(buildConfig(url, options.port ?? 0, options), onEnded);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Launch: start Chrome (or attach), connect CDP, start collectors, navigate.
|
|
84
|
+
*
|
|
85
|
+
* Every resource is owned by the session as soon as it is acquired, so a
|
|
86
|
+
* concurrent {@link stop} (signal, disconnect) can always release it. On
|
|
87
|
+
* failure or abort, whatever was acquired is released before rethrowing;
|
|
88
|
+
* `onEnded` is only called for sessions that finished launching.
|
|
89
|
+
*
|
|
90
|
+
* @throws Launch/connection errors, or an abort error if stopped meanwhile
|
|
91
|
+
*/
|
|
92
|
+
async launch() {
|
|
93
|
+
try {
|
|
94
|
+
await this.acquireResources();
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
const cancelled = this.stopReason === 'normal';
|
|
98
|
+
await this.releaseResources();
|
|
99
|
+
throw cancelled ? new StartCancelledError() : error;
|
|
100
|
+
}
|
|
101
|
+
this.started = true;
|
|
102
|
+
if (this.config.timeout)
|
|
103
|
+
this.autoStopAt = Date.now() + this.config.timeout * 1000;
|
|
104
|
+
writeSessionMetadata(this.metadata());
|
|
105
|
+
if (this.config.timeout) {
|
|
106
|
+
log.info(`Auto-stop after ${this.config.timeout}s`);
|
|
107
|
+
this.timeoutTimer = setTimeout(() => void this.stop('timeout'), this.config.timeout * 1000);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Execute a registered command against this session.
|
|
112
|
+
*
|
|
113
|
+
* @param name - Command name
|
|
114
|
+
* @param params - Command parameters
|
|
115
|
+
* @returns Command result
|
|
116
|
+
*/
|
|
117
|
+
execute(name, params) {
|
|
118
|
+
if (!this.cdp || !this.started || this.stopping) {
|
|
119
|
+
return Promise.reject(new Error('No active session'));
|
|
120
|
+
}
|
|
121
|
+
return this.registry[name](this.cdp, params);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Summary of this session for start responses.
|
|
125
|
+
*
|
|
126
|
+
* @returns Session info
|
|
127
|
+
*/
|
|
128
|
+
info() {
|
|
129
|
+
const target = this.store.targetInfo;
|
|
130
|
+
const documentStatus = this.store.networkRequests.find((request) => request.requestId === this.documentRequestId && request.status)?.status;
|
|
131
|
+
return {
|
|
132
|
+
chromePid: this.chrome?.pid ?? 0,
|
|
133
|
+
port: this.config.port,
|
|
134
|
+
targetUrl: target?.url ?? this.config.url,
|
|
135
|
+
...(target?.title && { targetTitle: target.title }),
|
|
136
|
+
...(documentStatus !== undefined && { documentStatus }),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Metadata for status responses and session-conflict checks.
|
|
141
|
+
*
|
|
142
|
+
* @returns Session metadata
|
|
143
|
+
*/
|
|
144
|
+
metadata() {
|
|
145
|
+
const target = this.store.targetInfo;
|
|
146
|
+
return {
|
|
147
|
+
bdgPid: process.pid,
|
|
148
|
+
chromePid: this.chrome?.pid ?? 0,
|
|
149
|
+
startTime: this.store.sessionStartTime,
|
|
150
|
+
port: this.config.port,
|
|
151
|
+
activeTelemetry: this.store.activeTelemetry,
|
|
152
|
+
...filterDefined({
|
|
153
|
+
autoStopAt: this.autoStopAt,
|
|
154
|
+
targetId: target?.id,
|
|
155
|
+
webSocketDebuggerUrl: target?.webSocketDebuggerUrl,
|
|
156
|
+
}),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Whether stop() has been called.
|
|
161
|
+
*
|
|
162
|
+
* @returns True once the session is stopping
|
|
163
|
+
*/
|
|
164
|
+
stopRequested() {
|
|
165
|
+
return this.stopping !== null;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Stop the session: stop collectors, close CDP, terminate Chrome.
|
|
169
|
+
*
|
|
170
|
+
* Idempotent: concurrent and repeated calls share one stop. Safe to call
|
|
171
|
+
* while launching; the launch then aborts and releases what it acquired.
|
|
172
|
+
*
|
|
173
|
+
* @param reason - Why the session is ending
|
|
174
|
+
* @returns Promise resolved when teardown is complete
|
|
175
|
+
*/
|
|
176
|
+
stop(reason) {
|
|
177
|
+
this.stopReason ??= reason;
|
|
178
|
+
this.launchAbort.abort();
|
|
179
|
+
this.stopping ??= (async () => {
|
|
180
|
+
if (this.timeoutTimer)
|
|
181
|
+
clearTimeout(this.timeoutTimer);
|
|
182
|
+
log.info(`Stopping session (reason: ${reason})`);
|
|
183
|
+
await this.releaseResources();
|
|
184
|
+
if (!this.started)
|
|
185
|
+
return;
|
|
186
|
+
removeSessionFiles();
|
|
187
|
+
this.onEnded(reason);
|
|
188
|
+
})();
|
|
189
|
+
return this.stopping;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Acquire Chrome, CDP and collectors, checking for a concurrent stop after each step.
|
|
193
|
+
*/
|
|
194
|
+
async acquireResources() {
|
|
195
|
+
this.store.resetSessionStart();
|
|
196
|
+
const { chromeWsUrl } = this.config;
|
|
197
|
+
const port = chromeWsUrl
|
|
198
|
+
? externalChromePort(chromeWsUrl)
|
|
199
|
+
: await getSessionPort(this.config.port || undefined);
|
|
200
|
+
this.config = { ...this.config, port };
|
|
201
|
+
this.throwIfStopping();
|
|
202
|
+
if (!this.config.chromeWsUrl) {
|
|
203
|
+
await reapOrphanedChrome();
|
|
204
|
+
}
|
|
205
|
+
this.chrome = await setupChromeConnection(this.config, this.store, log, this.notify);
|
|
206
|
+
this.throwIfStopping();
|
|
207
|
+
if (this.chrome) {
|
|
208
|
+
await findPageTarget(this.config, this.store, log);
|
|
209
|
+
this.throwIfStopping();
|
|
210
|
+
}
|
|
211
|
+
this.cdp = await connectCDP(this.store, log, () => void this.endAfterDisconnect(), {
|
|
212
|
+
external: Boolean(chromeWsUrl),
|
|
213
|
+
signal: this.launchAbort.signal,
|
|
214
|
+
});
|
|
215
|
+
this.throwIfStopping();
|
|
216
|
+
this.cleanupFunctions = await startTelemetryCollectors(this.cdp, this.config, this.store, log);
|
|
217
|
+
this.throwIfStopping();
|
|
218
|
+
this.documentRequestId = await navigateToTarget(this.cdp, this.config, this.store, this.chrome, log);
|
|
219
|
+
this.throwIfStopping();
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* End the session after its page connection was lost. A launched Chrome
|
|
223
|
+
* still running a moment later means the tab was closed (e.g.
|
|
224
|
+
* `Target.closeTarget`), a normal end; otherwise Chrome went away (a
|
|
225
|
+
* crashing Chrome can drop the connection just before it exits).
|
|
226
|
+
*/
|
|
227
|
+
async endAfterDisconnect() {
|
|
228
|
+
if (this.chrome)
|
|
229
|
+
await delay(CRASH_SETTLE_MS);
|
|
230
|
+
const tabClosed = this.chrome !== null && isProcessAlive(this.chrome.pid);
|
|
231
|
+
if (tabClosed)
|
|
232
|
+
log.info('The page was closed; ending the session');
|
|
233
|
+
await this.stop(tabClosed ? 'closed' : 'crash');
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Abort a launch that was stopped while in progress.
|
|
237
|
+
*
|
|
238
|
+
* @throws Error if the session is stopping
|
|
239
|
+
*/
|
|
240
|
+
throwIfStopping() {
|
|
241
|
+
if (this.stopping) {
|
|
242
|
+
throw new Error('Session was stopped during startup');
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Release every resource currently held. Each resource is released once:
|
|
247
|
+
* later calls only release what was acquired since.
|
|
248
|
+
*/
|
|
249
|
+
async releaseResources() {
|
|
250
|
+
const context = {
|
|
251
|
+
chrome: this.chrome,
|
|
252
|
+
cdp: this.cdp,
|
|
253
|
+
cleanupFunctions: this.cleanupFunctions,
|
|
254
|
+
external: Boolean(this.config.chromeWsUrl),
|
|
255
|
+
log,
|
|
256
|
+
notify: this.notify,
|
|
257
|
+
};
|
|
258
|
+
this.chrome = null;
|
|
259
|
+
this.cdp = null;
|
|
260
|
+
this.cleanupFunctions = [];
|
|
261
|
+
await teardownSession(context);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Build the session configuration from a start request.
|
|
266
|
+
*
|
|
267
|
+
* @param url - Target URL
|
|
268
|
+
* @param port - Resolved CDP port
|
|
269
|
+
* @param options - Session options from the start request
|
|
270
|
+
* @returns Session configuration
|
|
271
|
+
*/
|
|
272
|
+
function buildConfig(url, port, options) {
|
|
273
|
+
return {
|
|
274
|
+
url,
|
|
275
|
+
port,
|
|
276
|
+
telemetry: options.telemetry ?? ['network', 'console', 'dom'],
|
|
277
|
+
includeAll: options.includeAll ?? false,
|
|
278
|
+
headless: options.headless ?? false,
|
|
279
|
+
...filterDefined({
|
|
280
|
+
timeout: options.timeout,
|
|
281
|
+
userDataDir: options.userDataDir,
|
|
282
|
+
maxBodySize: options.maxBodySize,
|
|
283
|
+
chromeWsUrl: options.chromeWsUrl,
|
|
284
|
+
chromeFlags: options.chromeFlags,
|
|
285
|
+
}),
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=Session.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { DialogInfo } from '../../ipc/protocol/domTypes.js';
|
|
2
|
+
import type { NavigationEvent } from '../../telemetry/navigation.js';
|
|
3
|
+
import type { PendingRequest } from '../../telemetry/network.js';
|
|
4
|
+
import type { CDPTarget, ConsoleMessage, NetworkRequest, TelemetryType, WebSocketConnection } from '../../types.js';
|
|
5
|
+
export declare class TelemetryStore {
|
|
6
|
+
readonly networkRequests: NetworkRequest[];
|
|
7
|
+
/** Requests still in flight, keyed by CDP requestId */
|
|
8
|
+
readonly pendingNetworkRequests: Map<string, PendingRequest>;
|
|
9
|
+
readonly consoleMessages: ConsoleMessage[];
|
|
10
|
+
readonly navigationEvents: NavigationEvent[];
|
|
11
|
+
readonly websocketConnections: WebSocketConnection[];
|
|
12
|
+
/** JavaScript dialogs accepted during the session */
|
|
13
|
+
readonly dialogs: DialogInfo[];
|
|
14
|
+
activeTelemetry: TelemetryType[];
|
|
15
|
+
getCurrentNavigationId: (() => number) | null;
|
|
16
|
+
sessionStartTime: number;
|
|
17
|
+
targetInfo: CDPTarget | null;
|
|
18
|
+
resetSessionStart(): void;
|
|
19
|
+
setTargetInfo(target: CDPTarget | null): void;
|
|
20
|
+
setNavigationResolver(navigationId: (() => number) | null): void;
|
|
21
|
+
/**
|
|
22
|
+
* Record an accepted dialog, and show it among the console messages when
|
|
23
|
+
* console telemetry is collected (it is otherwise invisible: bdg accepts it
|
|
24
|
+
* before anyone could see it).
|
|
25
|
+
*
|
|
26
|
+
* @param dialog - Dialog type and text
|
|
27
|
+
*/
|
|
28
|
+
recordDialog(dialog: DialogInfo): void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=TelemetryStore.d.ts.map
|