@iqx-limited/quick-pdf 1.7.0 → 1.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BrowserWebSocketTransport-D_zAGZMQ.mjs +41 -0
- package/dist/BrowserWebSocketTransport-D_zAGZMQ.mjs.map +1 -0
- package/dist/BrowserWebSocketTransport-Ddg65Xcw.cjs +43 -0
- package/dist/BrowserWebSocketTransport-Ddg65Xcw.cjs.map +1 -0
- package/dist/bidi-Cz6obTKg.cjs +18982 -0
- package/dist/bidi-Cz6obTKg.cjs.map +1 -0
- package/dist/bidi-DfZSKIkl.mjs +18959 -0
- package/dist/bidi-DfZSKIkl.mjs.map +1 -0
- package/dist/index-CFQXKBdX.mjs +61587 -0
- package/dist/index-CFQXKBdX.mjs.map +1 -0
- package/dist/index-D6lftDZw.cjs +61694 -0
- package/dist/index-D6lftDZw.cjs.map +1 -0
- package/dist/index.cjs +112 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +112 -23
- package/dist/index.mjs.map +1 -1
- package/dist/types/browsers.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/package.json +16 -15
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bidi-Cz6obTKg.cjs","sources":["../node_modules/mitt/dist/mitt.mjs","../node_modules/chromium-bidi/lib/cjs/utils/EventEmitter.js","../node_modules/chromium-bidi/lib/cjs/utils/log.js","../node_modules/chromium-bidi/lib/cjs/utils/ProcessingQueue.js","../node_modules/chromium-bidi/lib/cjs/protocol/cdp.js","../node_modules/chromium-bidi/lib/cjs/protocol/chromium-bidi.js","../node_modules/chromium-bidi/lib/cjs/protocol/generated/webdriver-bidi.js","../node_modules/chromium-bidi/lib/cjs/protocol/ErrorResponse.js","../node_modules/chromium-bidi/lib/cjs/protocol/generated/webdriver-bidi-permissions.js","../node_modules/chromium-bidi/lib/cjs/protocol/generated/webdriver-bidi-bluetooth.js","../node_modules/chromium-bidi/lib/cjs/protocol/protocol.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/BidiNoOpParser.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/browser/BrowserProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/cdp/CdpProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/context/BrowsingContextProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/emulation/EmulationProcessor.js","../node_modules/chromium-bidi/lib/cjs/utils/assert.js","../node_modules/chromium-bidi/lib/cjs/utils/graphemeTools.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/input/InputSource.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/input/keyUtils.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/input/USKeyboardLayout.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/input/ActionDispatcher.js","../node_modules/chromium-bidi/lib/cjs/utils/Mutex.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/input/InputState.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/input/InputStateManager.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/input/InputProcessor.js","../node_modules/chromium-bidi/lib/cjs/utils/base64.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/network/NetworkUtils.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/network/NetworkProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/permissions/PermissionsProcessor.js","../node_modules/chromium-bidi/lib/cjs/utils/uuid.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/script/ChannelProxy.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/script/PreloadScript.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/script/ScriptProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/session/SessionProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/storage/StorageProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/webExtension/WebExtensionProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/OutgoingMessage.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/CommandProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/bluetooth/BluetoothProcessor.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/browser/UserContextConfig.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/browser/UserContextStorage.js","../node_modules/chromium-bidi/lib/cjs/utils/Deferred.js","../node_modules/chromium-bidi/lib/cjs/utils/time.js","../node_modules/chromium-bidi/lib/cjs/utils/unitConversions.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/script/SharedId.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/script/Realm.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/script/WindowRealm.js","../node_modules/chromium-bidi/lib/cjs/utils/urlHelpers.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/context/NavigationTracker.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/context/BrowsingContextImpl.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/script/WorkerRealm.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/log/logHelper.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/log/LogManager.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/cdp/CdpTarget.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/cdp/CdpTargetManager.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/context/BrowsingContextStorage.js","../node_modules/chromium-bidi/lib/cjs/utils/DefaultMap.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/network/NetworkRequest.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/network/NetworkStorage.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/script/PreloadScriptStorage.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/script/RealmStorage.js","../node_modules/chromium-bidi/lib/cjs/utils/Buffer.js","../node_modules/chromium-bidi/lib/cjs/utils/IdWrapper.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/session/events.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/session/SubscriptionManager.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/modules/session/EventManager.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/BidiServer.js","../node_modules/chromium-bidi/lib/cjs/bidiMapper/BidiMapper.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/CDPSession.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Connection.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/BidiOverCdp.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/core/Navigation.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/core/Realm.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/core/Request.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/core/UserPrompt.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/core/BrowsingContext.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/core/UserContext.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Deserializer.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/JSHandle.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/ElementHandle.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Dialog.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/ExposedFunction.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/HTTPResponse.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/HTTPRequest.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Serializer.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/util.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Realm.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/WebWorker.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Frame.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Input.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Page.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Target.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/BrowserContext.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/core/Browser.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/core/Session.js","../node_modules/puppeteer-core/lib/esm/puppeteer/bidi/Browser.js"],"sourcesContent":["export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventEmitter = void 0;\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst mitt_1 = __importDefault(require(\"mitt\"));\nclass EventEmitter {\n #emitter = (0, mitt_1.default)();\n on(type, handler) {\n this.#emitter.on(type, handler);\n return this;\n }\n /**\n * Like `on` but the listener will only be fired once and then it will be removed.\n * @param event The event you'd like to listen to\n * @param handler The handler function to run when the event occurs\n * @return `this` to enable chaining method calls.\n */\n once(event, handler) {\n const onceHandler = (eventData) => {\n handler(eventData);\n this.off(event, onceHandler);\n };\n return this.on(event, onceHandler);\n }\n off(type, handler) {\n this.#emitter.off(type, handler);\n return this;\n }\n /**\n * Emits an event and call any associated listeners.\n *\n * @param event The event to emit.\n * @param eventData Any data to emit with the event.\n * @return `true` if there are any listeners, `false` otherwise.\n */\n emit(event, eventData) {\n this.#emitter.emit(event, eventData);\n }\n /**\n * Removes all listeners. If given an event argument, it will remove only\n * listeners for that event.\n * @param event - the event to remove listeners for.\n * @returns `this` to enable you to chain method calls.\n */\n removeAllListeners(event) {\n if (event) {\n this.#emitter.all.delete(event);\n }\n else {\n this.#emitter.all.clear();\n }\n return this;\n }\n}\nexports.EventEmitter = EventEmitter;\n//# sourceMappingURL=EventEmitter.js.map","\"use strict\";\n/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogType = void 0;\nvar LogType;\n(function (LogType) {\n // keep-sorted start\n LogType[\"bidi\"] = \"bidi\";\n LogType[\"cdp\"] = \"cdp\";\n LogType[\"debug\"] = \"debug\";\n LogType[\"debugError\"] = \"debug:error\";\n LogType[\"debugInfo\"] = \"debug:info\";\n LogType[\"debugWarn\"] = \"debug:warn\";\n // keep-sorted end\n})(LogType || (exports.LogType = LogType = {}));\n//# sourceMappingURL=log.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProcessingQueue = void 0;\nconst log_js_1 = require(\"./log.js\");\nclass ProcessingQueue {\n static LOGGER_PREFIX = `${log_js_1.LogType.debug}:queue`;\n #logger;\n #processor;\n #queue = [];\n // Flag to keep only 1 active processor.\n #isProcessing = false;\n constructor(processor, logger) {\n this.#processor = processor;\n this.#logger = logger;\n }\n add(entry, name) {\n this.#queue.push([entry, name]);\n // No need in waiting. Just initialize processor if needed.\n void this.#processIfNeeded();\n }\n async #processIfNeeded() {\n if (this.#isProcessing) {\n return;\n }\n this.#isProcessing = true;\n while (this.#queue.length > 0) {\n const arrayEntry = this.#queue.shift();\n if (!arrayEntry) {\n continue;\n }\n const [entryPromise, name] = arrayEntry;\n this.#logger?.(_a.LOGGER_PREFIX, 'Processing event:', name);\n await entryPromise\n .then((entry) => {\n if (entry.kind === 'error') {\n this.#logger?.(log_js_1.LogType.debugError, 'Event threw before sending:', entry.error.message, entry.error.stack);\n return;\n }\n return this.#processor(entry.value);\n })\n .catch((error) => {\n this.#logger?.(log_js_1.LogType.debugError, 'Event was not processed:', error?.message);\n });\n }\n this.#isProcessing = false;\n }\n}\nexports.ProcessingQueue = ProcessingQueue;\n_a = ProcessingQueue;\n//# sourceMappingURL=ProcessingQueue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=cdp.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EVENT_NAMES = exports.Bluetooth = exports.Network = exports.Input = exports.BrowsingContext = exports.Log = exports.Script = exports.BiDiModule = void 0;\n// keep-sorted end\nvar BiDiModule;\n(function (BiDiModule) {\n // keep-sorted start\n BiDiModule[\"Bluetooth\"] = \"bluetooth\";\n BiDiModule[\"Browser\"] = \"browser\";\n BiDiModule[\"BrowsingContext\"] = \"browsingContext\";\n BiDiModule[\"Cdp\"] = \"goog:cdp\";\n BiDiModule[\"Input\"] = \"input\";\n BiDiModule[\"Log\"] = \"log\";\n BiDiModule[\"Network\"] = \"network\";\n BiDiModule[\"Script\"] = \"script\";\n BiDiModule[\"Session\"] = \"session\";\n // keep-sorted end\n})(BiDiModule || (exports.BiDiModule = BiDiModule = {}));\nvar Script;\n(function (Script) {\n let EventNames;\n (function (EventNames) {\n // keep-sorted start\n EventNames[\"Message\"] = \"script.message\";\n EventNames[\"RealmCreated\"] = \"script.realmCreated\";\n EventNames[\"RealmDestroyed\"] = \"script.realmDestroyed\";\n // keep-sorted end\n })(EventNames = Script.EventNames || (Script.EventNames = {}));\n})(Script || (exports.Script = Script = {}));\nvar Log;\n(function (Log) {\n let EventNames;\n (function (EventNames) {\n EventNames[\"LogEntryAdded\"] = \"log.entryAdded\";\n })(EventNames = Log.EventNames || (Log.EventNames = {}));\n})(Log || (exports.Log = Log = {}));\nvar BrowsingContext;\n(function (BrowsingContext) {\n let EventNames;\n (function (EventNames) {\n // keep-sorted start\n EventNames[\"ContextCreated\"] = \"browsingContext.contextCreated\";\n EventNames[\"ContextDestroyed\"] = \"browsingContext.contextDestroyed\";\n EventNames[\"DomContentLoaded\"] = \"browsingContext.domContentLoaded\";\n EventNames[\"DownloadWillBegin\"] = \"browsingContext.downloadWillBegin\";\n EventNames[\"FragmentNavigated\"] = \"browsingContext.fragmentNavigated\";\n EventNames[\"HistoryUpdated\"] = \"browsingContext.historyUpdated\";\n EventNames[\"Load\"] = \"browsingContext.load\";\n EventNames[\"NavigationAborted\"] = \"browsingContext.navigationAborted\";\n EventNames[\"NavigationCommitted\"] = \"browsingContext.navigationCommitted\";\n EventNames[\"NavigationFailed\"] = \"browsingContext.navigationFailed\";\n EventNames[\"NavigationStarted\"] = \"browsingContext.navigationStarted\";\n EventNames[\"UserPromptClosed\"] = \"browsingContext.userPromptClosed\";\n EventNames[\"UserPromptOpened\"] = \"browsingContext.userPromptOpened\";\n // keep-sorted end\n })(EventNames = BrowsingContext.EventNames || (BrowsingContext.EventNames = {}));\n})(BrowsingContext || (exports.BrowsingContext = BrowsingContext = {}));\nvar Input;\n(function (Input) {\n let EventNames;\n (function (EventNames) {\n // keep-sorted start\n EventNames[\"FileDialogOpened\"] = \"input.fileDialogOpened\";\n // keep-sorted end\n })(EventNames = Input.EventNames || (Input.EventNames = {}));\n})(Input || (exports.Input = Input = {}));\nvar Network;\n(function (Network) {\n let EventNames;\n (function (EventNames) {\n // keep-sorted start\n EventNames[\"AuthRequired\"] = \"network.authRequired\";\n EventNames[\"BeforeRequestSent\"] = \"network.beforeRequestSent\";\n EventNames[\"FetchError\"] = \"network.fetchError\";\n EventNames[\"ResponseCompleted\"] = \"network.responseCompleted\";\n EventNames[\"ResponseStarted\"] = \"network.responseStarted\";\n // keep-sorted end\n })(EventNames = Network.EventNames || (Network.EventNames = {}));\n})(Network || (exports.Network = Network = {}));\nvar Bluetooth;\n(function (Bluetooth) {\n let EventNames;\n (function (EventNames) {\n EventNames[\"RequestDevicePromptUpdated\"] = \"bluetooth.requestDevicePromptUpdated\";\n EventNames[\"GattConnectionAttempted\"] = \"bluetooth.gattConnectionAttempted\";\n })(EventNames = Bluetooth.EventNames || (Bluetooth.EventNames = {}));\n})(Bluetooth || (exports.Bluetooth = Bluetooth = {}));\nexports.EVENT_NAMES = new Set([\n // keep-sorted start\n ...Object.values(BiDiModule),\n ...Object.values(Bluetooth.EventNames),\n ...Object.values(BrowsingContext.EventNames),\n ...Object.values(Input.EventNames),\n ...Object.values(Log.EventNames),\n ...Object.values(Network.EventNames),\n ...Object.values(Script.EventNames),\n // keep-sorted end\n]);\n//# sourceMappingURL=chromium-bidi.js.map","\"use strict\";\n/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=webdriver-bidi.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoSuchWebExtensionException = exports.InvalidWebExtensionException = exports.UnderspecifiedStoragePartitionException = exports.UnableToSetFileInputException = exports.UnableToSetCookieException = exports.NoSuchStoragePartitionException = exports.UnsupportedOperationException = exports.UnableToCloseBrowserException = exports.UnableToCaptureScreenException = exports.UnknownErrorException = exports.UnknownCommandException = exports.SessionNotCreatedException = exports.NoSuchUserContextException = exports.NoSuchScriptException = exports.NoSuchRequestException = exports.NoSuchNodeException = exports.NoSuchInterceptException = exports.NoSuchHistoryEntryException = exports.NoSuchHandleException = exports.NoSuchFrameException = exports.NoSuchElementException = exports.NoSuchAlertException = exports.MoveTargetOutOfBoundsException = exports.InvalidSessionIdException = exports.InvalidSelectorException = exports.InvalidArgumentException = exports.Exception = void 0;\nclass Exception extends Error {\n error;\n message;\n stacktrace;\n constructor(error, message, stacktrace) {\n super();\n this.error = error;\n this.message = message;\n this.stacktrace = stacktrace;\n }\n toErrorResponse(commandId) {\n return {\n type: 'error',\n id: commandId,\n error: this.error,\n message: this.message,\n stacktrace: this.stacktrace,\n };\n }\n}\nexports.Exception = Exception;\nclass InvalidArgumentException extends Exception {\n constructor(message, stacktrace) {\n super(\"invalid argument\" /* ErrorCode.InvalidArgument */, message, stacktrace);\n }\n}\nexports.InvalidArgumentException = InvalidArgumentException;\nclass InvalidSelectorException extends Exception {\n constructor(message, stacktrace) {\n super(\"invalid selector\" /* ErrorCode.InvalidSelector */, message, stacktrace);\n }\n}\nexports.InvalidSelectorException = InvalidSelectorException;\nclass InvalidSessionIdException extends Exception {\n constructor(message, stacktrace) {\n super(\"invalid session id\" /* ErrorCode.InvalidSessionId */, message, stacktrace);\n }\n}\nexports.InvalidSessionIdException = InvalidSessionIdException;\nclass MoveTargetOutOfBoundsException extends Exception {\n constructor(message, stacktrace) {\n super(\"move target out of bounds\" /* ErrorCode.MoveTargetOutOfBounds */, message, stacktrace);\n }\n}\nexports.MoveTargetOutOfBoundsException = MoveTargetOutOfBoundsException;\nclass NoSuchAlertException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such alert\" /* ErrorCode.NoSuchAlert */, message, stacktrace);\n }\n}\nexports.NoSuchAlertException = NoSuchAlertException;\nclass NoSuchElementException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such element\" /* ErrorCode.NoSuchElement */, message, stacktrace);\n }\n}\nexports.NoSuchElementException = NoSuchElementException;\nclass NoSuchFrameException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such frame\" /* ErrorCode.NoSuchFrame */, message, stacktrace);\n }\n}\nexports.NoSuchFrameException = NoSuchFrameException;\nclass NoSuchHandleException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such handle\" /* ErrorCode.NoSuchHandle */, message, stacktrace);\n }\n}\nexports.NoSuchHandleException = NoSuchHandleException;\nclass NoSuchHistoryEntryException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such history entry\" /* ErrorCode.NoSuchHistoryEntry */, message, stacktrace);\n }\n}\nexports.NoSuchHistoryEntryException = NoSuchHistoryEntryException;\nclass NoSuchInterceptException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such intercept\" /* ErrorCode.NoSuchIntercept */, message, stacktrace);\n }\n}\nexports.NoSuchInterceptException = NoSuchInterceptException;\nclass NoSuchNodeException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such node\" /* ErrorCode.NoSuchNode */, message, stacktrace);\n }\n}\nexports.NoSuchNodeException = NoSuchNodeException;\nclass NoSuchRequestException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such request\" /* ErrorCode.NoSuchRequest */, message, stacktrace);\n }\n}\nexports.NoSuchRequestException = NoSuchRequestException;\nclass NoSuchScriptException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such script\" /* ErrorCode.NoSuchScript */, message, stacktrace);\n }\n}\nexports.NoSuchScriptException = NoSuchScriptException;\nclass NoSuchUserContextException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such user context\" /* ErrorCode.NoSuchUserContext */, message, stacktrace);\n }\n}\nexports.NoSuchUserContextException = NoSuchUserContextException;\nclass SessionNotCreatedException extends Exception {\n constructor(message, stacktrace) {\n super(\"session not created\" /* ErrorCode.SessionNotCreated */, message, stacktrace);\n }\n}\nexports.SessionNotCreatedException = SessionNotCreatedException;\nclass UnknownCommandException extends Exception {\n constructor(message, stacktrace) {\n super(\"unknown command\" /* ErrorCode.UnknownCommand */, message, stacktrace);\n }\n}\nexports.UnknownCommandException = UnknownCommandException;\nclass UnknownErrorException extends Exception {\n constructor(message, stacktrace = new Error().stack) {\n super(\"unknown error\" /* ErrorCode.UnknownError */, message, stacktrace);\n }\n}\nexports.UnknownErrorException = UnknownErrorException;\nclass UnableToCaptureScreenException extends Exception {\n constructor(message, stacktrace) {\n super(\"unable to capture screen\" /* ErrorCode.UnableToCaptureScreen */, message, stacktrace);\n }\n}\nexports.UnableToCaptureScreenException = UnableToCaptureScreenException;\nclass UnableToCloseBrowserException extends Exception {\n constructor(message, stacktrace) {\n super(\"unable to close browser\" /* ErrorCode.UnableToCloseBrowser */, message, stacktrace);\n }\n}\nexports.UnableToCloseBrowserException = UnableToCloseBrowserException;\nclass UnsupportedOperationException extends Exception {\n constructor(message, stacktrace) {\n super(\"unsupported operation\" /* ErrorCode.UnsupportedOperation */, message, stacktrace);\n }\n}\nexports.UnsupportedOperationException = UnsupportedOperationException;\nclass NoSuchStoragePartitionException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such storage partition\" /* ErrorCode.NoSuchStoragePartition */, message, stacktrace);\n }\n}\nexports.NoSuchStoragePartitionException = NoSuchStoragePartitionException;\nclass UnableToSetCookieException extends Exception {\n constructor(message, stacktrace) {\n super(\"unable to set cookie\" /* ErrorCode.UnableToSetCookie */, message, stacktrace);\n }\n}\nexports.UnableToSetCookieException = UnableToSetCookieException;\nclass UnableToSetFileInputException extends Exception {\n constructor(message, stacktrace) {\n super(\"unable to set file input\" /* ErrorCode.UnableToSetFileInput */, message, stacktrace);\n }\n}\nexports.UnableToSetFileInputException = UnableToSetFileInputException;\nclass UnderspecifiedStoragePartitionException extends Exception {\n constructor(message, stacktrace) {\n super(\"underspecified storage partition\" /* ErrorCode.UnderspecifiedStoragePartition */, message, stacktrace);\n }\n}\nexports.UnderspecifiedStoragePartitionException = UnderspecifiedStoragePartitionException;\nclass InvalidWebExtensionException extends Exception {\n constructor(message, stacktrace) {\n super(\"invalid web extension\" /* ErrorCode.InvalidWebExtension */, message, stacktrace);\n }\n}\nexports.InvalidWebExtensionException = InvalidWebExtensionException;\nclass NoSuchWebExtensionException extends Exception {\n constructor(message, stacktrace) {\n super(\"no such web extension\" /* ErrorCode.NoSuchWebExtension */, message, stacktrace);\n }\n}\nexports.NoSuchWebExtensionException = NoSuchWebExtensionException;\n//# sourceMappingURL=ErrorResponse.js.map","\"use strict\";\n/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=webdriver-bidi-permissions.js.map","\"use strict\";\n/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=webdriver-bidi-bluetooth.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChromiumBidi = exports.Cdp = void 0;\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexports.Cdp = __importStar(require(\"./cdp.js\"));\nexports.ChromiumBidi = __importStar(require(\"./chromium-bidi.js\"));\n__exportStar(require(\"./generated/webdriver-bidi.js\"), exports);\n__exportStar(require(\"./ErrorResponse.js\"), exports);\n__exportStar(require(\"./generated/webdriver-bidi-permissions.js\"), exports);\n__exportStar(require(\"./generated/webdriver-bidi-bluetooth.js\"), exports);\n//# sourceMappingURL=protocol.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BidiNoOpParser = void 0;\nclass BidiNoOpParser {\n // Bluetooth module\n // keep-sorted start block=yes\n parseDisableSimulationParameters(params) {\n return params;\n }\n parseHandleRequestDevicePromptParams(params) {\n return params;\n }\n parseSimulateAdapterParameters(params) {\n return params;\n }\n parseSimulateAdvertisementParameters(params) {\n return params;\n }\n parseSimulateGattConnectionResponseParameters(params) {\n return params;\n }\n parseSimulatePreconnectedPeripheralParameters(params) {\n return params;\n }\n // keep-sorted end\n // Browser module\n // keep-sorted start block=yes\n parseRemoveUserContextParams(params) {\n return params;\n }\n // keep-sorted end\n // Browsing Context module\n // keep-sorted start block=yes\n parseActivateParams(params) {\n return params;\n }\n parseCaptureScreenshotParams(params) {\n return params;\n }\n parseCloseParams(params) {\n return params;\n }\n parseCreateParams(params) {\n return params;\n }\n parseGetTreeParams(params) {\n return params;\n }\n parseHandleUserPromptParams(params) {\n return params;\n }\n parseLocateNodesParams(params) {\n return params;\n }\n parseNavigateParams(params) {\n return params;\n }\n parsePrintParams(params) {\n return params;\n }\n parseReloadParams(params) {\n return params;\n }\n parseSetViewportParams(params) {\n return params;\n }\n parseTraverseHistoryParams(params) {\n return params;\n }\n // keep-sorted end\n // CDP module\n // keep-sorted start block=yes\n parseGetSessionParams(params) {\n return params;\n }\n parseResolveRealmParams(params) {\n return params;\n }\n parseSendCommandParams(params) {\n return params;\n }\n // keep-sorted end\n // Emulation module\n // keep-sorted start block=yes\n parseSetGeolocationOverrideParams(params) {\n return params;\n }\n // keep-sorted end\n // Script module\n // keep-sorted start block=yes\n parseAddPreloadScriptParams(params) {\n return params;\n }\n parseCallFunctionParams(params) {\n return params;\n }\n parseDisownParams(params) {\n return params;\n }\n parseEvaluateParams(params) {\n return params;\n }\n parseGetRealmsParams(params) {\n return params;\n }\n parseRemovePreloadScriptParams(params) {\n return params;\n }\n // keep-sorted end\n // Input module\n // keep-sorted start block=yes\n parsePerformActionsParams(params) {\n return params;\n }\n parseReleaseActionsParams(params) {\n return params;\n }\n parseSetFilesParams(params) {\n return params;\n }\n // keep-sorted end\n // Network module\n // keep-sorted start block=yes\n parseAddInterceptParams(params) {\n return params;\n }\n parseContinueRequestParams(params) {\n return params;\n }\n parseContinueResponseParams(params) {\n return params;\n }\n parseContinueWithAuthParams(params) {\n return params;\n }\n parseFailRequestParams(params) {\n return params;\n }\n parseProvideResponseParams(params) {\n return params;\n }\n parseRemoveInterceptParams(params) {\n return params;\n }\n parseSetCacheBehavior(params) {\n return params;\n }\n // keep-sorted end\n // Permissions module\n // keep-sorted start block=yes\n parseSetPermissionsParams(params) {\n return params;\n }\n // keep-sorted end\n // Session module\n // keep-sorted start block=yes\n parseSubscribeParams(params) {\n return params;\n }\n parseUnsubscribeParams(params) {\n return params;\n }\n // keep-sorted end\n // Storage module\n // keep-sorted start block=yes\n parseDeleteCookiesParams(params) {\n return params;\n }\n parseGetCookiesParams(params) {\n return params;\n }\n parseSetCookieParams(params) {\n return params;\n }\n // keep-sorted end\n // WebExtenstion module\n // keep-sorted start block=yes\n parseInstallParams(params) {\n return params;\n }\n parseUninstallParams(params) {\n return params;\n }\n}\nexports.BidiNoOpParser = BidiNoOpParser;\n//# sourceMappingURL=BidiNoOpParser.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nclass BrowserProcessor {\n #browserCdpClient;\n #browsingContextStorage;\n #userContextStorage;\n constructor(browserCdpClient, browsingContextStorage, userContextStorage) {\n this.#browserCdpClient = browserCdpClient;\n this.#browsingContextStorage = browsingContextStorage;\n this.#userContextStorage = userContextStorage;\n }\n close() {\n // Ensure that it is put at the end of the event loop.\n // This way we send back the response before closing the tab.\n setTimeout(() => this.#browserCdpClient.sendCommand('Browser.close'), 0);\n return {};\n }\n async createUserContext(params) {\n const request = {\n proxyServer: params['goog:proxyServer'] ?? undefined,\n };\n const proxyBypassList = params['goog:proxyBypassList'] ?? undefined;\n if (proxyBypassList) {\n request.proxyBypassList = proxyBypassList.join(',');\n }\n const context = await this.#browserCdpClient.sendCommand('Target.createBrowserContext', request);\n return {\n userContext: context.browserContextId,\n };\n }\n async removeUserContext(params) {\n const userContext = params.userContext;\n if (userContext === 'default') {\n throw new protocol_js_1.InvalidArgumentException('`default` user context cannot be removed');\n }\n try {\n await this.#browserCdpClient.sendCommand('Target.disposeBrowserContext', {\n browserContextId: userContext,\n });\n }\n catch (err) {\n // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/target_handler.cc;l=1424;drc=c686e8f4fd379312469fe018f5c390e9c8f20d0d\n if (err.message.startsWith('Failed to find context with id')) {\n throw new protocol_js_1.NoSuchUserContextException(err.message);\n }\n throw err;\n }\n return {};\n }\n async getUserContexts() {\n return {\n userContexts: await this.#userContextStorage.getUserContexts(),\n };\n }\n async #getWindowInfo(targetId) {\n const windowInfo = await this.#browserCdpClient.sendCommand('Browser.getWindowForTarget', { targetId });\n return {\n // `active` is not supported in CDP yet.\n active: false,\n clientWindow: `${windowInfo.windowId}`,\n state: windowInfo.bounds.windowState ?? 'normal',\n height: windowInfo.bounds.height ?? 0,\n width: windowInfo.bounds.width ?? 0,\n x: windowInfo.bounds.left ?? 0,\n y: windowInfo.bounds.top ?? 0,\n };\n }\n async getClientWindows() {\n const topLevelTargetIds = this.#browsingContextStorage\n .getTopLevelContexts()\n .map((b) => b.cdpTarget.id);\n const clientWindows = await Promise.all(topLevelTargetIds.map(async (targetId) => await this.#getWindowInfo(targetId)));\n const uniqueClientWindowIds = new Set();\n const uniqueClientWindows = new Array();\n // Filter out duplicated client windows.\n for (const window of clientWindows) {\n if (!uniqueClientWindowIds.has(window.clientWindow)) {\n uniqueClientWindowIds.add(window.clientWindow);\n uniqueClientWindows.push(window);\n }\n }\n return { clientWindows: uniqueClientWindows };\n }\n}\nexports.BrowserProcessor = BrowserProcessor;\n//# sourceMappingURL=BrowserProcessor.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CdpProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nclass CdpProcessor {\n #browsingContextStorage;\n #realmStorage;\n #cdpConnection;\n #browserCdpClient;\n constructor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#realmStorage = realmStorage;\n this.#cdpConnection = cdpConnection;\n this.#browserCdpClient = browserCdpClient;\n }\n getSession(params) {\n const context = params.context;\n const sessionId = this.#browsingContextStorage.getContext(context).cdpTarget.cdpSessionId;\n if (sessionId === undefined) {\n return {};\n }\n return { session: sessionId };\n }\n resolveRealm(params) {\n const context = params.realm;\n const realm = this.#realmStorage.getRealm({ realmId: context });\n if (realm === undefined) {\n throw new protocol_js_1.UnknownErrorException(`Could not find realm ${params.realm}`);\n }\n return { executionContextId: realm.executionContextId };\n }\n async sendCommand(params) {\n const client = params.session\n ? this.#cdpConnection.getCdpClient(params.session)\n : this.#browserCdpClient;\n const result = await client.sendCommand(params.method, params.params);\n return {\n result,\n session: params.session,\n };\n }\n}\nexports.CdpProcessor = CdpProcessor;\n//# sourceMappingURL=CdpProcessor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowsingContextProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nclass BrowsingContextProcessor {\n #browserCdpClient;\n #browsingContextStorage;\n #eventManager;\n #userContextStorage;\n constructor(browserCdpClient, browsingContextStorage, userContextStorage, eventManager) {\n this.#userContextStorage = userContextStorage;\n this.#browserCdpClient = browserCdpClient;\n this.#browsingContextStorage = browsingContextStorage;\n this.#eventManager = eventManager;\n this.#eventManager.addSubscribeHook(protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.ContextCreated, this.#onContextCreatedSubscribeHook.bind(this));\n }\n getTree(params) {\n const resultContexts = params.root === undefined\n ? this.#browsingContextStorage.getTopLevelContexts()\n : [this.#browsingContextStorage.getContext(params.root)];\n return {\n contexts: resultContexts.map((c) => c.serializeToBidiValue(params.maxDepth ?? Number.MAX_VALUE)),\n };\n }\n async create(params) {\n let referenceContext;\n let userContext = 'default';\n if (params.referenceContext !== undefined) {\n referenceContext = this.#browsingContextStorage.getContext(params.referenceContext);\n if (!referenceContext.isTopLevelContext()) {\n throw new protocol_js_1.InvalidArgumentException(`referenceContext should be a top-level context`);\n }\n userContext = referenceContext.userContext;\n }\n if (params.userContext !== undefined) {\n userContext = params.userContext;\n }\n const existingContexts = this.#browsingContextStorage\n .getAllContexts()\n .filter((context) => context.userContext === userContext);\n let newWindow = false;\n switch (params.type) {\n case \"tab\" /* BrowsingContext.CreateType.Tab */:\n newWindow = false;\n break;\n case \"window\" /* BrowsingContext.CreateType.Window */:\n newWindow = true;\n break;\n }\n if (!existingContexts.length) {\n // If there are no contexts in the given user context, we need to set\n // newWindow to true as newWindow=false will be rejected.\n newWindow = true;\n }\n let result;\n try {\n result = await this.#browserCdpClient.sendCommand('Target.createTarget', {\n url: 'about:blank',\n newWindow,\n browserContextId: userContext === 'default' ? undefined : userContext,\n background: params.background === true,\n });\n }\n catch (err) {\n if (\n // See https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/devtools/protocol/target_handler.cc;l=90;drc=e80392ac11e48a691f4309964cab83a3a59e01c8\n err.message.startsWith('Failed to find browser context with id') ||\n // See https://source.chromium.org/chromium/chromium/src/+/main:headless/lib/browser/protocol/target_handler.cc;l=49;drc=e80392ac11e48a691f4309964cab83a3a59e01c8\n err.message === 'browserContextId') {\n throw new protocol_js_1.NoSuchUserContextException(`The context ${userContext} was not found`);\n }\n throw err;\n }\n // Wait for the new target to be attached and to be added to the browsing context\n // storage.\n const context = await this.#browsingContextStorage.waitForContext(result.targetId);\n // Wait for the new tab to be loaded to avoid race conditions in the\n // `browsingContext` events, when the `browsingContext.domContentLoaded` and\n // `browsingContext.load` events from the initial `about:blank` navigation\n // are emitted after the next navigation is started.\n // Details: https://github.com/web-platform-tests/wpt/issues/35846\n await context.lifecycleLoaded();\n return { context: context.id };\n }\n navigate(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return context.navigate(params.url, params.wait ?? \"none\" /* BrowsingContext.ReadinessState.None */);\n }\n reload(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return context.reload(params.ignoreCache ?? false, params.wait ?? \"none\" /* BrowsingContext.ReadinessState.None */);\n }\n async activate(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n if (!context.isTopLevelContext()) {\n throw new protocol_js_1.InvalidArgumentException('Activation is only supported on the top-level context');\n }\n await context.activate();\n return {};\n }\n async captureScreenshot(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return await context.captureScreenshot(params);\n }\n async print(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return await context.print(params);\n }\n async setViewport(params) {\n const impactedTopLevelContexts = await this.#getRelatedTopLevelBrowsingContexts(params.context, params.userContexts);\n for (const userContextId of params.userContexts ?? []) {\n const userContextConfig = this.#userContextStorage.getConfig(userContextId);\n // `undefined` means not changes should be done to the config.\n if (params.devicePixelRatio !== undefined) {\n userContextConfig.devicePixelRatio = params.devicePixelRatio;\n }\n if (params.viewport !== undefined) {\n userContextConfig.viewport = params.viewport;\n }\n }\n await Promise.all(impactedTopLevelContexts.map((context) => context.setViewport(params.viewport, params.devicePixelRatio)));\n return {};\n }\n /**\n * Returns a list of top-level browsing context ids.\n */\n async #getRelatedTopLevelBrowsingContexts(browsingContextId, userContextIds) {\n if (browsingContextId === undefined && userContextIds === undefined) {\n throw new protocol_js_1.InvalidArgumentException('Either userContexts or context must be provided');\n }\n if (browsingContextId !== undefined && userContextIds !== undefined) {\n throw new protocol_js_1.InvalidArgumentException('userContexts and context are mutually exclusive');\n }\n if (browsingContextId !== undefined) {\n const context = this.#browsingContextStorage.getContext(browsingContextId);\n if (!context.isTopLevelContext()) {\n throw new protocol_js_1.InvalidArgumentException('Emulating viewport is only supported on the top-level context');\n }\n return [context];\n }\n // Verify that all user contexts exist.\n await this.#userContextStorage.verifyUserContextIdList(userContextIds);\n const result = [];\n for (const userContextId of userContextIds) {\n const topLevelBrowsingContexts = this.#browsingContextStorage\n .getTopLevelContexts()\n .filter((browsingContext) => browsingContext.userContext === userContextId);\n result.push(...topLevelBrowsingContexts);\n }\n // Remove duplicates. Compare `BrowsingContextImpl` by reference is correct here, as\n // `browsingContextStorage` returns the same instance for the same id.\n return [...new Set(result).values()];\n }\n async traverseHistory(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n if (!context) {\n throw new protocol_js_1.InvalidArgumentException(`No browsing context with id ${params.context}`);\n }\n if (!context.isTopLevelContext()) {\n throw new protocol_js_1.InvalidArgumentException('Traversing history is only supported on the top-level context');\n }\n await context.traverseHistory(params.delta);\n return {};\n }\n async handleUserPrompt(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n try {\n await context.handleUserPrompt(params.accept, params.userText);\n }\n catch (error) {\n // Heuristically determine the error\n // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/page_handler.cc;l=1085?q=%22No%20dialog%20is%20showing%22&ss=chromium\n if (error.message?.includes('No dialog is showing')) {\n throw new protocol_js_1.NoSuchAlertException('No dialog is showing');\n }\n throw error;\n }\n return {};\n }\n async close(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n if (!context.isTopLevelContext()) {\n throw new protocol_js_1.InvalidArgumentException(`Non top-level browsing context ${context.id} cannot be closed.`);\n }\n // Parent session of a page target session can be a `browser` or a `tab` session.\n const parentCdpClient = context.cdpTarget.parentCdpClient;\n try {\n const detachedFromTargetPromise = new Promise((resolve) => {\n const onContextDestroyed = (event) => {\n if (event.targetId === params.context) {\n parentCdpClient.off('Target.detachedFromTarget', onContextDestroyed);\n resolve();\n }\n };\n parentCdpClient.on('Target.detachedFromTarget', onContextDestroyed);\n });\n try {\n if (params.promptUnload) {\n await context.close();\n }\n else {\n await parentCdpClient.sendCommand('Target.closeTarget', {\n targetId: params.context,\n });\n }\n }\n catch (error) {\n // Swallow error that arise from the session being destroyed. Rely on the\n // `detachedFromTargetPromise` event to be resolved.\n if (!parentCdpClient.isCloseError(error)) {\n throw error;\n }\n }\n // Sometimes CDP command finishes before `detachedFromTarget` event,\n // sometimes after. Wait for the CDP command to be finished, and then wait\n // for `detachedFromTarget` if it hasn't emitted.\n await detachedFromTargetPromise;\n }\n catch (error) {\n // Swallow error that arise from the page being destroyed\n // Example is navigating to faulty SSL certificate\n if (!(error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ &&\n error.message === 'Not attached to an active page')) {\n throw error;\n }\n }\n return {};\n }\n async locateNodes(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n return await context.locateNodes(params);\n }\n #onContextCreatedSubscribeHook(contextId) {\n const context = this.#browsingContextStorage.getContext(contextId);\n const contextsToReport = [\n context,\n ...this.#browsingContextStorage.getContext(contextId).allChildren,\n ];\n contextsToReport.forEach((context) => {\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.ContextCreated,\n params: context.serializeToBidiValue(),\n }, context.id);\n });\n return Promise.resolve();\n }\n}\nexports.BrowsingContextProcessor = BrowsingContextProcessor;\n//# sourceMappingURL=BrowsingContextProcessor.js.map","\"use strict\";\n/**\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmulationProcessor = void 0;\nconst ErrorResponse_js_1 = require(\"../../../protocol/ErrorResponse.js\");\nclass EmulationProcessor {\n #userContextStorage;\n #browsingContextStorage;\n constructor(browsingContextStorage, userContextStorage) {\n this.#userContextStorage = userContextStorage;\n this.#browsingContextStorage = browsingContextStorage;\n }\n async setGeolocationOverride(params) {\n if ('coordinates' in params && 'error' in params) {\n // Unreachable. Handled by params parser.\n throw new ErrorResponse_js_1.InvalidArgumentException('Coordinates and error cannot be set at the same time');\n }\n let geolocation = null;\n if ('coordinates' in params) {\n if ((params.coordinates?.altitude ?? null) === null &&\n (params.coordinates?.altitudeAccuracy ?? null) !== null) {\n throw new ErrorResponse_js_1.InvalidArgumentException('Geolocation altitudeAccuracy can be set only with altitude');\n }\n geolocation = params.coordinates;\n }\n else if ('error' in params) {\n if (params.error.type !== 'positionUnavailable') {\n // Unreachable. Handled by params parser.\n throw new ErrorResponse_js_1.InvalidArgumentException(`Unknown geolocation error ${params.error.type}`);\n }\n geolocation = params.error;\n }\n else {\n // Unreachable. Handled by params parser.\n throw new ErrorResponse_js_1.InvalidArgumentException(`Coordinates or error should be set`);\n }\n const browsingContexts = await this.#getRelatedTopLevelBrowsingContexts(params.contexts, params.userContexts);\n for (const userContextId of params.userContexts ?? []) {\n const userContextConfig = this.#userContextStorage.getConfig(userContextId);\n userContextConfig.geolocation = geolocation;\n }\n await Promise.all(browsingContexts.map(async (context) => await context.cdpTarget.setGeolocationOverride(geolocation)));\n return {};\n }\n /**\n * Returns a list of top-level browsing contexts.\n */\n async #getRelatedTopLevelBrowsingContexts(browsingContextIds, userContextIds) {\n if (browsingContextIds === undefined && userContextIds === undefined) {\n throw new ErrorResponse_js_1.InvalidArgumentException('Either user contexts or browsing contexts must be provided');\n }\n if (browsingContextIds !== undefined && userContextIds !== undefined) {\n throw new ErrorResponse_js_1.InvalidArgumentException('User contexts and browsing contexts are mutually exclusive');\n }\n const result = [];\n if (browsingContextIds === undefined) {\n // userContextIds !== undefined\n if (userContextIds.length === 0) {\n throw new ErrorResponse_js_1.InvalidArgumentException('user context should be provided');\n }\n // Verify that all user contexts exist.\n await this.#userContextStorage.verifyUserContextIdList(userContextIds);\n for (const userContextId of userContextIds) {\n const topLevelBrowsingContexts = this.#browsingContextStorage\n .getTopLevelContexts()\n .filter((browsingContext) => browsingContext.userContext === userContextId);\n result.push(...topLevelBrowsingContexts);\n }\n }\n else {\n if (browsingContextIds.length === 0) {\n throw new ErrorResponse_js_1.InvalidArgumentException('browsing context should be provided');\n }\n for (const browsingContextId of browsingContextIds) {\n const browsingContext = this.#browsingContextStorage.getContext(browsingContextId);\n if (!browsingContext.isTopLevelContext()) {\n throw new ErrorResponse_js_1.InvalidArgumentException('The command is only supported on the top-level context');\n }\n result.push(browsingContext);\n }\n }\n // Remove duplicates. Compare `BrowsingContextImpl` by reference is correct here, as\n // `browsingContextStorage` returns the same instance for the same id.\n return [...new Set(result).values()];\n }\n}\nexports.EmulationProcessor = EmulationProcessor;\n//# sourceMappingURL=EmulationProcessor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assert = assert;\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction assert(predicate, message) {\n if (!predicate) {\n throw new Error(message ?? 'Internal assertion failed.');\n }\n}\n//# sourceMappingURL=assert.js.map","\"use strict\";\n/*\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSingleComplexGrapheme = isSingleComplexGrapheme;\nexports.isSingleGrapheme = isSingleGrapheme;\n/**\n * Check if the given string is a single complex grapheme. A complex grapheme is one that\n * is made up of multiple characters.\n */\nfunction isSingleComplexGrapheme(value) {\n return isSingleGrapheme(value) && value.length > 1;\n}\n/**\n * Check if the given string is a single grapheme.\n */\nfunction isSingleGrapheme(value) {\n // Theoretically there can be some strings considered a grapheme in some locales, like\n // slovak \"ch\" digraph. Use english locale for consistency.\n // https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries\n const segmenter = new Intl.Segmenter('en', { granularity: 'grapheme' });\n return [...segmenter.segment(value)].length === 1;\n}\n//# sourceMappingURL=graphemeTools.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WheelSource = exports.PointerSource = exports.KeySource = exports.NoneSource = void 0;\nclass NoneSource {\n type = \"none\" /* SourceType.None */;\n}\nexports.NoneSource = NoneSource;\nclass KeySource {\n type = \"key\" /* SourceType.Key */;\n pressed = new Set();\n // This is a bitfield that matches the modifiers parameter of\n // https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchKeyEvent\n #modifiers = 0;\n get modifiers() {\n return this.#modifiers;\n }\n get alt() {\n return (this.#modifiers & 1) === 1;\n }\n set alt(value) {\n this.#setModifier(value, 1);\n }\n get ctrl() {\n return (this.#modifiers & 2) === 2;\n }\n set ctrl(value) {\n this.#setModifier(value, 2);\n }\n get meta() {\n return (this.#modifiers & 4) === 4;\n }\n set meta(value) {\n this.#setModifier(value, 4);\n }\n get shift() {\n return (this.#modifiers & 8) === 8;\n }\n set shift(value) {\n this.#setModifier(value, 8);\n }\n #setModifier(value, bit) {\n if (value) {\n this.#modifiers |= bit;\n }\n else {\n this.#modifiers &= ~bit;\n }\n }\n}\nexports.KeySource = KeySource;\nclass PointerSource {\n type = \"pointer\" /* SourceType.Pointer */;\n subtype;\n pointerId;\n pressed = new Set();\n x = 0;\n y = 0;\n radiusX;\n radiusY;\n force;\n constructor(id, subtype) {\n this.pointerId = id;\n this.subtype = subtype;\n }\n // This is a bitfield that matches the buttons parameter of\n // https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchMouseEvent\n get buttons() {\n let buttons = 0;\n for (const button of this.pressed) {\n switch (button) {\n case 0:\n buttons |= 1;\n break;\n case 1:\n buttons |= 4;\n break;\n case 2:\n buttons |= 2;\n break;\n case 3:\n buttons |= 8;\n break;\n case 4:\n buttons |= 16;\n break;\n }\n }\n return buttons;\n }\n // --- Platform-specific code starts here ---\n // Input.dispatchMouseEvent doesn't know the concept of double click, so we\n // need to create the logic, similar to how it's done for OSes:\n // https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:ui/events/event.cc;l=479\n static ClickContext = class ClickContext {\n static #DOUBLE_CLICK_TIME_MS = 500;\n static #MAX_DOUBLE_CLICK_RADIUS = 2;\n count = 0;\n #x;\n #y;\n #time;\n constructor(x, y, time) {\n this.#x = x;\n this.#y = y;\n this.#time = time;\n }\n compare(context) {\n return (\n // The click needs to be within a certain amount of ms.\n context.#time - this.#time > ClickContext.#DOUBLE_CLICK_TIME_MS ||\n // The click needs to be within a certain square radius.\n Math.abs(context.#x - this.#x) >\n ClickContext.#MAX_DOUBLE_CLICK_RADIUS ||\n Math.abs(context.#y - this.#y) > ClickContext.#MAX_DOUBLE_CLICK_RADIUS);\n }\n };\n #clickContexts = new Map();\n setClickCount(button, context) {\n let storedContext = this.#clickContexts.get(button);\n if (!storedContext || storedContext.compare(context)) {\n storedContext = context;\n }\n ++storedContext.count;\n this.#clickContexts.set(button, storedContext);\n return storedContext.count;\n }\n getClickCount(button) {\n return this.#clickContexts.get(button)?.count ?? 0;\n }\n /**\n * Resets click count. Resets consequent click counter. Prevents grouping clicks in\n * different `performActions` calls, so that they are not grouped as double, triple etc\n * clicks. Required for https://github.com/GoogleChromeLabs/chromium-bidi/issues/3043.\n */\n resetClickCount() {\n this.#clickContexts = new Map();\n }\n}\nexports.PointerSource = PointerSource;\n_a = PointerSource;\nclass WheelSource {\n type = \"wheel\" /* SourceType.Wheel */;\n}\nexports.WheelSource = WheelSource;\n//# sourceMappingURL=InputSource.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getNormalizedKey = getNormalizedKey;\nexports.getKeyCode = getKeyCode;\nexports.getKeyLocation = getKeyLocation;\n/**\n * Returns the normalized key value for a given key according to the table:\n * https://w3c.github.io/webdriver/#dfn-normalized-key-value\n */\nfunction getNormalizedKey(value) {\n switch (value) {\n case '\\uE000':\n return 'Unidentified';\n case '\\uE001':\n return 'Cancel';\n case '\\uE002':\n return 'Help';\n case '\\uE003':\n return 'Backspace';\n case '\\uE004':\n return 'Tab';\n case '\\uE005':\n return 'Clear';\n // Specification declares the '\\uE006' to be `Return`, but it is not supported by\n // Chrome, so fall back to `Enter`, which aligns with WPT.\n case '\\uE006':\n case '\\uE007':\n return 'Enter';\n case '\\uE008':\n return 'Shift';\n case '\\uE009':\n return 'Control';\n case '\\uE00A':\n return 'Alt';\n case '\\uE00B':\n return 'Pause';\n case '\\uE00C':\n return 'Escape';\n case '\\uE00D':\n return ' ';\n case '\\uE00E':\n return 'PageUp';\n case '\\uE00F':\n return 'PageDown';\n case '\\uE010':\n return 'End';\n case '\\uE011':\n return 'Home';\n case '\\uE012':\n return 'ArrowLeft';\n case '\\uE013':\n return 'ArrowUp';\n case '\\uE014':\n return 'ArrowRight';\n case '\\uE015':\n return 'ArrowDown';\n case '\\uE016':\n return 'Insert';\n case '\\uE017':\n return 'Delete';\n case '\\uE018':\n return ';';\n case '\\uE019':\n return '=';\n case '\\uE01A':\n return '0';\n case '\\uE01B':\n return '1';\n case '\\uE01C':\n return '2';\n case '\\uE01D':\n return '3';\n case '\\uE01E':\n return '4';\n case '\\uE01F':\n return '5';\n case '\\uE020':\n return '6';\n case '\\uE021':\n return '7';\n case '\\uE022':\n return '8';\n case '\\uE023':\n return '9';\n case '\\uE024':\n return '*';\n case '\\uE025':\n return '+';\n case '\\uE026':\n return ',';\n case '\\uE027':\n return '-';\n case '\\uE028':\n return '.';\n case '\\uE029':\n return '/';\n case '\\uE031':\n return 'F1';\n case '\\uE032':\n return 'F2';\n case '\\uE033':\n return 'F3';\n case '\\uE034':\n return 'F4';\n case '\\uE035':\n return 'F5';\n case '\\uE036':\n return 'F6';\n case '\\uE037':\n return 'F7';\n case '\\uE038':\n return 'F8';\n case '\\uE039':\n return 'F9';\n case '\\uE03A':\n return 'F10';\n case '\\uE03B':\n return 'F11';\n case '\\uE03C':\n return 'F12';\n case '\\uE03D':\n return 'Meta';\n case '\\uE040':\n return 'ZenkakuHankaku';\n case '\\uE050':\n return 'Shift';\n case '\\uE051':\n return 'Control';\n case '\\uE052':\n return 'Alt';\n case '\\uE053':\n return 'Meta';\n case '\\uE054':\n return 'PageUp';\n case '\\uE055':\n return 'PageDown';\n case '\\uE056':\n return 'End';\n case '\\uE057':\n return 'Home';\n case '\\uE058':\n return 'ArrowLeft';\n case '\\uE059':\n return 'ArrowUp';\n case '\\uE05A':\n return 'ArrowRight';\n case '\\uE05B':\n return 'ArrowDown';\n case '\\uE05C':\n return 'Insert';\n case '\\uE05D':\n return 'Delete';\n default:\n return value;\n }\n}\n/**\n * Returns the key code for a given key according to the table:\n * https://w3c.github.io/webdriver/#dfn-shifted-character\n */\nfunction getKeyCode(key) {\n switch (key) {\n case '`':\n case '~':\n return 'Backquote';\n case '\\\\':\n case '|':\n return 'Backslash';\n case '\\uE003':\n return 'Backspace';\n case '[':\n case '{':\n return 'BracketLeft';\n case ']':\n case '}':\n return 'BracketRight';\n case ',':\n case '<':\n return 'Comma';\n case '0':\n case ')':\n return 'Digit0';\n case '1':\n case '!':\n return 'Digit1';\n case '2':\n case '@':\n return 'Digit2';\n case '3':\n case '#':\n return 'Digit3';\n case '4':\n case '$':\n return 'Digit4';\n case '5':\n case '%':\n return 'Digit5';\n case '6':\n case '^':\n return 'Digit6';\n case '7':\n case '&':\n return 'Digit7';\n case '8':\n case '*':\n return 'Digit8';\n case '9':\n case '(':\n return 'Digit9';\n case '=':\n case '+':\n return 'Equal';\n // The spec declares the '<' to be `IntlBackslash` as well, but it is already covered\n // in the `Comma` above.\n case '>':\n return 'IntlBackslash';\n case 'a':\n case 'A':\n return 'KeyA';\n case 'b':\n case 'B':\n return 'KeyB';\n case 'c':\n case 'C':\n return 'KeyC';\n case 'd':\n case 'D':\n return 'KeyD';\n case 'e':\n case 'E':\n return 'KeyE';\n case 'f':\n case 'F':\n return 'KeyF';\n case 'g':\n case 'G':\n return 'KeyG';\n case 'h':\n case 'H':\n return 'KeyH';\n case 'i':\n case 'I':\n return 'KeyI';\n case 'j':\n case 'J':\n return 'KeyJ';\n case 'k':\n case 'K':\n return 'KeyK';\n case 'l':\n case 'L':\n return 'KeyL';\n case 'm':\n case 'M':\n return 'KeyM';\n case 'n':\n case 'N':\n return 'KeyN';\n case 'o':\n case 'O':\n return 'KeyO';\n case 'p':\n case 'P':\n return 'KeyP';\n case 'q':\n case 'Q':\n return 'KeyQ';\n case 'r':\n case 'R':\n return 'KeyR';\n case 's':\n case 'S':\n return 'KeyS';\n case 't':\n case 'T':\n return 'KeyT';\n case 'u':\n case 'U':\n return 'KeyU';\n case 'v':\n case 'V':\n return 'KeyV';\n case 'w':\n case 'W':\n return 'KeyW';\n case 'x':\n case 'X':\n return 'KeyX';\n case 'y':\n case 'Y':\n return 'KeyY';\n case 'z':\n case 'Z':\n return 'KeyZ';\n case '-':\n case '_':\n return 'Minus';\n case '.':\n return 'Period';\n case \"'\":\n case '\"':\n return 'Quote';\n case ';':\n case ':':\n return 'Semicolon';\n case '/':\n case '?':\n return 'Slash';\n case '\\uE00A':\n return 'AltLeft';\n case '\\uE052':\n return 'AltRight';\n case '\\uE009':\n return 'ControlLeft';\n case '\\uE051':\n return 'ControlRight';\n case '\\uE006':\n return 'Enter';\n case '\\uE00B':\n return 'Pause';\n case '\\uE03D':\n return 'MetaLeft';\n case '\\uE053':\n return 'MetaRight';\n case '\\uE008':\n return 'ShiftLeft';\n case '\\uE050':\n return 'ShiftRight';\n case ' ':\n case '\\uE00D':\n return 'Space';\n case '\\uE004':\n return 'Tab';\n case '\\uE017':\n return 'Delete';\n case '\\uE010':\n return 'End';\n case '\\uE002':\n return 'Help';\n case '\\uE011':\n return 'Home';\n case '\\uE016':\n return 'Insert';\n case '\\uE00F':\n return 'PageDown';\n case '\\uE00E':\n return 'PageUp';\n case '\\uE015':\n return 'ArrowDown';\n case '\\uE012':\n return 'ArrowLeft';\n case '\\uE014':\n return 'ArrowRight';\n case '\\uE013':\n return 'ArrowUp';\n case '\\uE00C':\n return 'Escape';\n case '\\uE031':\n return 'F1';\n case '\\uE032':\n return 'F2';\n case '\\uE033':\n return 'F3';\n case '\\uE034':\n return 'F4';\n case '\\uE035':\n return 'F5';\n case '\\uE036':\n return 'F6';\n case '\\uE037':\n return 'F7';\n case '\\uE038':\n return 'F8';\n case '\\uE039':\n return 'F9';\n case '\\uE03A':\n return 'F10';\n case '\\uE03B':\n return 'F11';\n case '\\uE03C':\n return 'F12';\n case '\\uE019':\n return 'NumpadEqual';\n case '\\uE01A':\n case '\\uE05C':\n return 'Numpad0';\n case '\\uE01B':\n case '\\uE056':\n return 'Numpad1';\n case '\\uE01C':\n case '\\uE05B':\n return 'Numpad2';\n case '\\uE01D':\n case '\\uE055':\n return 'Numpad3';\n case '\\uE01E':\n case '\\uE058':\n return 'Numpad4';\n case '\\uE01F':\n return 'Numpad5';\n case '\\uE020':\n case '\\uE05A':\n return 'Numpad6';\n case '\\uE021':\n case '\\uE057':\n return 'Numpad7';\n case '\\uE022':\n case '\\uE059':\n return 'Numpad8';\n case '\\uE023':\n case '\\uE054':\n return 'Numpad9';\n case '\\uE025':\n return 'NumpadAdd';\n case '\\uE026':\n return 'NumpadComma';\n case '\\uE028':\n case '\\uE05D':\n return 'NumpadDecimal';\n case '\\uE029':\n return 'NumpadDivide';\n case '\\uE007':\n return 'NumpadEnter';\n case '\\uE024':\n return 'NumpadMultiply';\n case '\\uE027':\n return 'NumpadSubtract';\n default:\n return;\n }\n}\n/**\n * Returns the location of the key according to the table:\n * https://w3c.github.io/webdriver/#dfn-key-location\n */\nfunction getKeyLocation(key) {\n switch (key) {\n case '\\uE007':\n case '\\uE008':\n case '\\uE009':\n case '\\uE00A':\n case '\\uE03D':\n return 1;\n case '\\uE019':\n case '\\uE01A':\n case '\\uE01B':\n case '\\uE01C':\n case '\\uE01D':\n case '\\uE01E':\n case '\\uE01F':\n case '\\uE020':\n case '\\uE021':\n case '\\uE022':\n case '\\uE023':\n case '\\uE024':\n case '\\uE025':\n case '\\uE026':\n case '\\uE027':\n case '\\uE028':\n case '\\uE029':\n case '\\uE054':\n case '\\uE055':\n case '\\uE056':\n case '\\uE057':\n case '\\uE058':\n case '\\uE059':\n case '\\uE05A':\n case '\\uE05B':\n case '\\uE05C':\n case '\\uE05D':\n return 3;\n case '\\uE050':\n case '\\uE051':\n case '\\uE052':\n case '\\uE053':\n return 2;\n default:\n return 0;\n }\n}\n//# sourceMappingURL=keyUtils.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyToKeyCode = void 0;\n// TODO: Remove this once https://crrev.com/c/4548290 is stably in Chromium.\n// `Input.dispatchKeyboardEvent` will automatically handle these conversions.\nexports.KeyToKeyCode = {\n '0': 48,\n '1': 49,\n '2': 50,\n '3': 51,\n '4': 52,\n '5': 53,\n '6': 54,\n '7': 55,\n '8': 56,\n '9': 57,\n Abort: 3,\n Help: 6,\n Backspace: 8,\n Tab: 9,\n Numpad5: 12,\n NumpadEnter: 13,\n Enter: 13,\n '\\\\r': 13,\n '\\\\n': 13,\n ShiftLeft: 16,\n ShiftRight: 16,\n ControlLeft: 17,\n ControlRight: 17,\n AltLeft: 18,\n AltRight: 18,\n Pause: 19,\n CapsLock: 20,\n Escape: 27,\n Convert: 28,\n NonConvert: 29,\n Space: 32,\n Numpad9: 33,\n PageUp: 33,\n Numpad3: 34,\n PageDown: 34,\n End: 35,\n Numpad1: 35,\n Home: 36,\n Numpad7: 36,\n ArrowLeft: 37,\n Numpad4: 37,\n Numpad8: 38,\n ArrowUp: 38,\n ArrowRight: 39,\n Numpad6: 39,\n Numpad2: 40,\n ArrowDown: 40,\n Select: 41,\n Open: 43,\n PrintScreen: 44,\n Insert: 45,\n Numpad0: 45,\n Delete: 46,\n NumpadDecimal: 46,\n Digit0: 48,\n Digit1: 49,\n Digit2: 50,\n Digit3: 51,\n Digit4: 52,\n Digit5: 53,\n Digit6: 54,\n Digit7: 55,\n Digit8: 56,\n Digit9: 57,\n KeyA: 65,\n KeyB: 66,\n KeyC: 67,\n KeyD: 68,\n KeyE: 69,\n KeyF: 70,\n KeyG: 71,\n KeyH: 72,\n KeyI: 73,\n KeyJ: 74,\n KeyK: 75,\n KeyL: 76,\n KeyM: 77,\n KeyN: 78,\n KeyO: 79,\n KeyP: 80,\n KeyQ: 81,\n KeyR: 82,\n KeyS: 83,\n KeyT: 84,\n KeyU: 85,\n KeyV: 86,\n KeyW: 87,\n KeyX: 88,\n KeyY: 89,\n KeyZ: 90,\n MetaLeft: 91,\n MetaRight: 92,\n ContextMenu: 93,\n NumpadMultiply: 106,\n NumpadAdd: 107,\n NumpadSubtract: 109,\n NumpadDivide: 111,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123,\n F13: 124,\n F14: 125,\n F15: 126,\n F16: 127,\n F17: 128,\n F18: 129,\n F19: 130,\n F20: 131,\n F21: 132,\n F22: 133,\n F23: 134,\n F24: 135,\n NumLock: 144,\n ScrollLock: 145,\n AudioVolumeMute: 173,\n AudioVolumeDown: 174,\n AudioVolumeUp: 175,\n MediaTrackNext: 176,\n MediaTrackPrevious: 177,\n MediaStop: 178,\n MediaPlayPause: 179,\n Semicolon: 186,\n Equal: 187,\n NumpadEqual: 187,\n Comma: 188,\n Minus: 189,\n Period: 190,\n Slash: 191,\n Backquote: 192,\n BracketLeft: 219,\n Backslash: 220,\n BracketRight: 221,\n Quote: 222,\n AltGraph: 225,\n Props: 247,\n Cancel: 3,\n Clear: 12,\n Shift: 16,\n Control: 17,\n Alt: 18,\n Accept: 30,\n ModeChange: 31,\n ' ': 32,\n Print: 42,\n Execute: 43,\n '\\\\u0000': 46,\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n Meta: 91,\n '*': 106,\n '+': 107,\n '-': 109,\n '/': 111,\n ';': 186,\n '=': 187,\n ',': 188,\n '.': 190,\n '`': 192,\n '[': 219,\n '\\\\\\\\': 220,\n ']': 221,\n \"'\": 222,\n Attn: 246,\n CrSel: 247,\n ExSel: 248,\n EraseEof: 249,\n Play: 250,\n ZoomOut: 251,\n ')': 48,\n '!': 49,\n '@': 50,\n '#': 51,\n $: 52,\n '%': 53,\n '^': 54,\n '&': 55,\n '(': 57,\n A: 65,\n B: 66,\n C: 67,\n D: 68,\n E: 69,\n F: 70,\n G: 71,\n H: 72,\n I: 73,\n J: 74,\n K: 75,\n L: 76,\n M: 77,\n N: 78,\n O: 79,\n P: 80,\n Q: 81,\n R: 82,\n S: 83,\n T: 84,\n U: 85,\n V: 86,\n W: 87,\n X: 88,\n Y: 89,\n Z: 90,\n ':': 186,\n '<': 188,\n _: 189,\n '>': 190,\n '?': 191,\n '~': 192,\n '{': 219,\n '|': 220,\n '}': 221,\n '\"': 222,\n Camera: 44,\n EndCall: 95,\n VolumeDown: 182,\n VolumeUp: 183,\n};\n//# sourceMappingURL=USKeyboardLayout.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionDispatcher = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst assert_js_1 = require(\"../../../utils/assert.js\");\nconst graphemeTools_js_1 = require(\"../../../utils/graphemeTools.js\");\nconst InputSource_js_1 = require(\"./InputSource.js\");\nconst keyUtils_js_1 = require(\"./keyUtils.js\");\nconst USKeyboardLayout_js_1 = require(\"./USKeyboardLayout.js\");\n/** https://w3c.github.io/webdriver/#dfn-center-point */\nconst CALCULATE_IN_VIEW_CENTER_PT_DECL = ((i) => {\n const t = i.getClientRects()[0], e = Math.max(0, Math.min(t.x, t.x + t.width)), n = Math.min(window.innerWidth, Math.max(t.x, t.x + t.width)), h = Math.max(0, Math.min(t.y, t.y + t.height)), m = Math.min(window.innerHeight, Math.max(t.y, t.y + t.height));\n return [e + ((n - e) >> 1), h + ((m - h) >> 1)];\n}).toString();\nconst IS_MAC_DECL = (() => {\n return navigator.platform.toLowerCase().includes('mac');\n}).toString();\nasync function getElementCenter(context, element) {\n const sandbox = await context.getOrCreateSandbox(undefined);\n const result = await sandbox.callFunction(CALCULATE_IN_VIEW_CENTER_PT_DECL, false, { type: 'undefined' }, [element]);\n if (result.type === 'exception') {\n throw new protocol_js_1.NoSuchElementException(`Origin element ${element.sharedId} was not found`);\n }\n (0, assert_js_1.assert)(result.result.type === 'array');\n (0, assert_js_1.assert)(result.result.value?.[0]?.type === 'number');\n (0, assert_js_1.assert)(result.result.value?.[1]?.type === 'number');\n const { result: { value: [{ value: x }, { value: y }], }, } = result;\n return { x: x, y: y };\n}\nclass ActionDispatcher {\n static isMacOS = async (context) => {\n const result = await (await context.getOrCreateSandbox(undefined)).callFunction(IS_MAC_DECL, false);\n (0, assert_js_1.assert)(result.type !== 'exception');\n (0, assert_js_1.assert)(result.result.type === 'boolean');\n return result.result.value;\n };\n #browsingContextStorage;\n #tickStart = 0;\n #tickDuration = 0;\n #inputState;\n #contextId;\n #isMacOS;\n constructor(inputState, browsingContextStorage, contextId, isMacOS) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#inputState = inputState;\n this.#contextId = contextId;\n this.#isMacOS = isMacOS;\n }\n /**\n * The context can be disposed between action ticks, so need to get it each time.\n */\n get #context() {\n return this.#browsingContextStorage.getContext(this.#contextId);\n }\n async dispatchActions(optionsByTick) {\n await this.#inputState.queue.run(async () => {\n for (const options of optionsByTick) {\n await this.dispatchTickActions(options);\n }\n });\n }\n async dispatchTickActions(options) {\n this.#tickStart = performance.now();\n this.#tickDuration = 0;\n for (const { action } of options) {\n if ('duration' in action && action.duration !== undefined) {\n this.#tickDuration = Math.max(this.#tickDuration, action.duration);\n }\n }\n const promises = [\n new Promise((resolve) => setTimeout(resolve, this.#tickDuration)),\n ];\n for (const option of options) {\n // In theory we have to wait for each action to happen, but CDP is serial,\n // so as an optimization, we queue all CDP commands at once and await all\n // of them.\n promises.push(this.#dispatchAction(option));\n }\n await Promise.all(promises);\n }\n async #dispatchAction({ id, action }) {\n const source = this.#inputState.get(id);\n const keyState = this.#inputState.getGlobalKeyState();\n switch (action.type) {\n case 'keyDown': {\n // SAFETY: The source is validated before.\n await this.#dispatchKeyDownAction(source, action);\n this.#inputState.cancelList.push({\n id,\n action: {\n ...action,\n type: 'keyUp',\n },\n });\n break;\n }\n case 'keyUp': {\n // SAFETY: The source is validated before.\n await this.#dispatchKeyUpAction(source, action);\n break;\n }\n case 'pause': {\n // TODO: Implement waiting on the input source.\n break;\n }\n case 'pointerDown': {\n // SAFETY: The source is validated before.\n await this.#dispatchPointerDownAction(source, keyState, action);\n this.#inputState.cancelList.push({\n id,\n action: {\n ...action,\n type: 'pointerUp',\n },\n });\n break;\n }\n case 'pointerMove': {\n // SAFETY: The source is validated before.\n await this.#dispatchPointerMoveAction(source, keyState, action);\n break;\n }\n case 'pointerUp': {\n // SAFETY: The source is validated before.\n await this.#dispatchPointerUpAction(source, keyState, action);\n break;\n }\n case 'scroll': {\n // SAFETY: The source is validated before.\n await this.#dispatchScrollAction(source, keyState, action);\n break;\n }\n }\n }\n async #dispatchPointerDownAction(source, keyState, action) {\n const { button } = action;\n if (source.pressed.has(button)) {\n return;\n }\n source.pressed.add(button);\n const { x, y, subtype: pointerType } = source;\n const { width, height, pressure, twist, tangentialPressure } = action;\n const { tiltX, tiltY } = getTilt(action);\n // --- Platform-specific code begins here ---\n const { modifiers } = keyState;\n const { radiusX, radiusY } = getRadii(width ?? 1, height ?? 1);\n switch (pointerType) {\n case \"mouse\" /* Input.PointerType.Mouse */:\n case \"pen\" /* Input.PointerType.Pen */:\n // TODO: Implement width and height when available.\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mousePressed',\n x,\n y,\n modifiers,\n button: getCdpButton(button),\n buttons: source.buttons,\n clickCount: source.setClickCount(button, new InputSource_js_1.PointerSource.ClickContext(x, y, performance.now())),\n pointerType,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure,\n });\n break;\n case \"touch\" /* Input.PointerType.Touch */:\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', {\n type: 'touchStart',\n touchPoints: [\n {\n x,\n y,\n radiusX,\n radiusY,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure,\n id: source.pointerId,\n },\n ],\n modifiers,\n });\n break;\n }\n source.radiusX = radiusX;\n source.radiusY = radiusY;\n source.force = pressure;\n // --- Platform-specific code ends here ---\n }\n #dispatchPointerUpAction(source, keyState, action) {\n const { button } = action;\n if (!source.pressed.has(button)) {\n return;\n }\n source.pressed.delete(button);\n const { x, y, force, radiusX, radiusY, subtype: pointerType } = source;\n // --- Platform-specific code begins here ---\n const { modifiers } = keyState;\n switch (pointerType) {\n case \"mouse\" /* Input.PointerType.Mouse */:\n case \"pen\" /* Input.PointerType.Pen */:\n // TODO: Implement width and height when available.\n return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mouseReleased',\n x,\n y,\n modifiers,\n button: getCdpButton(button),\n buttons: source.buttons,\n clickCount: source.getClickCount(button),\n pointerType,\n });\n case \"touch\" /* Input.PointerType.Touch */:\n return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', {\n type: 'touchEnd',\n touchPoints: [\n {\n x,\n y,\n id: source.pointerId,\n force,\n radiusX,\n radiusY,\n },\n ],\n modifiers,\n });\n }\n // --- Platform-specific code ends here ---\n }\n async #dispatchPointerMoveAction(source, keyState, action) {\n const { x: startX, y: startY, subtype: pointerType } = source;\n const { width, height, pressure, twist, tangentialPressure, x: offsetX, y: offsetY, origin = 'viewport', duration = this.#tickDuration, } = action;\n const { tiltX, tiltY } = getTilt(action);\n const { radiusX, radiusY } = getRadii(width ?? 1, height ?? 1);\n const { targetX, targetY } = await this.#getCoordinateFromOrigin(origin, offsetX, offsetY, startX, startY);\n if (targetX < 0 || targetY < 0) {\n throw new protocol_js_1.MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${targetX}, y: ${targetY})`);\n }\n let last;\n do {\n const ratio = duration > 0 ? (performance.now() - this.#tickStart) / duration : 1;\n last = ratio >= 1;\n let x;\n let y;\n if (last) {\n x = targetX;\n y = targetY;\n }\n else {\n x = Math.round(ratio * (targetX - startX) + startX);\n y = Math.round(ratio * (targetY - startY) + startY);\n }\n if (source.x !== x || source.y !== y) {\n // --- Platform-specific code begins here ---\n const { modifiers } = keyState;\n switch (pointerType) {\n case \"mouse\" /* Input.PointerType.Mouse */:\n // TODO: Implement width and height when available.\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mouseMoved',\n x,\n y,\n modifiers,\n clickCount: 0,\n button: getCdpButton(source.pressed.values().next().value ?? 5),\n buttons: source.buttons,\n pointerType,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure,\n });\n break;\n case \"pen\" /* Input.PointerType.Pen */:\n if (source.pressed.size !== 0) {\n // Empty `source.pressed.size` means the pen is not detected by digitizer.\n // Dispatch a mouse event for the pen only if either:\n // 1. the pen is hovering over the digitizer (0);\n // 2. the pen is in contact with the digitizer (1);\n // 3. the pen has at least one button pressed (2, 4, etc).\n // https://www.w3.org/TR/pointerevents/#the-buttons-property\n // TODO: Implement width and height when available.\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mouseMoved',\n x,\n y,\n modifiers,\n clickCount: 0,\n button: getCdpButton(source.pressed.values().next().value ?? 5),\n buttons: source.buttons,\n pointerType,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure ?? 0.5,\n });\n }\n break;\n case \"touch\" /* Input.PointerType.Touch */:\n if (source.pressed.size !== 0) {\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchTouchEvent', {\n type: 'touchMove',\n touchPoints: [\n {\n x,\n y,\n radiusX,\n radiusY,\n tangentialPressure,\n tiltX,\n tiltY,\n twist,\n force: pressure,\n id: source.pointerId,\n },\n ],\n modifiers,\n });\n }\n break;\n }\n // --- Platform-specific code ends here ---\n source.x = x;\n source.y = y;\n source.radiusX = radiusX;\n source.radiusY = radiusY;\n source.force = pressure;\n }\n } while (!last);\n }\n async #getFrameOffset() {\n if (this.#context.id === this.#context.cdpTarget.id) {\n return { x: 0, y: 0 };\n }\n // https://github.com/w3c/webdriver/pull/1847 proposes dispatching events from\n // the top-level browsing context. This implementation dispatches it on the top-most\n // same-target frame, which is not top-level one in case of OOPiF.\n // TODO: switch to the top-level browsing context.\n const { backendNodeId } = await this.#context.cdpTarget.cdpClient.sendCommand('DOM.getFrameOwner', { frameId: this.#context.id });\n const { model: frameBoxModel } = await this.#context.cdpTarget.cdpClient.sendCommand('DOM.getBoxModel', {\n backendNodeId,\n });\n return { x: frameBoxModel.content[0], y: frameBoxModel.content[1] };\n }\n async #getCoordinateFromOrigin(origin, offsetX, offsetY, startX, startY) {\n let targetX;\n let targetY;\n const frameOffset = await this.#getFrameOffset();\n switch (origin) {\n case 'viewport':\n targetX = offsetX + frameOffset.x;\n targetY = offsetY + frameOffset.y;\n break;\n case 'pointer':\n targetX = startX + offsetX + frameOffset.x;\n targetY = startY + offsetY + frameOffset.y;\n break;\n default: {\n const { x: posX, y: posY } = await getElementCenter(this.#context, origin.element);\n // SAFETY: These can never be special numbers.\n targetX = posX + offsetX + frameOffset.x;\n targetY = posY + offsetY + frameOffset.y;\n break;\n }\n }\n return { targetX, targetY };\n }\n async #dispatchScrollAction(_source, keyState, action) {\n const { deltaX: targetDeltaX, deltaY: targetDeltaY, x: offsetX, y: offsetY, origin = 'viewport', duration = this.#tickDuration, } = action;\n if (origin === 'pointer') {\n throw new protocol_js_1.InvalidArgumentException('\"pointer\" origin is invalid for scrolling.');\n }\n const { targetX, targetY } = await this.#getCoordinateFromOrigin(origin, offsetX, offsetY, 0, 0);\n if (targetX < 0 || targetY < 0) {\n throw new protocol_js_1.MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${targetX}, y: ${targetY})`);\n }\n let currentDeltaX = 0;\n let currentDeltaY = 0;\n let last;\n do {\n const ratio = duration > 0 ? (performance.now() - this.#tickStart) / duration : 1;\n last = ratio >= 1;\n let deltaX;\n let deltaY;\n if (last) {\n deltaX = targetDeltaX - currentDeltaX;\n deltaY = targetDeltaY - currentDeltaY;\n }\n else {\n deltaX = Math.round(ratio * targetDeltaX - currentDeltaX);\n deltaY = Math.round(ratio * targetDeltaY - currentDeltaY);\n }\n if (deltaX !== 0 || deltaY !== 0) {\n // --- Platform-specific code begins here ---\n const { modifiers } = keyState;\n await this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchMouseEvent', {\n type: 'mouseWheel',\n deltaX,\n deltaY,\n x: targetX,\n y: targetY,\n modifiers,\n });\n // --- Platform-specific code ends here ---\n currentDeltaX += deltaX;\n currentDeltaY += deltaY;\n }\n } while (!last);\n }\n async #dispatchKeyDownAction(source, action) {\n const rawKey = action.value;\n if (!(0, graphemeTools_js_1.isSingleGrapheme)(rawKey)) {\n // https://w3c.github.io/webdriver/#dfn-process-a-key-action\n // WebDriver spec allows a grapheme to be used.\n throw new protocol_js_1.InvalidArgumentException(`Invalid key value: ${rawKey}`);\n }\n const isGrapheme = (0, graphemeTools_js_1.isSingleComplexGrapheme)(rawKey);\n const key = (0, keyUtils_js_1.getNormalizedKey)(rawKey);\n const repeat = source.pressed.has(key);\n const code = (0, keyUtils_js_1.getKeyCode)(rawKey);\n const location = (0, keyUtils_js_1.getKeyLocation)(rawKey);\n switch (key) {\n case 'Alt':\n source.alt = true;\n break;\n case 'Shift':\n source.shift = true;\n break;\n case 'Control':\n source.ctrl = true;\n break;\n case 'Meta':\n source.meta = true;\n break;\n }\n source.pressed.add(key);\n const { modifiers } = source;\n // --- Platform-specific code begins here ---\n // The spread is a little hack so JS gives us an array of unicode characters\n // to measure.\n const unmodifiedText = getKeyEventUnmodifiedText(key, source, isGrapheme);\n const text = getKeyEventText(code ?? '', source) ?? unmodifiedText;\n let command;\n // The following commands need to be declared because Chromium doesn't\n // handle them. See\n // https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:third_party/blink/renderer/core/editing/editing_behavior.cc;l=169;drc=b8143cf1dfd24842890fcd831c4f5d909bef4fc4;bpv=0;bpt=1.\n if (this.#isMacOS && source.meta) {\n switch (code) {\n case 'KeyA':\n command = 'SelectAll';\n break;\n case 'KeyC':\n command = 'Copy';\n break;\n case 'KeyV':\n command = source.shift ? 'PasteAndMatchStyle' : 'Paste';\n break;\n case 'KeyX':\n command = 'Cut';\n break;\n case 'KeyZ':\n command = source.shift ? 'Redo' : 'Undo';\n break;\n default:\n // Intentionally empty.\n }\n }\n const promises = [\n this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchKeyEvent', {\n type: text ? 'keyDown' : 'rawKeyDown',\n windowsVirtualKeyCode: USKeyboardLayout_js_1.KeyToKeyCode[key],\n key,\n code,\n text,\n unmodifiedText,\n autoRepeat: repeat,\n isSystemKey: source.alt || undefined,\n location: location < 3 ? location : undefined,\n isKeypad: location === 3,\n modifiers,\n commands: command ? [command] : undefined,\n }),\n ];\n // Drag cancelling happens on escape.\n if (key === 'Escape') {\n if (!source.alt &&\n ((this.#isMacOS && !source.ctrl && !source.meta) || !this.#isMacOS)) {\n promises.push(this.#context.cdpTarget.cdpClient.sendCommand('Input.cancelDragging'));\n }\n }\n await Promise.all(promises);\n // --- Platform-specific code ends here ---\n }\n #dispatchKeyUpAction(source, action) {\n const rawKey = action.value;\n if (!(0, graphemeTools_js_1.isSingleGrapheme)(rawKey)) {\n // https://w3c.github.io/webdriver/#dfn-process-a-key-action\n // WebDriver spec allows a grapheme to be used.\n throw new protocol_js_1.InvalidArgumentException(`Invalid key value: ${rawKey}`);\n }\n const isGrapheme = (0, graphemeTools_js_1.isSingleComplexGrapheme)(rawKey);\n const key = (0, keyUtils_js_1.getNormalizedKey)(rawKey);\n if (!source.pressed.has(key)) {\n return;\n }\n const code = (0, keyUtils_js_1.getKeyCode)(rawKey);\n const location = (0, keyUtils_js_1.getKeyLocation)(rawKey);\n switch (key) {\n case 'Alt':\n source.alt = false;\n break;\n case 'Shift':\n source.shift = false;\n break;\n case 'Control':\n source.ctrl = false;\n break;\n case 'Meta':\n source.meta = false;\n break;\n }\n source.pressed.delete(key);\n const { modifiers } = source;\n // --- Platform-specific code begins here ---\n // The spread is a little hack so JS gives us an array of unicode characters\n // to measure.\n const unmodifiedText = getKeyEventUnmodifiedText(key, source, isGrapheme);\n const text = getKeyEventText(code ?? '', source) ?? unmodifiedText;\n return this.#context.cdpTarget.cdpClient.sendCommand('Input.dispatchKeyEvent', {\n type: 'keyUp',\n windowsVirtualKeyCode: USKeyboardLayout_js_1.KeyToKeyCode[key],\n key,\n code,\n text,\n unmodifiedText,\n location: location < 3 ? location : undefined,\n isSystemKey: source.alt || undefined,\n isKeypad: location === 3,\n modifiers,\n });\n // --- Platform-specific code ends here ---\n }\n}\nexports.ActionDispatcher = ActionDispatcher;\n/**\n * Translates a non-grapheme key to either an `undefined` for a special keys, or a single\n * character modified by shift if needed.\n */\nconst getKeyEventUnmodifiedText = (key, source, isGrapheme) => {\n if (isGrapheme) {\n // Graphemes should be presented as text in the CDP command.\n return key;\n }\n if (key === 'Enter') {\n return '\\r';\n }\n // If key is not a single character, it is a normalized key value, and should be\n // presented as key, not text in the CDP command.\n return [...key].length === 1\n ? source.shift\n ? key.toLocaleUpperCase('en-US')\n : key\n : undefined;\n};\nconst getKeyEventText = (code, source) => {\n if (source.ctrl) {\n switch (code) {\n case 'Digit2':\n if (source.shift) {\n return '\\x00';\n }\n break;\n case 'KeyA':\n return '\\x01';\n case 'KeyB':\n return '\\x02';\n case 'KeyC':\n return '\\x03';\n case 'KeyD':\n return '\\x04';\n case 'KeyE':\n return '\\x05';\n case 'KeyF':\n return '\\x06';\n case 'KeyG':\n return '\\x07';\n case 'KeyH':\n return '\\x08';\n case 'KeyI':\n return '\\x09';\n case 'KeyJ':\n return '\\x0A';\n case 'KeyK':\n return '\\x0B';\n case 'KeyL':\n return '\\x0C';\n case 'KeyM':\n return '\\x0D';\n case 'KeyN':\n return '\\x0E';\n case 'KeyO':\n return '\\x0F';\n case 'KeyP':\n return '\\x10';\n case 'KeyQ':\n return '\\x11';\n case 'KeyR':\n return '\\x12';\n case 'KeyS':\n return '\\x13';\n case 'KeyT':\n return '\\x14';\n case 'KeyU':\n return '\\x15';\n case 'KeyV':\n return '\\x16';\n case 'KeyW':\n return '\\x17';\n case 'KeyX':\n return '\\x18';\n case 'KeyY':\n return '\\x19';\n case 'KeyZ':\n return '\\x1A';\n case 'BracketLeft':\n return '\\x1B';\n case 'Backslash':\n return '\\x1C';\n case 'BracketRight':\n return '\\x1D';\n case 'Digit6':\n if (source.shift) {\n return '\\x1E';\n }\n break;\n case 'Minus':\n return '\\x1F';\n }\n return '';\n }\n if (source.alt) {\n return '';\n }\n return;\n};\nfunction getCdpButton(button) {\n // https://www.w3.org/TR/pointerevents/#the-button-property\n switch (button) {\n case 0:\n return 'left';\n case 1:\n return 'middle';\n case 2:\n return 'right';\n case 3:\n return 'back';\n case 4:\n return 'forward';\n default:\n return 'none';\n }\n}\nfunction getTilt(action) {\n // https://w3c.github.io/pointerevents/#converting-between-tiltx-tilty-and-altitudeangle-azimuthangle\n const altitudeAngle = action.altitudeAngle ?? Math.PI / 2;\n const azimuthAngle = action.azimuthAngle ?? 0;\n let tiltXRadians = 0;\n let tiltYRadians = 0;\n if (altitudeAngle === 0) {\n // the pen is in the X-Y plane\n if (azimuthAngle === 0 || azimuthAngle === 2 * Math.PI) {\n // pen is on positive X axis\n tiltXRadians = Math.PI / 2;\n }\n if (azimuthAngle === Math.PI / 2) {\n // pen is on positive Y axis\n tiltYRadians = Math.PI / 2;\n }\n if (azimuthAngle === Math.PI) {\n // pen is on negative X axis\n tiltXRadians = -Math.PI / 2;\n }\n if (azimuthAngle === (3 * Math.PI) / 2) {\n // pen is on negative Y axis\n tiltYRadians = -Math.PI / 2;\n }\n if (azimuthAngle > 0 && azimuthAngle < Math.PI / 2) {\n tiltXRadians = Math.PI / 2;\n tiltYRadians = Math.PI / 2;\n }\n if (azimuthAngle > Math.PI / 2 && azimuthAngle < Math.PI) {\n tiltXRadians = -Math.PI / 2;\n tiltYRadians = Math.PI / 2;\n }\n if (azimuthAngle > Math.PI && azimuthAngle < (3 * Math.PI) / 2) {\n tiltXRadians = -Math.PI / 2;\n tiltYRadians = -Math.PI / 2;\n }\n if (azimuthAngle > (3 * Math.PI) / 2 && azimuthAngle < 2 * Math.PI) {\n tiltXRadians = Math.PI / 2;\n tiltYRadians = -Math.PI / 2;\n }\n }\n if (altitudeAngle !== 0) {\n const tanAlt = Math.tan(altitudeAngle);\n tiltXRadians = Math.atan(Math.cos(azimuthAngle) / tanAlt);\n tiltYRadians = Math.atan(Math.sin(azimuthAngle) / tanAlt);\n }\n const factor = 180 / Math.PI;\n return {\n tiltX: Math.round(tiltXRadians * factor),\n tiltY: Math.round(tiltYRadians * factor),\n };\n}\nfunction getRadii(width, height) {\n return {\n radiusX: width ? width / 2 : 0.5,\n radiusY: height ? height / 2 : 0.5,\n };\n}\n//# sourceMappingURL=ActionDispatcher.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n * Copyright 2022 The Chromium Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Mutex = void 0;\n/**\n * Use Mutex class to coordinate local concurrent operations.\n * Once `acquire` promise resolves, you hold the lock and must\n * call `release` function returned by `acquire` to release the\n * lock. Failing to `release` the lock may lead to deadlocks.\n */\nclass Mutex {\n #locked = false;\n #acquirers = [];\n // This is FIFO.\n acquire() {\n const state = { resolved: false };\n if (this.#locked) {\n return new Promise((resolve) => {\n this.#acquirers.push(() => resolve(this.#release.bind(this, state)));\n });\n }\n this.#locked = true;\n return Promise.resolve(this.#release.bind(this, state));\n }\n #release(state) {\n if (state.resolved) {\n throw new Error('Cannot release more than once.');\n }\n state.resolved = true;\n const resolve = this.#acquirers.shift();\n if (!resolve) {\n this.#locked = false;\n return;\n }\n resolve();\n }\n async run(action) {\n const release = await this.acquire();\n try {\n // Note we need to await here because we want the await to release AFTER\n // that await happens. Returning action() will trigger the release\n // immediately which is counter to what we want.\n const result = await action();\n return result;\n }\n finally {\n release();\n }\n }\n}\nexports.Mutex = Mutex;\n//# sourceMappingURL=Mutex.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InputState = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst Mutex_js_1 = require(\"../../../utils/Mutex.js\");\nconst InputSource_js_1 = require(\"./InputSource.js\");\nclass InputState {\n cancelList = [];\n #sources = new Map();\n #mutex = new Mutex_js_1.Mutex();\n getOrCreate(id, type, subtype) {\n let source = this.#sources.get(id);\n if (!source) {\n switch (type) {\n case \"none\" /* SourceType.None */:\n source = new InputSource_js_1.NoneSource();\n break;\n case \"key\" /* SourceType.Key */:\n source = new InputSource_js_1.KeySource();\n break;\n case \"pointer\" /* SourceType.Pointer */: {\n let pointerId = subtype === \"mouse\" /* Input.PointerType.Mouse */ ? 0 : 2;\n const pointerIds = new Set();\n for (const [, source] of this.#sources) {\n if (source.type === \"pointer\" /* SourceType.Pointer */) {\n pointerIds.add(source.pointerId);\n }\n }\n while (pointerIds.has(pointerId)) {\n ++pointerId;\n }\n source = new InputSource_js_1.PointerSource(pointerId, subtype);\n break;\n }\n case \"wheel\" /* SourceType.Wheel */:\n source = new InputSource_js_1.WheelSource();\n break;\n default:\n throw new protocol_js_1.InvalidArgumentException(`Expected \"${\"none\" /* SourceType.None */}\", \"${\"key\" /* SourceType.Key */}\", \"${\"pointer\" /* SourceType.Pointer */}\", or \"${\"wheel\" /* SourceType.Wheel */}\". Found unknown source type ${type}.`);\n }\n this.#sources.set(id, source);\n return source;\n }\n if (source.type !== type) {\n throw new protocol_js_1.InvalidArgumentException(`Input source type of ${id} is ${source.type}, but received ${type}.`);\n }\n return source;\n }\n get(id) {\n const source = this.#sources.get(id);\n if (!source) {\n throw new protocol_js_1.UnknownErrorException(`Internal error.`);\n }\n return source;\n }\n getGlobalKeyState() {\n const state = new InputSource_js_1.KeySource();\n for (const [, source] of this.#sources) {\n if (source.type !== \"key\" /* SourceType.Key */) {\n continue;\n }\n for (const pressed of source.pressed) {\n state.pressed.add(pressed);\n }\n state.alt ||= source.alt;\n state.ctrl ||= source.ctrl;\n state.meta ||= source.meta;\n state.shift ||= source.shift;\n }\n return state;\n }\n get queue() {\n return this.#mutex;\n }\n}\nexports.InputState = InputState;\n//# sourceMappingURL=InputState.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InputStateManager = void 0;\nconst assert_js_1 = require(\"../../../utils/assert.js\");\nconst InputState_js_1 = require(\"./InputState.js\");\n// We use a weak map here as specified here:\n// https://www.w3.org/TR/webdriver/#dfn-browsing-context-input-state-map\nclass InputStateManager extends WeakMap {\n get(context) {\n (0, assert_js_1.assert)(context.isTopLevelContext());\n if (!this.has(context)) {\n this.set(context, new InputState_js_1.InputState());\n }\n return super.get(context);\n }\n}\nexports.InputStateManager = InputStateManager;\n//# sourceMappingURL=InputStateManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InputProcessor = void 0;\n/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst assert_js_1 = require(\"../../../utils/assert.js\");\nconst ActionDispatcher_js_1 = require(\"../input/ActionDispatcher.js\");\nconst InputStateManager_js_1 = require(\"../input/InputStateManager.js\");\nclass InputProcessor {\n #browsingContextStorage;\n #inputStateManager = new InputStateManager_js_1.InputStateManager();\n constructor(browsingContextStorage) {\n this.#browsingContextStorage = browsingContextStorage;\n }\n async performActions(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n const inputState = this.#inputStateManager.get(context.top);\n const actionsByTick = this.#getActionsByTick(params, inputState);\n const dispatcher = new ActionDispatcher_js_1.ActionDispatcher(inputState, this.#browsingContextStorage, params.context, await ActionDispatcher_js_1.ActionDispatcher.isMacOS(context).catch(() => false));\n await dispatcher.dispatchActions(actionsByTick);\n return {};\n }\n async releaseActions(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n const topContext = context.top;\n const inputState = this.#inputStateManager.get(topContext);\n const dispatcher = new ActionDispatcher_js_1.ActionDispatcher(inputState, this.#browsingContextStorage, params.context, await ActionDispatcher_js_1.ActionDispatcher.isMacOS(context).catch(() => false));\n await dispatcher.dispatchTickActions(inputState.cancelList.reverse());\n this.#inputStateManager.delete(topContext);\n return {};\n }\n async setFiles(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n const realm = await context.getOrCreateSandbox(undefined);\n let result;\n try {\n result = await realm.callFunction(String(function getFiles(fileListLength) {\n if (!(this instanceof HTMLInputElement)) {\n if (this instanceof Element) {\n return 1 /* ErrorCode.Element */;\n }\n return 0 /* ErrorCode.Node */;\n }\n if (this.type !== 'file') {\n return 2 /* ErrorCode.Type */;\n }\n if (this.disabled) {\n return 3 /* ErrorCode.Disabled */;\n }\n if (fileListLength > 1 && !this.multiple) {\n return 4 /* ErrorCode.Multiple */;\n }\n return;\n }), false, params.element, [{ type: 'number', value: params.files.length }]);\n }\n catch {\n throw new protocol_js_1.NoSuchNodeException(`Could not find element ${params.element.sharedId}`);\n }\n (0, assert_js_1.assert)(result.type === 'success');\n if (result.result.type === 'number') {\n switch (result.result.value) {\n case 0 /* ErrorCode.Node */: {\n throw new protocol_js_1.NoSuchElementException(`Could not find element ${params.element.sharedId}`);\n }\n case 1 /* ErrorCode.Element */: {\n throw new protocol_js_1.UnableToSetFileInputException(`Element ${params.element.sharedId} is not a input`);\n }\n case 2 /* ErrorCode.Type */: {\n throw new protocol_js_1.UnableToSetFileInputException(`Input element ${params.element.sharedId} is not a file type`);\n }\n case 3 /* ErrorCode.Disabled */: {\n throw new protocol_js_1.UnableToSetFileInputException(`Input element ${params.element.sharedId} is disabled`);\n }\n case 4 /* ErrorCode.Multiple */: {\n throw new protocol_js_1.UnableToSetFileInputException(`Cannot set multiple files on a non-multiple input element`);\n }\n }\n }\n /**\n * The zero-length array is a special case, it seems that\n * DOM.setFileInputFiles does not actually update the files in that case, so\n * the solution is to eval the element value to a new FileList directly.\n */\n if (params.files.length === 0) {\n // XXX: These events should converted to trusted events. Perhaps do this\n // in `DOM.setFileInputFiles`?\n await realm.callFunction(String(function dispatchEvent() {\n if (this.files?.length === 0) {\n this.dispatchEvent(new Event('cancel', {\n bubbles: true,\n }));\n return;\n }\n this.files = new DataTransfer().files;\n // Dispatch events for this case because it should behave akin to a user action.\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true }));\n }), false, params.element);\n return {};\n }\n // Our goal here is to iterate over the input element files and get their\n // file paths.\n const paths = [];\n for (let i = 0; i < params.files.length; ++i) {\n const result = await realm.callFunction(String(function getFiles(index) {\n return this.files?.item(index);\n }), false, params.element, [{ type: 'number', value: 0 }], \"root\" /* Script.ResultOwnership.Root */);\n (0, assert_js_1.assert)(result.type === 'success');\n if (result.result.type !== 'object') {\n break;\n }\n const { handle } = result.result;\n (0, assert_js_1.assert)(handle !== undefined);\n const { path } = await realm.cdpClient.sendCommand('DOM.getFileInfo', {\n objectId: handle,\n });\n paths.push(path);\n // Cleanup the handle.\n void realm.disown(handle).catch(undefined);\n }\n paths.sort();\n // We create a new array so we preserve the order of the original files.\n const sortedFiles = [...params.files].sort();\n if (paths.length !== params.files.length ||\n sortedFiles.some((path, index) => {\n return paths[index] !== path;\n })) {\n const { objectId } = await realm.deserializeForCdp(params.element);\n // This cannot throw since this was just used in `callFunction` above.\n (0, assert_js_1.assert)(objectId !== undefined);\n await realm.cdpClient.sendCommand('DOM.setFileInputFiles', {\n files: params.files,\n objectId,\n });\n }\n else {\n // XXX: We should dispatch a trusted event.\n await realm.callFunction(String(function dispatchEvent() {\n this.dispatchEvent(new Event('cancel', {\n bubbles: true,\n }));\n }), false, params.element);\n }\n return {};\n }\n #getActionsByTick(params, inputState) {\n const actionsByTick = [];\n for (const action of params.actions) {\n switch (action.type) {\n case \"pointer\" /* SourceType.Pointer */: {\n action.parameters ??= { pointerType: \"mouse\" /* Input.PointerType.Mouse */ };\n action.parameters.pointerType ??= \"mouse\" /* Input.PointerType.Mouse */;\n const source = inputState.getOrCreate(action.id, \"pointer\" /* SourceType.Pointer */, action.parameters.pointerType);\n if (source.subtype !== action.parameters.pointerType) {\n throw new protocol_js_1.InvalidArgumentException(`Expected input source ${action.id} to be ${source.subtype}; got ${action.parameters.pointerType}.`);\n }\n // https://github.com/GoogleChromeLabs/chromium-bidi/issues/3043\n source.resetClickCount();\n break;\n }\n default:\n inputState.getOrCreate(action.id, action.type);\n }\n const actions = action.actions.map((item) => ({\n id: action.id,\n action: item,\n }));\n for (let i = 0; i < actions.length; i++) {\n if (actionsByTick.length === i) {\n actionsByTick.push([]);\n }\n actionsByTick[i].push(actions[i]);\n }\n }\n return actionsByTick;\n }\n}\nexports.InputProcessor = InputProcessor;\n//# sourceMappingURL=InputProcessor.js.map","\"use strict\";\n/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.base64ToString = base64ToString;\n/**\n * Encodes a string to base64.\n *\n * Uses the native Web API if available, otherwise falls back to a NodeJS Buffer.\n * @param {string} base64Str\n * @return {string}\n */\nfunction base64ToString(base64Str) {\n // Available only if run in a browser context.\n if ('atob' in globalThis) {\n return globalThis.atob(base64Str);\n }\n // Available only if run in a NodeJS context.\n return Buffer.from(base64Str, 'base64').toString('ascii');\n}\n//# sourceMappingURL=base64.js.map","\"use strict\";\n/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.computeHeadersSize = computeHeadersSize;\nexports.stringToBase64 = stringToBase64;\nexports.bidiNetworkHeadersFromCdpNetworkHeaders = bidiNetworkHeadersFromCdpNetworkHeaders;\nexports.bidiNetworkHeadersFromCdpNetworkHeadersEntries = bidiNetworkHeadersFromCdpNetworkHeadersEntries;\nexports.cdpNetworkHeadersFromBidiNetworkHeaders = cdpNetworkHeadersFromBidiNetworkHeaders;\nexports.bidiNetworkHeadersFromCdpFetchHeaders = bidiNetworkHeadersFromCdpFetchHeaders;\nexports.cdpFetchHeadersFromBidiNetworkHeaders = cdpFetchHeadersFromBidiNetworkHeaders;\nexports.networkHeaderFromCookieHeaders = networkHeaderFromCookieHeaders;\nexports.cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction = cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction;\nexports.cdpToBiDiCookie = cdpToBiDiCookie;\nexports.deserializeByteValue = deserializeByteValue;\nexports.bidiToCdpCookie = bidiToCdpCookie;\nexports.sameSiteBiDiToCdp = sameSiteBiDiToCdp;\nexports.isSpecialScheme = isSpecialScheme;\nexports.matchUrlPattern = matchUrlPattern;\nexports.bidiBodySizeFromCdpPostDataEntries = bidiBodySizeFromCdpPostDataEntries;\nexports.getTiming = getTiming;\nconst ErrorResponse_js_1 = require(\"../../../protocol/ErrorResponse.js\");\nconst base64_js_1 = require(\"../../../utils/base64.js\");\nfunction computeHeadersSize(headers) {\n const requestHeaders = headers.reduce((acc, header) => {\n return `${acc}${header.name}: ${header.value.value}\\r\\n`;\n }, '');\n return new TextEncoder().encode(requestHeaders).length;\n}\nfunction stringToBase64(str) {\n return typedArrayToBase64(new TextEncoder().encode(str));\n}\nfunction typedArrayToBase64(typedArray) {\n // chunkSize should be less V8 limit on number of arguments!\n // https://github.com/v8/v8/blob/d3de848bea727518aee94dd2fd42ba0b62037a27/src/objects/code.h#L444\n const chunkSize = 65534;\n const chunks = [];\n for (let i = 0; i < typedArray.length; i += chunkSize) {\n const chunk = typedArray.subarray(i, i + chunkSize);\n chunks.push(String.fromCodePoint.apply(null, chunk));\n }\n const binaryString = chunks.join('');\n return btoa(binaryString);\n}\n/** Converts from CDP Network domain headers to BiDi network headers. */\nfunction bidiNetworkHeadersFromCdpNetworkHeaders(headers) {\n if (!headers) {\n return [];\n }\n return Object.entries(headers).map(([name, value]) => ({\n name,\n value: {\n type: 'string',\n value,\n },\n }));\n}\n/** Converts from CDP Fetch domain headers to BiDi network headers. */\nfunction bidiNetworkHeadersFromCdpNetworkHeadersEntries(headers) {\n if (!headers) {\n return [];\n }\n return headers.map(({ name, value }) => ({\n name,\n value: {\n type: 'string',\n value,\n },\n }));\n}\n/** Converts from Bidi network headers to CDP Network domain headers. */\nfunction cdpNetworkHeadersFromBidiNetworkHeaders(headers) {\n if (headers === undefined) {\n return undefined;\n }\n return headers.reduce((result, header) => {\n // TODO: Distinguish between string and bytes?\n result[header.name] = header.value.value;\n return result;\n }, {});\n}\n/** Converts from CDP Fetch domain header entries to Bidi network headers. */\nfunction bidiNetworkHeadersFromCdpFetchHeaders(headers) {\n if (!headers) {\n return [];\n }\n return headers.map(({ name, value }) => ({\n name,\n value: {\n type: 'string',\n value,\n },\n }));\n}\n/** Converts from Bidi network headers to CDP Fetch domain header entries. */\nfunction cdpFetchHeadersFromBidiNetworkHeaders(headers) {\n if (headers === undefined) {\n return undefined;\n }\n return headers.map(({ name, value }) => ({\n name,\n value: value.value,\n }));\n}\nfunction networkHeaderFromCookieHeaders(headers) {\n if (headers === undefined) {\n return undefined;\n }\n const value = headers.reduce((acc, value, index) => {\n if (index > 0) {\n acc += ';';\n }\n const cookieValue = value.value.type === 'base64'\n ? btoa(value.value.value)\n : value.value.value;\n acc += `${value.name}=${cookieValue}`;\n return acc;\n }, '');\n return {\n name: 'Cookie',\n value: {\n type: 'string',\n value,\n },\n };\n}\n/** Converts from Bidi auth action to CDP auth challenge response. */\nfunction cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction(action) {\n switch (action) {\n case 'default':\n return 'Default';\n case 'cancel':\n return 'CancelAuth';\n case 'provideCredentials':\n return 'ProvideCredentials';\n }\n}\n/**\n * Converts from CDP Network domain cookie to BiDi network cookie.\n * * https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-Cookie\n * * https://w3c.github.io/webdriver-bidi/#type-network-Cookie\n */\nfunction cdpToBiDiCookie(cookie) {\n const result = {\n name: cookie.name,\n value: { type: 'string', value: cookie.value },\n domain: cookie.domain,\n path: cookie.path,\n size: cookie.size,\n httpOnly: cookie.httpOnly,\n secure: cookie.secure,\n sameSite: cookie.sameSite === undefined\n ? \"none\" /* Network.SameSite.None */\n : sameSiteCdpToBiDi(cookie.sameSite),\n ...(cookie.expires >= 0 ? { expiry: cookie.expires } : undefined),\n };\n // Extending with CDP-specific properties with `goog:` prefix.\n result[`goog:session`] = cookie.session;\n result[`goog:priority`] = cookie.priority;\n result[`goog:sameParty`] = cookie.sameParty;\n result[`goog:sourceScheme`] = cookie.sourceScheme;\n result[`goog:sourcePort`] = cookie.sourcePort;\n if (cookie.partitionKey !== undefined) {\n result[`goog:partitionKey`] = cookie.partitionKey;\n }\n if (cookie.partitionKeyOpaque !== undefined) {\n result[`goog:partitionKeyOpaque`] = cookie.partitionKeyOpaque;\n }\n return result;\n}\n/**\n * Decodes a byte value to a string.\n * @param {Network.BytesValue} value\n * @return {string}\n */\nfunction deserializeByteValue(value) {\n if (value.type === 'base64') {\n return (0, base64_js_1.base64ToString)(value.value);\n }\n return value.value;\n}\n/**\n * Converts from BiDi set network cookie params to CDP Network domain cookie.\n * * https://w3c.github.io/webdriver-bidi/#type-network-Cookie\n * * https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-CookieParam\n */\nfunction bidiToCdpCookie(params, partitionKey) {\n const deserializedValue = deserializeByteValue(params.cookie.value);\n const result = {\n name: params.cookie.name,\n value: deserializedValue,\n domain: params.cookie.domain,\n path: params.cookie.path ?? '/',\n secure: params.cookie.secure ?? false,\n httpOnly: params.cookie.httpOnly ?? false,\n ...(partitionKey.sourceOrigin !== undefined && {\n partitionKey: {\n hasCrossSiteAncestor: false,\n // CDP's `partitionKey.topLevelSite` is the BiDi's `partition.sourceOrigin`.\n topLevelSite: partitionKey.sourceOrigin,\n },\n }),\n ...(params.cookie.expiry !== undefined && {\n expires: params.cookie.expiry,\n }),\n ...(params.cookie.sameSite !== undefined && {\n sameSite: sameSiteBiDiToCdp(params.cookie.sameSite),\n }),\n };\n // Extending with CDP-specific properties with `goog:` prefix.\n if (params.cookie[`goog:url`] !== undefined) {\n result.url = params.cookie[`goog:url`];\n }\n if (params.cookie[`goog:priority`] !== undefined) {\n result.priority = params.cookie[`goog:priority`];\n }\n if (params.cookie[`goog:sameParty`] !== undefined) {\n result.sameParty = params.cookie[`goog:sameParty`];\n }\n if (params.cookie[`goog:sourceScheme`] !== undefined) {\n result.sourceScheme = params.cookie[`goog:sourceScheme`];\n }\n if (params.cookie[`goog:sourcePort`] !== undefined) {\n result.sourcePort = params.cookie[`goog:sourcePort`];\n }\n return result;\n}\nfunction sameSiteCdpToBiDi(sameSite) {\n switch (sameSite) {\n case 'Strict':\n return \"strict\" /* Network.SameSite.Strict */;\n case 'None':\n return \"none\" /* Network.SameSite.None */;\n case 'Lax':\n return \"lax\" /* Network.SameSite.Lax */;\n default:\n // Defaults to `Lax`:\n // https://web.dev/articles/samesite-cookies-explained#samesitelax_by_default\n return \"lax\" /* Network.SameSite.Lax */;\n }\n}\nfunction sameSiteBiDiToCdp(sameSite) {\n switch (sameSite) {\n case \"strict\" /* Network.SameSite.Strict */:\n return 'Strict';\n case \"lax\" /* Network.SameSite.Lax */:\n return 'Lax';\n case \"none\" /* Network.SameSite.None */:\n return 'None';\n }\n throw new ErrorResponse_js_1.InvalidArgumentException(`Unknown 'sameSite' value ${sameSite}`);\n}\n/**\n * Returns true if the given protocol is special.\n * Special protocols are those that have a default port.\n *\n * Example inputs: 'http', 'http:'\n *\n * @see https://url.spec.whatwg.org/#special-scheme\n */\nfunction isSpecialScheme(protocol) {\n return ['ftp', 'file', 'http', 'https', 'ws', 'wss'].includes(protocol.replace(/:$/, ''));\n}\nfunction getScheme(url) {\n return url.protocol.replace(/:$/, '');\n}\n/** Matches the given URLPattern against the given URL. */\nfunction matchUrlPattern(pattern, url) {\n // Roughly https://w3c.github.io/webdriver-bidi/#match-url-pattern\n // plus some differences based on the URL parsing methods.\n const parsedUrl = new URL(url);\n if (pattern.protocol !== undefined &&\n pattern.protocol !== getScheme(parsedUrl)) {\n return false;\n }\n if (pattern.hostname !== undefined &&\n pattern.hostname !== parsedUrl.hostname) {\n return false;\n }\n if (pattern.port !== undefined && pattern.port !== parsedUrl.port) {\n return false;\n }\n if (pattern.pathname !== undefined &&\n pattern.pathname !== parsedUrl.pathname) {\n return false;\n }\n if (pattern.search !== undefined && pattern.search !== parsedUrl.search) {\n return false;\n }\n return true;\n}\nfunction bidiBodySizeFromCdpPostDataEntries(entries) {\n let size = 0;\n for (const entry of entries) {\n size += atob(entry.bytes ?? '').length;\n }\n return size;\n}\nfunction getTiming(timing, offset = 0) {\n if (!timing) {\n return 0;\n }\n if (timing <= 0 || timing + offset <= 0) {\n return 0;\n }\n return timing + offset;\n}\n//# sourceMappingURL=NetworkUtils.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst NetworkUtils_js_1 = require(\"./NetworkUtils.js\");\n/** Dispatches Network module commands. */\nclass NetworkProcessor {\n #browsingContextStorage;\n #networkStorage;\n constructor(browsingContextStorage, networkStorage) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#networkStorage = networkStorage;\n }\n async addIntercept(params) {\n this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts);\n const urlPatterns = params.urlPatterns ?? [];\n const parsedUrlPatterns = NetworkProcessor.parseUrlPatterns(urlPatterns);\n const intercept = this.#networkStorage.addIntercept({\n urlPatterns: parsedUrlPatterns,\n phases: params.phases,\n contexts: params.contexts,\n });\n await Promise.all(this.#browsingContextStorage.getAllContexts().map((context) => {\n return context.cdpTarget.toggleNetwork();\n }));\n return {\n intercept,\n };\n }\n async continueRequest(params) {\n if (params.url !== undefined) {\n NetworkProcessor.parseUrlString(params.url);\n }\n if (params.method !== undefined) {\n if (!NetworkProcessor.isMethodValid(params.method)) {\n throw new protocol_js_1.InvalidArgumentException(`Method '${params.method}' is invalid.`);\n }\n }\n if (params.headers) {\n NetworkProcessor.validateHeaders(params.headers);\n }\n const request = this.#getBlockedRequestOrFail(params.request, [\n \"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */,\n ]);\n try {\n await request.continueRequest(params);\n }\n catch (error) {\n throw NetworkProcessor.wrapInterceptionError(error);\n }\n return {};\n }\n async continueResponse(params) {\n if (params.headers) {\n NetworkProcessor.validateHeaders(params.headers);\n }\n const request = this.#getBlockedRequestOrFail(params.request, [\n \"authRequired\" /* Network.InterceptPhase.AuthRequired */,\n \"responseStarted\" /* Network.InterceptPhase.ResponseStarted */,\n ]);\n try {\n await request.continueResponse(params);\n }\n catch (error) {\n throw NetworkProcessor.wrapInterceptionError(error);\n }\n return {};\n }\n async continueWithAuth(params) {\n const networkId = params.request;\n const request = this.#getBlockedRequestOrFail(networkId, [\n \"authRequired\" /* Network.InterceptPhase.AuthRequired */,\n ]);\n await request.continueWithAuth(params);\n return {};\n }\n async failRequest({ request: networkId, }) {\n const request = this.#getRequestOrFail(networkId);\n if (request.interceptPhase === \"authRequired\" /* Network.InterceptPhase.AuthRequired */) {\n throw new protocol_js_1.InvalidArgumentException(`Request '${networkId}' in 'authRequired' phase cannot be failed`);\n }\n if (!request.interceptPhase) {\n throw new protocol_js_1.NoSuchRequestException(`No blocked request found for network id '${networkId}'`);\n }\n await request.failRequest('Failed');\n return {};\n }\n async provideResponse(params) {\n if (params.headers) {\n NetworkProcessor.validateHeaders(params.headers);\n }\n const request = this.#getBlockedRequestOrFail(params.request, [\n \"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */,\n \"responseStarted\" /* Network.InterceptPhase.ResponseStarted */,\n \"authRequired\" /* Network.InterceptPhase.AuthRequired */,\n ]);\n try {\n await request.provideResponse(params);\n }\n catch (error) {\n throw NetworkProcessor.wrapInterceptionError(error);\n }\n return {};\n }\n async removeIntercept(params) {\n this.#networkStorage.removeIntercept(params.intercept);\n await Promise.all(this.#browsingContextStorage.getAllContexts().map((context) => {\n return context.cdpTarget.toggleNetwork();\n }));\n return {};\n }\n async setCacheBehavior(params) {\n const contexts = this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts);\n // Change all targets\n if (contexts.size === 0) {\n this.#networkStorage.defaultCacheBehavior = params.cacheBehavior;\n await Promise.all(this.#browsingContextStorage.getAllContexts().map((context) => {\n return context.cdpTarget.toggleSetCacheDisabled();\n }));\n return {};\n }\n const cacheDisabled = params.cacheBehavior === 'bypass';\n await Promise.all([...contexts.values()].map((context) => {\n return context.cdpTarget.toggleSetCacheDisabled(cacheDisabled);\n }));\n return {};\n }\n #getRequestOrFail(id) {\n const request = this.#networkStorage.getRequestById(id);\n if (!request) {\n throw new protocol_js_1.NoSuchRequestException(`Network request with ID '${id}' doesn't exist`);\n }\n return request;\n }\n #getBlockedRequestOrFail(id, phases) {\n const request = this.#getRequestOrFail(id);\n if (!request.interceptPhase) {\n throw new protocol_js_1.NoSuchRequestException(`No blocked request found for network id '${id}'`);\n }\n if (request.interceptPhase && !phases.includes(request.interceptPhase)) {\n throw new protocol_js_1.InvalidArgumentException(`Blocked request for network id '${id}' is in '${request.interceptPhase}' phase`);\n }\n return request;\n }\n /**\n * Validate https://fetch.spec.whatwg.org/#header-value\n */\n static validateHeaders(headers) {\n for (const header of headers) {\n let headerValue;\n if (header.value.type === 'string') {\n headerValue = header.value.value;\n }\n else {\n headerValue = atob(header.value.value);\n }\n if (headerValue !== headerValue.trim() ||\n headerValue.includes('\\n') ||\n headerValue.includes('\\0')) {\n throw new protocol_js_1.InvalidArgumentException(`Header value '${headerValue}' is not acceptable value`);\n }\n }\n }\n static isMethodValid(method) {\n // https://httpwg.org/specs/rfc9110.html#method.overview\n return /^[!#$%&'*+\\-.^_`|~a-zA-Z\\d]+$/.test(method);\n }\n /**\n * Attempts to parse the given url.\n * Throws an InvalidArgumentException if the url is invalid.\n */\n static parseUrlString(url) {\n try {\n return new URL(url);\n }\n catch (error) {\n throw new protocol_js_1.InvalidArgumentException(`Invalid URL '${url}': ${error}`);\n }\n }\n static parseUrlPatterns(urlPatterns) {\n return urlPatterns.map((urlPattern) => {\n let patternUrl = '';\n let hasProtocol = true;\n let hasHostname = true;\n let hasPort = true;\n let hasPathname = true;\n let hasSearch = true;\n switch (urlPattern.type) {\n case 'string': {\n patternUrl = unescapeURLPattern(urlPattern.pattern);\n break;\n }\n case 'pattern': {\n if (urlPattern.protocol === undefined) {\n hasProtocol = false;\n patternUrl += 'http';\n }\n else {\n if (urlPattern.protocol === '') {\n throw new protocol_js_1.InvalidArgumentException('URL pattern must specify a protocol');\n }\n urlPattern.protocol = unescapeURLPattern(urlPattern.protocol);\n if (!urlPattern.protocol.match(/^[a-zA-Z+-.]+$/)) {\n throw new protocol_js_1.InvalidArgumentException('Forbidden characters');\n }\n patternUrl += urlPattern.protocol;\n }\n const scheme = patternUrl.toLocaleLowerCase();\n patternUrl += ':';\n if ((0, NetworkUtils_js_1.isSpecialScheme)(scheme)) {\n patternUrl += '//';\n }\n if (urlPattern.hostname === undefined) {\n if (scheme !== 'file') {\n patternUrl += 'placeholder';\n }\n hasHostname = false;\n }\n else {\n if (urlPattern.hostname === '') {\n throw new protocol_js_1.InvalidArgumentException('URL pattern must specify a hostname');\n }\n if (urlPattern.protocol === 'file') {\n throw new protocol_js_1.InvalidArgumentException(`URL pattern protocol cannot be 'file'`);\n }\n urlPattern.hostname = unescapeURLPattern(urlPattern.hostname);\n let insideBrackets = false;\n for (const c of urlPattern.hostname) {\n if (c === '/' || c === '?' || c === '#') {\n throw new protocol_js_1.InvalidArgumentException(`'/', '?', '#' are forbidden in hostname`);\n }\n if (!insideBrackets && c === ':') {\n throw new protocol_js_1.InvalidArgumentException(`':' is only allowed inside brackets in hostname`);\n }\n if (c === '[') {\n insideBrackets = true;\n }\n if (c === ']') {\n insideBrackets = false;\n }\n }\n patternUrl += urlPattern.hostname;\n }\n if (urlPattern.port === undefined) {\n hasPort = false;\n }\n else {\n if (urlPattern.port === '') {\n throw new protocol_js_1.InvalidArgumentException(`URL pattern must specify a port`);\n }\n urlPattern.port = unescapeURLPattern(urlPattern.port);\n patternUrl += ':';\n if (!urlPattern.port.match(/^\\d+$/)) {\n throw new protocol_js_1.InvalidArgumentException('Forbidden characters');\n }\n patternUrl += urlPattern.port;\n }\n if (urlPattern.pathname === undefined) {\n hasPathname = false;\n }\n else {\n urlPattern.pathname = unescapeURLPattern(urlPattern.pathname);\n if (urlPattern.pathname[0] !== '/') {\n patternUrl += '/';\n }\n if (urlPattern.pathname.includes('#') ||\n urlPattern.pathname.includes('?')) {\n throw new protocol_js_1.InvalidArgumentException('Forbidden characters');\n }\n patternUrl += urlPattern.pathname;\n }\n if (urlPattern.search === undefined) {\n hasSearch = false;\n }\n else {\n urlPattern.search = unescapeURLPattern(urlPattern.search);\n if (urlPattern.search[0] !== '?') {\n patternUrl += '?';\n }\n if (urlPattern.search.includes('#')) {\n throw new protocol_js_1.InvalidArgumentException('Forbidden characters');\n }\n patternUrl += urlPattern.search;\n }\n break;\n }\n }\n const serializePort = (url) => {\n const defaultPorts = {\n 'ftp:': 21,\n 'file:': null,\n 'http:': 80,\n 'https:': 443,\n 'ws:': 80,\n 'wss:': 443,\n };\n if ((0, NetworkUtils_js_1.isSpecialScheme)(url.protocol) &&\n defaultPorts[url.protocol] !== null &&\n (!url.port || String(defaultPorts[url.protocol]) === url.port)) {\n return '';\n }\n else if (url.port) {\n return url.port;\n }\n return undefined;\n };\n try {\n const url = new URL(patternUrl);\n return {\n protocol: hasProtocol ? url.protocol.replace(/:$/, '') : undefined,\n hostname: hasHostname ? url.hostname : undefined,\n port: hasPort ? serializePort(url) : undefined,\n pathname: hasPathname && url.pathname ? url.pathname : undefined,\n search: hasSearch ? url.search : undefined,\n };\n }\n catch (err) {\n throw new protocol_js_1.InvalidArgumentException(`${err.message} '${patternUrl}'`);\n }\n });\n }\n static wrapInterceptionError(error) {\n // https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/fetch_handler.cc;l=169\n if (error?.message.includes('Invalid header') ||\n error?.message.includes('Unsafe header')) {\n return new protocol_js_1.InvalidArgumentException(error.message);\n }\n return error;\n }\n}\nexports.NetworkProcessor = NetworkProcessor;\n/**\n * See https://w3c.github.io/webdriver-bidi/#unescape-url-pattern\n */\nfunction unescapeURLPattern(pattern) {\n const forbidden = new Set(['(', ')', '*', '{', '}']);\n let result = '';\n let isEscaped = false;\n for (const c of pattern) {\n if (!isEscaped) {\n if (forbidden.has(c)) {\n throw new protocol_js_1.InvalidArgumentException('Forbidden characters');\n }\n if (c === '\\\\') {\n isEscaped = true;\n continue;\n }\n }\n result += c;\n isEscaped = false;\n }\n return result;\n}\n//# sourceMappingURL=NetworkProcessor.js.map","\"use strict\";\n/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PermissionsProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nclass PermissionsProcessor {\n #browserCdpClient;\n constructor(browserCdpClient) {\n this.#browserCdpClient = browserCdpClient;\n }\n async setPermissions(params) {\n try {\n const userContextId = params['goog:userContext'] ||\n params.userContext;\n await this.#browserCdpClient.sendCommand('Browser.setPermission', {\n origin: params.origin,\n browserContextId: userContextId && userContextId !== 'default'\n ? userContextId\n : undefined,\n permission: {\n name: params.descriptor.name,\n },\n setting: params.state,\n });\n }\n catch (err) {\n if (err.message ===\n `Permission can't be granted to opaque origins.`) {\n // Return success if the origin is not valid (does not match any\n // existing origins).\n return {};\n }\n throw new protocol_js_1.InvalidArgumentException(err.message);\n }\n return {};\n }\n}\nexports.PermissionsProcessor = PermissionsProcessor;\n//# sourceMappingURL=PermissionsProcessor.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uuidv4 = uuidv4;\nfunction bytesToHex(bytes) {\n return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n}\n/**\n * Generates a random v4 UUID, as specified in RFC4122.\n *\n * Uses the native Web Crypto API if available, otherwise falls back to a\n * polyfill.\n *\n * Example: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'\n */\nfunction uuidv4() {\n // Available only in secure contexts\n // https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API\n if ('crypto' in globalThis && 'randomUUID' in globalThis.crypto) {\n // Node with\n // https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#crypto_1 or\n // secure browser context.\n return globalThis.crypto.randomUUID();\n }\n const randomValues = new Uint8Array(16);\n if ('crypto' in globalThis && 'getRandomValues' in globalThis.crypto) {\n // Node (>=18) with\n // https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#crypto_1 or\n // browser.\n globalThis.crypto.getRandomValues(randomValues);\n }\n else {\n // Node (<=16) without\n // https://nodejs.org/dist/latest-v20.x/docs/api/globals.html#crypto_1.\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n require('crypto').webcrypto.getRandomValues(randomValues);\n }\n // Set version (4) and variant (RFC4122) bits.\n randomValues[6] = (randomValues[6] & 0x0f) | 0x40;\n randomValues[8] = (randomValues[8] & 0x3f) | 0x80;\n return [\n bytesToHex(randomValues.subarray(0, 4)),\n bytesToHex(randomValues.subarray(4, 6)),\n bytesToHex(randomValues.subarray(6, 8)),\n bytesToHex(randomValues.subarray(8, 10)),\n bytesToHex(randomValues.subarray(10, 16)),\n ].join('-');\n}\n//# sourceMappingURL=uuid.js.map","\"use strict\";\n/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChannelProxy = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst log_js_1 = require(\"../../../utils/log.js\");\nconst uuid_js_1 = require(\"../../../utils/uuid.js\");\n/**\n * Used to send messages from realm to BiDi user.\n */\nclass ChannelProxy {\n #properties;\n #id = (0, uuid_js_1.uuidv4)();\n #logger;\n constructor(channel, logger) {\n this.#properties = channel;\n this.#logger = logger;\n }\n /**\n * Creates a channel proxy in the given realm, initialises listener and\n * returns a handle to `sendMessage` delegate.\n */\n async init(realm, eventManager) {\n const channelHandle = await ChannelProxy.#createAndGetHandleInRealm(realm);\n const sendMessageHandle = await ChannelProxy.#createSendMessageHandle(realm, channelHandle);\n void this.#startListener(realm, channelHandle, eventManager);\n return sendMessageHandle;\n }\n /** Gets a ChannelProxy from window and returns its handle. */\n async startListenerFromWindow(realm, eventManager) {\n try {\n const channelHandle = await this.#getHandleFromWindow(realm);\n void this.#startListener(realm, channelHandle, eventManager);\n }\n catch (error) {\n this.#logger?.(log_js_1.LogType.debugError, error);\n }\n }\n /**\n * Evaluation string which creates a ChannelProxy object on the client side.\n */\n static #createChannelProxyEvalStr() {\n const functionStr = String(() => {\n const queue = [];\n let queueNonEmptyResolver = null;\n return {\n /**\n * Gets a promise, which is resolved as soon as a message occurs\n * in the queue.\n */\n async getMessage() {\n const onMessage = queue.length > 0\n ? Promise.resolve()\n : new Promise((resolve) => {\n queueNonEmptyResolver = resolve;\n });\n await onMessage;\n return queue.shift();\n },\n /**\n * Adds a message to the queue.\n * Resolves the pending promise if needed.\n */\n sendMessage(message) {\n queue.push(message);\n if (queueNonEmptyResolver !== null) {\n queueNonEmptyResolver();\n queueNonEmptyResolver = null;\n }\n },\n };\n });\n return `(${functionStr})()`;\n }\n /** Creates a ChannelProxy in the given realm. */\n static async #createAndGetHandleInRealm(realm) {\n const createChannelHandleResult = await realm.cdpClient.sendCommand('Runtime.evaluate', {\n expression: this.#createChannelProxyEvalStr(),\n contextId: realm.executionContextId,\n serializationOptions: {\n serialization: \"idOnly\" /* Protocol.Runtime.SerializationOptionsSerialization.IdOnly */,\n },\n });\n if (createChannelHandleResult.exceptionDetails ||\n createChannelHandleResult.result.objectId === undefined) {\n throw new Error(`Cannot create channel`);\n }\n return createChannelHandleResult.result.objectId;\n }\n /** Gets a handle to `sendMessage` delegate from the ChannelProxy handle. */\n static async #createSendMessageHandle(realm, channelHandle) {\n const sendMessageArgResult = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((channelHandle) => {\n return channelHandle.sendMessage;\n }),\n arguments: [{ objectId: channelHandle }],\n executionContextId: realm.executionContextId,\n serializationOptions: {\n serialization: \"idOnly\" /* Protocol.Runtime.SerializationOptionsSerialization.IdOnly */,\n },\n });\n // TODO: check for exceptionDetails.\n return sendMessageArgResult.result.objectId;\n }\n /** Starts listening for the channel events of the provided ChannelProxy. */\n async #startListener(realm, channelHandle, eventManager) {\n // noinspection InfiniteLoopJS\n for (;;) {\n try {\n const message = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String(async (channelHandle) => await channelHandle.getMessage()),\n arguments: [\n {\n objectId: channelHandle,\n },\n ],\n awaitPromise: true,\n executionContextId: realm.executionContextId,\n serializationOptions: {\n serialization: \"deep\" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */,\n maxDepth: this.#properties.serializationOptions?.maxObjectDepth ??\n undefined,\n },\n });\n if (message.exceptionDetails) {\n throw new Error('Runtime.callFunctionOn in ChannelProxy', {\n cause: message.exceptionDetails,\n });\n }\n for (const browsingContext of realm.associatedBrowsingContexts) {\n eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.Script.EventNames.Message,\n params: {\n channel: this.#properties.channel,\n data: realm.cdpToBidiValue(message, this.#properties.ownership ?? \"none\" /* Script.ResultOwnership.None */),\n source: realm.source,\n },\n }, browsingContext.id);\n }\n }\n catch (error) {\n // If an error is thrown, then the channel is permanently broken, so we\n // exit the loop.\n this.#logger?.(log_js_1.LogType.debugError, error);\n break;\n }\n }\n }\n /**\n * Returns a handle of ChannelProxy from window's property which was set there\n * by `getEvalInWindowStr`. If window property is not set yet, sets a promise\n * resolver to the window property, so that `getEvalInWindowStr` can resolve\n * the promise later on with the channel.\n * This is needed because `getEvalInWindowStr` can be called before or\n * after this method.\n */\n async #getHandleFromWindow(realm) {\n const channelHandleResult = await realm.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((id) => {\n const w = window;\n if (w[id] === undefined) {\n // The channelProxy is not created yet. Create a promise, put the\n // resolver to window property and return the promise.\n // `getEvalInWindowStr` will resolve the promise later.\n return new Promise((resolve) => (w[id] = resolve));\n }\n // The channelProxy is already created by `getEvalInWindowStr` and\n // is set into window property. Return it.\n const channelProxy = w[id];\n delete w[id];\n return channelProxy;\n }),\n arguments: [{ value: this.#id }],\n executionContextId: realm.executionContextId,\n awaitPromise: true,\n serializationOptions: {\n serialization: \"idOnly\" /* Protocol.Runtime.SerializationOptionsSerialization.IdOnly */,\n },\n });\n if (channelHandleResult.exceptionDetails !== undefined ||\n channelHandleResult.result.objectId === undefined) {\n throw new Error(`ChannelHandle not found in window[\"${this.#id}\"]`);\n }\n return channelHandleResult.result.objectId;\n }\n /**\n * String to be evaluated to create a ProxyChannel and put it to window.\n * Returns the delegate `sendMessage`. Used to provide an argument for preload\n * script. Does the following:\n * 1. Creates a ChannelProxy.\n * 2. Puts the ChannelProxy to window['${this.#id}'] or resolves the promise\n * by calling delegate stored in window['${this.#id}'].\n * This is needed because `#getHandleFromWindow` can be called before or\n * after this method.\n * 3. Returns the delegate `sendMessage` of the created ChannelProxy.\n */\n getEvalInWindowStr() {\n const delegate = String((id, channelProxy) => {\n const w = window;\n if (w[id] === undefined) {\n // `#getHandleFromWindow` is not initialized yet, and will get the\n // channelProxy later.\n w[id] = channelProxy;\n }\n else {\n // `#getHandleFromWindow` is already set a delegate to window property\n // and is waiting for it to be called with the channelProxy.\n w[id](channelProxy);\n delete w[id];\n }\n return channelProxy.sendMessage;\n });\n const channelProxyEval = ChannelProxy.#createChannelProxyEvalStr();\n return `(${delegate})('${this.#id}',${channelProxyEval})`;\n }\n}\nexports.ChannelProxy = ChannelProxy;\n//# sourceMappingURL=ChannelProxy.js.map","\"use strict\";\n/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PreloadScript = void 0;\nconst uuid_js_1 = require(\"../../../utils/uuid.js\");\nconst ChannelProxy_js_1 = require(\"./ChannelProxy.js\");\n/**\n * BiDi IDs are generated by the server and are unique within contexts.\n *\n * CDP preload script IDs are generated by the client and are unique\n * within sessions.\n *\n * The mapping between BiDi and CDP preload script IDs is 1:many.\n * BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs\n * in the client.\n */\nclass PreloadScript {\n /** BiDi ID, an automatically generated UUID. */\n #id = (0, uuid_js_1.uuidv4)();\n /** CDP preload scripts. */\n #cdpPreloadScripts = [];\n /** The script itself, in a format expected by the spec i.e. a function. */\n #functionDeclaration;\n /** Targets, in which the preload script is initialized. */\n #targetIds = new Set();\n /** Channels to be added as arguments to functionDeclaration. */\n #channels;\n /** The script sandbox / world name. */\n #sandbox;\n /** The browsing contexts to execute the preload scripts in, if any. */\n #contexts;\n /** The browsing contexts to execute the preload scripts in, if any. */\n #userContexts;\n get id() {\n return this.#id;\n }\n get targetIds() {\n return this.#targetIds;\n }\n constructor(params, logger) {\n this.#channels =\n params.arguments?.map((a) => new ChannelProxy_js_1.ChannelProxy(a.value, logger)) ?? [];\n this.#functionDeclaration = params.functionDeclaration;\n this.#sandbox = params.sandbox;\n this.#contexts = params.contexts;\n this.#userContexts = params.userContexts;\n }\n /** Channels of the preload script. */\n get channels() {\n return this.#channels;\n }\n /** Contexts of the preload script, if any */\n get contexts() {\n return this.#contexts;\n }\n /** UserContexts of the preload script, if any */\n get userContexts() {\n return this.#userContexts;\n }\n /**\n * String to be evaluated. Wraps user-provided function so that the following\n * steps are run:\n * 1. Create channels.\n * 2. Store the created channels in window.\n * 3. Call the user-provided function with channels as arguments.\n */\n #getEvaluateString() {\n const channelsArgStr = `[${this.channels\n .map((c) => c.getEvalInWindowStr())\n .join(', ')}]`;\n return `(()=>{(${this.#functionDeclaration})(...${channelsArgStr})})()`;\n }\n /**\n * Adds the script to the given CDP targets by calling the\n * `Page.addScriptToEvaluateOnNewDocument` command.\n */\n async initInTargets(cdpTargets, runImmediately) {\n await Promise.all(Array.from(cdpTargets).map((cdpTarget) => this.initInTarget(cdpTarget, runImmediately)));\n }\n /**\n * Adds the script to the given CDP target by calling the\n * `Page.addScriptToEvaluateOnNewDocument` command.\n */\n async initInTarget(cdpTarget, runImmediately) {\n const addCdpPreloadScriptResult = await cdpTarget.cdpClient.sendCommand('Page.addScriptToEvaluateOnNewDocument', {\n source: this.#getEvaluateString(),\n worldName: this.#sandbox,\n runImmediately,\n });\n this.#cdpPreloadScripts.push({\n target: cdpTarget,\n preloadScriptId: addCdpPreloadScriptResult.identifier,\n });\n this.#targetIds.add(cdpTarget.id);\n }\n /**\n * Removes this script from all CDP targets.\n */\n async remove() {\n await Promise.all([\n this.#cdpPreloadScripts.map(async (cdpPreloadScript) => {\n const cdpTarget = cdpPreloadScript.target;\n const cdpPreloadScriptId = cdpPreloadScript.preloadScriptId;\n return await cdpTarget.cdpClient.sendCommand('Page.removeScriptToEvaluateOnNewDocument', {\n identifier: cdpPreloadScriptId,\n });\n }),\n ]);\n }\n /** Removes the provided cdp target from the list of cdp preload scripts. */\n dispose(cdpTargetId) {\n this.#cdpPreloadScripts = this.#cdpPreloadScripts.filter((cdpPreloadScript) => cdpPreloadScript.target?.id !== cdpTargetId);\n this.#targetIds.delete(cdpTargetId);\n }\n}\nexports.PreloadScript = PreloadScript;\n//# sourceMappingURL=PreloadScript.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScriptProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst PreloadScript_js_1 = require(\"./PreloadScript.js\");\nclass ScriptProcessor {\n #eventManager;\n #browsingContextStorage;\n #realmStorage;\n #preloadScriptStorage;\n #userContextStorage;\n #logger;\n constructor(eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, userContextStorage, logger) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#realmStorage = realmStorage;\n this.#preloadScriptStorage = preloadScriptStorage;\n this.#userContextStorage = userContextStorage;\n this.#logger = logger;\n this.#eventManager = eventManager;\n this.#eventManager.addSubscribeHook(protocol_js_1.ChromiumBidi.Script.EventNames.RealmCreated, this.#onRealmCreatedSubscribeHook.bind(this));\n }\n #onRealmCreatedSubscribeHook(contextId) {\n const context = this.#browsingContextStorage.getContext(contextId);\n const contextsToReport = [\n context,\n ...this.#browsingContextStorage.getContext(contextId).allChildren,\n ];\n const realms = new Set();\n for (const reportContext of contextsToReport) {\n const realmsForContext = this.#realmStorage.findRealms({\n browsingContextId: reportContext.id,\n });\n for (const realm of realmsForContext) {\n realms.add(realm);\n }\n }\n for (const realm of realms) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.Script.EventNames.RealmCreated,\n params: realm.realmInfo,\n }, context.id);\n }\n return Promise.resolve();\n }\n async addPreloadScript(params) {\n if (params.userContexts?.length && params.contexts?.length) {\n throw new protocol_js_1.InvalidArgumentException('Both userContexts and contexts cannot be specified.');\n }\n const userContexts = await this.#userContextStorage.verifyUserContextIdList(params.userContexts ?? []);\n const browsingContexts = this.#browsingContextStorage.verifyTopLevelContextsList(params.contexts);\n const preloadScript = new PreloadScript_js_1.PreloadScript(params, this.#logger);\n this.#preloadScriptStorage.add(preloadScript);\n let contextsToRunIn = [];\n if (userContexts.size) {\n contextsToRunIn = this.#browsingContextStorage\n .getTopLevelContexts()\n .filter((context) => {\n return userContexts.has(context.userContext);\n });\n }\n else if (browsingContexts.size) {\n contextsToRunIn = [...browsingContexts.values()];\n }\n else {\n contextsToRunIn = this.#browsingContextStorage.getTopLevelContexts();\n }\n const cdpTargets = new Set(contextsToRunIn.map((context) => context.cdpTarget));\n await preloadScript.initInTargets(cdpTargets, false);\n return {\n script: preloadScript.id,\n };\n }\n async removePreloadScript(params) {\n const { script: id } = params;\n const script = this.#preloadScriptStorage.getPreloadScript(id);\n await script.remove();\n this.#preloadScriptStorage.remove(id);\n return {};\n }\n async callFunction(params) {\n const realm = await this.#getRealm(params.target);\n return await realm.callFunction(params.functionDeclaration, params.awaitPromise, params.this, params.arguments, params.resultOwnership, params.serializationOptions, params.userActivation);\n }\n async evaluate(params) {\n const realm = await this.#getRealm(params.target);\n return await realm.evaluate(params.expression, params.awaitPromise, params.resultOwnership, params.serializationOptions, params.userActivation);\n }\n async disown(params) {\n const realm = await this.#getRealm(params.target);\n await Promise.all(params.handles.map(async (handle) => await realm.disown(handle)));\n return {};\n }\n getRealms(params) {\n if (params.context !== undefined) {\n // Make sure the context is known.\n this.#browsingContextStorage.getContext(params.context);\n }\n const realms = this.#realmStorage\n .findRealms({\n browsingContextId: params.context,\n type: params.type,\n })\n .map((realm) => realm.realmInfo);\n return { realms };\n }\n async #getRealm(target) {\n if ('context' in target) {\n const context = this.#browsingContextStorage.getContext(target.context);\n return await context.getOrCreateSandbox(target.sandbox);\n }\n return this.#realmStorage.getRealm({\n realmId: target.realm,\n });\n }\n}\nexports.ScriptProcessor = ScriptProcessor;\n//# sourceMappingURL=ScriptProcessor.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nclass SessionProcessor {\n #eventManager;\n #browserCdpClient;\n #initConnection;\n #created = false;\n constructor(eventManager, browserCdpClient, initConnection) {\n this.#eventManager = eventManager;\n this.#browserCdpClient = browserCdpClient;\n this.#initConnection = initConnection;\n }\n status() {\n return { ready: false, message: 'already connected' };\n }\n #mergeCapabilities(capabilitiesRequest) {\n // Roughly following https://www.w3.org/TR/webdriver2/#dfn-capabilities-processing.\n // Validations should already be done by the parser.\n const mergedCapabilities = [];\n for (const first of capabilitiesRequest.firstMatch ?? [{}]) {\n const result = {\n ...capabilitiesRequest.alwaysMatch,\n };\n for (const key of Object.keys(first)) {\n if (result[key] !== undefined) {\n throw new protocol_js_1.InvalidArgumentException(`Capability ${key} in firstMatch is already defined in alwaysMatch`);\n }\n result[key] = first[key];\n }\n mergedCapabilities.push(result);\n }\n const match = mergedCapabilities.find((c) => c.browserName === 'chrome') ??\n mergedCapabilities[0] ??\n {};\n match.unhandledPromptBehavior = this.#getUnhandledPromptBehavior(match.unhandledPromptBehavior);\n return match;\n }\n #getUnhandledPromptBehavior(capabilityValue) {\n if (capabilityValue === undefined) {\n return undefined;\n }\n if (typeof capabilityValue === 'object') {\n // Do not validate capabilities. Incorrect ones will be ignored by Mapper.\n return capabilityValue;\n }\n if (typeof capabilityValue !== 'string') {\n throw new protocol_js_1.InvalidArgumentException(`Unexpected 'unhandledPromptBehavior' type: ${typeof capabilityValue}`);\n }\n switch (capabilityValue) {\n // `beforeUnload: accept` has higher priority over string capability, as the latest\n // one is set to \"fallbackDefault\".\n // https://w3c.github.io/webdriver/#dfn-deserialize-as-an-unhandled-prompt-behavior\n // https://w3c.github.io/webdriver/#dfn-get-the-prompt-handler\n case 'accept':\n case 'accept and notify':\n return {\n default: \"accept\" /* Session.UserPromptHandlerType.Accept */,\n beforeUnload: \"accept\" /* Session.UserPromptHandlerType.Accept */,\n };\n case 'dismiss':\n case 'dismiss and notify':\n return {\n default: \"dismiss\" /* Session.UserPromptHandlerType.Dismiss */,\n beforeUnload: \"accept\" /* Session.UserPromptHandlerType.Accept */,\n };\n case 'ignore':\n return {\n default: \"ignore\" /* Session.UserPromptHandlerType.Ignore */,\n beforeUnload: \"accept\" /* Session.UserPromptHandlerType.Accept */,\n };\n default:\n throw new protocol_js_1.InvalidArgumentException(`Unexpected 'unhandledPromptBehavior' value: ${capabilityValue}`);\n }\n }\n async new(params) {\n if (this.#created) {\n throw new Error('Session has been already created.');\n }\n this.#created = true;\n const matchedCapabitlites = this.#mergeCapabilities(params.capabilities);\n await this.#initConnection(matchedCapabitlites);\n const version = await this.#browserCdpClient.sendCommand('Browser.getVersion');\n return {\n sessionId: 'unknown',\n capabilities: {\n ...matchedCapabitlites,\n acceptInsecureCerts: matchedCapabitlites.acceptInsecureCerts ?? false,\n browserName: version.product,\n browserVersion: version.revision,\n platformName: '',\n setWindowRect: false,\n webSocketUrl: '',\n userAgent: version.userAgent,\n },\n };\n }\n async subscribe(params, googChannel = null) {\n const subscription = await this.#eventManager.subscribe(params.events, params.contexts ?? [], params.userContexts ?? [], googChannel);\n return {\n subscription,\n };\n }\n async unsubscribe(params, googChannel = null) {\n if ('subscriptions' in params) {\n await this.#eventManager.unsubscribeByIds(params.subscriptions);\n return {};\n }\n await this.#eventManager.unsubscribe(params.events, params.contexts ?? [], googChannel);\n return {};\n }\n}\nexports.SessionProcessor = SessionProcessor;\n//# sourceMappingURL=SessionProcessor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StorageProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst assert_js_1 = require(\"../../../utils/assert.js\");\nconst log_js_1 = require(\"../../../utils/log.js\");\nconst NetworkProcessor_js_1 = require(\"../network/NetworkProcessor.js\");\nconst NetworkUtils_js_1 = require(\"../network/NetworkUtils.js\");\n/**\n * Responsible for handling the `storage` module.\n */\nclass StorageProcessor {\n #browserCdpClient;\n #browsingContextStorage;\n #logger;\n constructor(browserCdpClient, browsingContextStorage, logger) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#browserCdpClient = browserCdpClient;\n this.#logger = logger;\n }\n async deleteCookies(params) {\n const partitionKey = this.#expandStoragePartitionSpec(params.partition);\n let cdpResponse;\n try {\n cdpResponse = await this.#browserCdpClient.sendCommand('Storage.getCookies', {\n browserContextId: this.#getCdpBrowserContextId(partitionKey),\n });\n }\n catch (err) {\n if (this.#isNoSuchUserContextError(err)) {\n // If the user context is not found, special error is thrown.\n throw new protocol_js_1.NoSuchUserContextException(err.message);\n }\n throw err;\n }\n const cdpCookiesToDelete = cdpResponse.cookies\n .filter(\n // CDP's partition key is the source origin. If the request specifies the\n // `sourceOrigin` partition key, only cookies with the requested source origin\n // are returned.\n (c) => partitionKey.sourceOrigin === undefined ||\n c.partitionKey?.topLevelSite === partitionKey.sourceOrigin)\n .filter((cdpCookie) => {\n const bidiCookie = (0, NetworkUtils_js_1.cdpToBiDiCookie)(cdpCookie);\n return this.#matchCookie(bidiCookie, params.filter);\n })\n .map((cookie) => ({\n ...cookie,\n // Set expiry to pass date to delete the cookie.\n expires: 1,\n }));\n await this.#browserCdpClient.sendCommand('Storage.setCookies', {\n cookies: cdpCookiesToDelete,\n browserContextId: this.#getCdpBrowserContextId(partitionKey),\n });\n return {\n partitionKey,\n };\n }\n async getCookies(params) {\n const partitionKey = this.#expandStoragePartitionSpec(params.partition);\n let cdpResponse;\n try {\n cdpResponse = await this.#browserCdpClient.sendCommand('Storage.getCookies', {\n browserContextId: this.#getCdpBrowserContextId(partitionKey),\n });\n }\n catch (err) {\n if (this.#isNoSuchUserContextError(err)) {\n // If the user context is not found, special error is thrown.\n throw new protocol_js_1.NoSuchUserContextException(err.message);\n }\n throw err;\n }\n const filteredBiDiCookies = cdpResponse.cookies\n .filter(\n // CDP's partition key is the source origin. If the request specifies the\n // `sourceOrigin` partition key, only cookies with the requested source origin\n // are returned.\n (c) => partitionKey.sourceOrigin === undefined ||\n c.partitionKey?.topLevelSite === partitionKey.sourceOrigin)\n .map((c) => (0, NetworkUtils_js_1.cdpToBiDiCookie)(c))\n .filter((c) => this.#matchCookie(c, params.filter));\n return {\n cookies: filteredBiDiCookies,\n partitionKey,\n };\n }\n async setCookie(params) {\n const partitionKey = this.#expandStoragePartitionSpec(params.partition);\n const cdpCookie = (0, NetworkUtils_js_1.bidiToCdpCookie)(params, partitionKey);\n try {\n await this.#browserCdpClient.sendCommand('Storage.setCookies', {\n cookies: [cdpCookie],\n browserContextId: this.#getCdpBrowserContextId(partitionKey),\n });\n }\n catch (err) {\n if (this.#isNoSuchUserContextError(err)) {\n // If the user context is not found, special error is thrown.\n throw new protocol_js_1.NoSuchUserContextException(err.message);\n }\n this.#logger?.(log_js_1.LogType.debugError, err);\n throw new protocol_js_1.UnableToSetCookieException(err.toString());\n }\n return {\n partitionKey,\n };\n }\n #isNoSuchUserContextError(err) {\n // Heuristic to detect if the user context is not found.\n // See https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/protocol/browser_handler.cc;drc=a56154dd81e4679712422ac6eed2c9581cb51ab0;l=314\n return err.message?.startsWith('Failed to find browser context for id');\n }\n #getCdpBrowserContextId(partitionKey) {\n return partitionKey.userContext === 'default'\n ? undefined\n : partitionKey.userContext;\n }\n #expandStoragePartitionSpecByBrowsingContext(descriptor) {\n const browsingContextId = descriptor.context;\n const browsingContext = this.#browsingContextStorage.getContext(browsingContextId);\n // https://w3c.github.io/webdriver-bidi/#associated-storage-partition.\n // Each browsing context also has an associated storage partition, which is the\n // storage partition it uses to persist data. In Chromium it's a `BrowserContext`\n // which maps to BiDi `UserContext`.\n return {\n userContext: browsingContext.userContext,\n };\n }\n #expandStoragePartitionSpecByStorageKey(descriptor) {\n const unsupportedPartitionKeys = new Map();\n let sourceOrigin = descriptor.sourceOrigin;\n if (sourceOrigin !== undefined) {\n const url = NetworkProcessor_js_1.NetworkProcessor.parseUrlString(sourceOrigin);\n if (url.origin === 'null') {\n // Origin `null` is a special case for local pages.\n sourceOrigin = url.origin;\n }\n else {\n // Port is not supported in CDP Cookie's `partitionKey`, so it should be stripped\n // from the requested source origin.\n sourceOrigin = `${url.protocol}//${url.hostname}`;\n }\n }\n for (const [key, value] of Object.entries(descriptor)) {\n if (key !== undefined &&\n value !== undefined &&\n !['type', 'sourceOrigin', 'userContext'].includes(key)) {\n unsupportedPartitionKeys.set(key, value);\n }\n }\n if (unsupportedPartitionKeys.size > 0) {\n this.#logger?.(log_js_1.LogType.debugInfo, `Unsupported partition keys: ${JSON.stringify(Object.fromEntries(unsupportedPartitionKeys))}`);\n }\n // Set `userContext` to `default` if not provided, as it's required in Chromium.\n const userContext = descriptor.userContext ?? 'default';\n return {\n userContext,\n ...(sourceOrigin === undefined ? {} : { sourceOrigin }),\n };\n }\n #expandStoragePartitionSpec(partitionSpec) {\n if (partitionSpec === undefined) {\n // `userContext` is required in Chromium.\n return { userContext: 'default' };\n }\n if (partitionSpec.type === 'context') {\n return this.#expandStoragePartitionSpecByBrowsingContext(partitionSpec);\n }\n (0, assert_js_1.assert)(partitionSpec.type === 'storageKey', 'Unknown partition type');\n // Partition spec is a storage partition.\n // Let partition key be partition spec.\n return this.#expandStoragePartitionSpecByStorageKey(partitionSpec);\n }\n #matchCookie(cookie, filter) {\n if (filter === undefined) {\n return true;\n }\n return ((filter.domain === undefined || filter.domain === cookie.domain) &&\n (filter.name === undefined || filter.name === cookie.name) &&\n // `value` contains fields `type` and `value`.\n (filter.value === undefined ||\n (0, NetworkUtils_js_1.deserializeByteValue)(filter.value) ===\n (0, NetworkUtils_js_1.deserializeByteValue)(cookie.value)) &&\n (filter.path === undefined || filter.path === cookie.path) &&\n (filter.size === undefined || filter.size === cookie.size) &&\n (filter.httpOnly === undefined || filter.httpOnly === cookie.httpOnly) &&\n (filter.secure === undefined || filter.secure === cookie.secure) &&\n (filter.sameSite === undefined || filter.sameSite === cookie.sameSite) &&\n (filter.expiry === undefined || filter.expiry === cookie.expiry));\n }\n}\nexports.StorageProcessor = StorageProcessor;\n//# sourceMappingURL=StorageProcessor.js.map","\"use strict\";\n/**\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebExtensionProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\n/**\n * Responsible for handling the `webModule` module.\n */\nclass WebExtensionProcessor {\n #browserCdpClient;\n constructor(browserCdpClient) {\n this.#browserCdpClient = browserCdpClient;\n }\n async install(params) {\n switch (params.extensionData.type) {\n case 'archivePath':\n case 'base64':\n throw new protocol_js_1.UnsupportedOperationException('Archived and Base64 extensions are not supported');\n case 'path':\n break;\n }\n try {\n const response = await this.#browserCdpClient.sendCommand('Extensions.loadUnpacked', {\n path: params.extensionData.path,\n });\n return {\n extension: response.id,\n };\n }\n catch (err) {\n if (err.message.startsWith('invalid web extension')) {\n throw new protocol_js_1.InvalidWebExtensionException(err.message);\n }\n throw err;\n }\n }\n async uninstall(params) {\n try {\n await this.#browserCdpClient.sendCommand('Extensions.uninstall', {\n id: params.extension,\n });\n return {};\n }\n catch (err) {\n if (err.message ===\n 'Uninstall failed. Reason: could not find extension.') {\n throw new protocol_js_1.NoSuchWebExtensionException('no such web extension');\n }\n throw err;\n }\n }\n}\nexports.WebExtensionProcessor = WebExtensionProcessor;\n//# sourceMappingURL=WebExtensionProcessor.js.map","\"use strict\";\n/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OutgoingMessage = void 0;\nclass OutgoingMessage {\n #message;\n #googChannel;\n constructor(message, googChannel = null) {\n this.#message = message;\n this.#googChannel = googChannel;\n }\n static createFromPromise(messagePromise, googChannel) {\n return messagePromise.then((message) => {\n if (message.kind === 'success') {\n return {\n kind: 'success',\n value: new OutgoingMessage(message.value, googChannel),\n };\n }\n return message;\n });\n }\n static createResolved(message, googChannel = null) {\n return Promise.resolve({\n kind: 'success',\n value: new OutgoingMessage(message, googChannel),\n });\n }\n get message() {\n return this.#message;\n }\n get googChannel() {\n return this.#googChannel;\n }\n}\nexports.OutgoingMessage = OutgoingMessage;\n//# sourceMappingURL=OutgoingMessage.js.map","\"use strict\";\n/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CommandProcessor = void 0;\nconst protocol_js_1 = require(\"../protocol/protocol.js\");\nconst EventEmitter_js_1 = require(\"../utils/EventEmitter.js\");\nconst log_js_1 = require(\"../utils/log.js\");\nconst BidiNoOpParser_js_1 = require(\"./BidiNoOpParser.js\");\nconst BrowserProcessor_js_1 = require(\"./modules/browser/BrowserProcessor.js\");\nconst CdpProcessor_js_1 = require(\"./modules/cdp/CdpProcessor.js\");\nconst BrowsingContextProcessor_js_1 = require(\"./modules/context/BrowsingContextProcessor.js\");\nconst EmulationProcessor_js_1 = require(\"./modules/emulation/EmulationProcessor.js\");\nconst InputProcessor_js_1 = require(\"./modules/input/InputProcessor.js\");\nconst NetworkProcessor_js_1 = require(\"./modules/network/NetworkProcessor.js\");\nconst PermissionsProcessor_js_1 = require(\"./modules/permissions/PermissionsProcessor.js\");\nconst ScriptProcessor_js_1 = require(\"./modules/script/ScriptProcessor.js\");\nconst SessionProcessor_js_1 = require(\"./modules/session/SessionProcessor.js\");\nconst StorageProcessor_js_1 = require(\"./modules/storage/StorageProcessor.js\");\nconst WebExtensionProcessor_js_1 = require(\"./modules/webExtension/WebExtensionProcessor.js\");\nconst OutgoingMessage_js_1 = require(\"./OutgoingMessage.js\");\nclass CommandProcessor extends EventEmitter_js_1.EventEmitter {\n // keep-sorted start\n #bluetoothProcessor;\n #browserProcessor;\n #browsingContextProcessor;\n #cdpProcessor;\n #emulationProcessor;\n #inputProcessor;\n #networkProcessor;\n #permissionsProcessor;\n #scriptProcessor;\n #sessionProcessor;\n #storageProcessor;\n #webExtensionProcessor;\n // keep-sorted end\n #parser;\n #logger;\n constructor(cdpConnection, browserCdpClient, eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, networkStorage, bluetoothProcessor, userContextStorage, parser = new BidiNoOpParser_js_1.BidiNoOpParser(), initConnection, logger) {\n super();\n this.#parser = parser;\n this.#logger = logger;\n this.#bluetoothProcessor = bluetoothProcessor;\n // keep-sorted start block=yes\n this.#browserProcessor = new BrowserProcessor_js_1.BrowserProcessor(browserCdpClient, browsingContextStorage, userContextStorage);\n this.#browsingContextProcessor = new BrowsingContextProcessor_js_1.BrowsingContextProcessor(browserCdpClient, browsingContextStorage, userContextStorage, eventManager);\n this.#cdpProcessor = new CdpProcessor_js_1.CdpProcessor(browsingContextStorage, realmStorage, cdpConnection, browserCdpClient);\n this.#emulationProcessor = new EmulationProcessor_js_1.EmulationProcessor(browsingContextStorage, userContextStorage);\n this.#inputProcessor = new InputProcessor_js_1.InputProcessor(browsingContextStorage);\n this.#networkProcessor = new NetworkProcessor_js_1.NetworkProcessor(browsingContextStorage, networkStorage);\n this.#permissionsProcessor = new PermissionsProcessor_js_1.PermissionsProcessor(browserCdpClient);\n this.#scriptProcessor = new ScriptProcessor_js_1.ScriptProcessor(eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, userContextStorage, logger);\n this.#sessionProcessor = new SessionProcessor_js_1.SessionProcessor(eventManager, browserCdpClient, initConnection);\n this.#storageProcessor = new StorageProcessor_js_1.StorageProcessor(browserCdpClient, browsingContextStorage, logger);\n this.#webExtensionProcessor = new WebExtensionProcessor_js_1.WebExtensionProcessor(browserCdpClient);\n // keep-sorted end\n }\n async #processCommand(command) {\n switch (command.method) {\n // Bluetooth module\n // keep-sorted start block=yes\n case 'bluetooth.disableSimulation':\n return await this.#bluetoothProcessor.disableSimulation(this.#parser.parseDisableSimulationParameters(command.params));\n case 'bluetooth.handleRequestDevicePrompt':\n return await this.#bluetoothProcessor.handleRequestDevicePrompt(this.#parser.parseHandleRequestDevicePromptParams(command.params));\n case 'bluetooth.simulateAdapter':\n return await this.#bluetoothProcessor.simulateAdapter(this.#parser.parseSimulateAdapterParameters(command.params));\n case 'bluetooth.simulateAdvertisement':\n return await this.#bluetoothProcessor.simulateAdvertisement(this.#parser.parseSimulateAdvertisementParameters(command.params));\n case 'bluetooth.simulateGattConnectionResponse':\n return await this.#bluetoothProcessor.simulateGattConnectionResponse(this.#parser.parseSimulateGattConnectionResponseParameters(command.params));\n case 'bluetooth.simulateGattDisconnection':\n throw new protocol_js_1.UnknownErrorException(`Method ${command.method} is not implemented.`);\n case 'bluetooth.simulatePreconnectedPeripheral':\n return await this.#bluetoothProcessor.simulatePreconnectedPeripheral(this.#parser.parseSimulatePreconnectedPeripheralParameters(command.params));\n // keep-sorted end\n // Browser module\n // keep-sorted start block=yes\n case 'browser.close':\n return this.#browserProcessor.close();\n case 'browser.createUserContext':\n return await this.#browserProcessor.createUserContext(command.params);\n case 'browser.getClientWindows':\n return await this.#browserProcessor.getClientWindows();\n case 'browser.getUserContexts':\n return await this.#browserProcessor.getUserContexts();\n case 'browser.removeUserContext':\n return await this.#browserProcessor.removeUserContext(this.#parser.parseRemoveUserContextParams(command.params));\n case 'browser.setClientWindowState':\n throw new protocol_js_1.UnknownErrorException(`Method ${command.method} is not implemented.`);\n // keep-sorted end\n // Browsing Context module\n // keep-sorted start block=yes\n case 'browsingContext.activate':\n return await this.#browsingContextProcessor.activate(this.#parser.parseActivateParams(command.params));\n case 'browsingContext.captureScreenshot':\n return await this.#browsingContextProcessor.captureScreenshot(this.#parser.parseCaptureScreenshotParams(command.params));\n case 'browsingContext.close':\n return await this.#browsingContextProcessor.close(this.#parser.parseCloseParams(command.params));\n case 'browsingContext.create':\n return await this.#browsingContextProcessor.create(this.#parser.parseCreateParams(command.params));\n case 'browsingContext.getTree':\n return this.#browsingContextProcessor.getTree(this.#parser.parseGetTreeParams(command.params));\n case 'browsingContext.handleUserPrompt':\n return await this.#browsingContextProcessor.handleUserPrompt(this.#parser.parseHandleUserPromptParams(command.params));\n case 'browsingContext.locateNodes':\n return await this.#browsingContextProcessor.locateNodes(this.#parser.parseLocateNodesParams(command.params));\n case 'browsingContext.navigate':\n return await this.#browsingContextProcessor.navigate(this.#parser.parseNavigateParams(command.params));\n case 'browsingContext.print':\n return await this.#browsingContextProcessor.print(this.#parser.parsePrintParams(command.params));\n case 'browsingContext.reload':\n return await this.#browsingContextProcessor.reload(this.#parser.parseReloadParams(command.params));\n case 'browsingContext.setViewport':\n return await this.#browsingContextProcessor.setViewport(this.#parser.parseSetViewportParams(command.params));\n case 'browsingContext.traverseHistory':\n return await this.#browsingContextProcessor.traverseHistory(this.#parser.parseTraverseHistoryParams(command.params));\n // keep-sorted end\n // CDP module\n // keep-sorted start block=yes\n case 'goog:cdp.getSession':\n return this.#cdpProcessor.getSession(this.#parser.parseGetSessionParams(command.params));\n case 'goog:cdp.resolveRealm':\n return this.#cdpProcessor.resolveRealm(this.#parser.parseResolveRealmParams(command.params));\n case 'goog:cdp.sendCommand':\n return await this.#cdpProcessor.sendCommand(this.#parser.parseSendCommandParams(command.params));\n // keep-sorted end\n // Emulation module\n // keep-sorted start block=yes\n case 'emulation.setGeolocationOverride':\n return await this.#emulationProcessor.setGeolocationOverride(this.#parser.parseSetGeolocationOverrideParams(command.params));\n // keep-sorted end\n // Input module\n // keep-sorted start block=yes\n case 'input.performActions':\n return await this.#inputProcessor.performActions(this.#parser.parsePerformActionsParams(command.params));\n case 'input.releaseActions':\n return await this.#inputProcessor.releaseActions(this.#parser.parseReleaseActionsParams(command.params));\n case 'input.setFiles':\n return await this.#inputProcessor.setFiles(this.#parser.parseSetFilesParams(command.params));\n // keep-sorted end\n // Network module\n // keep-sorted start block=yes\n case 'network.addIntercept':\n return await this.#networkProcessor.addIntercept(this.#parser.parseAddInterceptParams(command.params));\n case 'network.continueRequest':\n return await this.#networkProcessor.continueRequest(this.#parser.parseContinueRequestParams(command.params));\n case 'network.continueResponse':\n return await this.#networkProcessor.continueResponse(this.#parser.parseContinueResponseParams(command.params));\n case 'network.continueWithAuth':\n return await this.#networkProcessor.continueWithAuth(this.#parser.parseContinueWithAuthParams(command.params));\n case 'network.failRequest':\n return await this.#networkProcessor.failRequest(this.#parser.parseFailRequestParams(command.params));\n case 'network.provideResponse':\n return await this.#networkProcessor.provideResponse(this.#parser.parseProvideResponseParams(command.params));\n case 'network.removeIntercept':\n return await this.#networkProcessor.removeIntercept(this.#parser.parseRemoveInterceptParams(command.params));\n case 'network.setCacheBehavior':\n return await this.#networkProcessor.setCacheBehavior(this.#parser.parseSetCacheBehavior(command.params));\n // keep-sorted end\n // Permissions module\n // keep-sorted start block=yes\n case 'permissions.setPermission':\n return await this.#permissionsProcessor.setPermissions(this.#parser.parseSetPermissionsParams(command.params));\n // keep-sorted end\n // Script module\n // keep-sorted start block=yes\n case 'script.addPreloadScript':\n return await this.#scriptProcessor.addPreloadScript(this.#parser.parseAddPreloadScriptParams(command.params));\n case 'script.callFunction':\n return await this.#scriptProcessor.callFunction(this.#parser.parseCallFunctionParams(this.#processTargetParams(command.params)));\n case 'script.disown':\n return await this.#scriptProcessor.disown(this.#parser.parseDisownParams(this.#processTargetParams(command.params)));\n case 'script.evaluate':\n return await this.#scriptProcessor.evaluate(this.#parser.parseEvaluateParams(this.#processTargetParams(command.params)));\n case 'script.getRealms':\n return this.#scriptProcessor.getRealms(this.#parser.parseGetRealmsParams(command.params));\n case 'script.removePreloadScript':\n return await this.#scriptProcessor.removePreloadScript(this.#parser.parseRemovePreloadScriptParams(command.params));\n // keep-sorted end\n // Session module\n // keep-sorted start block=yes\n case 'session.end':\n throw new protocol_js_1.UnknownErrorException(`Method ${command.method} is not implemented.`);\n case 'session.new':\n return await this.#sessionProcessor.new(command.params);\n case 'session.status':\n return this.#sessionProcessor.status();\n case 'session.subscribe':\n return await this.#sessionProcessor.subscribe(this.#parser.parseSubscribeParams(command.params), command['goog:channel']);\n case 'session.unsubscribe':\n return await this.#sessionProcessor.unsubscribe(this.#parser.parseUnsubscribeParams(command.params), command['goog:channel']);\n // keep-sorted end\n // Storage module\n // keep-sorted start block=yes\n case 'storage.deleteCookies':\n return await this.#storageProcessor.deleteCookies(this.#parser.parseDeleteCookiesParams(command.params));\n case 'storage.getCookies':\n return await this.#storageProcessor.getCookies(this.#parser.parseGetCookiesParams(command.params));\n case 'storage.setCookie':\n return await this.#storageProcessor.setCookie(this.#parser.parseSetCookieParams(command.params));\n // keep-sorted end\n // WebExtension module\n // keep-sorted start block=yes\n case 'webExtension.install':\n return await this.#webExtensionProcessor.install(this.#parser.parseInstallParams(command.params));\n case 'webExtension.uninstall':\n return await this.#webExtensionProcessor.uninstall(this.#parser.parseUninstallParams(command.params));\n // keep-sorted end\n }\n // Intentionally kept outside the switch statement to ensure that\n // ESLint @typescript-eslint/switch-exhaustiveness-check triggers if a new\n // command is added.\n throw new protocol_js_1.UnknownCommandException(`Unknown command '${command?.method}'.`);\n }\n // Workaround for as zod.union always take the first schema\n // https://github.com/w3c/webdriver-bidi/issues/635\n #processTargetParams(params) {\n if (typeof params === 'object' &&\n params &&\n 'target' in params &&\n typeof params.target === 'object' &&\n params.target &&\n 'context' in params.target) {\n delete params.target['realm'];\n }\n return params;\n }\n async processCommand(command) {\n try {\n const result = await this.#processCommand(command);\n const response = {\n type: 'success',\n id: command.id,\n result,\n };\n this.emit(\"response\" /* CommandProcessorEvents.Response */, {\n message: OutgoingMessage_js_1.OutgoingMessage.createResolved(response, command['goog:channel']),\n event: command.method,\n });\n }\n catch (e) {\n if (e instanceof protocol_js_1.Exception) {\n this.emit(\"response\" /* CommandProcessorEvents.Response */, {\n message: OutgoingMessage_js_1.OutgoingMessage.createResolved(e.toErrorResponse(command.id), command['goog:channel']),\n event: command.method,\n });\n }\n else {\n const error = e;\n this.#logger?.(log_js_1.LogType.bidi, error);\n this.emit(\"response\" /* CommandProcessorEvents.Response */, {\n message: OutgoingMessage_js_1.OutgoingMessage.createResolved(new protocol_js_1.UnknownErrorException(error.message, error.stack).toErrorResponse(command.id), command['goog:channel']),\n event: command.method,\n });\n }\n }\n }\n}\nexports.CommandProcessor = CommandProcessor;\n//# sourceMappingURL=CommandProcessor.js.map","\"use strict\";\n/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BluetoothProcessor = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nclass BluetoothProcessor {\n #eventManager;\n #browsingContextStorage;\n constructor(eventManager, browsingContextStorage) {\n this.#eventManager = eventManager;\n this.#browsingContextStorage = browsingContextStorage;\n }\n async simulateAdapter(params) {\n if (params.state === undefined) {\n // The bluetooth.simulateAdapter Command\n // Step 4.2. If params[\"state\"] does not exist, return error with error code invalid argument.\n // https://webbluetoothcg.github.io/web-bluetooth/#bluetooth-simulateAdapter-command\n throw new protocol_js_1.InvalidArgumentException(`Parameter \"state\" is required for creating a Bluetooth adapter`);\n }\n const context = this.#browsingContextStorage.getContext(params.context);\n // Bluetooth spec requires overriding the existing adapter (step 6). From the CDP\n // perspective, we need to disable the emulation first.\n // https://webbluetoothcg.github.io/web-bluetooth/#bluetooth-simulateAdapter-command\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.disable');\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.enable', {\n state: params.state,\n leSupported: params.leSupported ?? true,\n });\n return {};\n }\n async disableSimulation(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.disable');\n return {};\n }\n async simulatePreconnectedPeripheral(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulatePreconnectedPeripheral', {\n address: params.address,\n name: params.name,\n knownServiceUuids: params.knownServiceUuids,\n manufacturerData: params.manufacturerData,\n });\n return {};\n }\n async simulateAdvertisement(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateAdvertisement', {\n entry: params.scanEntry,\n });\n return {};\n }\n async simulateGattConnectionResponse(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n await context.cdpTarget.browserCdpClient.sendCommand('BluetoothEmulation.simulateGATTOperationResponse', {\n address: params.address,\n type: 'connection',\n code: params.code,\n });\n return {};\n }\n onCdpTargetCreated(cdpTarget) {\n cdpTarget.cdpClient.on('DeviceAccess.deviceRequestPrompted', (event) => {\n this.#eventManager.registerEvent({\n type: 'event',\n method: 'bluetooth.requestDevicePromptUpdated',\n params: {\n context: cdpTarget.id,\n prompt: event.id,\n devices: event.devices,\n },\n }, cdpTarget.id);\n });\n cdpTarget.browserCdpClient.on('BluetoothEmulation.gattOperationReceived', (event) => {\n if (event.type !== 'connection') {\n return;\n }\n this.#eventManager.registerEvent({\n type: 'event',\n method: 'bluetooth.gattConnectionAttempted',\n params: {\n context: cdpTarget.id,\n address: event.address,\n },\n }, cdpTarget.id);\n });\n }\n async handleRequestDevicePrompt(params) {\n const context = this.#browsingContextStorage.getContext(params.context);\n if (params.accept) {\n await context.cdpTarget.cdpClient.sendCommand('DeviceAccess.selectPrompt', {\n id: params.prompt,\n deviceId: params.device,\n });\n }\n else {\n await context.cdpTarget.cdpClient.sendCommand('DeviceAccess.cancelPrompt', {\n id: params.prompt,\n });\n }\n return {};\n }\n}\nexports.BluetoothProcessor = BluetoothProcessor;\n//# sourceMappingURL=BluetoothProcessor.js.map","\"use strict\";\n/**\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserContextConfig = void 0;\n/**\n * Represents a user context configurations. Each new CDP target of the given user context\n * will be configured with this.\n */\nclass UserContextConfig {\n /**\n * The ID of the user context.\n */\n userContextId;\n viewport;\n devicePixelRatio;\n geolocation;\n constructor(userContextId) {\n this.userContextId = userContextId;\n }\n}\nexports.UserContextConfig = UserContextConfig;\n//# sourceMappingURL=UserContextConfig.js.map","\"use strict\";\n/**\n * Copyright 2025 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserContextStorage = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst UserContextConfig_js_1 = require(\"./UserContextConfig.js\");\nclass UserContextStorage {\n #browserClient;\n #userConfigMap = new Map();\n constructor(browserClient) {\n this.#browserClient = browserClient;\n }\n async getUserContexts() {\n const result = await this.#browserClient.sendCommand('Target.getBrowserContexts');\n return [\n {\n userContext: 'default',\n },\n ...result.browserContextIds.map((id) => {\n return {\n userContext: id,\n };\n }),\n ];\n }\n getConfig(userContextId) {\n const userContextConfig = this.#userConfigMap.get(userContextId) ??\n new UserContextConfig_js_1.UserContextConfig(userContextId);\n this.#userConfigMap.set(userContextId, userContextConfig);\n return userContextConfig;\n }\n async verifyUserContextIdList(userContextIds) {\n const foundContexts = new Set();\n if (!userContextIds.length) {\n return foundContexts;\n }\n const userContexts = await this.getUserContexts();\n const knownUserContextIds = new Set(userContexts.map((userContext) => userContext.userContext));\n for (const userContextId of userContextIds) {\n if (!knownUserContextIds.has(userContextId)) {\n throw new protocol_js_1.NoSuchUserContextException(`User context ${userContextId} not found`);\n }\n foundContexts.add(userContextId);\n }\n return foundContexts;\n }\n}\nexports.UserContextStorage = UserContextStorage;\n//# sourceMappingURL=UserContextStorage.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Deferred = void 0;\nclass Deferred {\n #isFinished = false;\n #promise;\n #result;\n #resolve;\n #reject;\n get isFinished() {\n return this.#isFinished;\n }\n get result() {\n if (!this.#isFinished) {\n throw new Error('Deferred is not finished yet');\n }\n return this.#result;\n }\n constructor() {\n this.#promise = new Promise((resolve, reject) => {\n this.#resolve = resolve;\n this.#reject = reject;\n });\n // Needed to avoid `Uncaught (in promise)`. The promises returned by `then`\n // and `catch` will be rejected anyway.\n this.#promise.catch((_error) => {\n // Intentionally empty.\n });\n }\n then(onFulfilled, onRejected) {\n return this.#promise.then(onFulfilled, onRejected);\n }\n catch(onRejected) {\n return this.#promise.catch(onRejected);\n }\n resolve(value) {\n this.#result = value;\n if (!this.#isFinished) {\n this.#isFinished = true;\n this.#resolve(value);\n }\n }\n reject(reason) {\n if (!this.#isFinished) {\n this.#isFinished = true;\n this.#reject(reason);\n }\n }\n finally(onFinally) {\n return this.#promise.finally(onFinally);\n }\n [Symbol.toStringTag] = 'Promise';\n}\nexports.Deferred = Deferred;\n//# sourceMappingURL=Deferred.js.map","\"use strict\";\n/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTimestamp = getTimestamp;\nfunction getTimestamp() {\n // `timestamp` from the event is MonotonicTime, not real time, so\n // the best Mapper can do is to set the timestamp to the epoch time\n // of the event arrived.\n // https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-MonotonicTime\n return new Date().getTime();\n}\n//# sourceMappingURL=time.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.inchesFromCm = inchesFromCm;\n/** @return Given an input in cm, convert it to inches. */\nfunction inchesFromCm(cm) {\n return cm / 2.54;\n}\n//# sourceMappingURL=unitConversions.js.map","\"use strict\";\n/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSharedId = getSharedId;\nexports.parseSharedId = parseSharedId;\nconst SHARED_ID_DIVIDER = '_element_';\nfunction getSharedId(frameId, documentId, backendNodeId) {\n return `f.${frameId}.d.${documentId}.e.${backendNodeId}`;\n}\nfunction parseLegacySharedId(sharedId) {\n const match = sharedId.match(new RegExp(`(.*)${SHARED_ID_DIVIDER}(.*)`));\n if (!match) {\n // SharedId is incorrectly formatted.\n return null;\n }\n const documentId = match[1];\n const elementId = match[2];\n if (documentId === undefined || elementId === undefined) {\n return null;\n }\n const backendNodeId = parseInt(elementId ?? '');\n if (isNaN(backendNodeId)) {\n return null;\n }\n return {\n documentId,\n backendNodeId,\n };\n}\nfunction parseSharedId(sharedId) {\n // TODO: remove legacy check once ChromeDriver provides sharedId in the new format.\n const legacyFormattedSharedId = parseLegacySharedId(sharedId);\n if (legacyFormattedSharedId !== null) {\n return { ...legacyFormattedSharedId, frameId: undefined };\n }\n const match = sharedId.match(/f\\.(.*)\\.d\\.(.*)\\.e\\.([0-9]*)/);\n if (!match) {\n // SharedId is incorrectly formatted.\n return null;\n }\n const frameId = match[1];\n const documentId = match[2];\n const elementId = match[3];\n if (frameId === undefined ||\n documentId === undefined ||\n elementId === undefined) {\n return null;\n }\n const backendNodeId = parseInt(elementId ?? '');\n if (isNaN(backendNodeId)) {\n return null;\n }\n return {\n frameId,\n documentId,\n backendNodeId,\n };\n}\n//# sourceMappingURL=SharedId.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Realm = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst log_js_1 = require(\"../../../utils/log.js\");\nconst uuid_js_1 = require(\"../../../utils/uuid.js\");\nconst ChannelProxy_js_1 = require(\"./ChannelProxy.js\");\nclass Realm {\n #cdpClient;\n #eventManager;\n #executionContextId;\n #logger;\n #origin;\n #realmId;\n #realmStorage;\n constructor(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage) {\n this.#cdpClient = cdpClient;\n this.#eventManager = eventManager;\n this.#executionContextId = executionContextId;\n this.#logger = logger;\n this.#origin = origin;\n this.#realmId = realmId;\n this.#realmStorage = realmStorage;\n this.#realmStorage.addRealm(this);\n }\n cdpToBidiValue(cdpValue, resultOwnership) {\n const bidiValue = this.serializeForBiDi(cdpValue.result.deepSerializedValue, new Map());\n if (cdpValue.result.objectId) {\n const objectId = cdpValue.result.objectId;\n if (resultOwnership === \"root\" /* Script.ResultOwnership.Root */) {\n // Extend BiDi value with `handle` based on required `resultOwnership`\n // and CDP response but not on the actual BiDi type.\n bidiValue.handle = objectId;\n // Remember all the handles sent to client.\n this.#realmStorage.knownHandlesToRealmMap.set(objectId, this.realmId);\n }\n else {\n // No need to await for the object to be released.\n void this.#releaseObject(objectId).catch((error) => this.#logger?.(log_js_1.LogType.debugError, error));\n }\n }\n return bidiValue;\n }\n /**\n * Relies on the CDP to implement proper BiDi serialization, except:\n * * CDP integer property `backendNodeId` is replaced with `sharedId` of\n * `{documentId}_element_{backendNodeId}`;\n * * CDP integer property `weakLocalObjectReference` is replaced with UUID `internalId`\n * using unique-per serialization `internalIdMap`.\n * * CDP type `platformobject` is replaced with `object`.\n * @param deepSerializedValue - CDP value to be converted to BiDi.\n * @param internalIdMap - Map from CDP integer `weakLocalObjectReference` to BiDi UUID\n * `internalId`.\n */\n serializeForBiDi(deepSerializedValue, internalIdMap) {\n if (Object.hasOwn(deepSerializedValue, 'weakLocalObjectReference')) {\n const weakLocalObjectReference = deepSerializedValue.weakLocalObjectReference;\n if (!internalIdMap.has(weakLocalObjectReference)) {\n internalIdMap.set(weakLocalObjectReference, (0, uuid_js_1.uuidv4)());\n }\n deepSerializedValue.internalId = internalIdMap.get(weakLocalObjectReference);\n delete deepSerializedValue['weakLocalObjectReference'];\n }\n if (deepSerializedValue.type === 'node' &&\n deepSerializedValue.value &&\n Object.hasOwn(deepSerializedValue.value, 'frameId')) {\n // `frameId` is not needed in BiDi as it is not yet specified.\n delete deepSerializedValue.value['frameId'];\n }\n // Platform object is a special case. It should have only `{type: object}`\n // without `value` field.\n if (deepSerializedValue.type === 'platformobject') {\n return { type: 'object' };\n }\n const bidiValue = deepSerializedValue.value;\n if (bidiValue === undefined) {\n return deepSerializedValue;\n }\n // Recursively update the nested values.\n if (['array', 'set', 'htmlcollection', 'nodelist'].includes(deepSerializedValue.type)) {\n for (const i in bidiValue) {\n bidiValue[i] = this.serializeForBiDi(bidiValue[i], internalIdMap);\n }\n }\n if (['object', 'map'].includes(deepSerializedValue.type)) {\n for (const i in bidiValue) {\n bidiValue[i] = [\n this.serializeForBiDi(bidiValue[i][0], internalIdMap),\n this.serializeForBiDi(bidiValue[i][1], internalIdMap),\n ];\n }\n }\n return deepSerializedValue;\n }\n get realmId() {\n return this.#realmId;\n }\n get executionContextId() {\n return this.#executionContextId;\n }\n get origin() {\n return this.#origin;\n }\n get source() {\n return {\n realm: this.realmId,\n };\n }\n get cdpClient() {\n return this.#cdpClient;\n }\n get baseInfo() {\n return {\n realm: this.realmId,\n origin: this.origin,\n };\n }\n async evaluate(expression, awaitPromise, resultOwnership = \"none\" /* Script.ResultOwnership.None */, serializationOptions = {}, userActivation = false, includeCommandLineApi = false) {\n const cdpEvaluateResult = await this.cdpClient.sendCommand('Runtime.evaluate', {\n contextId: this.executionContextId,\n expression,\n awaitPromise,\n serializationOptions: Realm.#getSerializationOptions(\"deep\" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, serializationOptions),\n userGesture: userActivation,\n includeCommandLineAPI: includeCommandLineApi,\n });\n if (cdpEvaluateResult.exceptionDetails) {\n return await this.#getExceptionResult(cdpEvaluateResult.exceptionDetails, 0, resultOwnership);\n }\n return {\n realm: this.realmId,\n result: this.cdpToBidiValue(cdpEvaluateResult, resultOwnership),\n type: 'success',\n };\n }\n #registerEvent(event) {\n if (this.associatedBrowsingContexts.length === 0) {\n this.#eventManager.registerGlobalEvent(event);\n }\n else {\n for (const browsingContext of this.associatedBrowsingContexts) {\n this.#eventManager.registerEvent(event, browsingContext.id);\n }\n }\n }\n initialize() {\n this.#registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.Script.EventNames.RealmCreated,\n params: this.realmInfo,\n });\n }\n /**\n * Serializes a given CDP object into BiDi, keeping references in the\n * target's `globalThis`.\n */\n async serializeCdpObject(cdpRemoteObject, resultOwnership) {\n // TODO: if the object is a primitive, return it directly without CDP roundtrip.\n const argument = Realm.#cdpRemoteObjectToCallArgument(cdpRemoteObject);\n const cdpValue = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((remoteObject) => remoteObject),\n awaitPromise: false,\n arguments: [argument],\n serializationOptions: {\n serialization: \"deep\" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */,\n },\n executionContextId: this.executionContextId,\n });\n return this.cdpToBidiValue(cdpValue, resultOwnership);\n }\n static #cdpRemoteObjectToCallArgument(cdpRemoteObject) {\n if (cdpRemoteObject.objectId !== undefined) {\n return { objectId: cdpRemoteObject.objectId };\n }\n if (cdpRemoteObject.unserializableValue !== undefined) {\n return { unserializableValue: cdpRemoteObject.unserializableValue };\n }\n return { value: cdpRemoteObject.value };\n }\n /**\n * Gets the string representation of an object. This is equivalent to\n * calling `toString()` on the object value.\n */\n async stringifyObject(cdpRemoteObject) {\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String(\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n (remoteObject) => String(remoteObject)),\n awaitPromise: false,\n arguments: [cdpRemoteObject],\n returnByValue: true,\n executionContextId: this.executionContextId,\n });\n return result.value;\n }\n async #flattenKeyValuePairs(mappingLocalValue) {\n const keyValueArray = await Promise.all(mappingLocalValue.map(async ([key, value]) => {\n let keyArg;\n if (typeof key === 'string') {\n // Key is a string.\n keyArg = { value: key };\n }\n else {\n // Key is a serialized value.\n keyArg = await this.deserializeForCdp(key);\n }\n const valueArg = await this.deserializeForCdp(value);\n return [keyArg, valueArg];\n }));\n return keyValueArray.flat();\n }\n async #flattenValueList(listLocalValue) {\n return await Promise.all(listLocalValue.map((localValue) => this.deserializeForCdp(localValue)));\n }\n async #serializeCdpExceptionDetails(cdpExceptionDetails, lineOffset, resultOwnership) {\n const callFrames = cdpExceptionDetails.stackTrace?.callFrames.map((frame) => ({\n url: frame.url,\n functionName: frame.functionName,\n lineNumber: frame.lineNumber - lineOffset,\n columnNumber: frame.columnNumber,\n })) ?? [];\n // Exception should always be there.\n const exception = cdpExceptionDetails.exception;\n return {\n exception: await this.serializeCdpObject(exception, resultOwnership),\n columnNumber: cdpExceptionDetails.columnNumber,\n lineNumber: cdpExceptionDetails.lineNumber - lineOffset,\n stackTrace: {\n callFrames,\n },\n text: (await this.stringifyObject(exception)) || cdpExceptionDetails.text,\n };\n }\n async callFunction(functionDeclaration, awaitPromise, thisLocalValue = {\n type: 'undefined',\n }, argumentsLocalValues = [], resultOwnership = \"none\" /* Script.ResultOwnership.None */, serializationOptions = {}, userActivation = false) {\n const callFunctionAndSerializeScript = `(...args) => {\n function callFunction(f, args) {\n const deserializedThis = args.shift();\n const deserializedArgs = args;\n return f.apply(deserializedThis, deserializedArgs);\n }\n return callFunction((\n ${functionDeclaration}\n ), args);\n }`;\n const thisAndArgumentsList = [\n await this.deserializeForCdp(thisLocalValue),\n ...(await Promise.all(argumentsLocalValues.map(async (argumentLocalValue) => await this.deserializeForCdp(argumentLocalValue)))),\n ];\n let cdpCallFunctionResult;\n try {\n cdpCallFunctionResult = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: callFunctionAndSerializeScript,\n awaitPromise,\n arguments: thisAndArgumentsList,\n serializationOptions: Realm.#getSerializationOptions(\"deep\" /* Protocol.Runtime.SerializationOptionsSerialization.Deep */, serializationOptions),\n executionContextId: this.executionContextId,\n userGesture: userActivation,\n });\n }\n catch (error) {\n // Heuristic to determine if the problem is in the argument.\n // The check can be done on the `deserialization` step, but this approach\n // helps to save round-trips.\n if (error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ &&\n [\n 'Could not find object with given id',\n 'Argument should belong to the same JavaScript world as target object',\n 'Invalid remote object id',\n ].includes(error.message)) {\n throw new protocol_js_1.NoSuchHandleException('Handle was not found.');\n }\n throw error;\n }\n if (cdpCallFunctionResult.exceptionDetails) {\n return await this.#getExceptionResult(cdpCallFunctionResult.exceptionDetails, 1, resultOwnership);\n }\n return {\n type: 'success',\n result: this.cdpToBidiValue(cdpCallFunctionResult, resultOwnership),\n realm: this.realmId,\n };\n }\n async deserializeForCdp(localValue) {\n if ('handle' in localValue && localValue.handle) {\n return { objectId: localValue.handle };\n // We tried to find a handle value but failed\n // This allows us to have exhaustive switch on `localValue.type`\n }\n else if ('handle' in localValue || 'sharedId' in localValue) {\n throw new protocol_js_1.NoSuchHandleException('Handle was not found.');\n }\n switch (localValue.type) {\n case 'undefined':\n return { unserializableValue: 'undefined' };\n case 'null':\n return { unserializableValue: 'null' };\n case 'string':\n return { value: localValue.value };\n case 'number':\n if (localValue.value === 'NaN') {\n return { unserializableValue: 'NaN' };\n }\n else if (localValue.value === '-0') {\n return { unserializableValue: '-0' };\n }\n else if (localValue.value === 'Infinity') {\n return { unserializableValue: 'Infinity' };\n }\n else if (localValue.value === '-Infinity') {\n return { unserializableValue: '-Infinity' };\n }\n return {\n value: localValue.value,\n };\n case 'boolean':\n return { value: Boolean(localValue.value) };\n case 'bigint':\n return {\n unserializableValue: `BigInt(${JSON.stringify(localValue.value)})`,\n };\n case 'date':\n return {\n unserializableValue: `new Date(Date.parse(${JSON.stringify(localValue.value)}))`,\n };\n case 'regexp':\n return {\n unserializableValue: `new RegExp(${JSON.stringify(localValue.value.pattern)}, ${JSON.stringify(localValue.value.flags)})`,\n };\n case 'map': {\n // TODO: If none of the nested keys and values has a remote\n // reference, serialize to `unserializableValue` without CDP roundtrip.\n const keyValueArray = await this.#flattenKeyValuePairs(localValue.value);\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((...args) => {\n const result = new Map();\n for (let i = 0; i < args.length; i += 2) {\n result.set(args[i], args[i + 1]);\n }\n return result;\n }),\n awaitPromise: false,\n arguments: keyValueArray,\n returnByValue: false,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `result.objectId` after using.\n return { objectId: result.objectId };\n }\n case 'object': {\n // TODO: If none of the nested keys and values has a remote\n // reference, serialize to `unserializableValue` without CDP roundtrip.\n const keyValueArray = await this.#flattenKeyValuePairs(localValue.value);\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((...args) => {\n const result = {};\n for (let i = 0; i < args.length; i += 2) {\n // Key should be either `string`, `number`, or `symbol`.\n const key = args[i];\n result[key] = args[i + 1];\n }\n return result;\n }),\n awaitPromise: false,\n arguments: keyValueArray,\n returnByValue: false,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `result.objectId` after using.\n return { objectId: result.objectId };\n }\n case 'array': {\n // TODO: If none of the nested items has a remote reference,\n // serialize to `unserializableValue` without CDP roundtrip.\n const args = await this.#flattenValueList(localValue.value);\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((...args) => args),\n awaitPromise: false,\n arguments: args,\n returnByValue: false,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `result.objectId` after using.\n return { objectId: result.objectId };\n }\n case 'set': {\n // TODO: if none of the nested items has a remote reference,\n // serialize to `unserializableValue` without CDP roundtrip.\n const args = await this.#flattenValueList(localValue.value);\n const { result } = await this.cdpClient.sendCommand('Runtime.callFunctionOn', {\n functionDeclaration: String((...args) => new Set(args)),\n awaitPromise: false,\n arguments: args,\n returnByValue: false,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `result.objectId` after using.\n return { objectId: result.objectId };\n }\n case 'channel': {\n const channelProxy = new ChannelProxy_js_1.ChannelProxy(localValue.value, this.#logger);\n const channelProxySendMessageHandle = await channelProxy.init(this, this.#eventManager);\n return { objectId: channelProxySendMessageHandle };\n }\n // TODO(#375): Dispose of nested objects.\n }\n // Intentionally outside to handle unknown types\n throw new Error(`Value ${JSON.stringify(localValue)} is not deserializable.`);\n }\n async #getExceptionResult(exceptionDetails, lineOffset, resultOwnership) {\n return {\n exceptionDetails: await this.#serializeCdpExceptionDetails(exceptionDetails, lineOffset, resultOwnership),\n realm: this.realmId,\n type: 'exception',\n };\n }\n static #getSerializationOptions(serialization, serializationOptions) {\n return {\n serialization,\n additionalParameters: Realm.#getAdditionalSerializationParameters(serializationOptions),\n ...Realm.#getMaxObjectDepth(serializationOptions),\n };\n }\n static #getAdditionalSerializationParameters(serializationOptions) {\n const additionalParameters = {};\n if (serializationOptions.maxDomDepth !== undefined) {\n additionalParameters['maxNodeDepth'] =\n serializationOptions.maxDomDepth === null\n ? 1000\n : serializationOptions.maxDomDepth;\n }\n if (serializationOptions.includeShadowTree !== undefined) {\n additionalParameters['includeShadowTree'] =\n serializationOptions.includeShadowTree;\n }\n return additionalParameters;\n }\n static #getMaxObjectDepth(serializationOptions) {\n return serializationOptions.maxObjectDepth === undefined ||\n serializationOptions.maxObjectDepth === null\n ? {}\n : { maxDepth: serializationOptions.maxObjectDepth };\n }\n async #releaseObject(handle) {\n try {\n await this.cdpClient.sendCommand('Runtime.releaseObject', {\n objectId: handle,\n });\n }\n catch (error) {\n // Heuristic to determine if the problem is in the unknown handler.\n // Ignore the error if so.\n if (!(error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ &&\n error.message === 'Invalid remote object id')) {\n throw error;\n }\n }\n }\n async disown(handle) {\n // Disowning an object from different realm does nothing.\n if (this.#realmStorage.knownHandlesToRealmMap.get(handle) !== this.realmId) {\n return;\n }\n await this.#releaseObject(handle);\n this.#realmStorage.knownHandlesToRealmMap.delete(handle);\n }\n dispose() {\n this.#registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.Script.EventNames.RealmDestroyed,\n params: {\n realm: this.realmId,\n },\n });\n }\n}\nexports.Realm = Realm;\n//# sourceMappingURL=Realm.js.map","\"use strict\";\n/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WindowRealm = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst Realm_js_1 = require(\"./Realm.js\");\nconst SharedId_js_1 = require(\"./SharedId.js\");\nclass WindowRealm extends Realm_js_1.Realm {\n #browsingContextId;\n #browsingContextStorage;\n sandbox;\n constructor(browsingContextId, browsingContextStorage, cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage, sandbox) {\n super(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage);\n this.#browsingContextId = browsingContextId;\n this.#browsingContextStorage = browsingContextStorage;\n this.sandbox = sandbox;\n this.initialize();\n }\n #getBrowsingContextId(navigableId) {\n const maybeBrowsingContext = this.#browsingContextStorage\n .getAllContexts()\n .find((context) => context.navigableId === navigableId);\n return maybeBrowsingContext?.id ?? 'UNKNOWN';\n }\n get browsingContext() {\n return this.#browsingContextStorage.getContext(this.#browsingContextId);\n }\n get associatedBrowsingContexts() {\n return [this.browsingContext];\n }\n get realmType() {\n return 'window';\n }\n get realmInfo() {\n return {\n ...this.baseInfo,\n type: this.realmType,\n context: this.#browsingContextId,\n sandbox: this.sandbox,\n };\n }\n get source() {\n return {\n realm: this.realmId,\n context: this.browsingContext.id,\n };\n }\n serializeForBiDi(deepSerializedValue, internalIdMap) {\n const bidiValue = deepSerializedValue.value;\n if (deepSerializedValue.type === 'node' && bidiValue !== undefined) {\n if (Object.hasOwn(bidiValue, 'backendNodeId')) {\n let navigableId = this.browsingContext.navigableId ?? 'UNKNOWN';\n if (Object.hasOwn(bidiValue, 'loaderId')) {\n // `loaderId` should be always there after ~2024-03-05, when\n // https://crrev.com/c/5116240 reaches stable.\n // TODO: remove the check after the date.\n navigableId = bidiValue.loaderId;\n delete bidiValue['loaderId'];\n }\n deepSerializedValue.sharedId =\n (0, SharedId_js_1.getSharedId)(this.#getBrowsingContextId(navigableId), navigableId, bidiValue.backendNodeId);\n delete bidiValue['backendNodeId'];\n }\n if (Object.hasOwn(bidiValue, 'children')) {\n for (const i in bidiValue.children) {\n bidiValue.children[i] = this.serializeForBiDi(bidiValue.children[i], internalIdMap);\n }\n }\n if (Object.hasOwn(bidiValue, 'shadowRoot') &&\n bidiValue.shadowRoot !== null) {\n bidiValue.shadowRoot = this.serializeForBiDi(bidiValue.shadowRoot, internalIdMap);\n }\n // `namespaceURI` can be is either `null` or non-empty string.\n if (bidiValue.namespaceURI === '') {\n bidiValue.namespaceURI = null;\n }\n }\n return super.serializeForBiDi(deepSerializedValue, internalIdMap);\n }\n async deserializeForCdp(localValue) {\n if ('sharedId' in localValue && localValue.sharedId) {\n const parsedSharedId = (0, SharedId_js_1.parseSharedId)(localValue.sharedId);\n if (parsedSharedId === null) {\n throw new protocol_js_1.NoSuchNodeException(`SharedId \"${localValue.sharedId}\" was not found.`);\n }\n const { documentId, backendNodeId } = parsedSharedId;\n // TODO: add proper validation if the element is accessible from the current realm.\n if (this.browsingContext.navigableId !== documentId) {\n throw new protocol_js_1.NoSuchNodeException(`SharedId \"${localValue.sharedId}\" belongs to different document. Current document is ${this.browsingContext.navigableId}.`);\n }\n try {\n const { object } = await this.cdpClient.sendCommand('DOM.resolveNode', {\n backendNodeId,\n executionContextId: this.executionContextId,\n });\n // TODO(#375): Release `obj.object.objectId` after using.\n return { objectId: object.objectId };\n }\n catch (error) {\n // Heuristic to detect \"no such node\" exception. Based on the specific\n // CDP implementation.\n if (error.code === -32000 /* CdpErrorConstants.GENERIC_ERROR */ &&\n error.message === 'No node with given id found') {\n throw new protocol_js_1.NoSuchNodeException(`SharedId \"${localValue.sharedId}\" was not found.`);\n }\n throw new protocol_js_1.UnknownErrorException(error.message, error.stack);\n }\n }\n return await super.deserializeForCdp(localValue);\n }\n async evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation, includeCommandLineApi) {\n await this.#browsingContextStorage\n .getContext(this.#browsingContextId)\n .targetUnblockedOrThrow();\n return await super.evaluate(expression, awaitPromise, resultOwnership, serializationOptions, userActivation, includeCommandLineApi);\n }\n async callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation) {\n await this.#browsingContextStorage\n .getContext(this.#browsingContextId)\n .targetUnblockedOrThrow();\n return await super.callFunction(functionDeclaration, awaitPromise, thisLocalValue, argumentsLocalValues, resultOwnership, serializationOptions, userActivation);\n }\n}\nexports.WindowRealm = WindowRealm;\n//# sourceMappingURL=WindowRealm.js.map","\"use strict\";\n/*\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.urlMatchesAboutBlank = urlMatchesAboutBlank;\n/**\n * A URL matches about:blank if its scheme is \"about\", its path contains a single string\n * \"blank\", its username and password are the empty string, and its host is null.\n * https://html.spec.whatwg.org/multipage/urls-and-fetching.html#matches-about:blank\n * @param {string} url\n * @return {boolean}\n */\nfunction urlMatchesAboutBlank(url) {\n // An empty string is a special case, and considered to be about:blank.\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#window-open-steps\n if (url === '') {\n return true;\n }\n try {\n const parsedUrl = new URL(url);\n const schema = parsedUrl.protocol.replace(/:$/, '');\n return (schema.toLowerCase() === 'about' &&\n parsedUrl.pathname.toLowerCase() === 'blank' &&\n parsedUrl.username === '' &&\n parsedUrl.password === '' &&\n parsedUrl.host === '');\n }\n catch (err) {\n // Wrong URL considered do not match about:blank.\n if (err instanceof TypeError) {\n return false;\n }\n // Re-throw other unexpected errors.\n throw err;\n }\n}\n//# sourceMappingURL=urlHelpers.js.map","\"use strict\";\n/*\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NavigationTracker = exports.NavigationState = exports.NavigationResult = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst Deferred_js_1 = require(\"../../../utils/Deferred.js\");\nconst log_js_1 = require(\"../../../utils/log.js\");\nconst time_js_1 = require(\"../../../utils/time.js\");\nconst urlHelpers_js_1 = require(\"../../../utils/urlHelpers.js\");\nconst uuid_js_1 = require(\"../../../utils/uuid.js\");\nclass NavigationResult {\n eventName;\n message;\n constructor(eventName, message) {\n this.eventName = eventName;\n this.message = message;\n }\n}\nexports.NavigationResult = NavigationResult;\nclass NavigationState {\n navigationId = (0, uuid_js_1.uuidv4)();\n #browsingContextId;\n #started = false;\n #finished = new Deferred_js_1.Deferred();\n url;\n loaderId;\n #isInitial;\n #eventManager;\n committed = new Deferred_js_1.Deferred();\n isFragmentNavigation;\n get finished() {\n return this.#finished;\n }\n constructor(url, browsingContextId, isInitial, eventManager) {\n this.#browsingContextId = browsingContextId;\n this.url = url;\n this.#isInitial = isInitial;\n this.#eventManager = eventManager;\n }\n navigationInfo() {\n return {\n context: this.#browsingContextId,\n navigation: this.navigationId,\n timestamp: (0, time_js_1.getTimestamp)(),\n url: this.url,\n };\n }\n start() {\n if (\n // Initial navigation should not be reported.\n !this.#isInitial &&\n // No need in reporting started navigation twice.\n !this.#started &&\n // No need for reporting fragment navigations. Step 13 vs step 16 of the spec:\n // https://html.spec.whatwg.org/#beginning-navigation:webdriver-bidi-navigation-started\n !this.isFragmentNavigation) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.NavigationStarted,\n params: this.navigationInfo(),\n }, this.#browsingContextId);\n }\n this.#started = true;\n }\n #finish(navigationResult) {\n this.#started = true;\n if (!this.#isInitial &&\n !this.#finished.isFinished &&\n navigationResult.eventName !== \"browsingContext.load\" /* NavigationEventName.Load */) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: navigationResult.eventName,\n params: this.navigationInfo(),\n }, this.#browsingContextId);\n }\n this.#finished.resolve(navigationResult);\n }\n frameNavigated() {\n this.committed.resolve();\n if (!this.#isInitial) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.NavigationCommitted,\n params: this.navigationInfo(),\n }, this.#browsingContextId);\n }\n }\n fragmentNavigated() {\n this.committed.resolve();\n this.#finish(new NavigationResult(\"browsingContext.fragmentNavigated\" /* NavigationEventName.FragmentNavigated */));\n }\n load() {\n this.#finish(new NavigationResult(\"browsingContext.load\" /* NavigationEventName.Load */));\n }\n fail(message) {\n this.#finish(new NavigationResult(this.committed.isFinished\n ? \"browsingContext.navigationAborted\" /* NavigationEventName.NavigationAborted */\n : \"browsingContext.navigationFailed\" /* NavigationEventName.NavigationFailed */, message));\n }\n}\nexports.NavigationState = NavigationState;\n/**\n * Keeps track of navigations. Details: http://go/webdriver:bidi-navigation\n */\nclass NavigationTracker {\n #eventManager;\n #logger;\n #loaderIdToNavigationsMap = new Map();\n #browsingContextId;\n /**\n * Last committed navigation is committed, but is not guaranteed to be finished, as it\n * can still wait for `load` or `DOMContentLoaded` events.\n */\n #lastCommittedNavigation;\n /**\n * Pending navigation is a navigation that is started but not yet committed.\n */\n #pendingNavigation;\n // Flags if the initial navigation to `about:blank` is in progress.\n #isInitialNavigation = true;\n constructor(url, browsingContextId, eventManager, logger) {\n this.#browsingContextId = browsingContextId;\n this.#eventManager = eventManager;\n this.#logger = logger;\n this.#isInitialNavigation = true;\n // The initial navigation is always committed.\n this.#lastCommittedNavigation = new NavigationState(url, browsingContextId, (0, urlHelpers_js_1.urlMatchesAboutBlank)(url), this.#eventManager);\n }\n /**\n * Returns current started ongoing navigation. It can be either a started pending\n * navigation, or one is already navigated.\n */\n get currentNavigationId() {\n if (this.#pendingNavigation?.isFragmentNavigation === false) {\n // Use pending navigation if it is started and it is not a fragment navigation.\n return this.#pendingNavigation.navigationId;\n }\n // If the pending navigation is a fragment one, or if it is not exists, the last\n // committed navigation should be used.\n return this.#lastCommittedNavigation.navigationId;\n }\n /**\n * Flags if the current navigation relates to the initial to `about:blank` navigation.\n */\n get isInitialNavigation() {\n return this.#isInitialNavigation;\n }\n /**\n * Url of the last navigated navigation.\n */\n get url() {\n return this.#lastCommittedNavigation.url;\n }\n /**\n * Creates a pending navigation e.g. when navigation command is called. Required to\n * provide navigation id before the actual navigation is started. It will be used when\n * navigation started. Can be aborted, failed, fragment navigated, or became a current\n * navigation.\n */\n createPendingNavigation(url, canBeInitialNavigation = false) {\n this.#logger?.(log_js_1.LogType.debug, 'createCommandNavigation');\n this.#isInitialNavigation =\n canBeInitialNavigation &&\n this.#isInitialNavigation &&\n (0, urlHelpers_js_1.urlMatchesAboutBlank)(url);\n this.#pendingNavigation?.fail('navigation canceled by concurrent navigation');\n const navigation = new NavigationState(url, this.#browsingContextId, this.#isInitialNavigation, this.#eventManager);\n this.#pendingNavigation = navigation;\n return navigation;\n }\n dispose() {\n this.#pendingNavigation?.fail('navigation canceled by context disposal');\n this.#lastCommittedNavigation.fail('navigation canceled by context disposal');\n }\n // Update the current url.\n onTargetInfoChanged(url) {\n this.#logger?.(log_js_1.LogType.debug, `onTargetInfoChanged ${url}`);\n this.#lastCommittedNavigation.url = url;\n }\n #getNavigationForFrameNavigated(url, loaderId) {\n if (this.#loaderIdToNavigationsMap.has(loaderId)) {\n return this.#loaderIdToNavigationsMap.get(loaderId);\n }\n if (this.#pendingNavigation !== undefined &&\n this.#pendingNavigation.loaderId === undefined) {\n // This can be a pending navigation to `about:blank` created by a command. Use the\n // pending navigation in this case.\n return this.#pendingNavigation;\n }\n // Create a new pending navigation.\n return this.createPendingNavigation(url, true);\n }\n /**\n * @param {string} unreachableUrl indicated the navigation is actually failed.\n */\n frameNavigated(url, loaderId, unreachableUrl) {\n this.#logger?.(log_js_1.LogType.debug, `frameNavigated ${url}`);\n if (unreachableUrl !== undefined) {\n // The navigation failed.\n const navigation = this.#loaderIdToNavigationsMap.get(loaderId) ??\n this.#pendingNavigation ??\n this.createPendingNavigation(unreachableUrl, true);\n navigation.url = unreachableUrl;\n navigation.start();\n navigation.fail('the requested url is unreachable');\n return;\n }\n const navigation = this.#getNavigationForFrameNavigated(url, loaderId);\n if (navigation !== this.#lastCommittedNavigation) {\n // Even though the `lastCommittedNavigation` is navigated, it still can be waiting\n // for `load` or `DOMContentLoaded` events.\n this.#lastCommittedNavigation.fail('navigation canceled by concurrent navigation');\n }\n navigation.url = url;\n navigation.loaderId = loaderId;\n this.#loaderIdToNavigationsMap.set(loaderId, navigation);\n navigation.start();\n navigation.frameNavigated();\n this.#lastCommittedNavigation = navigation;\n if (this.#pendingNavigation === navigation) {\n this.#pendingNavigation = undefined;\n }\n }\n navigatedWithinDocument(url, navigationType) {\n this.#logger?.(log_js_1.LogType.debug, `navigatedWithinDocument ${url}, ${navigationType}`);\n // Current navigation URL should be updated.\n this.#lastCommittedNavigation.url = url;\n if (navigationType !== 'fragment') {\n // TODO: check for other navigation types, like `javascript`.\n return;\n }\n // There is no way to map `navigatedWithinDocument` to a specific navigation. Consider\n // it is the pending navigation, if it is a fragment one.\n const fragmentNavigation = this.#pendingNavigation?.isFragmentNavigation === true\n ? this.#pendingNavigation\n : new NavigationState(url, this.#browsingContextId, false, this.#eventManager);\n // Finish ongoing navigation.\n fragmentNavigation.fragmentNavigated();\n if (fragmentNavigation === this.#pendingNavigation) {\n this.#pendingNavigation = undefined;\n }\n }\n /**\n * Required to mark navigation as fully complete.\n * TODO: navigation should be complete when it became the current one on\n * `Page.frameNavigated` or on navigating command finished with a new loader Id.\n */\n loadPageEvent(loaderId) {\n this.#logger?.(log_js_1.LogType.debug, 'loadPageEvent');\n // Even if it was an initial navigation, it is finished.\n this.#isInitialNavigation = false;\n this.#loaderIdToNavigationsMap.get(loaderId)?.load();\n }\n /**\n * Fail navigation due to navigation command failed.\n */\n failNavigation(navigation, errorText) {\n this.#logger?.(log_js_1.LogType.debug, 'failCommandNavigation');\n navigation.fail(errorText);\n }\n /**\n * Updates the navigation's `loaderId` and sets it as current one, if it is a\n * cross-document navigation.\n */\n navigationCommandFinished(navigation, loaderId) {\n this.#logger?.(log_js_1.LogType.debug, `finishCommandNavigation ${navigation.navigationId}, ${loaderId}`);\n if (loaderId !== undefined) {\n navigation.loaderId = loaderId;\n this.#loaderIdToNavigationsMap.set(loaderId, navigation);\n }\n navigation.isFragmentNavigation = loaderId === undefined;\n }\n frameStartedNavigating(url, loaderId, navigationType) {\n this.#logger?.(log_js_1.LogType.debug, `frameStartedNavigating ${url}, ${loaderId}`);\n if (this.#pendingNavigation &&\n this.#pendingNavigation?.loaderId !== undefined &&\n this.#pendingNavigation?.loaderId !== loaderId) {\n // If there is a pending navigation with loader id set, but not equal to the new\n // loader id, cancel pending navigation.\n this.#pendingNavigation?.fail('navigation canceled by concurrent navigation');\n this.#pendingNavigation = undefined;\n }\n if (this.#loaderIdToNavigationsMap.has(loaderId)) {\n const existingNavigation = this.#loaderIdToNavigationsMap.get(loaderId);\n // Navigation can be changed from `sameDocument` to `differentDocument`.\n existingNavigation.isFragmentNavigation =\n NavigationTracker.#isFragmentNavigation(navigationType);\n this.#pendingNavigation = existingNavigation;\n return;\n }\n const pendingNavigation = this.#pendingNavigation ?? this.createPendingNavigation(url, true);\n this.#loaderIdToNavigationsMap.set(loaderId, pendingNavigation);\n pendingNavigation.isFragmentNavigation =\n NavigationTracker.#isFragmentNavigation(navigationType);\n pendingNavigation.url = url;\n pendingNavigation.loaderId = loaderId;\n pendingNavigation.start();\n }\n static #isFragmentNavigation(navigationType) {\n // Page.frameStartedNavigating.navigationType can be one of the following values:\n // reload, reloadBypassingCache, restore, restoreWithPost, historySameDocument,\n // historyDifferentDocument, sameDocument, differentDocument.\n // https://chromedevtools.github.io/devtools-protocol/tot/Page/#event-frameStartedNavigating\n return ['historySameDocument', 'sameDocument'].includes(navigationType);\n }\n /**\n * If there is a navigation with the loaderId equals to the network request id, it means\n * that the navigation failed.\n */\n networkLoadingFailed(loaderId, errorText) {\n this.#loaderIdToNavigationsMap.get(loaderId)?.fail(errorText);\n }\n}\nexports.NavigationTracker = NavigationTracker;\n//# sourceMappingURL=NavigationTracker.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowsingContextImpl = void 0;\nexports.serializeOrigin = serializeOrigin;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst assert_js_1 = require(\"../../../utils/assert.js\");\nconst Deferred_js_1 = require(\"../../../utils/Deferred.js\");\nconst log_js_1 = require(\"../../../utils/log.js\");\nconst time_js_1 = require(\"../../../utils/time.js\");\nconst unitConversions_js_1 = require(\"../../../utils/unitConversions.js\");\nconst SharedId_js_1 = require(\"../script/SharedId.js\");\nconst WindowRealm_js_1 = require(\"../script/WindowRealm.js\");\nconst NavigationTracker_js_1 = require(\"./NavigationTracker.js\");\nclass BrowsingContextImpl {\n static LOGGER_PREFIX = `${log_js_1.LogType.debug}:browsingContext`;\n /** Direct children browsing contexts. */\n #children = new Set();\n /** The ID of this browsing context. */\n #id;\n userContext;\n /**\n * The ID of the parent browsing context.\n * If null, this is a top-level context.\n */\n #loaderId;\n #parentId = null;\n #originalOpener;\n #lifecycle = {\n DOMContentLoaded: new Deferred_js_1.Deferred(),\n load: new Deferred_js_1.Deferred(),\n };\n #cdpTarget;\n #defaultRealmDeferred = new Deferred_js_1.Deferred();\n #browsingContextStorage;\n #eventManager;\n #logger;\n #navigationTracker;\n #realmStorage;\n // The deferred will be resolved when the default realm is created.\n #unhandledPromptBehavior;\n // Set when the user prompt is opened. Required to provide the type in closing event.\n #lastUserPromptType;\n constructor(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, url, originalOpener, unhandledPromptBehavior, logger) {\n this.#cdpTarget = cdpTarget;\n this.#id = id;\n this.#parentId = parentId;\n this.userContext = userContext;\n this.#eventManager = eventManager;\n this.#browsingContextStorage = browsingContextStorage;\n this.#realmStorage = realmStorage;\n this.#unhandledPromptBehavior = unhandledPromptBehavior;\n this.#logger = logger;\n this.#originalOpener = originalOpener;\n this.#navigationTracker = new NavigationTracker_js_1.NavigationTracker(url, id, eventManager, logger);\n }\n static create(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, url, originalOpener, unhandledPromptBehavior, logger) {\n const context = new _a(id, parentId, userContext, cdpTarget, eventManager, browsingContextStorage, realmStorage, url, originalOpener, unhandledPromptBehavior, logger);\n context.#initListeners();\n browsingContextStorage.addContext(context);\n if (!context.isTopLevelContext()) {\n context.parent.addChild(context.id);\n }\n // Hold on the `contextCreated` event until the target is unblocked. This is required,\n // as the parent of the context can be set later in case of reconnecting to an\n // existing browser instance + OOPiF.\n eventManager.registerPromiseEvent(context.targetUnblockedOrThrow().then(() => {\n return {\n kind: 'success',\n value: {\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.ContextCreated,\n params: {\n ...context.serializeToBidiValue(),\n // Hack to provide the initial URL of the context, as it can be changed\n // between the page target is attached and unblocked, as the page is not\n // fully paused in MPArch session (https://crbug.com/372842894).\n // TODO: remove once https://crbug.com/372842894 is addressed.\n url,\n },\n },\n };\n }, (error) => {\n return {\n kind: 'error',\n error,\n };\n }), context.id, protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.ContextCreated);\n return context;\n }\n /**\n * @see https://html.spec.whatwg.org/multipage/document-sequences.html#navigable\n */\n get navigableId() {\n return this.#loaderId;\n }\n get navigationId() {\n return this.#navigationTracker.currentNavigationId;\n }\n dispose(emitContextDestroyed) {\n this.#navigationTracker.dispose();\n this.#realmStorage.deleteRealms({\n browsingContextId: this.id,\n });\n // Delete context from the parent.\n if (!this.isTopLevelContext()) {\n this.parent.#children.delete(this.id);\n }\n // Fail all ongoing navigations.\n this.#failLifecycleIfNotFinished();\n if (emitContextDestroyed) {\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.ContextDestroyed,\n params: this.serializeToBidiValue(null),\n }, this.id);\n }\n // Dispose children after the events are emitted.\n this.#deleteAllChildren();\n this.#eventManager.clearBufferedEvents(this.id);\n this.#browsingContextStorage.deleteContextById(this.id);\n }\n /** Returns the ID of this context. */\n get id() {\n return this.#id;\n }\n /** Returns the parent context ID. */\n get parentId() {\n return this.#parentId;\n }\n /** Sets the parent context ID and updates parent's children. */\n set parentId(parentId) {\n if (this.#parentId !== null) {\n this.#logger?.(log_js_1.LogType.debugError, 'Parent context already set');\n // Cannot do anything except logging, as throwing will stop event processing. So\n // just return,\n return;\n }\n this.#parentId = parentId;\n if (!this.isTopLevelContext()) {\n this.parent.addChild(this.id);\n }\n }\n /** Returns the parent context. */\n get parent() {\n if (this.parentId === null) {\n return null;\n }\n return this.#browsingContextStorage.getContext(this.parentId);\n }\n /** Returns all direct children contexts. */\n get directChildren() {\n return [...this.#children].map((id) => this.#browsingContextStorage.getContext(id));\n }\n /** Returns all children contexts, flattened. */\n get allChildren() {\n const children = this.directChildren;\n return children.concat(...children.map((child) => child.allChildren));\n }\n /**\n * Returns true if this is a top-level context.\n * This is the case whenever the parent context ID is null.\n */\n isTopLevelContext() {\n return this.#parentId === null;\n }\n get top() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let topContext = this;\n let parent = topContext.parent;\n while (parent) {\n topContext = parent;\n parent = topContext.parent;\n }\n return topContext;\n }\n addChild(childId) {\n this.#children.add(childId);\n }\n #deleteAllChildren(emitContextDestroyed = false) {\n this.directChildren.map((child) => child.dispose(emitContextDestroyed));\n }\n get cdpTarget() {\n return this.#cdpTarget;\n }\n updateCdpTarget(cdpTarget) {\n this.#cdpTarget = cdpTarget;\n this.#initListeners();\n }\n get url() {\n return this.#navigationTracker.url;\n }\n async lifecycleLoaded() {\n await this.#lifecycle.load;\n }\n async targetUnblockedOrThrow() {\n const result = await this.#cdpTarget.unblocked;\n if (result.kind === 'error') {\n throw result.error;\n }\n }\n async getOrCreateSandbox(sandbox) {\n if (sandbox === undefined || sandbox === '') {\n // Default realm is not guaranteed to be created at this point, so return a deferred.\n return await this.#defaultRealmDeferred;\n }\n let maybeSandboxes = this.#realmStorage.findRealms({\n browsingContextId: this.id,\n sandbox,\n });\n if (maybeSandboxes.length === 0) {\n await this.#cdpTarget.cdpClient.sendCommand('Page.createIsolatedWorld', {\n frameId: this.id,\n worldName: sandbox,\n });\n // `Runtime.executionContextCreated` should be emitted by the time the\n // previous command is done.\n maybeSandboxes = this.#realmStorage.findRealms({\n browsingContextId: this.id,\n sandbox,\n });\n (0, assert_js_1.assert)(maybeSandboxes.length !== 0);\n }\n // It's possible for more than one sandbox to be created due to provisional\n // frames. In this case, it's always the first one (i.e. the oldest one)\n // that is more relevant since the user may have set that one up already\n // through evaluation.\n return maybeSandboxes[0];\n }\n /**\n * Implements https://w3c.github.io/webdriver-bidi/#get-the-navigable-info.\n */\n serializeToBidiValue(maxDepth = 0, addParentField = true) {\n return {\n context: this.#id,\n url: this.url,\n userContext: this.userContext,\n originalOpener: this.#originalOpener ?? null,\n clientWindow: `${this.cdpTarget.windowId}`,\n children: maxDepth === null || maxDepth > 0\n ? this.directChildren.map((c) => c.serializeToBidiValue(maxDepth === null ? maxDepth : maxDepth - 1, false))\n : null,\n ...(addParentField ? { parent: this.#parentId } : {}),\n };\n }\n onTargetInfoChanged(params) {\n this.#navigationTracker.onTargetInfoChanged(params.targetInfo.url);\n }\n #initListeners() {\n this.#cdpTarget.cdpClient.on('Network.loadingFailed', (params) => {\n // Detect navigation errors like `net::ERR_BLOCKED_BY_RESPONSE`.\n // Network related to navigation has request id equals to navigation's loader id.\n this.#navigationTracker.networkLoadingFailed(params.requestId, params.errorText);\n });\n this.#cdpTarget.cdpClient.on('Page.fileChooserOpened', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n if (this.#loaderId === undefined) {\n this.#logger?.(log_js_1.LogType.debugError, 'LoaderId should be defined when file upload is shown', params);\n return;\n }\n const element = params.backendNodeId === undefined\n ? undefined\n : {\n sharedId: (0, SharedId_js_1.getSharedId)(this.id, this.#loaderId, params.backendNodeId),\n };\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.Input.EventNames.FileDialogOpened,\n params: {\n context: this.id,\n multiple: params.mode === 'selectMultiple',\n element,\n },\n }, this.id);\n });\n this.#cdpTarget.cdpClient.on('Page.frameNavigated', (params) => {\n if (this.id !== params.frame.id) {\n return;\n }\n this.#navigationTracker.frameNavigated(params.frame.url + (params.frame.urlFragment ?? ''), params.frame.loaderId, \n // `unreachableUrl` indicates if the navigation failed.\n params.frame.unreachableUrl);\n // At the point the page is initialized, all the nested iframes from the\n // previous page are detached and realms are destroyed.\n // Delete children from context.\n this.#deleteAllChildren();\n this.#documentChanged(params.frame.loaderId);\n });\n this.#cdpTarget.cdpClient.on('Page.frameStartedNavigating', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n this.#navigationTracker.frameStartedNavigating(params.url, params.loaderId, params.navigationType);\n });\n this.#cdpTarget.cdpClient.on('Page.navigatedWithinDocument', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n this.#navigationTracker.navigatedWithinDocument(params.url, params.navigationType);\n if (params.navigationType === 'historyApi') {\n this.#eventManager.registerEvent({\n type: 'event',\n method: 'browsingContext.historyUpdated',\n params: {\n context: this.id,\n url: this.#navigationTracker.url,\n },\n }, this.id);\n return;\n }\n });\n this.#cdpTarget.cdpClient.on('Page.lifecycleEvent', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n if (params.name === 'init') {\n this.#documentChanged(params.loaderId);\n return;\n }\n if (params.name === 'commit') {\n this.#loaderId = params.loaderId;\n return;\n }\n // If mapper attached to the page late, it might miss init and\n // commit events. In that case, save the first loaderId for this\n // frameId.\n if (!this.#loaderId) {\n this.#loaderId = params.loaderId;\n }\n // Ignore event from not current navigation.\n if (params.loaderId !== this.#loaderId) {\n return;\n }\n switch (params.name) {\n case 'DOMContentLoaded':\n if (!this.#navigationTracker.isInitialNavigation) {\n // Do not emit for the initial navigation.\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.DomContentLoaded,\n params: {\n context: this.id,\n navigation: this.#navigationTracker.currentNavigationId,\n timestamp: (0, time_js_1.getTimestamp)(),\n url: this.#navigationTracker.url,\n },\n }, this.id);\n }\n this.#lifecycle.DOMContentLoaded.resolve();\n break;\n case 'load':\n if (!this.#navigationTracker.isInitialNavigation) {\n // Do not emit for the initial navigation.\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.Load,\n params: {\n context: this.id,\n navigation: this.#navigationTracker.currentNavigationId,\n timestamp: (0, time_js_1.getTimestamp)(),\n url: this.#navigationTracker.url,\n },\n }, this.id);\n }\n // The initial navigation is finished.\n this.#navigationTracker.loadPageEvent(params.loaderId);\n this.#lifecycle.load.resolve();\n break;\n }\n });\n this.#cdpTarget.cdpClient.on('Runtime.executionContextCreated', (params) => {\n const { auxData, name, uniqueId, id } = params.context;\n if (!auxData || auxData.frameId !== this.id) {\n return;\n }\n let origin;\n let sandbox;\n // Only these execution contexts are supported for now.\n switch (auxData.type) {\n case 'isolated':\n sandbox = name;\n // Sandbox should have the same origin as the context itself, but in CDP\n // it has an empty one.\n if (!this.#defaultRealmDeferred.isFinished) {\n this.#logger?.(log_js_1.LogType.debugError, 'Unexpectedly, isolated realm created before the default one');\n }\n origin = this.#defaultRealmDeferred.isFinished\n ? this.#defaultRealmDeferred.result.origin\n : // This fallback is not expected to be ever reached.\n '';\n break;\n case 'default':\n origin = serializeOrigin(params.context.origin);\n break;\n default:\n return;\n }\n const realm = new WindowRealm_js_1.WindowRealm(this.id, this.#browsingContextStorage, this.#cdpTarget.cdpClient, this.#eventManager, id, this.#logger, origin, uniqueId, this.#realmStorage, sandbox);\n if (auxData.isDefault) {\n this.#defaultRealmDeferred.resolve(realm);\n // Initialize ChannelProxy listeners for all the channels of all the\n // preload scripts related to this BrowsingContext.\n // TODO: extend for not default realms by the sandbox name.\n void Promise.all(this.#cdpTarget\n .getChannels()\n .map((channel) => channel.startListenerFromWindow(realm, this.#eventManager)));\n }\n });\n this.#cdpTarget.cdpClient.on('Runtime.executionContextDestroyed', (params) => {\n if (this.#defaultRealmDeferred.isFinished &&\n this.#defaultRealmDeferred.result.executionContextId ===\n params.executionContextId) {\n this.#defaultRealmDeferred = new Deferred_js_1.Deferred();\n }\n this.#realmStorage.deleteRealms({\n cdpSessionId: this.#cdpTarget.cdpSessionId,\n executionContextId: params.executionContextId,\n });\n });\n this.#cdpTarget.cdpClient.on('Runtime.executionContextsCleared', () => {\n if (!this.#defaultRealmDeferred.isFinished) {\n this.#defaultRealmDeferred.reject(new protocol_js_1.UnknownErrorException('execution contexts cleared'));\n }\n this.#defaultRealmDeferred = new Deferred_js_1.Deferred();\n this.#realmStorage.deleteRealms({\n cdpSessionId: this.#cdpTarget.cdpSessionId,\n });\n });\n this.#cdpTarget.cdpClient.on('Page.javascriptDialogClosed', (params) => {\n // Checking for `params.frameId` for comptaibility with Chrome\n // versions that do not have a frameId. TODO: remove once\n // https://crrev.com/c/6487891 is in stable.\n if (params.frameId && this.id !== params.frameId) {\n return;\n }\n if (!params.frameId &&\n this.#parentId &&\n this.#cdpTarget.cdpClient !==\n this.#browsingContextStorage.getContext(this.#parentId)?.cdpTarget\n .cdpClient) {\n // If CDP event `Page.javascriptDialogClosed` does not have a frameId, this\n // heuristic emits the event only for top-level per-cdp target context, ignoring\n // the event for same-process iframes. So the event will be emitted only once per\n // CDP target. TODO: remove once https://crrev.com/c/6487891 is in stable.\n return;\n }\n const accepted = params.result;\n if (this.#lastUserPromptType === undefined) {\n this.#logger?.(log_js_1.LogType.debugError, 'Unexpectedly no opening prompt event before closing one');\n }\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.UserPromptClosed,\n params: {\n context: this.id,\n accepted,\n // `lastUserPromptType` should never be undefined here, so fallback to\n // `UNKNOWN`. The fallback is required to prevent tests from hanging while\n // waiting for the closing event. The cast is required, as the `UNKNOWN` value\n // is not standard.\n type: this.#lastUserPromptType ??\n 'UNKNOWN',\n userText: accepted && params.userInput ? params.userInput : undefined,\n },\n }, this.id);\n this.#lastUserPromptType = undefined;\n });\n this.#cdpTarget.cdpClient.on('Page.javascriptDialogOpening', (params) => {\n // Checking for `params.frameId` for comptaibility with Chrome\n // versions that do not have a frameId. TODO: remove once\n // https://crrev.com/c/6487891 is in stable.\n if (params.frameId && this.id !== params.frameId) {\n return;\n }\n if (!params.frameId &&\n this.#parentId &&\n this.#cdpTarget.cdpClient !==\n this.#browsingContextStorage.getContext(this.#parentId)?.cdpTarget\n .cdpClient) {\n // If CDP event `Page.javascriptDialogClosed` does not have a frameId, this\n // heuristic emits the event only for top-level per-cdp target context, ignoring\n // the event for same-process iframes. So the event will be emitted only once per\n // CDP target. TODO: remove once https://crrev.com/c/6487891 is in stable.\n return;\n }\n const promptType = _a.#getPromptType(params.type);\n // Set the last prompt type to provide it in closing event.\n this.#lastUserPromptType = promptType;\n const promptHandler = this.#getPromptHandler(promptType);\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.UserPromptOpened,\n params: {\n context: this.id,\n handler: promptHandler,\n type: promptType,\n message: params.message,\n ...(params.type === 'prompt'\n ? { defaultValue: params.defaultPrompt }\n : {}),\n },\n }, this.id);\n switch (promptHandler) {\n // Based on `unhandledPromptBehavior`, check if the prompt should be handled\n // automatically (`accept`, `dismiss`) or wait for the user to do it.\n case \"accept\" /* Session.UserPromptHandlerType.Accept */:\n void this.handleUserPrompt(true);\n break;\n case \"dismiss\" /* Session.UserPromptHandlerType.Dismiss */:\n void this.handleUserPrompt(false);\n break;\n case \"ignore\" /* Session.UserPromptHandlerType.Ignore */:\n break;\n }\n });\n this.#cdpTarget.browserCdpClient.on('Browser.downloadWillBegin', (params) => {\n if (this.id !== params.frameId) {\n return;\n }\n this.#eventManager.registerEvent({\n type: 'event',\n method: protocol_js_1.ChromiumBidi.BrowsingContext.EventNames.DownloadWillBegin,\n params: {\n context: this.id,\n suggestedFilename: params.suggestedFilename,\n navigation: params.guid,\n timestamp: (0, time_js_1.getTimestamp)(),\n url: params.url,\n },\n }, this.id);\n });\n }\n static #getPromptType(cdpType) {\n switch (cdpType) {\n case 'alert':\n return \"alert\" /* BrowsingContext.UserPromptType.Alert */;\n case 'beforeunload':\n return \"beforeunload\" /* BrowsingContext.UserPromptType.Beforeunload */;\n case 'confirm':\n return \"confirm\" /* BrowsingContext.UserPromptType.Confirm */;\n case 'prompt':\n return \"prompt\" /* BrowsingContext.UserPromptType.Prompt */;\n }\n }\n #getPromptHandler(promptType) {\n const defaultPromptHandler = \"dismiss\" /* Session.UserPromptHandlerType.Dismiss */;\n switch (promptType) {\n case \"alert\" /* BrowsingContext.UserPromptType.Alert */:\n return (this.#unhandledPromptBehavior?.alert ??\n this.#unhandledPromptBehavior?.default ??\n defaultPromptHandler);\n case \"beforeunload\" /* BrowsingContext.UserPromptType.Beforeunload */:\n return (this.#unhandledPromptBehavior?.beforeUnload ??\n this.#unhandledPromptBehavior?.default ??\n \"accept\" /* Session.UserPromptHandlerType.Accept */);\n case \"confirm\" /* BrowsingContext.UserPromptType.Confirm */:\n return (this.#unhandledPromptBehavior?.confirm ??\n this.#unhandledPromptBehavior?.default ??\n defaultPromptHandler);\n case \"prompt\" /* BrowsingContext.UserPromptType.Prompt */:\n return (this.#unhandledPromptBehavior?.prompt ??\n this.#unhandledPromptBehavior?.default ??\n defaultPromptHandler);\n }\n }\n #documentChanged(loaderId) {\n if (loaderId === undefined || this.#loaderId === loaderId) {\n return;\n }\n // Document changed.\n this.#resetLifecycleIfFinished();\n this.#loaderId = loaderId;\n // Delete all child iframes and notify about top level destruction.\n this.#deleteAllChildren(true);\n }\n #resetLifecycleIfFinished() {\n if (this.#lifecycle.DOMContentLoaded.isFinished) {\n this.#lifecycle.DOMContentLoaded = new Deferred_js_1.Deferred();\n }\n else {\n this.#logger?.(_a.LOGGER_PREFIX, 'Document changed (DOMContentLoaded)');\n }\n if (this.#lifecycle.load.isFinished) {\n this.#lifecycle.load = new Deferred_js_1.Deferred();\n }\n else {\n this.#logger?.(_a.LOGGER_PREFIX, 'Document changed (load)');\n }\n }\n #failLifecycleIfNotFinished() {\n if (!this.#lifecycle.DOMContentLoaded.isFinished) {\n this.#lifecycle.DOMContentLoaded.reject(new protocol_js_1.UnknownErrorException('navigation canceled'));\n }\n if (!this.#lifecycle.load.isFinished) {\n this.#lifecycle.load.reject(new protocol_js_1.UnknownErrorException('navigation canceled'));\n }\n }\n async navigate(url, wait) {\n try {\n new URL(url);\n }\n catch {\n throw new protocol_js_1.InvalidArgumentException(`Invalid URL: ${url}`);\n }\n const navigationState = this.#navigationTracker.createPendingNavigation(url);\n // Navigate and wait for the result. If the navigation fails, the error event is\n // emitted and the promise is rejected.\n const cdpNavigatePromise = (async () => {\n const cdpNavigateResult = await this.#cdpTarget.cdpClient.sendCommand('Page.navigate', {\n url,\n frameId: this.id,\n });\n if (cdpNavigateResult.errorText) {\n // If navigation failed, no pending navigation is left.\n this.#navigationTracker.failNavigation(navigationState, cdpNavigateResult.errorText);\n throw new protocol_js_1.UnknownErrorException(cdpNavigateResult.errorText);\n }\n this.#navigationTracker.navigationCommandFinished(navigationState, cdpNavigateResult.loaderId);\n this.#documentChanged(cdpNavigateResult.loaderId);\n })();\n // Wait for either the navigation is finished or canceled by another navigation.\n const result = await Promise.race([\n // No `loaderId` means same-document navigation.\n this.#waitNavigation(wait, cdpNavigatePromise, navigationState),\n // Throw an error if the navigation is canceled.\n navigationState.finished,\n ]);\n if (result instanceof NavigationTracker_js_1.NavigationResult) {\n if (\n // TODO: check after decision on the spec is done:\n // https://github.com/w3c/webdriver-bidi/issues/799.\n result.eventName === \"browsingContext.navigationAborted\" /* NavigationEventName.NavigationAborted */ ||\n result.eventName === \"browsingContext.navigationFailed\" /* NavigationEventName.NavigationFailed */) {\n throw new protocol_js_1.UnknownErrorException(result.message ?? 'unknown exception');\n }\n }\n return {\n navigation: navigationState.navigationId,\n // Url can change due to redirects. Get the one from commandNavigation.\n url: navigationState.url,\n };\n }\n async #waitNavigation(wait, cdpCommandPromise, navigationState) {\n await Promise.all([navigationState.committed, cdpCommandPromise]);\n if (wait === \"none\" /* BrowsingContext.ReadinessState.None */) {\n return;\n }\n if (navigationState.isFragmentNavigation === true) {\n // After the cdp command is finished, the `fragmentNavigation` should be already\n // settled. If it's the fragment navigation, wait for the `navigationStatus` to be\n // finished, which happens after the fragment navigation happened. No need to wait for\n // DOM events.\n await navigationState.finished;\n return;\n }\n if (wait === \"interactive\" /* BrowsingContext.ReadinessState.Interactive */) {\n await this.#lifecycle.DOMContentLoaded;\n return;\n }\n if (wait === \"complete\" /* BrowsingContext.ReadinessState.Complete */) {\n await this.#lifecycle.load;\n return;\n }\n throw new protocol_js_1.InvalidArgumentException(`Wait condition ${wait} is not supported`);\n }\n // TODO: support concurrent navigations analogous to `navigate`.\n async reload(ignoreCache, wait) {\n await this.targetUnblockedOrThrow();\n this.#resetLifecycleIfFinished();\n const navigationState = this.#navigationTracker.createPendingNavigation(this.#navigationTracker.url);\n const cdpReloadPromise = this.#cdpTarget.cdpClient.sendCommand('Page.reload', {\n ignoreCache,\n });\n // Wait for either the navigation is finished or canceled by another navigation.\n const result = await Promise.race([\n // No `loaderId` means same-document navigation.\n this.#waitNavigation(wait, cdpReloadPromise, navigationState),\n // Throw an error if the navigation is canceled.\n navigationState.finished,\n ]);\n if (result instanceof NavigationTracker_js_1.NavigationResult) {\n if (result.eventName === \"browsingContext.navigationAborted\" /* NavigationEventName.NavigationAborted */ ||\n result.eventName === \"browsingContext.navigationFailed\" /* NavigationEventName.NavigationFailed */) {\n throw new protocol_js_1.UnknownErrorException(result.message ?? 'unknown exception');\n }\n }\n return {\n navigation: navigationState.navigationId,\n // Url can change due to redirects. Get the one from commandNavigation.\n url: navigationState.url,\n };\n }\n async setViewport(viewport, devicePixelRatio) {\n // Set the target's viewport.\n await this.cdpTarget.setViewport(viewport, devicePixelRatio);\n }\n async handleUserPrompt(accept, userText) {\n await this.#cdpTarget.cdpClient.sendCommand('Page.handleJavaScriptDialog', {\n accept: accept ?? true,\n promptText: userText,\n });\n }\n async activate() {\n await this.#cdpTarget.cdpClient.sendCommand('Page.bringToFront');\n }\n async captureScreenshot(params) {\n if (!this.isTopLevelContext()) {\n throw new protocol_js_1.UnsupportedOperationException(`Non-top-level 'context' (${params.context}) is currently not supported`);\n }\n const formatParameters = getImageFormatParameters(params);\n let captureBeyondViewport = false;\n let script;\n params.origin ??= 'viewport';\n switch (params.origin) {\n case 'document': {\n script = String(() => {\n const element = document.documentElement;\n return {\n x: 0,\n y: 0,\n width: element.scrollWidth,\n height: element.scrollHeight,\n };\n });\n captureBeyondViewport = true;\n break;\n }\n case 'viewport': {\n script = String(() => {\n const viewport = window.visualViewport;\n return {\n x: viewport.pageLeft,\n y: viewport.pageTop,\n width: viewport.width,\n height: viewport.height,\n };\n });\n break;\n }\n }\n const realm = await this.getOrCreateSandbox(undefined);\n const originResult = await realm.callFunction(script, false);\n (0, assert_js_1.assert)(originResult.type === 'success');\n const origin = deserializeDOMRect(originResult.result);\n (0, assert_js_1.assert)(origin);\n let rect = origin;\n if (params.clip) {\n const clip = params.clip;\n if (params.origin === 'viewport' && clip.type === 'box') {\n // For viewport origin, the clip is relative to the viewport, while the CDP\n // screenshot is relative to the document. So correction for the viewport position\n // is required.\n clip.x += origin.x;\n clip.y += origin.y;\n }\n rect = getIntersectionRect(await this.#parseRect(clip), origin);\n }\n if (rect.width === 0 || rect.height === 0) {\n throw new protocol_js_1.UnableToCaptureScreenException(`Unable to capture screenshot with zero dimensions: width=${rect.width}, height=${rect.height}`);\n }\n return await this.#cdpTarget.cdpClient.sendCommand('Page.captureScreenshot', {\n clip: { ...rect, scale: 1.0 },\n ...formatParameters,\n captureBeyondViewport,\n });\n }\n async print(params) {\n if (!this.isTopLevelContext()) {\n throw new protocol_js_1.UnsupportedOperationException('Printing of non-top level contexts is not supported');\n }\n const cdpParams = {};\n if (params.background !== undefined) {\n cdpParams.printBackground = params.background;\n }\n if (params.margin?.bottom !== undefined) {\n cdpParams.marginBottom = (0, unitConversions_js_1.inchesFromCm)(params.margin.bottom);\n }\n if (params.margin?.left !== undefined) {\n cdpParams.marginLeft = (0, unitConversions_js_1.inchesFromCm)(params.margin.left);\n }\n if (params.margin?.right !== undefined) {\n cdpParams.marginRight = (0, unitConversions_js_1.inchesFromCm)(params.margin.right);\n }\n if (params.margin?.top !== undefined) {\n cdpParams.marginTop = (0, unitConversions_js_1.inchesFromCm)(params.margin.top);\n }\n if (params.orientation !== undefined) {\n cdpParams.landscape = params.orientation === 'landscape';\n }\n if (params.page?.height !== undefined) {\n cdpParams.paperHeight = (0, unitConversions_js_1.inchesFromCm)(params.page.height);\n }\n if (params.page?.width !== undefined) {\n cdpParams.paperWidth = (0, unitConversions_js_1.inchesFromCm)(params.page.width);\n }\n if (params.pageRanges !== undefined) {\n for (const range of params.pageRanges) {\n if (typeof range === 'number') {\n continue;\n }\n const rangeParts = range.split('-');\n if (rangeParts.length < 1 || rangeParts.length > 2) {\n throw new protocol_js_1.InvalidArgumentException(`Invalid page range: ${range} is not a valid integer range.`);\n }\n if (rangeParts.length === 1) {\n void parseInteger(rangeParts[0] ?? '');\n continue;\n }\n let lowerBound;\n let upperBound;\n const [rangeLowerPart = '', rangeUpperPart = ''] = rangeParts;\n if (rangeLowerPart === '') {\n lowerBound = 1;\n }\n else {\n lowerBound = parseInteger(rangeLowerPart);\n }\n if (rangeUpperPart === '') {\n upperBound = Number.MAX_SAFE_INTEGER;\n }\n else {\n upperBound = parseInteger(rangeUpperPart);\n }\n if (lowerBound > upperBound) {\n throw new protocol_js_1.InvalidArgumentException(`Invalid page range: ${rangeLowerPart} > ${rangeUpperPart}`);\n }\n }\n cdpParams.pageRanges = params.pageRanges.join(',');\n }\n if (params.scale !== undefined) {\n cdpParams.scale = params.scale;\n }\n if (params.shrinkToFit !== undefined) {\n cdpParams.preferCSSPageSize = !params.shrinkToFit;\n }\n try {\n const result = await this.#cdpTarget.cdpClient.sendCommand('Page.printToPDF', cdpParams);\n return {\n data: result.data,\n };\n }\n catch (error) {\n // Effectively zero dimensions.\n if (error.message ===\n 'invalid print parameters: content area is empty') {\n throw new protocol_js_1.UnsupportedOperationException(error.message);\n }\n throw error;\n }\n }\n /**\n * See\n * https://w3c.github.io/webdriver-bidi/#:~:text=If%20command%20parameters%20contains%20%22clip%22%3A\n */\n async #parseRect(clip) {\n switch (clip.type) {\n case 'box':\n return { x: clip.x, y: clip.y, width: clip.width, height: clip.height };\n case 'element': {\n // TODO: #1213: Use custom sandbox specifically for Chromium BiDi\n const sandbox = await this.getOrCreateSandbox(undefined);\n const result = await sandbox.callFunction(String((element) => {\n return element instanceof Element;\n }), false, { type: 'undefined' }, [clip.element]);\n if (result.type === 'exception') {\n throw new protocol_js_1.NoSuchElementException(`Element '${clip.element.sharedId}' was not found`);\n }\n (0, assert_js_1.assert)(result.result.type === 'boolean');\n if (!result.result.value) {\n throw new protocol_js_1.NoSuchElementException(`Node '${clip.element.sharedId}' is not an Element`);\n }\n {\n const result = await sandbox.callFunction(String((element) => {\n const rect = element.getBoundingClientRect();\n return {\n x: rect.x,\n y: rect.y,\n height: rect.height,\n width: rect.width,\n };\n }), false, { type: 'undefined' }, [clip.element]);\n (0, assert_js_1.assert)(result.type === 'success');\n const rect = deserializeDOMRect(result.result);\n if (!rect) {\n throw new protocol_js_1.UnableToCaptureScreenException(`Could not get bounding box for Element '${clip.element.sharedId}'`);\n }\n return rect;\n }\n }\n }\n }\n async close() {\n await this.#cdpTarget.cdpClient.sendCommand('Page.close');\n }\n async traverseHistory(delta) {\n if (delta === 0) {\n return;\n }\n const history = await this.#cdpTarget.cdpClient.sendCommand('Page.getNavigationHistory');\n const entry = history.entries[history.currentIndex + delta];\n if (!entry) {\n throw new protocol_js_1.NoSuchHistoryEntryException(`No history entry at delta ${delta}`);\n }\n await this.#cdpTarget.cdpClient.sendCommand('Page.navigateToHistoryEntry', {\n entryId: entry.id,\n });\n }\n async toggleModulesIfNeeded() {\n await Promise.all([\n this.#cdpTarget.toggleNetworkIfNeeded(),\n this.#cdpTarget.toggleDeviceAccessIfNeeded(),\n ]);\n }\n async locateNodes(params) {\n // TODO: create a dedicated sandbox instead of `#defaultRealm`.\n return await this.#locateNodesByLocator(await this.#defaultRealmDeferred, params.locator, params.startNodes ?? [], params.maxNodeCount, params.serializationOptions);\n }\n async #getLocatorDelegate(realm, locator, maxNodeCount, startNodes) {\n switch (locator.type) {\n case 'context':\n throw new Error('Unreachable');\n case 'css':\n return {\n functionDeclaration: String((cssSelector, maxNodeCount, ...startNodes) => {\n const locateNodesUsingCss = (element) => {\n if (!(element instanceof HTMLElement ||\n element instanceof Document ||\n element instanceof DocumentFragment)) {\n throw new Error('startNodes in css selector should be HTMLElement, Document or DocumentFragment');\n }\n return [...element.querySelectorAll(cssSelector)];\n };\n startNodes = startNodes.length > 0 ? startNodes : [document];\n const returnedNodes = startNodes\n .map((startNode) => \n // TODO: stop search early if `maxNodeCount` is reached.\n locateNodesUsingCss(startNode))\n .flat(1);\n return maxNodeCount === 0\n ? returnedNodes\n : returnedNodes.slice(0, maxNodeCount);\n }),\n argumentsLocalValues: [\n // `cssSelector`\n { type: 'string', value: locator.value },\n // `maxNodeCount` with `0` means no limit.\n { type: 'number', value: maxNodeCount ?? 0 },\n // `startNodes`\n ...startNodes,\n ],\n };\n case 'xpath':\n return {\n functionDeclaration: String((xPathSelector, maxNodeCount, ...startNodes) => {\n // https://w3c.github.io/webdriver-bidi/#locate-nodes-using-xpath\n const evaluator = new XPathEvaluator();\n const expression = evaluator.createExpression(xPathSelector);\n const locateNodesUsingXpath = (element) => {\n const xPathResult = expression.evaluate(element, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE);\n const returnedNodes = [];\n for (let i = 0; i < xPathResult.snapshotLength; i++) {\n returnedNodes.push(xPathResult.snapshotItem(i));\n }\n return returnedNodes;\n };\n startNodes = startNodes.length > 0 ? startNodes : [document];\n const returnedNodes = startNodes\n .map((startNode) => \n // TODO: stop search early if `maxNodeCount` is reached.\n locateNodesUsingXpath(startNode))\n .flat(1);\n return maxNodeCount === 0\n ? returnedNodes\n : returnedNodes.slice(0, maxNodeCount);\n }),\n argumentsLocalValues: [\n // `xPathSelector`\n { type: 'string', value: locator.value },\n // `maxNodeCount` with `0` means no limit.\n { type: 'number', value: maxNodeCount ?? 0 },\n // `startNodes`\n ...startNodes,\n ],\n };\n case 'innerText':\n // https://w3c.github.io/webdriver-bidi/#locate-nodes-using-inner-text\n if (locator.value === '') {\n throw new protocol_js_1.InvalidSelectorException('innerText locator cannot be empty');\n }\n return {\n functionDeclaration: String((innerTextSelector, fullMatch, ignoreCase, maxNodeCount, maxDepth, ...startNodes) => {\n const searchText = ignoreCase\n ? innerTextSelector.toUpperCase()\n : innerTextSelector;\n const locateNodesUsingInnerText = (node, currentMaxDepth) => {\n const returnedNodes = [];\n if (node instanceof DocumentFragment ||\n node instanceof Document) {\n const children = [...node.children];\n children.forEach((child) => \n // `currentMaxDepth` is not decremented intentionally according to\n // https://github.com/w3c/webdriver-bidi/pull/713.\n returnedNodes.push(...locateNodesUsingInnerText(child, currentMaxDepth)));\n return returnedNodes;\n }\n if (!(node instanceof HTMLElement)) {\n return [];\n }\n const element = node;\n const nodeInnerText = ignoreCase\n ? element.innerText?.toUpperCase()\n : element.innerText;\n if (!nodeInnerText.includes(searchText)) {\n return [];\n }\n const childNodes = [];\n for (const child of element.children) {\n if (child instanceof HTMLElement) {\n childNodes.push(child);\n }\n }\n if (childNodes.length === 0) {\n if (fullMatch && nodeInnerText === searchText) {\n returnedNodes.push(element);\n }\n else {\n if (!fullMatch) {\n // Note: `nodeInnerText.includes(searchText)` is already checked\n returnedNodes.push(element);\n }\n }\n }\n else {\n const childNodeMatches = \n // Don't search deeper if `maxDepth` is reached.\n currentMaxDepth <= 0\n ? []\n : childNodes\n .map((child) => locateNodesUsingInnerText(child, currentMaxDepth - 1))\n .flat(1);\n if (childNodeMatches.length === 0) {\n // Note: `nodeInnerText.includes(searchText)` is already checked\n if (!fullMatch || nodeInnerText === searchText) {\n returnedNodes.push(element);\n }\n }\n else {\n returnedNodes.push(...childNodeMatches);\n }\n }\n // TODO: stop search early if `maxNodeCount` is reached.\n return returnedNodes;\n };\n // TODO: stop search early if `maxNodeCount` is reached.\n startNodes = startNodes.length > 0 ? startNodes : [document];\n const returnedNodes = startNodes\n .map((startNode) => \n // TODO: stop search early if `maxNodeCount` is reached.\n locateNodesUsingInnerText(startNode, maxDepth))\n .flat(1);\n return maxNodeCount === 0\n ? returnedNodes\n : returnedNodes.slice(0, maxNodeCount);\n }),\n argumentsLocalValues: [\n // `innerTextSelector`\n { type: 'string', value: locator.value },\n // `fullMatch` with default `true`.\n { type: 'boolean', value: locator.matchType !== 'partial' },\n // `ignoreCase` with default `false`.\n { type: 'boolean', value: locator.ignoreCase === true },\n // `maxNodeCount` with `0` means no limit.\n { type: 'number', value: maxNodeCount ?? 0 },\n // `maxDepth` with default `1000` (same as default full serialization depth).\n { type: 'number', value: locator.maxDepth ?? 1000 },\n // `startNodes`\n ...startNodes,\n ],\n };\n case 'accessibility': {\n // https://w3c.github.io/webdriver-bidi/#locate-nodes-using-accessibility-attributes\n if (!locator.value.name && !locator.value.role) {\n throw new protocol_js_1.InvalidSelectorException('Either name or role has to be specified');\n }\n // The next two commands cause a11y caches for the target to be\n // preserved. We probably do not need to disable them if the\n // client is using a11y features, but we could by calling\n // Accessibility.disable.\n await Promise.all([\n this.#cdpTarget.cdpClient.sendCommand('Accessibility.enable'),\n this.#cdpTarget.cdpClient.sendCommand('Accessibility.getRootAXNode'),\n ]);\n const bindings = await realm.evaluate(\n /* expression=*/ '({getAccessibleName, getAccessibleRole})', \n /* awaitPromise=*/ false, \"root\" /* Script.ResultOwnership.Root */, \n /* serializationOptions= */ undefined, \n /* userActivation=*/ false, \n /* includeCommandLineApi=*/ true);\n if (bindings.type !== 'success') {\n throw new Error('Could not get bindings');\n }\n if (bindings.result.type !== 'object') {\n throw new Error('Could not get bindings');\n }\n return {\n functionDeclaration: String((name, role, bindings, maxNodeCount, ...startNodes) => {\n const returnedNodes = [];\n let aborted = false;\n function collect(contextNodes, selector) {\n if (aborted) {\n return;\n }\n for (const contextNode of contextNodes) {\n let match = true;\n if (selector.role) {\n const role = bindings.getAccessibleRole(contextNode);\n if (selector.role !== role) {\n match = false;\n }\n }\n if (selector.name) {\n const name = bindings.getAccessibleName(contextNode);\n if (selector.name !== name) {\n match = false;\n }\n }\n if (match) {\n if (maxNodeCount !== 0 &&\n returnedNodes.length === maxNodeCount) {\n aborted = true;\n break;\n }\n returnedNodes.push(contextNode);\n }\n const childNodes = [];\n for (const child of contextNode.children) {\n if (child instanceof HTMLElement) {\n childNodes.push(child);\n }\n }\n collect(childNodes, selector);\n }\n }\n startNodes =\n startNodes.length > 0\n ? startNodes\n : Array.from(document.documentElement.children).filter((c) => c instanceof HTMLElement);\n collect(startNodes, {\n role,\n name,\n });\n return returnedNodes;\n }),\n argumentsLocalValues: [\n // `name`\n { type: 'string', value: locator.value.name || '' },\n // `role`\n { type: 'string', value: locator.value.role || '' },\n // `bindings`.\n { handle: bindings.result.handle },\n // `maxNodeCount` with `0` means no limit.\n { type: 'number', value: maxNodeCount ?? 0 },\n // `startNodes`\n ...startNodes,\n ],\n };\n }\n }\n }\n async #locateNodesByLocator(realm, locator, startNodes, maxNodeCount, serializationOptions) {\n if (locator.type === 'context') {\n if (startNodes.length !== 0) {\n throw new protocol_js_1.InvalidArgumentException('Start nodes are not supported');\n }\n const contextId = locator.value.context;\n if (!contextId) {\n throw new protocol_js_1.InvalidSelectorException('Invalid context');\n }\n const context = this.#browsingContextStorage.getContext(contextId);\n const parent = context.parent;\n if (!parent) {\n throw new protocol_js_1.InvalidArgumentException('This context has no container');\n }\n try {\n const { backendNodeId } = await parent.#cdpTarget.cdpClient.sendCommand('DOM.getFrameOwner', {\n frameId: contextId,\n });\n const { object } = await parent.#cdpTarget.cdpClient.sendCommand('DOM.resolveNode', {\n backendNodeId,\n });\n const locatorResult = await realm.callFunction(`function () { return this; }`, false, { handle: object.objectId }, [], \"none\" /* Script.ResultOwnership.None */, serializationOptions);\n if (locatorResult.type === 'exception') {\n throw new Error('Unknown exception');\n }\n return { nodes: [locatorResult.result] };\n }\n catch {\n throw new protocol_js_1.InvalidArgumentException('Context does not exist');\n }\n }\n const locatorDelegate = await this.#getLocatorDelegate(realm, locator, maxNodeCount, startNodes);\n serializationOptions = {\n ...serializationOptions,\n // The returned object is an array of nodes, so no need in deeper JS serialization.\n maxObjectDepth: 1,\n };\n const locatorResult = await realm.callFunction(locatorDelegate.functionDeclaration, false, { type: 'undefined' }, locatorDelegate.argumentsLocalValues, \"none\" /* Script.ResultOwnership.None */, serializationOptions);\n if (locatorResult.type !== 'success') {\n this.#logger?.(_a.LOGGER_PREFIX, 'Failed locateNodesByLocator', locatorResult);\n // Heuristic to detect invalid selector for different types of selectors.\n if (\n // CSS selector.\n locatorResult.exceptionDetails.text?.endsWith('is not a valid selector.') ||\n // XPath selector.\n locatorResult.exceptionDetails.text?.endsWith('is not a valid XPath expression.')) {\n throw new protocol_js_1.InvalidSelectorException(`Not valid selector ${typeof locator.value === 'string' ? locator.value : JSON.stringify(locator.value)}`);\n }\n // Heuristic to detect if the `startNode` is not an `HTMLElement` in css selector.\n if (locatorResult.exceptionDetails.text ===\n 'Error: startNodes in css selector should be HTMLElement, Document or DocumentFragment') {\n throw new protocol_js_1.InvalidArgumentException('startNodes in css selector should be HTMLElement, Document or DocumentFragment');\n }\n throw new protocol_js_1.UnknownErrorException(`Unexpected error in selector script: ${locatorResult.exceptionDetails.text}`);\n }\n if (locatorResult.result.type !== 'array') {\n throw new protocol_js_1.UnknownErrorException(`Unexpected selector script result type: ${locatorResult.result.type}`);\n }\n // Check there are no non-node elements in the result.\n const nodes = locatorResult.result.value.map((value) => {\n if (value.type !== 'node') {\n throw new protocol_js_1.UnknownErrorException(`Unexpected selector script result element: ${value.type}`);\n }\n return value;\n });\n return { nodes };\n }\n}\nexports.BrowsingContextImpl = BrowsingContextImpl;\n_a = BrowsingContextImpl;\nfunction serializeOrigin(origin) {\n // https://html.spec.whatwg.org/multipage/origin.html#ascii-serialisation-of-an-origin\n if (['://', ''].includes(origin)) {\n origin = 'null';\n }\n return origin;\n}\nfunction getImageFormatParameters(params) {\n const { quality, type } = params.format ?? {\n type: 'image/png',\n };\n switch (type) {\n case 'image/png': {\n return { format: 'png' };\n }\n case 'image/jpeg': {\n return {\n format: 'jpeg',\n ...(quality === undefined ? {} : { quality: Math.round(quality * 100) }),\n };\n }\n case 'image/webp': {\n return {\n format: 'webp',\n ...(quality === undefined ? {} : { quality: Math.round(quality * 100) }),\n };\n }\n }\n throw new protocol_js_1.InvalidArgumentException(`Image format '${type}' is not a supported format`);\n}\nfunction deserializeDOMRect(result) {\n if (result.type !== 'object' || result.value === undefined) {\n return;\n }\n const x = result.value.find(([key]) => {\n return key === 'x';\n })?.[1];\n const y = result.value.find(([key]) => {\n return key === 'y';\n })?.[1];\n const height = result.value.find(([key]) => {\n return key === 'height';\n })?.[1];\n const width = result.value.find(([key]) => {\n return key === 'width';\n })?.[1];\n if (x?.type !== 'number' ||\n y?.type !== 'number' ||\n height?.type !== 'number' ||\n width?.type !== 'number') {\n return;\n }\n return {\n x: x.value,\n y: y.value,\n width: width.value,\n height: height.value,\n };\n}\n/** @see https://w3c.github.io/webdriver-bidi/#normalize-rect */\nfunction normalizeRect(box) {\n return {\n ...(box.width < 0\n ? {\n x: box.x + box.width,\n width: -box.width,\n }\n : {\n x: box.x,\n width: box.width,\n }),\n ...(box.height < 0\n ? {\n y: box.y + box.height,\n height: -box.height,\n }\n : {\n y: box.y,\n height: box.height,\n }),\n };\n}\n/** @see https://w3c.github.io/webdriver-bidi/#rectangle-intersection */\nfunction getIntersectionRect(first, second) {\n first = normalizeRect(first);\n second = normalizeRect(second);\n const x = Math.max(first.x, second.x);\n const y = Math.max(first.y, second.y);\n return {\n x,\n y,\n width: Math.max(Math.min(first.x + first.width, second.x + second.width) - x, 0),\n height: Math.max(Math.min(first.y + first.height, second.y + second.height) - y, 0),\n };\n}\nfunction parseInteger(value) {\n value = value.trim();\n if (!/^[0-9]+$/.test(value)) {\n throw new protocol_js_1.InvalidArgumentException(`Invalid integer: ${value}`);\n }\n return parseInt(value);\n}\n//# sourceMappingURL=BrowsingContextImpl.js.map","\"use strict\";\n/**\n * Copyright 2024 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkerRealm = void 0;\nconst Realm_js_1 = require(\"./Realm.js\");\nclass WorkerRealm extends Realm_js_1.Realm {\n #realmType;\n #ownerRealms;\n constructor(cdpClient, eventManager, executionContextId, logger, origin, ownerRealms, realmId, realmStorage, realmType) {\n super(cdpClient, eventManager, executionContextId, logger, origin, realmId, realmStorage);\n this.#ownerRealms = ownerRealms;\n this.#realmType = realmType;\n this.initialize();\n }\n get associatedBrowsingContexts() {\n return this.#ownerRealms.flatMap((realm) => realm.associatedBrowsingContexts);\n }\n get realmType() {\n return this.#realmType;\n }\n get source() {\n return {\n realm: this.realmId,\n // This is a hack to make Puppeteer able to track workers.\n // TODO: remove after Puppeteer tracks workers by owners and use the base version.\n context: this.associatedBrowsingContexts[0]?.id,\n };\n }\n get realmInfo() {\n const owners = this.#ownerRealms.map((realm) => realm.realmId);\n const { realmType } = this;\n switch (realmType) {\n case 'dedicated-worker': {\n const owner = owners[0];\n if (owner === undefined || owners.length !== 1) {\n throw new Error('Dedicated worker must have exactly one owner');\n }\n return {\n ...this.baseInfo,\n type: realmType,\n owners: [owner],\n };\n }\n case 'service-worker':\n case 'shared-worker': {\n return {\n ...this.baseInfo,\n type: realmType,\n };\n }\n }\n }\n}\nexports.WorkerRealm = WorkerRealm;\n//# sourceMappingURL=WorkerRealm.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logMessageFormatter = logMessageFormatter;\nexports.getRemoteValuesText = getRemoteValuesText;\nconst assert_js_1 = require(\"../../../utils/assert.js\");\nconst specifiers = ['%s', '%d', '%i', '%f', '%o', '%O', '%c'];\nfunction isFormatSpecifier(str) {\n return specifiers.some((spec) => str.includes(spec));\n}\n/**\n * @param args input remote values to be format printed\n * @return parsed text of the remote values in specific format\n */\nfunction logMessageFormatter(args) {\n let output = '';\n const argFormat = args[0].value.toString();\n const argValues = args.slice(1, undefined);\n const tokens = argFormat.split(new RegExp(specifiers.map((spec) => `(${spec})`).join('|'), 'g'));\n for (const token of tokens) {\n if (token === undefined || token === '') {\n continue;\n }\n if (isFormatSpecifier(token)) {\n const arg = argValues.shift();\n // raise an exception when less value is provided\n (0, assert_js_1.assert)(arg, `Less value is provided: \"${getRemoteValuesText(args, false)}\"`);\n if (token === '%s') {\n output += stringFromArg(arg);\n }\n else if (token === '%d' || token === '%i') {\n if (arg.type === 'bigint' ||\n arg.type === 'number' ||\n arg.type === 'string') {\n output += parseInt(arg.value.toString(), 10);\n }\n else {\n output += 'NaN';\n }\n }\n else if (token === '%f') {\n if (arg.type === 'bigint' ||\n arg.type === 'number' ||\n arg.type === 'string') {\n output += parseFloat(arg.value.toString());\n }\n else {\n output += 'NaN';\n }\n }\n else {\n // %o, %O, %c\n output += toJson(arg);\n }\n }\n else {\n output += token;\n }\n }\n // raise an exception when more value is provided\n if (argValues.length > 0) {\n throw new Error(`More value is provided: \"${getRemoteValuesText(args, false)}\"`);\n }\n return output;\n}\n/**\n * @param arg input remote value to be parsed\n * @return parsed text of the remote value\n *\n * input: {\"type\": \"number\", \"value\": 1}\n * output: 1\n *\n * input: {\"type\": \"string\", \"value\": \"abc\"}\n * output: \"abc\"\n *\n * input: {\"type\": \"object\", \"value\": [[\"id\", {\"type\": \"number\", \"value\": 1}]]}\n * output: '{\"id\": 1}'\n *\n * input: {\"type\": \"object\", \"value\": [[\"font-size\", {\"type\": \"string\", \"value\": \"20px\"}]]}\n * output: '{\"font-size\": \"20px\"}'\n */\nfunction toJson(arg) {\n // arg type validation\n if (arg.type !== 'array' &&\n arg.type !== 'bigint' &&\n arg.type !== 'date' &&\n arg.type !== 'number' &&\n arg.type !== 'object' &&\n arg.type !== 'string') {\n return stringFromArg(arg);\n }\n if (arg.type === 'bigint') {\n return `${arg.value.toString()}n`;\n }\n if (arg.type === 'number') {\n return arg.value.toString();\n }\n if (['date', 'string'].includes(arg.type)) {\n return JSON.stringify(arg.value);\n }\n if (arg.type === 'object') {\n return `{${arg.value\n .map((pair) => {\n return `${JSON.stringify(pair[0])}:${toJson(pair[1])}`;\n })\n .join(',')}}`;\n }\n if (arg.type === 'array') {\n return `[${arg.value?.map((val) => toJson(val)).join(',') ?? ''}]`;\n }\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n throw Error(`Invalid value type: ${arg}`);\n}\nfunction stringFromArg(arg) {\n if (!Object.hasOwn(arg, 'value')) {\n return arg.type;\n }\n switch (arg.type) {\n case 'string':\n case 'number':\n case 'boolean':\n case 'bigint':\n return String(arg.value);\n case 'regexp':\n return `/${arg.value.pattern}/${arg.value.flags ?? ''}`;\n case 'date':\n return new Date(arg.value).toString();\n case 'object':\n return `Object(${arg.value?.length ?? ''})`;\n case 'array':\n return `Array(${arg.value?.length ?? ''})`;\n case 'map':\n return `Map(${arg.value?.length})`;\n case 'set':\n return `Set(${arg.value?.length})`;\n default:\n return arg.type;\n }\n}\nfunction getRemoteValuesText(args, formatText) {\n const arg = args[0];\n if (!arg) {\n return '';\n }\n // if args[0] is a format specifier, format the args as output\n if (arg.type === 'string' &&\n isFormatSpecifier(arg.value.toString()) &&\n formatText) {\n return logMessageFormatter(args);\n }\n // if args[0] is not a format specifier, just join the args with \\u0020 (unicode 'SPACE')\n return args\n .map((arg) => {\n return stringFromArg(arg);\n })\n .join('\\u0020');\n}\n//# sourceMappingURL=logHelper.js.map","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogManager = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst log_js_1 = require(\"../../../utils/log.js\");\nconst logHelper_js_1 = require(\"./logHelper.js\");\n/** Converts CDP StackTrace object to BiDi StackTrace object. */\nfunction getBidiStackTrace(cdpStackTrace) {\n const stackFrames = cdpStackTrace?.callFrames.map((callFrame) => {\n return {\n columnNumber: callFrame.columnNumber,\n functionName: callFrame.functionName,\n lineNumber: callFrame.lineNumber,\n url: callFrame.url,\n };\n });\n return stackFrames ? { callFrames: stackFrames } : undefined;\n}\nfunction getLogLevel(consoleApiType) {\n if ([\"error\" /* Log.Level.Error */, 'assert'].includes(consoleApiType)) {\n return \"error\" /* Log.Level.Error */;\n }\n if ([\"debug\" /* Log.Level.Debug */, 'trace'].includes(consoleApiType)) {\n return \"debug\" /* Log.Level.Debug */;\n }\n if ([\"warn\" /* Log.Level.Warn */, 'warning'].includes(consoleApiType)) {\n return \"warn\" /* Log.Level.Warn */;\n }\n return \"info\" /* Log.Level.Info */;\n}\nfunction getLogMethod(consoleApiType) {\n switch (consoleApiType) {\n case 'warning':\n return 'warn';\n case 'startGroup':\n return 'group';\n case 'startGroupCollapsed':\n return 'groupCollapsed';\n case 'endGroup':\n return 'groupEnd';\n }\n return consoleApiType;\n}\nclass LogManager {\n #eventManager;\n #realmStorage;\n #cdpTarget;\n #logger;\n constructor(cdpTarget, realmStorage, eventManager, logger) {\n this.#cdpTarget = cdpTarget;\n this.#realmStorage = realmStorage;\n this.#eventManager = eventManager;\n this.#logger = logger;\n }\n static create(cdpTarget, realmStorage, eventManager, logger) {\n const logManager = new _a(cdpTarget, realmStorage, eventManager, logger);\n logManager.#initializeEntryAddedEventListener();\n return logManager;\n }\n /**\n * Heuristic serialization of CDP remote object. If possible, return the BiDi value\n * without deep serialization.\n */\n async #heuristicSerializeArg(arg, realm) {\n switch (arg.type) {\n // TODO: Implement regexp, array, object, map and set heuristics base on\n // preview.\n case 'undefined':\n return { type: 'undefined' };\n case 'boolean':\n return { type: 'boolean', value: arg.value };\n case 'string':\n return { type: 'string', value: arg.value };\n case 'number':\n // The value can be either a number or a string like `Infinity` or `-0`.\n return { type: 'number', value: arg.unserializableValue ?? arg.value };\n case 'bigint':\n if (arg.unserializableValue !== undefined &&\n arg.unserializableValue[arg.unserializableValue.length - 1] === 'n') {\n return {\n type: arg.type,\n value: arg.unserializableValue.slice(0, -1),\n };\n }\n // Unexpected bigint value, fall back to CDP deep serialization.\n break;\n case 'object':\n if (arg.subtype === 'null') {\n return { type: 'null' };\n }\n // Fall back to CDP deep serialization.\n break;\n default:\n // Fall back to CDP deep serialization.\n break;\n }\n // Fall back to CDP deep serialization.\n return await realm.serializeCdpObject(arg, \"none\" /* Script.ResultOwnership.None */);\n }\n #initializeEntryAddedEventListener() {\n this.#cdpTarget.cdpClient.on('Runtime.consoleAPICalled', (params) => {\n // Try to find realm by `cdpSessionId` and `executionContextId`,\n // if provided.\n const realm = this.#realmStorage.findRealm({\n cdpSessionId: this.#cdpTarget.cdpSessionId,\n executionContextId: params.executionContextId,\n });\n if (realm === undefined) {\n // Ignore exceptions not attached to any realm.\n this.#logger?.(log_js_1.LogType.cdp, params);\n return;\n }\n const argsPromise = Promise.all(params.args.map((arg) => this.#heuristicSerializeArg(arg, realm)));\n for (const browsingContext of realm.associatedBrowsingContexts) {\n this.#eventManager.registerPromiseEvent(argsPromise.then((args) => ({\n kind: 'success',\n value: {\n type: 'event',\n method: protocol_js_1.ChromiumBidi.Log.EventNames.LogEntryAdded,\n params: {\n level: getLogLevel(params.type),\n source: realm.source,\n text: (0, logHelper_js_1.getRemoteValuesText)(args, true),\n timestamp: Math.round(params.timestamp),\n stackTrace: getBidiStackTrace(params.stackTrace),\n type: 'console',\n method: getLogMethod(params.type),\n args,\n },\n },\n }), (error) => ({\n kind: 'error',\n error,\n })), browsingContext.id, protocol_js_1.ChromiumBidi.Log.EventNames.LogEntryAdded);\n }\n });\n this.#cdpTarget.cdpClient.on('Runtime.exceptionThrown', (params) => {\n // Try to find realm by `cdpSessionId` and `executionContextId`,\n // if provided.\n const realm = this.#realmStorage.findRealm({\n cdpSessionId: this.#cdpTarget.cdpSessionId,\n executionContextId: params.exceptionDetails.executionContextId,\n });\n if (realm === undefined) {\n // Ignore exceptions not attached to any realm.\n this.#logger?.(log_js_1.LogType.cdp, params);\n return;\n }\n for (const browsingContext of realm.associatedBrowsingContexts) {\n this.#eventManager.registerPromiseEvent(_a.#getExceptionText(params, realm).then((text) => ({\n kind: 'success',\n value: {\n type: 'event',\n method: protocol_js_1.ChromiumBidi.Log.EventNames.LogEntryAdded,\n params: {\n level: \"error\" /* Log.Level.Error */,\n source: realm.source,\n text,\n timestamp: Math.round(params.timestamp),\n stackTrace: getBidiStackTrace(params.exceptionDetails.stackTrace),\n type: 'javascript',\n },\n },\n }), (error) => ({\n kind: 'error',\n error,\n })), browsingContext.id, protocol_js_1.ChromiumBidi.Log.EventNames.LogEntryAdded);\n }\n });\n }\n /**\n * Try the best to get the exception text.\n */\n static async #getExceptionText(params, realm) {\n if (!params.exceptionDetails.exception) {\n return params.exceptionDetails.text;\n }\n if (realm === undefined) {\n return JSON.stringify(params.exceptionDetails.exception);\n }\n return await realm.stringifyObject(params.exceptionDetails.exception);\n }\n}\nexports.LogManager = LogManager;\n_a = LogManager;\n//# sourceMappingURL=LogManager.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CdpTarget = void 0;\nconst chromium_bidi_js_1 = require(\"../../../protocol/chromium-bidi.js\");\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst Deferred_js_1 = require(\"../../../utils/Deferred.js\");\nconst log_js_1 = require(\"../../../utils/log.js\");\nconst BrowsingContextImpl_js_1 = require(\"../context/BrowsingContextImpl.js\");\nconst LogManager_js_1 = require(\"../log/LogManager.js\");\nclass CdpTarget {\n #id;\n #cdpClient;\n #browserCdpClient;\n #parentCdpClient;\n #realmStorage;\n #eventManager;\n #preloadScriptStorage;\n #browsingContextStorage;\n #prerenderingDisabled;\n #networkStorage;\n #userContextConfig;\n #unblocked = new Deferred_js_1.Deferred();\n #unhandledPromptBehavior;\n #logger;\n // Keeps track of the previously set viewport.\n #previousViewport = { width: 0, height: 0 };\n /**\n * Target's window id. Is filled when the CDP target is created and do not reflect\n * moving targets from one window to another. The actual values\n * will be set during `#unblock`.\n * */\n #windowId;\n #deviceAccessEnabled = false;\n #cacheDisableState = false;\n #fetchDomainStages = {\n request: false,\n response: false,\n auth: false,\n };\n static create(targetId, cdpClient, browserCdpClient, parentCdpClient, realmStorage, eventManager, preloadScriptStorage, browsingContextStorage, networkStorage, prerenderingDisabled, userContextConfig, unhandledPromptBehavior, logger) {\n const cdpTarget = new CdpTarget(targetId, cdpClient, browserCdpClient, parentCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, networkStorage, prerenderingDisabled, userContextConfig, unhandledPromptBehavior, logger);\n LogManager_js_1.LogManager.create(cdpTarget, realmStorage, eventManager, logger);\n cdpTarget.#setEventListeners();\n // No need to await.\n // Deferred will be resolved when the target is unblocked.\n void cdpTarget.#unblock();\n return cdpTarget;\n }\n constructor(targetId, cdpClient, browserCdpClient, parentCdpClient, eventManager, realmStorage, preloadScriptStorage, browsingContextStorage, networkStorage, prerenderingDisabled, userContextConfig, unhandledPromptBehavior, logger) {\n this.#userContextConfig = userContextConfig;\n this.#id = targetId;\n this.#cdpClient = cdpClient;\n this.#browserCdpClient = browserCdpClient;\n this.#parentCdpClient = parentCdpClient;\n this.#eventManager = eventManager;\n this.#realmStorage = realmStorage;\n this.#preloadScriptStorage = preloadScriptStorage;\n this.#networkStorage = networkStorage;\n this.#browsingContextStorage = browsingContextStorage;\n this.#prerenderingDisabled = prerenderingDisabled;\n this.#unhandledPromptBehavior = unhandledPromptBehavior;\n this.#logger = logger;\n }\n /** Returns a deferred that resolves when the target is unblocked. */\n get unblocked() {\n return this.#unblocked;\n }\n get id() {\n return this.#id;\n }\n get cdpClient() {\n return this.#cdpClient;\n }\n get parentCdpClient() {\n return this.#parentCdpClient;\n }\n get browserCdpClient() {\n return this.#browserCdpClient;\n }\n /** Needed for CDP escape path. */\n get cdpSessionId() {\n // SAFETY we got the client by it's id for creating\n return this.#cdpClient.sessionId;\n }\n /**\n * Window id the target belongs to. If not known, returns 0.\n */\n get windowId() {\n if (this.#windowId === undefined) {\n this.#logger?.(log_js_1.LogType.debugError, 'Getting windowId before it was set, returning 0');\n }\n return this.#windowId ?? 0;\n }\n /**\n * Enables all the required CDP domains and unblocks the target.\n */\n async #unblock() {\n try {\n await Promise.all([\n this.#cdpClient.sendCommand('Page.enable', {\n enableFileChooserOpenedEvent: true,\n }),\n ...(this.#ignoreFileDialog()\n ? []\n : [\n this.#cdpClient.sendCommand('Page.setInterceptFileChooserDialog', {\n enabled: true,\n // The intercepted dialog should be canceled.\n cancel: true,\n }),\n ]),\n // There can be some existing frames in the target, if reconnecting to an\n // existing browser instance, e.g. via Puppeteer. Need to restore the browsing\n // contexts for the frames to correctly handle further events, like\n // `Runtime.executionContextCreated`.\n // It's important to schedule this task together with enabling domains commands to\n // prepare the tree before the events (e.g. Runtime.executionContextCreated) start\n // coming.\n // https://github.com/GoogleChromeLabs/chromium-bidi/issues/2282\n this.#cdpClient\n .sendCommand('Page.getFrameTree')\n .then((frameTree) => this.#restoreFrameTreeState(frameTree.frameTree)),\n this.#cdpClient.sendCommand('Runtime.enable'),\n this.#cdpClient.sendCommand('Page.setLifecycleEventsEnabled', {\n enabled: true,\n }),\n this.#cdpClient\n .sendCommand('Page.setPrerenderingAllowed', {\n isAllowed: !this.#prerenderingDisabled,\n })\n .catch(() => {\n // Ignore CDP errors, as the command is not supported by iframe targets or\n // prerendered pages. Generic catch, as the error can vary between CdpClient\n // implementations: Tab vs Puppeteer.\n }),\n // Enabling CDP Network domain is required for navigation detection:\n // https://github.com/GoogleChromeLabs/chromium-bidi/issues/2856.\n this.#cdpClient\n .sendCommand('Network.enable')\n .then(() => this.toggleNetworkIfNeeded()),\n this.#cdpClient.sendCommand('Target.setAutoAttach', {\n autoAttach: true,\n waitForDebuggerOnStart: true,\n flatten: true,\n }),\n this.#updateWindowId(),\n this.#setUserContextConfig(),\n this.#initAndEvaluatePreloadScripts(),\n this.#cdpClient.sendCommand('Runtime.runIfWaitingForDebugger'),\n // Resume tab execution as well if it was paused by the debugger.\n this.#parentCdpClient.sendCommand('Runtime.runIfWaitingForDebugger'),\n this.toggleDeviceAccessIfNeeded(),\n ]);\n }\n catch (error) {\n this.#logger?.(log_js_1.LogType.debugError, 'Failed to unblock target', error);\n // The target might have been closed before the initialization finished.\n if (!this.#cdpClient.isCloseError(error)) {\n this.#unblocked.resolve({\n kind: 'error',\n error,\n });\n return;\n }\n }\n this.#unblocked.resolve({\n kind: 'success',\n value: undefined,\n });\n }\n #restoreFrameTreeState(frameTree) {\n const frame = frameTree.frame;\n const maybeContext = this.#browsingContextStorage.findContext(frame.id);\n if (maybeContext !== undefined) {\n // Restoring parent of already known browsing context. This means the target is\n // OOPiF and the BiDi session was connected to already existing browser instance.\n if (maybeContext.parentId === null &&\n frame.parentId !== null &&\n frame.parentId !== undefined) {\n maybeContext.parentId = frame.parentId;\n }\n }\n if (maybeContext === undefined && frame.parentId !== undefined) {\n // Restore not yet known nested frames. The top-level frame is created when the\n // target is attached.\n const parentBrowsingContext = this.#browsingContextStorage.getContext(frame.parentId);\n BrowsingContextImpl_js_1.BrowsingContextImpl.create(frame.id, frame.parentId, parentBrowsingContext.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, frame.url, undefined, this.#unhandledPromptBehavior, this.#logger);\n }\n frameTree.childFrames?.map((frameTree) => this.#restoreFrameTreeState(frameTree));\n }\n async toggleFetchIfNeeded() {\n const stages = this.#networkStorage.getInterceptionStages(this.topLevelId);\n if (this.#fetchDomainStages.request === stages.request &&\n this.#fetchDomainStages.response === stages.response &&\n this.#fetchDomainStages.auth === stages.auth) {\n return;\n }\n const patterns = [];\n this.#fetchDomainStages = stages;\n if (stages.request || stages.auth) {\n // CDP quirk we need request interception when we intercept auth\n patterns.push({\n urlPattern: '*',\n requestStage: 'Request',\n });\n }\n if (stages.response) {\n patterns.push({\n urlPattern: '*',\n requestStage: 'Response',\n });\n }\n if (patterns.length) {\n await this.#cdpClient.sendCommand('Fetch.enable', {\n patterns,\n handleAuthRequests: stages.auth,\n });\n }\n else {\n const blockedRequest = this.#networkStorage\n .getRequestsByTarget(this)\n .filter((request) => request.interceptPhase);\n void Promise.allSettled(blockedRequest.map((request) => request.waitNextPhase))\n .then(async () => {\n const blockedRequest = this.#networkStorage\n .getRequestsByTarget(this)\n .filter((request) => request.interceptPhase);\n if (blockedRequest.length) {\n return await this.toggleFetchIfNeeded();\n }\n return await this.#cdpClient.sendCommand('Fetch.disable');\n })\n .catch((error) => {\n this.#logger?.(log_js_1.LogType.bidi, 'Disable failed', error);\n });\n }\n }\n /**\n * Toggles CDP \"Fetch\" domain and enable/disable network cache.\n */\n async toggleNetworkIfNeeded() {\n // Although the Network domain remains active, Fetch domain activation and caching\n // settings should be managed dynamically.\n try {\n await Promise.all([\n this.toggleSetCacheDisabled(),\n this.toggleFetchIfNeeded(),\n ]);\n }\n catch (err) {\n this.#logger?.(log_js_1.LogType.debugError, err);\n if (!this.#isExpectedError(err)) {\n throw err;\n }\n }\n }\n async toggleSetCacheDisabled(disable) {\n const defaultCacheDisabled = this.#networkStorage.defaultCacheBehavior === 'bypass';\n const cacheDisabled = disable ?? defaultCacheDisabled;\n if (this.#cacheDisableState === cacheDisabled) {\n return;\n }\n this.#cacheDisableState = cacheDisabled;\n try {\n await this.#cdpClient.sendCommand('Network.setCacheDisabled', {\n cacheDisabled,\n });\n }\n catch (err) {\n this.#logger?.(log_js_1.LogType.debugError, err);\n this.#cacheDisableState = !cacheDisabled;\n if (!this.#isExpectedError(err)) {\n throw err;\n }\n }\n }\n async toggleDeviceAccessIfNeeded() {\n const enabled = this.isSubscribedTo(chromium_bidi_js_1.Bluetooth.EventNames.RequestDevicePromptUpdated);\n if (this.#deviceAccessEnabled === enabled) {\n return;\n }\n this.#deviceAccessEnabled = enabled;\n try {\n await this.#cdpClient.sendCommand(enabled ? 'DeviceAccess.enable' : 'DeviceAccess.disable');\n }\n catch (err) {\n this.#logger?.(log_js_1.LogType.debugError, err);\n this.#deviceAccessEnabled = !enabled;\n if (!this.#isExpectedError(err)) {\n throw err;\n }\n }\n }\n /**\n * Heuristic checking if the error is due to the session being closed. If so, ignore the\n * error.\n */\n #isExpectedError(err) {\n const error = err;\n return ((error.code === -32001 &&\n error.message === 'Session with given id not found.') ||\n this.#cdpClient.isCloseError(err));\n }\n #setEventListeners() {\n this.#cdpClient.on('*', (event, params) => {\n // We may encounter uses for EventEmitter other than CDP events,\n // which we want to skip.\n if (typeof event !== 'string') {\n return;\n }\n this.#eventManager.registerEvent({\n type: 'event',\n method: `goog:cdp.${event}`,\n params: {\n event,\n params,\n session: this.cdpSessionId,\n },\n }, this.id);\n });\n }\n async #enableFetch(stages) {\n const patterns = [];\n if (stages.request || stages.auth) {\n // CDP quirk we need request interception when we intercept auth\n patterns.push({\n urlPattern: '*',\n requestStage: 'Request',\n });\n }\n if (stages.response) {\n patterns.push({\n urlPattern: '*',\n requestStage: 'Response',\n });\n }\n if (patterns.length) {\n const oldStages = this.#fetchDomainStages;\n this.#fetchDomainStages = stages;\n try {\n await this.#cdpClient.sendCommand('Fetch.enable', {\n patterns,\n handleAuthRequests: stages.auth,\n });\n }\n catch {\n this.#fetchDomainStages = oldStages;\n }\n }\n }\n async #disableFetch() {\n const blockedRequest = this.#networkStorage\n .getRequestsByTarget(this)\n .filter((request) => request.interceptPhase);\n if (blockedRequest.length === 0) {\n this.#fetchDomainStages = {\n request: false,\n response: false,\n auth: false,\n };\n await this.#cdpClient.sendCommand('Fetch.disable');\n }\n }\n async toggleNetwork() {\n const stages = this.#networkStorage.getInterceptionStages(this.topLevelId);\n const fetchEnable = Object.values(stages).some((value) => value);\n const fetchChanged = this.#fetchDomainStages.request !== stages.request ||\n this.#fetchDomainStages.response !== stages.response ||\n this.#fetchDomainStages.auth !== stages.auth;\n this.#logger?.(log_js_1.LogType.debugInfo, 'Toggle Network', `Fetch (${fetchEnable}) ${fetchChanged}`);\n if (fetchEnable && fetchChanged) {\n await this.#enableFetch(stages);\n }\n if (!fetchEnable && fetchChanged) {\n await this.#disableFetch();\n }\n }\n /**\n * All the ProxyChannels from all the preload scripts of the given\n * BrowsingContext.\n */\n getChannels() {\n return this.#preloadScriptStorage\n .find()\n .flatMap((script) => script.channels);\n }\n async #updateWindowId() {\n const { windowId } = await this.#browserCdpClient.sendCommand('Browser.getWindowForTarget', { targetId: this.id });\n this.#windowId = windowId;\n }\n /** Loads all top-level preload scripts. */\n async #initAndEvaluatePreloadScripts() {\n await Promise.all(this.#preloadScriptStorage\n .find({\n // Needed for OOPIF\n targetId: this.topLevelId,\n })\n .map((script) => {\n return script.initInTarget(this, true);\n }));\n }\n async setViewport(viewport, devicePixelRatio) {\n if (viewport === null && devicePixelRatio === null) {\n await this.cdpClient.sendCommand('Emulation.clearDeviceMetricsOverride');\n return;\n }\n // CDP's `viewport` is required, so provide either new value, 0 for disabling, or\n // previous viewport to keep it unchanged.\n let newViewport;\n if (viewport === undefined) {\n // Set previously set viewport, effectively\n newViewport = this.#previousViewport;\n }\n else if (viewport === null) {\n // Disable override.\n newViewport = {\n width: 0,\n height: 0,\n };\n }\n else {\n // Set the provided viewport\n newViewport = viewport;\n }\n try {\n await this.cdpClient.sendCommand('Emulation.setDeviceMetricsOverride', {\n width: newViewport.width,\n height: newViewport.height,\n deviceScaleFactor: devicePixelRatio ? devicePixelRatio : 0,\n mobile: false,\n dontSetVisibleSize: true,\n });\n this.#previousViewport = newViewport;\n }\n catch (err) {\n if (err.message.startsWith(\n // https://crsrc.org/c/content/browser/devtools/protocol/emulation_handler.cc;l=257;drc=2f6eee84cf98d4227e7c41718dd71b82f26d90ff\n 'Width and height values must be positive')) {\n throw new protocol_js_1.UnsupportedOperationException('Provided viewport dimensions are not supported');\n }\n throw err;\n }\n }\n /**\n * Immediately schedules all the required commands to configure user context\n * configuration and waits for them to finish. It's important to schedule them\n * in parallel, so that they are enqueued before any page's scripts.\n */\n async #setUserContextConfig() {\n const promises = [];\n if (this.#userContextConfig.viewport !== undefined ||\n this.#userContextConfig.devicePixelRatio !== undefined) {\n promises.push(this.setViewport(this.#userContextConfig.viewport, this.#userContextConfig.devicePixelRatio));\n }\n if (this.#userContextConfig.geolocation !== undefined &&\n this.#userContextConfig.geolocation !== null) {\n promises.push(this.setGeolocationOverride(this.#userContextConfig.geolocation));\n }\n await Promise.all(promises);\n }\n get topLevelId() {\n return (this.#browsingContextStorage.findTopLevelContextId(this.id) ?? this.id);\n }\n isSubscribedTo(moduleOrEvent) {\n return this.#eventManager.subscriptionManager.isSubscribedTo(moduleOrEvent, this.topLevelId);\n }\n #ignoreFileDialog() {\n return ((this.#unhandledPromptBehavior?.file ??\n this.#unhandledPromptBehavior?.default ??\n \"ignore\" /* Session.UserPromptHandlerType.Ignore */) ===\n \"ignore\" /* Session.UserPromptHandlerType.Ignore */);\n }\n async setGeolocationOverride(geolocation) {\n if (geolocation === null) {\n await this.cdpClient.sendCommand('Emulation.clearGeolocationOverride');\n }\n else if ('type' in geolocation) {\n if (geolocation.type !== 'positionUnavailable') {\n // Unreachable. Handled by params parser.\n throw new protocol_js_1.UnknownErrorException(`Unknown geolocation error ${geolocation.type}`);\n }\n // Omitting latitude, longitude or accuracy emulates position unavailable.\n await this.cdpClient.sendCommand('Emulation.setGeolocationOverride', {});\n }\n else if ('latitude' in geolocation) {\n await this.cdpClient.sendCommand('Emulation.setGeolocationOverride', {\n latitude: geolocation.latitude,\n longitude: geolocation.longitude,\n accuracy: geolocation.accuracy ?? 1,\n // `null` value is treated as \"missing\".\n altitude: geolocation.altitude ?? undefined,\n altitudeAccuracy: geolocation.altitudeAccuracy ?? undefined,\n heading: geolocation.heading ?? undefined,\n speed: geolocation.speed ?? undefined,\n });\n }\n else {\n // Unreachable. Handled by params parser.\n throw new protocol_js_1.UnknownErrorException('Unexpected geolocation coordinates value');\n }\n }\n}\nexports.CdpTarget = CdpTarget;\n//# sourceMappingURL=CdpTarget.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CdpTargetManager = void 0;\nconst log_js_1 = require(\"../../../utils/log.js\");\nconst BrowsingContextImpl_js_1 = require(\"../context/BrowsingContextImpl.js\");\nconst WorkerRealm_js_1 = require(\"../script/WorkerRealm.js\");\nconst CdpTarget_js_1 = require(\"./CdpTarget.js\");\nconst cdpToBidiTargetTypes = {\n service_worker: 'service-worker',\n shared_worker: 'shared-worker',\n worker: 'dedicated-worker',\n};\nclass CdpTargetManager {\n #browserCdpClient;\n #cdpConnection;\n #targetKeysToBeIgnoredByAutoAttach = new Set();\n #selfTargetId;\n #eventManager;\n #browsingContextStorage;\n #networkStorage;\n #userContextStorage;\n #bluetoothProcessor;\n #preloadScriptStorage;\n #realmStorage;\n #defaultUserContextId;\n #logger;\n #unhandledPromptBehavior;\n #prerenderingDisabled;\n constructor(cdpConnection, browserCdpClient, selfTargetId, eventManager, browsingContextStorage, userContextStorage, realmStorage, networkStorage, bluetoothProcessor, preloadScriptStorage, defaultUserContextId, prerenderingDisabled, unhandledPromptBehavior, logger) {\n this.#userContextStorage = userContextStorage;\n this.#cdpConnection = cdpConnection;\n this.#browserCdpClient = browserCdpClient;\n this.#targetKeysToBeIgnoredByAutoAttach.add(selfTargetId);\n this.#selfTargetId = selfTargetId;\n this.#eventManager = eventManager;\n this.#browsingContextStorage = browsingContextStorage;\n this.#preloadScriptStorage = preloadScriptStorage;\n this.#networkStorage = networkStorage;\n this.#bluetoothProcessor = bluetoothProcessor;\n this.#realmStorage = realmStorage;\n this.#defaultUserContextId = defaultUserContextId;\n this.#prerenderingDisabled = prerenderingDisabled;\n this.#unhandledPromptBehavior = unhandledPromptBehavior;\n this.#logger = logger;\n this.#setEventListeners(browserCdpClient);\n }\n /**\n * This method is called for each CDP session, since this class is responsible\n * for creating and destroying all targets and browsing contexts.\n */\n #setEventListeners(cdpClient) {\n cdpClient.on('Target.attachedToTarget', (params) => {\n this.#handleAttachedToTargetEvent(params, cdpClient);\n });\n cdpClient.on('Target.detachedFromTarget', this.#handleDetachedFromTargetEvent.bind(this));\n cdpClient.on('Target.targetInfoChanged', this.#handleTargetInfoChangedEvent.bind(this));\n cdpClient.on('Inspector.targetCrashed', () => {\n this.#handleTargetCrashedEvent(cdpClient);\n });\n cdpClient.on('Page.frameAttached', this.#handleFrameAttachedEvent.bind(this));\n cdpClient.on('Page.frameSubtreeWillBeDetached', this.#handleFrameSubtreeWillBeDetached.bind(this));\n }\n #handleFrameAttachedEvent(params) {\n const parentBrowsingContext = this.#browsingContextStorage.findContext(params.parentFrameId);\n if (parentBrowsingContext !== undefined) {\n BrowsingContextImpl_js_1.BrowsingContextImpl.create(params.frameId, params.parentFrameId, parentBrowsingContext.userContext, parentBrowsingContext.cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, \n // At this point, we don't know the URL of the frame yet, so it will be updated\n // later.\n 'about:blank', undefined, this.#unhandledPromptBehavior, this.#logger);\n }\n }\n #handleFrameSubtreeWillBeDetached(params) {\n this.#browsingContextStorage.findContext(params.frameId)?.dispose(true);\n }\n #handleAttachedToTargetEvent(params, parentSessionCdpClient) {\n const { sessionId, targetInfo } = params;\n const targetCdpClient = this.#cdpConnection.getCdpClient(sessionId);\n const detach = async () => {\n // Detaches and resumes the target suppressing errors.\n await targetCdpClient\n .sendCommand('Runtime.runIfWaitingForDebugger')\n .then(() => parentSessionCdpClient.sendCommand('Target.detachFromTarget', params))\n .catch((error) => this.#logger?.(log_js_1.LogType.debugError, error));\n };\n // Do not attach to the Mapper target.\n if (this.#selfTargetId === targetInfo.targetId) {\n void detach();\n return;\n }\n // Service workers are special case because they attach to the\n // browser target and the page target (so twice per worker) during\n // the regular auto-attach and might hang if the CDP session on\n // the browser level is not detached. The logic to detach the\n // right session is handled in the switch below.\n const targetKey = targetInfo.type === 'service_worker'\n ? `${parentSessionCdpClient.sessionId}_${targetInfo.targetId}`\n : targetInfo.targetId;\n // Mapper generally only needs one session per target. If we\n // receive additional auto-attached sessions, that is very likely\n // coming from custom CDP sessions.\n if (this.#targetKeysToBeIgnoredByAutoAttach.has(targetKey)) {\n // Return to leave the session untouched.\n return;\n }\n this.#targetKeysToBeIgnoredByAutoAttach.add(targetKey);\n const userContext = targetInfo.browserContextId &&\n targetInfo.browserContextId !== this.#defaultUserContextId\n ? targetInfo.browserContextId\n : 'default';\n switch (targetInfo.type) {\n case 'tab': {\n // Tab targets are required only to handle page targets beneath them.\n this.#setEventListeners(targetCdpClient);\n // Auto-attach to the page target. No need in resuming tab target debugger, as it\n // should preserve the page target debugger state, and will be resumed by the page\n // target.\n void (async () => {\n await targetCdpClient.sendCommand('Target.setAutoAttach', {\n autoAttach: true,\n waitForDebuggerOnStart: true,\n flatten: true,\n });\n })();\n return;\n }\n case 'page':\n case 'iframe': {\n const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext);\n const maybeContext = this.#browsingContextStorage.findContext(targetInfo.targetId);\n if (maybeContext && targetInfo.type === 'iframe') {\n // OOPiF.\n maybeContext.updateCdpTarget(cdpTarget);\n }\n else {\n // If attaching to existing browser instance, there could be OOPiF targets. This\n // case is handled by the `findFrameParentId` method.\n const parentId = this.#findFrameParentId(targetInfo, parentSessionCdpClient.sessionId);\n // New context.\n BrowsingContextImpl_js_1.BrowsingContextImpl.create(targetInfo.targetId, parentId, userContext, cdpTarget, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, \n // Hack: when a new target created, CDP emits targetInfoChanged with an empty\n // url, and navigates it to about:blank later. When the event is emitted for\n // an existing target (reconnect), the url is already known, and navigation\n // events will not be emitted anymore. Replacing empty url with `about:blank`\n // allows to handle both cases in the same way.\n // \"7.3.2.1 Creating browsing contexts\".\n // https://html.spec.whatwg.org/multipage/document-sequences.html#creating-browsing-contexts\n // TODO: check who to deal with non-null creator and its `creatorOrigin`.\n targetInfo.url === '' ? 'about:blank' : targetInfo.url, targetInfo.openerFrameId ?? targetInfo.openerId, this.#unhandledPromptBehavior, this.#logger);\n }\n return;\n }\n case 'service_worker':\n case 'worker': {\n const realm = this.#realmStorage.findRealm({\n cdpSessionId: parentSessionCdpClient.sessionId,\n });\n // If there is no browsing context, this worker is already terminated.\n if (!realm) {\n void detach();\n return;\n }\n const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext);\n this.#handleWorkerTarget(cdpToBidiTargetTypes[targetInfo.type], cdpTarget, realm);\n return;\n }\n // In CDP, we only emit shared workers on the browser and not the set of\n // frames that use the shared worker. If we change this in the future to\n // behave like service workers (emits on both browser and frame targets),\n // we can remove this block and merge service workers with the above one.\n case 'shared_worker': {\n const cdpTarget = this.#createCdpTarget(targetCdpClient, parentSessionCdpClient, targetInfo, userContext);\n this.#handleWorkerTarget(cdpToBidiTargetTypes[targetInfo.type], cdpTarget);\n return;\n }\n }\n // DevTools or some other not supported by BiDi target. Just release\n // debugger and ignore them.\n void detach();\n }\n /** Try to find the parent browsing context ID for the given attached target. */\n #findFrameParentId(targetInfo, parentSessionId) {\n if (targetInfo.type !== 'iframe') {\n return null;\n }\n const parentId = targetInfo.openerFrameId ?? targetInfo.openerId;\n if (parentId !== undefined) {\n return parentId;\n }\n if (parentSessionId !== undefined) {\n return (this.#browsingContextStorage.findContextBySession(parentSessionId)\n ?.id ?? null);\n }\n return null;\n }\n #createCdpTarget(targetCdpClient, parentCdpClient, targetInfo, userContext) {\n this.#setEventListeners(targetCdpClient);\n this.#preloadScriptStorage.onCdpTargetCreated(targetInfo.targetId, userContext);\n const target = CdpTarget_js_1.CdpTarget.create(targetInfo.targetId, targetCdpClient, this.#browserCdpClient, parentCdpClient, this.#realmStorage, this.#eventManager, this.#preloadScriptStorage, this.#browsingContextStorage, this.#networkStorage, this.#prerenderingDisabled, this.#userContextStorage.getConfig(userContext), this.#unhandledPromptBehavior, this.#logger);\n this.#networkStorage.onCdpTargetCreated(target);\n this.#bluetoothProcessor.onCdpTargetCreated(target);\n return target;\n }\n #workers = new Map();\n #handleWorkerTarget(realmType, cdpTarget, ownerRealm) {\n cdpTarget.cdpClient.on('Runtime.executionContextCreated', (params) => {\n const { uniqueId, id, origin } = params.context;\n const workerRealm = new WorkerRealm_js_1.WorkerRealm(cdpTarget.cdpClient, this.#eventManager, id, this.#logger, (0, BrowsingContextImpl_js_1.serializeOrigin)(origin), ownerRealm ? [ownerRealm] : [], uniqueId, this.#realmStorage, realmType);\n this.#workers.set(cdpTarget.cdpSessionId, workerRealm);\n });\n }\n #handleDetachedFromTargetEvent({ sessionId, targetId, }) {\n if (targetId) {\n this.#preloadScriptStorage.find({ targetId }).map((preloadScript) => {\n preloadScript.dispose(targetId);\n });\n }\n const context = this.#browsingContextStorage.findContextBySession(sessionId);\n if (context) {\n context.dispose(true);\n return;\n }\n const worker = this.#workers.get(sessionId);\n if (worker) {\n this.#realmStorage.deleteRealms({\n cdpSessionId: worker.cdpClient.sessionId,\n });\n }\n }\n #handleTargetInfoChangedEvent(params) {\n const context = this.#browsingContextStorage.findContext(params.targetInfo.targetId);\n if (context) {\n context.onTargetInfoChanged(params);\n }\n }\n #handleTargetCrashedEvent(cdpClient) {\n // This is primarily used for service and shared workers. CDP tends to not\n // signal they closed gracefully and instead says they crashed to signal\n // they are closed.\n const realms = this.#realmStorage.findRealms({\n cdpSessionId: cdpClient.sessionId,\n });\n for (const realm of realms) {\n realm.dispose();\n }\n }\n}\nexports.CdpTargetManager = CdpTargetManager;\n//# sourceMappingURL=CdpTargetManager.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowsingContextStorage = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst EventEmitter_js_1 = require(\"../../../utils/EventEmitter.js\");\n/** Container class for browsing contexts. */\nclass BrowsingContextStorage {\n /** Map from context ID to context implementation. */\n #contexts = new Map();\n /** Event emitter for browsing context storage eventsis not expected to be exposed to\n * the outside world. */\n #eventEmitter = new EventEmitter_js_1.EventEmitter();\n /** Gets all top-level contexts, i.e. those with no parent. */\n getTopLevelContexts() {\n return this.getAllContexts().filter((context) => context.isTopLevelContext());\n }\n /** Gets all contexts. */\n getAllContexts() {\n return Array.from(this.#contexts.values());\n }\n /** Deletes the context with the given ID. */\n deleteContextById(id) {\n this.#contexts.delete(id);\n }\n /** Deletes the given context. */\n deleteContext(context) {\n this.#contexts.delete(context.id);\n }\n /** Tracks the given context. */\n addContext(context) {\n this.#contexts.set(context.id, context);\n this.#eventEmitter.emit(\"added\" /* BrowsingContextStorageEvents.Added */, {\n browsingContext: context,\n });\n }\n /**\n * Waits for a context with the given ID to be added and returns it.\n */\n waitForContext(browsingContextId) {\n if (this.#contexts.has(browsingContextId)) {\n return Promise.resolve(this.getContext(browsingContextId));\n }\n return new Promise((resolve) => {\n const listener = (event) => {\n if (event.browsingContext.id === browsingContextId) {\n this.#eventEmitter.off(\"added\" /* BrowsingContextStorageEvents.Added */, listener);\n resolve(event.browsingContext);\n }\n };\n this.#eventEmitter.on(\"added\" /* BrowsingContextStorageEvents.Added */, listener);\n });\n }\n /** Returns true whether there is an existing context with the given ID. */\n hasContext(id) {\n return this.#contexts.has(id);\n }\n /** Gets the context with the given ID, if any. */\n findContext(id) {\n return this.#contexts.get(id);\n }\n /** Returns the top-level context ID of the given context, if any. */\n findTopLevelContextId(id) {\n if (id === null) {\n return null;\n }\n const maybeContext = this.findContext(id);\n if (!maybeContext) {\n return null;\n }\n const parentId = maybeContext.parentId ?? null;\n if (parentId === null) {\n return id;\n }\n return this.findTopLevelContextId(parentId);\n }\n findContextBySession(sessionId) {\n for (const context of this.#contexts.values()) {\n if (context.cdpTarget.cdpSessionId === sessionId) {\n return context;\n }\n }\n return;\n }\n /** Gets the context with the given ID, if any, otherwise throws. */\n getContext(id) {\n const result = this.findContext(id);\n if (result === undefined) {\n throw new protocol_js_1.NoSuchFrameException(`Context ${id} not found`);\n }\n return result;\n }\n verifyTopLevelContextsList(contexts) {\n const foundContexts = new Set();\n if (!contexts) {\n return foundContexts;\n }\n for (const contextId of contexts) {\n const context = this.getContext(contextId);\n if (context.isTopLevelContext()) {\n foundContexts.add(context);\n }\n else {\n throw new protocol_js_1.InvalidArgumentException(`Non top-level context '${contextId}' given.`);\n }\n }\n return foundContexts;\n }\n verifyContextsList(contexts) {\n if (!contexts.length) {\n return;\n }\n for (const contextId of contexts) {\n this.getContext(contextId);\n }\n }\n}\nexports.BrowsingContextStorage = BrowsingContextStorage;\n//# sourceMappingURL=BrowsingContextStorage.js.map","\"use strict\";\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultMap = void 0;\n/**\n * A subclass of Map whose functionality is almost the same as its parent\n * except for the fact that DefaultMap never returns undefined. It provides a\n * default value for keys that do not exist.\n */\nclass DefaultMap extends Map {\n /** The default value to return whenever a key is not present in the map. */\n #getDefaultValue;\n constructor(getDefaultValue, entries) {\n super(entries);\n this.#getDefaultValue = getDefaultValue;\n }\n get(key) {\n if (!this.has(key)) {\n this.set(key, this.#getDefaultValue(key));\n }\n return super.get(key);\n }\n}\nexports.DefaultMap = DefaultMap;\n//# sourceMappingURL=DefaultMap.js.map","\"use strict\";\n/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkRequest = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst assert_js_1 = require(\"../../../utils/assert.js\");\nconst DefaultMap_js_1 = require(\"../../../utils/DefaultMap.js\");\nconst Deferred_js_1 = require(\"../../../utils/Deferred.js\");\nconst log_js_1 = require(\"../../../utils/log.js\");\nconst NetworkUtils_js_1 = require(\"./NetworkUtils.js\");\nconst REALM_REGEX = /(?<=realm=\").*(?=\")/;\n/** Abstracts one individual network request. */\nclass NetworkRequest {\n static unknownParameter = 'UNKNOWN';\n /**\n * Each network request has an associated request id, which is a string\n * uniquely identifying that request.\n *\n * The identifier for a request resulting from a redirect matches that of the\n * request that initiated it.\n */\n #id;\n #fetchId;\n /**\n * Indicates the network intercept phase, if the request is currently blocked.\n * Undefined necessarily implies that the request is not blocked.\n */\n #interceptPhase;\n #servedFromCache = false;\n #redirectCount;\n #request = {};\n #requestOverrides;\n #responseOverrides;\n #response = {};\n #eventManager;\n #networkStorage;\n #cdpTarget;\n #logger;\n #emittedEvents = {\n [protocol_js_1.ChromiumBidi.Network.EventNames.AuthRequired]: false,\n [protocol_js_1.ChromiumBidi.Network.EventNames.BeforeRequestSent]: false,\n [protocol_js_1.ChromiumBidi.Network.EventNames.FetchError]: false,\n [protocol_js_1.ChromiumBidi.Network.EventNames.ResponseCompleted]: false,\n [protocol_js_1.ChromiumBidi.Network.EventNames.ResponseStarted]: false,\n };\n waitNextPhase = new Deferred_js_1.Deferred();\n constructor(id, eventManager, networkStorage, cdpTarget, redirectCount = 0, logger) {\n this.#id = id;\n this.#eventManager = eventManager;\n this.#networkStorage = networkStorage;\n this.#cdpTarget = cdpTarget;\n this.#redirectCount = redirectCount;\n this.#logger = logger;\n }\n get id() {\n return this.#id;\n }\n get fetchId() {\n return this.#fetchId;\n }\n /**\n * When blocked returns the phase for it\n */\n get interceptPhase() {\n return this.#interceptPhase;\n }\n get url() {\n const fragment = this.#request.info?.request.urlFragment ??\n this.#request.paused?.request.urlFragment ??\n '';\n const url = this.#response.paused?.request.url ??\n this.#requestOverrides?.url ??\n this.#response.info?.url ??\n this.#request.auth?.request.url ??\n this.#request.info?.request.url ??\n this.#request.paused?.request.url ??\n _a.unknownParameter;\n return `${url}${fragment}`;\n }\n get redirectCount() {\n return this.#redirectCount;\n }\n get cdpTarget() {\n return this.#cdpTarget;\n }\n get cdpClient() {\n return this.#cdpTarget.cdpClient;\n }\n isRedirecting() {\n return Boolean(this.#request.info);\n }\n #isDataUrl() {\n return this.url.startsWith('data:');\n }\n get #method() {\n return (this.#requestOverrides?.method ??\n this.#request.info?.request.method ??\n this.#request.paused?.request.method ??\n this.#request.auth?.request.method ??\n this.#response.paused?.request.method);\n }\n get #navigationId() {\n // Heuristic to determine if this is a navigation request, and if not return null.\n if (!this.#request.info ||\n !this.#request.info.loaderId ||\n // When we navigate all CDP network events have `loaderId`\n // CDP's `loaderId` and `requestId` match when\n // that request triggered the loading\n this.#request.info.loaderId !== this.#request.info.requestId) {\n return null;\n }\n // Get virtual navigation ID from the browsing context.\n return this.#networkStorage.getNavigationId(this.#context ?? undefined);\n }\n get #cookies() {\n let cookies = [];\n if (this.#request.extraInfo) {\n cookies = this.#request.extraInfo.associatedCookies\n .filter(({ blockedReasons }) => {\n return !Array.isArray(blockedReasons) || blockedReasons.length === 0;\n })\n .map(({ cookie }) => (0, NetworkUtils_js_1.cdpToBiDiCookie)(cookie));\n }\n return cookies;\n }\n get #bodySize() {\n let bodySize = 0;\n if (typeof this.#requestOverrides?.bodySize === 'number') {\n bodySize = this.#requestOverrides.bodySize;\n }\n else {\n bodySize = (0, NetworkUtils_js_1.bidiBodySizeFromCdpPostDataEntries)(this.#request.info?.request.postDataEntries ?? []);\n }\n return bodySize;\n }\n get #context() {\n return (this.#response.paused?.frameId ??\n this.#request.info?.frameId ??\n this.#request.paused?.frameId ??\n this.#request.auth?.frameId ??\n null);\n }\n /** Returns the HTTP status code associated with this request if any. */\n get #statusCode() {\n return (this.#responseOverrides?.statusCode ??\n this.#response.paused?.responseStatusCode ??\n this.#response.extraInfo?.statusCode ??\n this.#response.info?.status);\n }\n get #requestHeaders() {\n let headers = [];\n if (this.#requestOverrides?.headers) {\n const headerMap = new DefaultMap_js_1.DefaultMap(() => []);\n for (const header of this.#requestOverrides.headers) {\n headerMap.get(header.name).push(header.value.value);\n }\n for (const [name, value] of headerMap.entries()) {\n headers.push({\n name,\n value: {\n type: 'string',\n value: value.join('\\n').trimEnd(),\n },\n });\n }\n }\n else {\n headers = [\n ...(0, NetworkUtils_js_1.bidiNetworkHeadersFromCdpNetworkHeaders)(this.#request.info?.request.headers),\n ...(0, NetworkUtils_js_1.bidiNetworkHeadersFromCdpNetworkHeaders)(this.#request.extraInfo?.headers),\n ];\n }\n return headers;\n }\n get #authChallenges() {\n // TODO: get headers from Fetch.requestPaused\n if (!this.#response.info) {\n return;\n }\n if (!(this.#statusCode === 401 || this.#statusCode === 407)) {\n return undefined;\n }\n const headerName = this.#statusCode === 401 ? 'WWW-Authenticate' : 'Proxy-Authenticate';\n const authChallenges = [];\n for (const [header, value] of Object.entries(this.#response.info.headers)) {\n // TODO: Do a proper match based on https://httpwg.org/specs/rfc9110.html#credentials\n // Or verify this works\n if (header.localeCompare(headerName, undefined, { sensitivity: 'base' }) === 0) {\n authChallenges.push({\n scheme: value.split(' ').at(0) ?? '',\n realm: value.match(REALM_REGEX)?.at(0) ?? '',\n });\n }\n }\n return authChallenges;\n }\n get #timings() {\n // The timing in the CDP events are provided relative to the event's baseline.\n // However, the baseline can be different for different events, and the events have to\n // be normalized throughout resource events. Normalize events timestamps by the\n // request.\n // TODO: Verify this is correct.\n const responseTimeOffset = (0, NetworkUtils_js_1.getTiming)((0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.requestTime) -\n (0, NetworkUtils_js_1.getTiming)(this.#request.info?.timestamp));\n return {\n // TODO: Verify this is correct\n timeOrigin: Math.round((0, NetworkUtils_js_1.getTiming)(this.#request.info?.wallTime) * 1000),\n // Timing baseline.\n // TODO: Verify this is correct.\n requestTime: 0,\n // TODO: set if redirect detected.\n redirectStart: 0,\n // TODO: set if redirect detected.\n redirectEnd: 0,\n // TODO: Verify this is correct\n // https://source.chromium.org/chromium/chromium/src/+/main:net/base/load_timing_info.h;l=145\n fetchStart: (0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.workerFetchStart, responseTimeOffset),\n // fetchStart: 0,\n dnsStart: (0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.dnsStart, responseTimeOffset),\n dnsEnd: (0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.dnsEnd, responseTimeOffset),\n connectStart: (0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.connectStart, responseTimeOffset),\n connectEnd: (0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.connectEnd, responseTimeOffset),\n tlsStart: (0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.sslStart, responseTimeOffset),\n requestStart: (0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.sendStart, responseTimeOffset),\n // https://source.chromium.org/chromium/chromium/src/+/main:net/base/load_timing_info.h;l=196\n responseStart: (0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.receiveHeadersStart, responseTimeOffset),\n responseEnd: (0, NetworkUtils_js_1.getTiming)(this.#response.info?.timing?.receiveHeadersEnd, responseTimeOffset),\n };\n }\n #phaseChanged() {\n this.waitNextPhase.resolve();\n this.waitNextPhase = new Deferred_js_1.Deferred();\n }\n #interceptsInPhase(phase) {\n if (!this.#cdpTarget.isSubscribedTo(`network.${phase}`)) {\n return new Set();\n }\n return this.#networkStorage.getInterceptsForPhase(this, phase);\n }\n #isBlockedInPhase(phase) {\n return this.#interceptsInPhase(phase).size > 0;\n }\n handleRedirect(event) {\n // TODO: use event.redirectResponse;\n // Temporary workaround to emit ResponseCompleted event for redirects\n this.#response.hasExtraInfo = false;\n this.#response.info = event.redirectResponse;\n this.#emitEventsIfReady({\n wasRedirected: true,\n });\n }\n #emitEventsIfReady(options = {}) {\n const requestExtraInfoCompleted = \n // Flush redirects\n options.wasRedirected ||\n options.hasFailed ||\n this.#isDataUrl() ||\n Boolean(this.#request.extraInfo) ||\n // Requests from cache don't have extra info\n this.#servedFromCache ||\n // Sometimes there is no extra info and the response\n // is the only place we can find out\n Boolean(this.#response.info && !this.#response.hasExtraInfo);\n const noInterceptionExpected = \n // We can't intercept data urls from CDP\n this.#isDataUrl() ||\n // Cached requests never hit the network\n this.#servedFromCache;\n const requestInterceptionExpected = !noInterceptionExpected &&\n this.#isBlockedInPhase(\"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */);\n const requestInterceptionCompleted = !requestInterceptionExpected ||\n (requestInterceptionExpected && Boolean(this.#request.paused));\n if (Boolean(this.#request.info) &&\n (requestInterceptionExpected\n ? requestInterceptionCompleted\n : requestExtraInfoCompleted)) {\n this.#emitEvent(this.#getBeforeRequestEvent.bind(this));\n }\n const responseExtraInfoCompleted = Boolean(this.#response.extraInfo) ||\n // Response from cache don't have extra info\n this.#servedFromCache ||\n // Don't expect extra info if the flag is false\n Boolean(this.#response.info && !this.#response.hasExtraInfo);\n const responseInterceptionExpected = !noInterceptionExpected &&\n this.#isBlockedInPhase(\"responseStarted\" /* Network.InterceptPhase.ResponseStarted */);\n if (this.#response.info ||\n (responseInterceptionExpected && Boolean(this.#response.paused))) {\n this.#emitEvent(this.#getResponseStartedEvent.bind(this));\n }\n const responseInterceptionCompleted = !responseInterceptionExpected ||\n (responseInterceptionExpected && Boolean(this.#response.paused));\n if (Boolean(this.#response.info) &&\n responseExtraInfoCompleted &&\n responseInterceptionCompleted) {\n this.#emitEvent(this.#getResponseReceivedEvent.bind(this));\n this.#networkStorage.deleteRequest(this.id);\n }\n }\n onRequestWillBeSentEvent(event) {\n this.#request.info = event;\n this.#emitEventsIfReady();\n }\n onRequestWillBeSentExtraInfoEvent(event) {\n this.#request.extraInfo = event;\n this.#emitEventsIfReady();\n }\n onResponseReceivedExtraInfoEvent(event) {\n if (event.statusCode >= 300 &&\n event.statusCode <= 399 &&\n this.#request.info &&\n event.headers['location'] === this.#request.info.request.url) {\n // We received the Response Extra info for the redirect\n // Too late so we need to skip it as it will\n // fire wrongly for the last one\n return;\n }\n this.#response.extraInfo = event;\n this.#emitEventsIfReady();\n }\n onResponseReceivedEvent(event) {\n this.#response.hasExtraInfo = event.hasExtraInfo;\n this.#response.info = event.response;\n this.#emitEventsIfReady();\n }\n onServedFromCache() {\n this.#servedFromCache = true;\n this.#emitEventsIfReady();\n }\n onLoadingFailedEvent(event) {\n this.#emitEventsIfReady({\n hasFailed: true,\n });\n this.#emitEvent(() => {\n return {\n method: protocol_js_1.ChromiumBidi.Network.EventNames.FetchError,\n params: {\n ...this.#getBaseEventParams(),\n errorText: event.errorText,\n },\n };\n });\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-failRequest */\n async failRequest(errorReason) {\n (0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.');\n await this.cdpClient.sendCommand('Fetch.failRequest', {\n requestId: this.#fetchId,\n errorReason,\n });\n this.#interceptPhase = undefined;\n }\n onRequestPaused(event) {\n this.#fetchId = event.requestId;\n // CDP https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#event-requestPaused\n if (event.responseStatusCode || event.responseErrorReason) {\n this.#response.paused = event;\n if (this.#isBlockedInPhase(\"responseStarted\" /* Network.InterceptPhase.ResponseStarted */) &&\n // CDP may emit multiple events for a single request\n !this.#emittedEvents[protocol_js_1.ChromiumBidi.Network.EventNames.ResponseStarted] &&\n // Continue all response that have not enabled Network domain\n this.#fetchId !== this.id) {\n this.#interceptPhase = \"responseStarted\" /* Network.InterceptPhase.ResponseStarted */;\n }\n else {\n void this.#continueResponse();\n }\n }\n else {\n this.#request.paused = event;\n if (this.#isBlockedInPhase(\"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */) &&\n // CDP may emit multiple events for a single request\n !this.#emittedEvents[protocol_js_1.ChromiumBidi.Network.EventNames.BeforeRequestSent] &&\n // Continue all requests that have not enabled Network domain\n this.#fetchId !== this.id) {\n this.#interceptPhase = \"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */;\n }\n else {\n void this.#continueRequest();\n }\n }\n this.#emitEventsIfReady();\n }\n onAuthRequired(event) {\n this.#fetchId = event.requestId;\n this.#request.auth = event;\n if (this.#isBlockedInPhase(\"authRequired\" /* Network.InterceptPhase.AuthRequired */) &&\n // Continue all auth requests that have not enabled Network domain\n this.#fetchId !== this.id) {\n this.#interceptPhase = \"authRequired\" /* Network.InterceptPhase.AuthRequired */;\n }\n else {\n void this.#continueWithAuth({\n response: 'Default',\n });\n }\n this.#emitEvent(() => {\n return {\n method: protocol_js_1.ChromiumBidi.Network.EventNames.AuthRequired,\n params: {\n ...this.#getBaseEventParams(\"authRequired\" /* Network.InterceptPhase.AuthRequired */),\n response: this.#getResponseEventParams(),\n },\n };\n });\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueRequest */\n async continueRequest(overrides = {}) {\n const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies);\n const headers = (0, NetworkUtils_js_1.cdpFetchHeadersFromBidiNetworkHeaders)(overrideHeaders);\n const postData = getCdpBodyFromBiDiBytesValue(overrides.body);\n await this.#continueRequest({\n url: overrides.url,\n method: overrides.method,\n headers,\n postData,\n });\n this.#requestOverrides = {\n url: overrides.url,\n method: overrides.method,\n headers: overrides.headers,\n cookies: overrides.cookies,\n bodySize: getSizeFromBiDiBytesValue(overrides.body),\n };\n }\n async #continueRequest(overrides = {}) {\n (0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.');\n await this.cdpClient.sendCommand('Fetch.continueRequest', {\n requestId: this.#fetchId,\n url: overrides.url,\n method: overrides.method,\n headers: overrides.headers,\n postData: overrides.postData,\n });\n this.#interceptPhase = undefined;\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueResponse */\n async continueResponse(overrides = {}) {\n if (this.interceptPhase === \"authRequired\" /* Network.InterceptPhase.AuthRequired */) {\n if (overrides.credentials) {\n await Promise.all([\n this.waitNextPhase,\n await this.#continueWithAuth({\n response: 'ProvideCredentials',\n username: overrides.credentials.username,\n password: overrides.credentials.password,\n }),\n ]);\n }\n else {\n // We need to use `ProvideCredentials`\n // As `Default` may cancel the request\n return await this.#continueWithAuth({\n response: 'ProvideCredentials',\n });\n }\n }\n if (this.#interceptPhase === \"responseStarted\" /* Network.InterceptPhase.ResponseStarted */) {\n const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies);\n const responseHeaders = (0, NetworkUtils_js_1.cdpFetchHeadersFromBidiNetworkHeaders)(overrideHeaders);\n await this.#continueResponse({\n responseCode: overrides.statusCode ?? this.#response.paused?.responseStatusCode,\n responsePhrase: overrides.reasonPhrase ?? this.#response.paused?.responseStatusText,\n responseHeaders: responseHeaders ?? this.#response.paused?.responseHeaders,\n });\n this.#responseOverrides = {\n statusCode: overrides.statusCode,\n headers: overrideHeaders,\n };\n }\n }\n async #continueResponse({ responseCode, responsePhrase, responseHeaders, } = {}) {\n (0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.');\n await this.cdpClient.sendCommand('Fetch.continueResponse', {\n requestId: this.#fetchId,\n responseCode,\n responsePhrase,\n responseHeaders,\n });\n this.#interceptPhase = undefined;\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-continueWithAuth */\n async continueWithAuth(authChallenge) {\n let username;\n let password;\n if (authChallenge.action === 'provideCredentials') {\n const { credentials } = authChallenge;\n username = credentials.username;\n password = credentials.password;\n }\n const response = (0, NetworkUtils_js_1.cdpAuthChallengeResponseFromBidiAuthContinueWithAuthAction)(authChallenge.action);\n await this.#continueWithAuth({\n response,\n username,\n password,\n });\n }\n /** @see https://chromedevtools.github.io/devtools-protocol/tot/Fetch/#method-provideResponse */\n async provideResponse(overrides) {\n (0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.');\n // We need to pass through if the request is already in\n // AuthRequired phase\n if (this.interceptPhase === \"authRequired\" /* Network.InterceptPhase.AuthRequired */) {\n // We need to use `ProvideCredentials`\n // As `Default` may cancel the request\n return await this.#continueWithAuth({\n response: 'ProvideCredentials',\n });\n }\n // If we don't modify the response\n // just continue the request\n if (!overrides.body && !overrides.headers) {\n return await this.#continueRequest();\n }\n const overrideHeaders = this.#getOverrideHeader(overrides.headers, overrides.cookies);\n const responseHeaders = (0, NetworkUtils_js_1.cdpFetchHeadersFromBidiNetworkHeaders)(overrideHeaders);\n const responseCode = overrides.statusCode ?? this.#statusCode ?? 200;\n await this.cdpClient.sendCommand('Fetch.fulfillRequest', {\n requestId: this.#fetchId,\n responseCode,\n responsePhrase: overrides.reasonPhrase,\n responseHeaders,\n body: getCdpBodyFromBiDiBytesValue(overrides.body),\n });\n this.#interceptPhase = undefined;\n }\n dispose() {\n this.waitNextPhase.reject(new Error('waitNextPhase disposed'));\n }\n async #continueWithAuth(authChallengeResponse) {\n (0, assert_js_1.assert)(this.#fetchId, 'Network Interception not set-up.');\n await this.cdpClient.sendCommand('Fetch.continueWithAuth', {\n requestId: this.#fetchId,\n authChallengeResponse,\n });\n this.#interceptPhase = undefined;\n }\n #emitEvent(getEvent) {\n let event;\n try {\n event = getEvent();\n }\n catch (error) {\n this.#logger?.(log_js_1.LogType.debugError, error);\n return;\n }\n if (this.#isIgnoredEvent() ||\n (this.#emittedEvents[event.method] &&\n // Special case this event can be emitted multiple times\n event.method !== protocol_js_1.ChromiumBidi.Network.EventNames.AuthRequired)) {\n return;\n }\n this.#phaseChanged();\n this.#emittedEvents[event.method] = true;\n if (this.#context) {\n this.#eventManager.registerEvent(Object.assign(event, {\n type: 'event',\n }), this.#context);\n }\n else {\n this.#eventManager.registerGlobalEvent(Object.assign(event, {\n type: 'event',\n }));\n }\n }\n #getBaseEventParams(phase) {\n const interceptProps = {\n isBlocked: false,\n };\n if (phase) {\n const blockedBy = this.#interceptsInPhase(phase);\n interceptProps.isBlocked = blockedBy.size > 0;\n if (interceptProps.isBlocked) {\n interceptProps.intercepts = [...blockedBy];\n }\n }\n return {\n context: this.#context,\n navigation: this.#navigationId,\n redirectCount: this.#redirectCount,\n request: this.#getRequestData(),\n // Timestamp should be in milliseconds, while CDP provides it in seconds.\n timestamp: Math.round((0, NetworkUtils_js_1.getTiming)(this.#request.info?.wallTime) * 1000),\n // Contains isBlocked and intercepts\n ...interceptProps,\n };\n }\n #getResponseEventParams() {\n // Chromium sends wrong extraInfo events for responses served from cache.\n // See https://github.com/puppeteer/puppeteer/issues/9965 and\n // https://crbug.com/1340398.\n if (this.#response.info?.fromDiskCache) {\n this.#response.extraInfo = undefined;\n }\n const headers = [\n ...(0, NetworkUtils_js_1.bidiNetworkHeadersFromCdpNetworkHeaders)(this.#response.info?.headers),\n ...(0, NetworkUtils_js_1.bidiNetworkHeadersFromCdpNetworkHeaders)(this.#response.extraInfo?.headers),\n // TODO: Verify how to dedupe these\n // ...bidiNetworkHeadersFromCdpNetworkHeadersEntries(\n // this.#response.paused?.responseHeaders\n // ),\n ];\n const authChallenges = this.#authChallenges;\n const response = {\n url: this.url,\n protocol: this.#response.info?.protocol ?? '',\n status: this.#statusCode ?? -1, // TODO: Throw an exception or use some other status code?\n statusText: this.#response.info?.statusText ||\n this.#response.paused?.responseStatusText ||\n '',\n fromCache: this.#response.info?.fromDiskCache ||\n this.#response.info?.fromPrefetchCache ||\n this.#servedFromCache,\n headers: this.#responseOverrides?.headers ?? headers,\n mimeType: this.#response.info?.mimeType || '',\n bytesReceived: this.#response.info?.encodedDataLength || 0,\n headersSize: (0, NetworkUtils_js_1.computeHeadersSize)(headers),\n // TODO: consider removing from spec.\n bodySize: 0,\n content: {\n // TODO: consider removing from spec.\n size: 0,\n },\n ...(authChallenges ? { authChallenges } : {}),\n };\n return {\n ...response,\n 'goog:securityDetails': this.#response.info?.securityDetails,\n };\n }\n #getRequestData() {\n const headers = this.#requestHeaders;\n const request = {\n request: this.#id,\n url: this.url,\n method: this.#method ?? _a.unknownParameter,\n headers,\n cookies: this.#cookies,\n headersSize: (0, NetworkUtils_js_1.computeHeadersSize)(headers),\n bodySize: this.#bodySize,\n // TODO: populate\n destination: this.#getDestination(),\n // TODO: populate\n initiatorType: this.#getInitiatorType(),\n timings: this.#timings,\n };\n return {\n ...request,\n 'goog:postData': this.#request.info?.request?.postData,\n 'goog:hasPostData': this.#request.info?.request?.hasPostData,\n 'goog:resourceType': this.#request.info?.type,\n 'goog:resourceInitiator': this.#request.info?.initiator,\n };\n }\n /**\n * Heuristic trying to guess the destination.\n * Specification: https://fetch.spec.whatwg.org/#concept-request-destination.\n * Specified values: \"audio\", \"audioworklet\", \"document\", \"embed\", \"font\", \"frame\",\n * \"iframe\", \"image\", \"json\", \"manifest\", \"object\", \"paintworklet\", \"report\", \"script\",\n * \"serviceworker\", \"sharedworker\", \"style\", \"track\", \"video\", \"webidentity\", \"worker\",\n * \"xslt\".\n */\n #getDestination() {\n switch (this.#request.info?.type) {\n case 'Script':\n return 'script';\n case 'Stylesheet':\n return 'style';\n case 'Image':\n return 'image';\n case 'Document':\n // If request to document is initiated by parser, assume it is expected to\n // arrive in an iframe. Otherwise, fallback to empty string.\n return this.#request.info?.initiator.type === 'parser' ? 'iframe' : '';\n default:\n return '';\n }\n }\n /**\n * Heuristic trying to guess the initiator type.\n * Specification: https://fetch.spec.whatwg.org/#request-initiator-type.\n * Specified values: \"audio\", \"beacon\", \"body\", \"css\", \"early-hints\", \"embed\", \"fetch\",\n * \"font\", \"frame\", \"iframe\", \"image\", \"img\", \"input\", \"link\", \"object\", \"ping\",\n * \"script\", \"track\", \"video\", \"xmlhttprequest\", \"other\".\n */\n #getInitiatorType() {\n if (this.#request.info?.initiator.type === 'parser') {\n switch (this.#request.info?.type) {\n case 'Document':\n // The request to document is initiated by the parser. Assuming it's an iframe.\n return 'iframe';\n case 'Font':\n // If the document's url is not the parser's url, assume the resource is loaded\n // from css. Otherwise, it's a `font` element.\n return this.#request.info?.initiator?.url ===\n this.#request.info?.documentURL\n ? 'font'\n : 'css';\n case 'Image':\n // If the document's url is not the parser's url, assume the resource is loaded\n // from css. Otherwise, it's a `img` element.\n return this.#request.info?.initiator?.url ===\n this.#request.info?.documentURL\n ? 'img'\n : 'css';\n case 'Script':\n return 'script';\n case 'Stylesheet':\n return 'link';\n default:\n return null;\n }\n }\n if (this.#request?.info?.type === 'Fetch') {\n return 'fetch';\n }\n return null;\n }\n #getBeforeRequestEvent() {\n (0, assert_js_1.assert)(this.#request.info, 'RequestWillBeSentEvent is not set');\n return {\n method: protocol_js_1.ChromiumBidi.Network.EventNames.BeforeRequestSent,\n params: {\n ...this.#getBaseEventParams(\"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */),\n initiator: {\n type: _a.#getInitiator(this.#request.info.initiator.type),\n columnNumber: this.#request.info.initiator.columnNumber,\n lineNumber: this.#request.info.initiator.lineNumber,\n stackTrace: this.#request.info.initiator.stack,\n request: this.#request.info.initiator.requestId,\n },\n },\n };\n }\n #getResponseStartedEvent() {\n return {\n method: protocol_js_1.ChromiumBidi.Network.EventNames.ResponseStarted,\n params: {\n ...this.#getBaseEventParams(\"responseStarted\" /* Network.InterceptPhase.ResponseStarted */),\n response: this.#getResponseEventParams(),\n },\n };\n }\n #getResponseReceivedEvent() {\n return {\n method: protocol_js_1.ChromiumBidi.Network.EventNames.ResponseCompleted,\n params: {\n ...this.#getBaseEventParams(),\n response: this.#getResponseEventParams(),\n },\n };\n }\n #isIgnoredEvent() {\n const faviconUrl = '/favicon.ico';\n return (this.#request.paused?.request.url.endsWith(faviconUrl) ??\n this.#request.info?.request.url.endsWith(faviconUrl) ??\n false);\n }\n #getOverrideHeader(headers, cookies) {\n if (!headers && !cookies) {\n return undefined;\n }\n let overrideHeaders = headers;\n const cookieHeader = (0, NetworkUtils_js_1.networkHeaderFromCookieHeaders)(cookies);\n if (cookieHeader && !overrideHeaders) {\n overrideHeaders = this.#requestHeaders;\n }\n if (cookieHeader && overrideHeaders) {\n overrideHeaders.filter((header) => header.name.localeCompare('cookie', undefined, {\n sensitivity: 'base',\n }) !== 0);\n overrideHeaders.push(cookieHeader);\n }\n return overrideHeaders;\n }\n static #getInitiator(initiatorType) {\n switch (initiatorType) {\n case 'parser':\n case 'script':\n case 'preflight':\n return initiatorType;\n default:\n return 'other';\n }\n }\n}\nexports.NetworkRequest = NetworkRequest;\n_a = NetworkRequest;\nfunction getCdpBodyFromBiDiBytesValue(body) {\n let parsedBody;\n if (body?.type === 'string') {\n parsedBody = (0, NetworkUtils_js_1.stringToBase64)(body.value);\n }\n else if (body?.type === 'base64') {\n parsedBody = body.value;\n }\n return parsedBody;\n}\nfunction getSizeFromBiDiBytesValue(body) {\n if (body?.type === 'string') {\n return body.value.length;\n }\n else if (body?.type === 'base64') {\n return atob(body.value).length;\n }\n return 0;\n}\n//# sourceMappingURL=NetworkRequest.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkStorage = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst uuid_js_1 = require(\"../../../utils/uuid.js\");\nconst NetworkRequest_js_1 = require(\"./NetworkRequest.js\");\nconst NetworkUtils_js_1 = require(\"./NetworkUtils.js\");\n/** Stores network and intercept maps. */\nclass NetworkStorage {\n #browsingContextStorage;\n #eventManager;\n #logger;\n /**\n * A map from network request ID to Network Request objects.\n * Needed as long as information about requests comes from different events.\n */\n #requests = new Map();\n /** A map from intercept ID to track active network intercepts. */\n #intercepts = new Map();\n #defaultCacheBehavior = 'default';\n constructor(eventManager, browsingContextStorage, browserClient, logger) {\n this.#browsingContextStorage = browsingContextStorage;\n this.#eventManager = eventManager;\n browserClient.on('Target.detachedFromTarget', ({ sessionId }) => {\n this.disposeRequestMap(sessionId);\n });\n this.#logger = logger;\n }\n /**\n * Gets the network request with the given ID, if any.\n * Otherwise, creates a new network request with the given ID and cdp target.\n */\n #getOrCreateNetworkRequest(id, cdpTarget, redirectCount) {\n let request = this.getRequestById(id);\n if (request) {\n return request;\n }\n request = new NetworkRequest_js_1.NetworkRequest(id, this.#eventManager, this, cdpTarget, redirectCount, this.#logger);\n this.addRequest(request);\n return request;\n }\n onCdpTargetCreated(cdpTarget) {\n const cdpClient = cdpTarget.cdpClient;\n // TODO: Wrap into object\n const listeners = [\n [\n 'Network.requestWillBeSent',\n (params) => {\n const request = this.getRequestById(params.requestId);\n if (request && request.isRedirecting()) {\n request.handleRedirect(params);\n this.deleteRequest(params.requestId);\n this.#getOrCreateNetworkRequest(params.requestId, cdpTarget, request.redirectCount + 1).onRequestWillBeSentEvent(params);\n }\n else {\n this.#getOrCreateNetworkRequest(params.requestId, cdpTarget).onRequestWillBeSentEvent(params);\n }\n },\n ],\n [\n 'Network.requestWillBeSentExtraInfo',\n (params) => {\n this.#getOrCreateNetworkRequest(params.requestId, cdpTarget).onRequestWillBeSentExtraInfoEvent(params);\n },\n ],\n [\n 'Network.responseReceived',\n (params) => {\n this.#getOrCreateNetworkRequest(params.requestId, cdpTarget).onResponseReceivedEvent(params);\n },\n ],\n [\n 'Network.responseReceivedExtraInfo',\n (params) => {\n this.#getOrCreateNetworkRequest(params.requestId, cdpTarget).onResponseReceivedExtraInfoEvent(params);\n },\n ],\n [\n 'Network.requestServedFromCache',\n (params) => {\n this.#getOrCreateNetworkRequest(params.requestId, cdpTarget).onServedFromCache();\n },\n ],\n [\n 'Network.loadingFailed',\n (params) => {\n this.#getOrCreateNetworkRequest(params.requestId, cdpTarget).onLoadingFailedEvent(params);\n },\n ],\n [\n 'Fetch.requestPaused',\n (event) => {\n this.#getOrCreateNetworkRequest(\n // CDP quirk if the Network domain is not present this is undefined\n event.networkId ?? event.requestId, cdpTarget).onRequestPaused(event);\n },\n ],\n [\n 'Fetch.authRequired',\n (event) => {\n let request = this.getRequestByFetchId(event.requestId);\n if (!request) {\n request = this.#getOrCreateNetworkRequest(event.requestId, cdpTarget);\n }\n request.onAuthRequired(event);\n },\n ],\n ];\n for (const [event, listener] of listeners) {\n cdpClient.on(event, listener);\n }\n }\n getInterceptionStages(browsingContextId) {\n const stages = {\n request: false,\n response: false,\n auth: false,\n };\n for (const intercept of this.#intercepts.values()) {\n if (intercept.contexts &&\n !intercept.contexts.includes(browsingContextId)) {\n continue;\n }\n stages.request ||= intercept.phases.includes(\"beforeRequestSent\" /* Network.InterceptPhase.BeforeRequestSent */);\n stages.response ||= intercept.phases.includes(\"responseStarted\" /* Network.InterceptPhase.ResponseStarted */);\n stages.auth ||= intercept.phases.includes(\"authRequired\" /* Network.InterceptPhase.AuthRequired */);\n }\n return stages;\n }\n getInterceptsForPhase(request, phase) {\n if (request.url === NetworkRequest_js_1.NetworkRequest.unknownParameter) {\n return new Set();\n }\n const intercepts = new Set();\n for (const [interceptId, intercept] of this.#intercepts.entries()) {\n if (!intercept.phases.includes(phase) ||\n (intercept.contexts &&\n !intercept.contexts.includes(request.cdpTarget.topLevelId))) {\n continue;\n }\n if (intercept.urlPatterns.length === 0) {\n intercepts.add(interceptId);\n continue;\n }\n for (const pattern of intercept.urlPatterns) {\n if ((0, NetworkUtils_js_1.matchUrlPattern)(pattern, request.url)) {\n intercepts.add(interceptId);\n break;\n }\n }\n }\n return intercepts;\n }\n disposeRequestMap(sessionId) {\n for (const request of this.#requests.values()) {\n if (request.cdpClient.sessionId === sessionId) {\n this.#requests.delete(request.id);\n request.dispose();\n }\n }\n }\n /**\n * Adds the given entry to the intercept map.\n * URL patterns are assumed to be parsed.\n *\n * @return The intercept ID.\n */\n addIntercept(value) {\n const interceptId = (0, uuid_js_1.uuidv4)();\n this.#intercepts.set(interceptId, value);\n return interceptId;\n }\n /**\n * Removes the given intercept from the intercept map.\n * Throws NoSuchInterceptException if the intercept does not exist.\n */\n removeIntercept(intercept) {\n if (!this.#intercepts.has(intercept)) {\n throw new protocol_js_1.NoSuchInterceptException(`Intercept '${intercept}' does not exist.`);\n }\n this.#intercepts.delete(intercept);\n }\n getRequestsByTarget(target) {\n const requests = [];\n for (const request of this.#requests.values()) {\n if (request.cdpTarget === target) {\n requests.push(request);\n }\n }\n return requests;\n }\n getRequestById(id) {\n return this.#requests.get(id);\n }\n getRequestByFetchId(fetchId) {\n for (const request of this.#requests.values()) {\n if (request.fetchId === fetchId) {\n return request;\n }\n }\n return;\n }\n addRequest(request) {\n this.#requests.set(request.id, request);\n }\n deleteRequest(id) {\n this.#requests.delete(id);\n }\n /**\n * Gets the virtual navigation ID for the given navigable ID.\n */\n getNavigationId(contextId) {\n if (contextId === undefined) {\n return null;\n }\n return (this.#browsingContextStorage.findContext(contextId)?.navigationId ?? null);\n }\n set defaultCacheBehavior(behavior) {\n this.#defaultCacheBehavior = behavior;\n }\n get defaultCacheBehavior() {\n return this.#defaultCacheBehavior;\n }\n}\nexports.NetworkStorage = NetworkStorage;\n//# sourceMappingURL=NetworkStorage.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PreloadScriptStorage = void 0;\n/*\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst ErrorResponse_js_1 = require(\"../../../protocol/ErrorResponse.js\");\n/**\n * Container class for preload scripts.\n */\nclass PreloadScriptStorage {\n /** Tracks all BiDi preload scripts. */\n #scripts = new Set();\n /**\n * Finds all entries that match the given filter (OR logic).\n */\n find(filter) {\n if (!filter) {\n return [...this.#scripts];\n }\n return [...this.#scripts].filter((script) => {\n // Global scripts have no contexts or userContext\n if (script.contexts === undefined && script.userContexts === undefined) {\n return true;\n }\n if (filter.targetId !== undefined &&\n script.targetIds.has(filter.targetId)) {\n return true;\n }\n return false;\n });\n }\n add(preloadScript) {\n this.#scripts.add(preloadScript);\n }\n /** Deletes all BiDi preload script entries that match the given filter. */\n remove(id) {\n const script = [...this.#scripts].find((script) => script.id === id);\n if (script === undefined) {\n throw new ErrorResponse_js_1.NoSuchScriptException(`No preload script with id '${id}'`);\n }\n this.#scripts.delete(script);\n }\n /** Gets the preload script with the given ID, if any, otherwise throws. */\n getPreloadScript(id) {\n const script = [...this.#scripts].find((script) => script.id === id);\n if (script === undefined) {\n throw new ErrorResponse_js_1.NoSuchScriptException(`No preload script with id '${id}'`);\n }\n return script;\n }\n onCdpTargetCreated(targetId, userContext) {\n const scriptInUserContext = [...this.#scripts].filter((script) => {\n // Global scripts\n if (!script.userContexts && !script.contexts) {\n return true;\n }\n return script.userContexts?.includes(userContext);\n });\n for (const script of scriptInUserContext) {\n script.targetIds.add(targetId);\n }\n }\n}\nexports.PreloadScriptStorage = PreloadScriptStorage;\n//# sourceMappingURL=PreloadScriptStorage.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RealmStorage = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst WindowRealm_js_1 = require(\"./WindowRealm.js\");\n/** Container class for browsing realms. */\nclass RealmStorage {\n /** Tracks handles and their realms sent to the client. */\n #knownHandlesToRealmMap = new Map();\n /** Map from realm ID to Realm. */\n #realmMap = new Map();\n get knownHandlesToRealmMap() {\n return this.#knownHandlesToRealmMap;\n }\n addRealm(realm) {\n this.#realmMap.set(realm.realmId, realm);\n }\n /** Finds all realms that match the given filter. */\n findRealms(filter) {\n return Array.from(this.#realmMap.values()).filter((realm) => {\n if (filter.realmId !== undefined && filter.realmId !== realm.realmId) {\n return false;\n }\n if (filter.browsingContextId !== undefined &&\n !realm.associatedBrowsingContexts\n .map((browsingContext) => browsingContext.id)\n .includes(filter.browsingContextId)) {\n return false;\n }\n if (filter.sandbox !== undefined &&\n (!(realm instanceof WindowRealm_js_1.WindowRealm) || filter.sandbox !== realm.sandbox)) {\n return false;\n }\n if (filter.executionContextId !== undefined &&\n filter.executionContextId !== realm.executionContextId) {\n return false;\n }\n if (filter.origin !== undefined && filter.origin !== realm.origin) {\n return false;\n }\n if (filter.type !== undefined && filter.type !== realm.realmType) {\n return false;\n }\n if (filter.cdpSessionId !== undefined &&\n filter.cdpSessionId !== realm.cdpClient.sessionId) {\n return false;\n }\n return true;\n });\n }\n findRealm(filter) {\n const maybeRealms = this.findRealms(filter);\n if (maybeRealms.length !== 1) {\n return undefined;\n }\n return maybeRealms[0];\n }\n /** Gets the only realm that matches the given filter, if any, otherwise throws. */\n getRealm(filter) {\n const maybeRealm = this.findRealm(filter);\n if (maybeRealm === undefined) {\n throw new protocol_js_1.NoSuchFrameException(`Realm ${JSON.stringify(filter)} not found`);\n }\n return maybeRealm;\n }\n /** Deletes all realms that match the given filter. */\n deleteRealms(filter) {\n this.findRealms(filter).map((realm) => {\n realm.dispose();\n this.#realmMap.delete(realm.realmId);\n Array.from(this.knownHandlesToRealmMap.entries())\n .filter(([, r]) => r === realm.realmId)\n .map(([handle]) => this.knownHandlesToRealmMap.delete(handle));\n });\n }\n}\nexports.RealmStorage = RealmStorage;\n//# sourceMappingURL=RealmStorage.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Buffer = void 0;\n/** Implements a FIFO buffer with a fixed size. */\nclass Buffer {\n #capacity;\n #entries = [];\n #onItemRemoved;\n /**\n * @param capacity The buffer capacity.\n * @param onItemRemoved Delegate called for each removed element.\n */\n constructor(capacity, onItemRemoved) {\n this.#capacity = capacity;\n this.#onItemRemoved = onItemRemoved;\n }\n get() {\n return this.#entries;\n }\n add(value) {\n this.#entries.push(value);\n while (this.#entries.length > this.#capacity) {\n const item = this.#entries.shift();\n if (item !== undefined) {\n this.#onItemRemoved?.(item);\n }\n }\n }\n}\nexports.Buffer = Buffer;\n//# sourceMappingURL=Buffer.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IdWrapper = void 0;\n/**\n * Creates an object with a positive unique incrementing id.\n */\nclass IdWrapper {\n static #counter = 0;\n #id;\n constructor() {\n this.#id = ++IdWrapper.#counter;\n }\n get id() {\n return this.#id;\n }\n}\nexports.IdWrapper = IdWrapper;\n//# sourceMappingURL=IdWrapper.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isCdpEvent = isCdpEvent;\nexports.assertSupportedEvent = assertSupportedEvent;\n/**\n * Copyright 2023 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\n/**\n * Returns true if the given event is a CDP event.\n * @see https://chromedevtools.github.io/devtools-protocol/\n */\nfunction isCdpEvent(name) {\n return (name.split('.').at(0)?.startsWith(protocol_js_1.ChromiumBidi.BiDiModule.Cdp) ?? false);\n}\n/**\n * Asserts that the given event is known to BiDi or BiDi+, or throws otherwise.\n */\nfunction assertSupportedEvent(name) {\n if (!protocol_js_1.ChromiumBidi.EVENT_NAMES.has(name) && !isCdpEvent(name)) {\n throw new protocol_js_1.InvalidArgumentException(`Unknown event: ${name}`);\n }\n}\n//# sourceMappingURL=events.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionManager = void 0;\nexports.cartesianProduct = cartesianProduct;\nexports.unrollEvents = unrollEvents;\nexports.difference = difference;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst uuid_js_1 = require(\"../../../utils/uuid.js\");\n/**\n * Returns the cartesian product of the given arrays.\n *\n * Example:\n * cartesian([1, 2], ['a', 'b']); => [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n */\nfunction cartesianProduct(...a) {\n return a.reduce((a, b) => a.flatMap((d) => b.map((e) => [d, e].flat())));\n}\n/** Expands \"AllEvents\" events into atomic events. */\nfunction unrollEvents(events) {\n const allEvents = new Set();\n function addEvents(events) {\n for (const event of events) {\n allEvents.add(event);\n }\n }\n for (const event of events) {\n switch (event) {\n case protocol_js_1.ChromiumBidi.BiDiModule.Bluetooth:\n addEvents(Object.values(protocol_js_1.ChromiumBidi.Bluetooth.EventNames));\n break;\n case protocol_js_1.ChromiumBidi.BiDiModule.BrowsingContext:\n addEvents(Object.values(protocol_js_1.ChromiumBidi.BrowsingContext.EventNames));\n break;\n case protocol_js_1.ChromiumBidi.BiDiModule.Input:\n addEvents(Object.values(protocol_js_1.ChromiumBidi.Input.EventNames));\n break;\n case protocol_js_1.ChromiumBidi.BiDiModule.Log:\n addEvents(Object.values(protocol_js_1.ChromiumBidi.Log.EventNames));\n break;\n case protocol_js_1.ChromiumBidi.BiDiModule.Network:\n addEvents(Object.values(protocol_js_1.ChromiumBidi.Network.EventNames));\n break;\n case protocol_js_1.ChromiumBidi.BiDiModule.Script:\n addEvents(Object.values(protocol_js_1.ChromiumBidi.Script.EventNames));\n break;\n default:\n allEvents.add(event);\n }\n }\n return allEvents.values();\n}\nclass SubscriptionManager {\n #subscriptions = [];\n #knownSubscriptionIds = new Set();\n #browsingContextStorage;\n constructor(browsingContextStorage) {\n this.#browsingContextStorage = browsingContextStorage;\n }\n getGoogChannelsSubscribedToEvent(eventName, contextId) {\n const googChannels = new Set();\n for (const subscription of this.#subscriptions) {\n if (this.#isSubscribedTo(subscription, eventName, contextId)) {\n googChannels.add(subscription.googChannel);\n }\n }\n return Array.from(googChannels);\n }\n getGoogChannelsSubscribedToEventGlobally(eventName) {\n const googChannels = new Set();\n for (const subscription of this.#subscriptions) {\n if (this.#isSubscribedTo(subscription, eventName)) {\n googChannels.add(subscription.googChannel);\n }\n }\n return Array.from(googChannels);\n }\n #isSubscribedTo(subscription, moduleOrEvent, browsingContextId) {\n let includesEvent = false;\n for (const eventName of subscription.eventNames) {\n // This also covers the `goog:cdp` case where\n // we don't unroll the event names\n if (\n // Event explicitly subscribed\n eventName === moduleOrEvent ||\n // Event subscribed via module\n eventName === moduleOrEvent.split('.').at(0) ||\n // Event explicitly subscribed compared to module\n eventName.split('.').at(0) === moduleOrEvent) {\n includesEvent = true;\n break;\n }\n }\n if (!includesEvent) {\n return false;\n }\n // user context subscription.\n if (subscription.userContextIds.size !== 0) {\n if (!browsingContextId) {\n return false;\n }\n const context = this.#browsingContextStorage.findContext(browsingContextId);\n if (!context) {\n return false;\n }\n return subscription.userContextIds.has(context.userContext);\n }\n // context subscription.\n if (subscription.topLevelTraversableIds.size !== 0) {\n if (!browsingContextId) {\n return false;\n }\n const topLevelContext = this.#browsingContextStorage.findTopLevelContextId(browsingContextId);\n return (topLevelContext !== null &&\n subscription.topLevelTraversableIds.has(topLevelContext));\n }\n // global subscription.\n return true;\n }\n isSubscribedTo(moduleOrEvent, contextId) {\n for (const subscription of this.#subscriptions) {\n if (this.#isSubscribedTo(subscription, moduleOrEvent, contextId)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Subscribes to event in the given context and goog:channel.\n * @return {SubscriptionItem[]} List of\n * subscriptions. If the event is a whole module, it will return all the specific\n * events. If the contextId is null, it will return all the top-level contexts which were\n * not subscribed before the command.\n */\n subscribe(eventNames, contextIds, userContextIds, googChannel) {\n // All the subscriptions are handled on the top-level contexts.\n const subscription = {\n id: (0, uuid_js_1.uuidv4)(),\n eventNames: new Set(unrollEvents(eventNames)),\n topLevelTraversableIds: new Set(contextIds.map((contextId) => {\n const topLevelContext = this.#browsingContextStorage.findTopLevelContextId(contextId);\n if (!topLevelContext) {\n throw new protocol_js_1.NoSuchFrameException(`Top-level navigable not found for context id ${contextId}`);\n }\n return topLevelContext;\n })),\n userContextIds: new Set(userContextIds),\n googChannel,\n };\n this.#subscriptions.push(subscription);\n this.#knownSubscriptionIds.add(subscription.id);\n return subscription;\n }\n /**\n * Unsubscribes atomically from all events in the given contexts and channel.\n *\n * This is a legacy spec branch to unsubscribe by attributes.\n */\n unsubscribe(inputEventNames, inputContextIds, googChannel) {\n const eventNames = new Set(unrollEvents(inputEventNames));\n // Validation that contexts exist.\n this.#browsingContextStorage.verifyContextsList(inputContextIds);\n const topLevelTraversables = new Set(inputContextIds.map((contextId) => {\n const topLevelContext = this.#browsingContextStorage.findTopLevelContextId(contextId);\n if (!topLevelContext) {\n throw new protocol_js_1.NoSuchFrameException(`Top-level navigable not found for context id ${contextId}`);\n }\n return topLevelContext;\n }));\n const isGlobalUnsubscribe = topLevelTraversables.size === 0;\n const newSubscriptions = [];\n const eventsMatched = new Set();\n const contextsMatched = new Set();\n for (const subscription of this.#subscriptions) {\n if (subscription.googChannel !== googChannel) {\n newSubscriptions.push(subscription);\n continue;\n }\n // Skip user context subscriptions.\n if (subscription.userContextIds.size !== 0) {\n newSubscriptions.push(subscription);\n continue;\n }\n // Skip subscriptions when none of the event names match.\n if (intersection(subscription.eventNames, eventNames).size === 0) {\n newSubscriptions.push(subscription);\n continue;\n }\n if (isGlobalUnsubscribe) {\n // Skip non-global subscriptions.\n if (subscription.topLevelTraversableIds.size !== 0) {\n newSubscriptions.push(subscription);\n continue;\n }\n const subscriptionEventNames = new Set(subscription.eventNames);\n for (const eventName of eventNames) {\n if (subscriptionEventNames.has(eventName)) {\n eventsMatched.add(eventName);\n subscriptionEventNames.delete(eventName);\n }\n }\n // If some events remain in the subscription, we keep it.\n if (subscriptionEventNames.size !== 0) {\n newSubscriptions.push({\n ...subscription,\n eventNames: subscriptionEventNames,\n });\n }\n }\n else {\n // Skip global subscriptions.\n if (subscription.topLevelTraversableIds.size === 0) {\n newSubscriptions.push(subscription);\n continue;\n }\n // Splitting context subscriptions.\n const eventMap = new Map();\n for (const eventName of subscription.eventNames) {\n eventMap.set(eventName, new Set(subscription.topLevelTraversableIds));\n }\n for (const eventName of eventNames) {\n const eventContextSet = eventMap.get(eventName);\n if (!eventContextSet) {\n continue;\n }\n for (const toRemoveId of topLevelTraversables) {\n if (eventContextSet.has(toRemoveId)) {\n contextsMatched.add(toRemoveId);\n eventsMatched.add(eventName);\n eventContextSet.delete(toRemoveId);\n }\n }\n if (eventContextSet.size === 0) {\n eventMap.delete(eventName);\n }\n }\n for (const [eventName, remainingContextIds] of eventMap) {\n const partialSubscription = {\n id: subscription.id,\n googChannel: subscription.googChannel,\n eventNames: new Set([eventName]),\n topLevelTraversableIds: remainingContextIds,\n userContextIds: new Set(),\n };\n newSubscriptions.push(partialSubscription);\n }\n }\n }\n // If some events did not match, it is an invalid request.\n if (!equal(eventsMatched, eventNames)) {\n throw new protocol_js_1.InvalidArgumentException('No subscription found');\n }\n // If some contexts did not match, it is an invalid request.\n if (!isGlobalUnsubscribe && !equal(contextsMatched, topLevelTraversables)) {\n throw new protocol_js_1.InvalidArgumentException('No subscription found');\n }\n // Committing the new subscriptions.\n this.#subscriptions = newSubscriptions;\n }\n /**\n * Unsubscribes by subscriptionId.\n */\n unsubscribeById(subscriptionIds) {\n const subscriptionIdsSet = new Set(subscriptionIds);\n const unknownIds = difference(subscriptionIdsSet, this.#knownSubscriptionIds);\n if (unknownIds.size !== 0) {\n throw new protocol_js_1.InvalidArgumentException('No subscription found');\n }\n this.#subscriptions = this.#subscriptions.filter((subscription) => {\n return !subscriptionIdsSet.has(subscription.id);\n });\n this.#knownSubscriptionIds = difference(this.#knownSubscriptionIds, subscriptionIdsSet);\n }\n}\nexports.SubscriptionManager = SubscriptionManager;\n/**\n * Replace with Set.prototype.intersection once Node 20 is dropped.\n */\nfunction intersection(setA, setB) {\n const result = new Set();\n for (const a of setA) {\n if (setB.has(a)) {\n result.add(a);\n }\n }\n return result;\n}\n/**\n * Replace with Set.prototype.difference once Node 20 is dropped.\n */\nfunction difference(setA, setB) {\n const result = new Set();\n for (const a of setA) {\n if (!setB.has(a)) {\n result.add(a);\n }\n }\n return result;\n}\nfunction equal(setA, setB) {\n if (setA.size !== setB.size) {\n return false;\n }\n for (const a of setA) {\n if (!setB.has(a)) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=SubscriptionManager.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventManager = void 0;\nconst protocol_js_1 = require(\"../../../protocol/protocol.js\");\nconst Buffer_js_1 = require(\"../../../utils/Buffer.js\");\nconst DefaultMap_js_1 = require(\"../../../utils/DefaultMap.js\");\nconst EventEmitter_js_1 = require(\"../../../utils/EventEmitter.js\");\nconst IdWrapper_js_1 = require(\"../../../utils/IdWrapper.js\");\nconst OutgoingMessage_js_1 = require(\"../../OutgoingMessage.js\");\nconst events_js_1 = require(\"./events.js\");\nconst SubscriptionManager_js_1 = require(\"./SubscriptionManager.js\");\nclass EventWrapper {\n #idWrapper = new IdWrapper_js_1.IdWrapper();\n #contextId;\n #event;\n constructor(event, contextId) {\n this.#event = event;\n this.#contextId = contextId;\n }\n get id() {\n return this.#idWrapper.id;\n }\n get contextId() {\n return this.#contextId;\n }\n get event() {\n return this.#event;\n }\n}\n/**\n * Maps event name to a desired buffer length.\n */\nconst eventBufferLength = new Map([[protocol_js_1.ChromiumBidi.Log.EventNames.LogEntryAdded, 100]]);\nclass EventManager extends EventEmitter_js_1.EventEmitter {\n /**\n * Maps event name to a set of contexts where this event already happened.\n * Needed for getting buffered events from all the contexts in case of\n * subscripting to all contexts.\n */\n #eventToContextsMap = new DefaultMap_js_1.DefaultMap(() => new Set());\n /**\n * Maps `eventName` + `browsingContext` to buffer. Used to get buffered events\n * during subscription. Channel-agnostic.\n */\n #eventBuffers = new Map();\n /**\n * Maps `eventName` + `browsingContext` to Map of goog:channel to last id.\n * Used to avoid sending duplicated events when user\n * subscribes -> unsubscribes -> subscribes.\n */\n #lastMessageSent = new Map();\n #subscriptionManager;\n #browsingContextStorage;\n /**\n * Map of event name to hooks to be called when client is subscribed to the event.\n */\n #subscribeHooks;\n #userContextStorage;\n constructor(browsingContextStorage, userContextStorage) {\n super();\n this.#browsingContextStorage = browsingContextStorage;\n this.#userContextStorage = userContextStorage;\n this.#subscriptionManager = new SubscriptionManager_js_1.SubscriptionManager(browsingContextStorage);\n this.#subscribeHooks = new DefaultMap_js_1.DefaultMap(() => []);\n }\n get subscriptionManager() {\n return this.#subscriptionManager;\n }\n /**\n * Returns consistent key to be used to access value maps.\n */\n static #getMapKey(eventName, browsingContext) {\n return JSON.stringify({ eventName, browsingContext });\n }\n addSubscribeHook(event, hook) {\n this.#subscribeHooks.get(event).push(hook);\n }\n registerEvent(event, contextId) {\n this.registerPromiseEvent(Promise.resolve({\n kind: 'success',\n value: event,\n }), contextId, event.method);\n }\n registerGlobalEvent(event) {\n this.registerGlobalPromiseEvent(Promise.resolve({\n kind: 'success',\n value: event,\n }), event.method);\n }\n registerPromiseEvent(event, contextId, eventName) {\n const eventWrapper = new EventWrapper(event, contextId);\n const sortedGoogChannels = this.#subscriptionManager.getGoogChannelsSubscribedToEvent(eventName, contextId);\n this.#bufferEvent(eventWrapper, eventName);\n // Send events to channels in the subscription priority.\n for (const googChannel of sortedGoogChannels) {\n this.emit(\"event\" /* EventManagerEvents.Event */, {\n message: OutgoingMessage_js_1.OutgoingMessage.createFromPromise(event, googChannel),\n event: eventName,\n });\n this.#markEventSent(eventWrapper, googChannel, eventName);\n }\n }\n registerGlobalPromiseEvent(event, eventName) {\n const eventWrapper = new EventWrapper(event, null);\n const sortedGoogChannels = this.#subscriptionManager.getGoogChannelsSubscribedToEventGlobally(eventName);\n this.#bufferEvent(eventWrapper, eventName);\n // Send events to goog:channels in the subscription priority.\n for (const googChannel of sortedGoogChannels) {\n this.emit(\"event\" /* EventManagerEvents.Event */, {\n message: OutgoingMessage_js_1.OutgoingMessage.createFromPromise(event, googChannel),\n event: eventName,\n });\n this.#markEventSent(eventWrapper, googChannel, eventName);\n }\n }\n async subscribe(eventNames, contextIds, userContextIds, googChannel) {\n for (const name of eventNames) {\n (0, events_js_1.assertSupportedEvent)(name);\n }\n if (userContextIds.length && contextIds.length) {\n throw new protocol_js_1.InvalidArgumentException('Both userContexts and contexts cannot be specified.');\n }\n // First check if all the contexts are known.\n this.#browsingContextStorage.verifyContextsList(contextIds);\n // Validate user contexts.\n await this.#userContextStorage.verifyUserContextIdList(userContextIds);\n const unrolledEventNames = new Set((0, SubscriptionManager_js_1.unrollEvents)(eventNames));\n const subscribeStepEvents = new Map();\n const subscriptionNavigableIds = new Set(contextIds.length\n ? contextIds.map((contextId) => {\n const id = this.#browsingContextStorage.findTopLevelContextId(contextId);\n if (!id) {\n throw new protocol_js_1.InvalidArgumentException('Invalid context id');\n }\n return id;\n })\n : this.#browsingContextStorage.getTopLevelContexts().map((c) => c.id));\n for (const eventName of unrolledEventNames) {\n const subscribedNavigableIds = new Set(this.#browsingContextStorage\n .getTopLevelContexts()\n .map((c) => c.id)\n .filter((id) => {\n return this.#subscriptionManager.isSubscribedTo(eventName, id);\n }));\n subscribeStepEvents.set(eventName, (0, SubscriptionManager_js_1.difference)(subscriptionNavigableIds, subscribedNavigableIds));\n }\n const subscription = this.#subscriptionManager.subscribe(eventNames, contextIds, userContextIds, googChannel);\n for (const eventName of subscription.eventNames) {\n for (const contextId of subscriptionNavigableIds) {\n for (const eventWrapper of this.#getBufferedEvents(eventName, contextId, googChannel)) {\n // The order of the events is important.\n this.emit(\"event\" /* EventManagerEvents.Event */, {\n message: OutgoingMessage_js_1.OutgoingMessage.createFromPromise(eventWrapper.event, googChannel),\n event: eventName,\n });\n this.#markEventSent(eventWrapper, googChannel, eventName);\n }\n }\n }\n for (const [eventName, contextIds] of subscribeStepEvents) {\n for (const contextId of contextIds) {\n this.#subscribeHooks.get(eventName).forEach((hook) => hook(contextId));\n }\n }\n await this.toggleModulesIfNeeded();\n return subscription.id;\n }\n async unsubscribe(eventNames, contextIds, googChannel) {\n for (const name of eventNames) {\n (0, events_js_1.assertSupportedEvent)(name);\n }\n this.#subscriptionManager.unsubscribe(eventNames, contextIds, googChannel);\n await this.toggleModulesIfNeeded();\n }\n async unsubscribeByIds(subscriptionIds) {\n this.#subscriptionManager.unsubscribeById(subscriptionIds);\n await this.toggleModulesIfNeeded();\n }\n async toggleModulesIfNeeded() {\n // TODO(1): Only update changed subscribers\n // TODO(2): Enable for Worker Targets\n await Promise.all(this.#browsingContextStorage.getAllContexts().map(async (context) => {\n return await context.toggleModulesIfNeeded();\n }));\n }\n clearBufferedEvents(contextId) {\n for (const eventName of eventBufferLength.keys()) {\n const bufferMapKey = _a.#getMapKey(eventName, contextId);\n this.#eventBuffers.delete(bufferMapKey);\n }\n }\n /**\n * If the event is buffer-able, put it in the buffer.\n */\n #bufferEvent(eventWrapper, eventName) {\n if (!eventBufferLength.has(eventName)) {\n // Do nothing if the event is no buffer-able.\n return;\n }\n const bufferMapKey = _a.#getMapKey(eventName, eventWrapper.contextId);\n if (!this.#eventBuffers.has(bufferMapKey)) {\n this.#eventBuffers.set(bufferMapKey, new Buffer_js_1.Buffer(eventBufferLength.get(eventName)));\n }\n this.#eventBuffers.get(bufferMapKey).add(eventWrapper);\n // Add the context to the list of contexts having `eventName` events.\n this.#eventToContextsMap.get(eventName).add(eventWrapper.contextId);\n }\n /**\n * If the event is buffer-able, mark it as sent to the given contextId and goog:channel.\n */\n #markEventSent(eventWrapper, googChannel, eventName) {\n if (!eventBufferLength.has(eventName)) {\n // Do nothing if the event is no buffer-able.\n return;\n }\n const lastSentMapKey = _a.#getMapKey(eventName, eventWrapper.contextId);\n const lastId = Math.max(this.#lastMessageSent.get(lastSentMapKey)?.get(googChannel) ?? 0, eventWrapper.id);\n const googChannelMap = this.#lastMessageSent.get(lastSentMapKey);\n if (googChannelMap) {\n googChannelMap.set(googChannel, lastId);\n }\n else {\n this.#lastMessageSent.set(lastSentMapKey, new Map([[googChannel, lastId]]));\n }\n }\n /**\n * Returns events which are buffered and not yet sent to the given goog:channel events.\n */\n #getBufferedEvents(eventName, contextId, googChannel) {\n const bufferMapKey = _a.#getMapKey(eventName, contextId);\n const lastSentMessageId = this.#lastMessageSent.get(bufferMapKey)?.get(googChannel) ?? -Infinity;\n const result = this.#eventBuffers\n .get(bufferMapKey)\n ?.get()\n .filter((wrapper) => wrapper.id > lastSentMessageId) ?? [];\n if (contextId === null) {\n // For global subscriptions, events buffered in each context should be sent back.\n Array.from(this.#eventToContextsMap.get(eventName).keys())\n .filter((_contextId) => \n // Events without context are already in the result.\n _contextId !== null &&\n // Events from deleted contexts should not be sent.\n this.#browsingContextStorage.hasContext(_contextId))\n .map((_contextId) => this.#getBufferedEvents(eventName, _contextId, googChannel))\n .forEach((events) => result.push(...events));\n }\n return result.sort((e1, e2) => e1.id - e2.id);\n }\n}\nexports.EventManager = EventManager;\n_a = EventManager;\n//# sourceMappingURL=EventManager.js.map","\"use strict\";\n/**\n * Copyright 2021 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BidiServer = void 0;\nconst EventEmitter_js_1 = require(\"../utils/EventEmitter.js\");\nconst log_js_1 = require(\"../utils/log.js\");\nconst ProcessingQueue_js_1 = require(\"../utils/ProcessingQueue.js\");\nconst CommandProcessor_js_1 = require(\"./CommandProcessor.js\");\nconst BluetoothProcessor_js_1 = require(\"./modules/bluetooth/BluetoothProcessor.js\");\nconst UserContextStorage_js_1 = require(\"./modules/browser/UserContextStorage.js\");\nconst CdpTargetManager_js_1 = require(\"./modules/cdp/CdpTargetManager.js\");\nconst BrowsingContextStorage_js_1 = require(\"./modules/context/BrowsingContextStorage.js\");\nconst NetworkStorage_js_1 = require(\"./modules/network/NetworkStorage.js\");\nconst PreloadScriptStorage_js_1 = require(\"./modules/script/PreloadScriptStorage.js\");\nconst RealmStorage_js_1 = require(\"./modules/script/RealmStorage.js\");\nconst EventManager_js_1 = require(\"./modules/session/EventManager.js\");\nclass BidiServer extends EventEmitter_js_1.EventEmitter {\n #messageQueue;\n #transport;\n #commandProcessor;\n #eventManager;\n #browsingContextStorage = new BrowsingContextStorage_js_1.BrowsingContextStorage();\n #realmStorage = new RealmStorage_js_1.RealmStorage();\n #preloadScriptStorage = new PreloadScriptStorage_js_1.PreloadScriptStorage();\n #bluetoothProcessor;\n #logger;\n #handleIncomingMessage = (message) => {\n void this.#commandProcessor.processCommand(message).catch((error) => {\n this.#logger?.(log_js_1.LogType.debugError, error);\n });\n };\n #processOutgoingMessage = async (messageEntry) => {\n const message = messageEntry.message;\n if (messageEntry.googChannel !== null) {\n message['goog:channel'] = messageEntry.googChannel;\n }\n await this.#transport.sendMessage(message);\n };\n constructor(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, defaultUserContextId, parser, logger) {\n super();\n this.#logger = logger;\n this.#messageQueue = new ProcessingQueue_js_1.ProcessingQueue(this.#processOutgoingMessage, this.#logger);\n this.#transport = bidiTransport;\n this.#transport.setOnMessage(this.#handleIncomingMessage);\n const userContextStorage = new UserContextStorage_js_1.UserContextStorage(browserCdpClient);\n this.#eventManager = new EventManager_js_1.EventManager(this.#browsingContextStorage, userContextStorage);\n const networkStorage = new NetworkStorage_js_1.NetworkStorage(this.#eventManager, this.#browsingContextStorage, browserCdpClient, logger);\n this.#bluetoothProcessor = new BluetoothProcessor_js_1.BluetoothProcessor(this.#eventManager, this.#browsingContextStorage);\n this.#commandProcessor = new CommandProcessor_js_1.CommandProcessor(cdpConnection, browserCdpClient, this.#eventManager, this.#browsingContextStorage, this.#realmStorage, this.#preloadScriptStorage, networkStorage, this.#bluetoothProcessor, userContextStorage, parser, async (options) => {\n // This is required to ignore certificate errors when service worker is fetched.\n await browserCdpClient.sendCommand('Security.setIgnoreCertificateErrors', {\n ignore: options.acceptInsecureCerts ?? false,\n });\n new CdpTargetManager_js_1.CdpTargetManager(cdpConnection, browserCdpClient, selfTargetId, this.#eventManager, this.#browsingContextStorage, userContextStorage, this.#realmStorage, networkStorage, this.#bluetoothProcessor, this.#preloadScriptStorage, defaultUserContextId, options?.['goog:prerenderingDisabled'] ?? false, options?.unhandledPromptBehavior, logger);\n // Needed to get events about new targets.\n await browserCdpClient.sendCommand('Target.setDiscoverTargets', {\n discover: true,\n });\n // Needed to automatically attach to new targets.\n await browserCdpClient.sendCommand('Target.setAutoAttach', {\n autoAttach: true,\n waitForDebuggerOnStart: true,\n flatten: true,\n // Browser session should attach to tab instead of the page, so that\n // prerendering is not blocked.\n filter: [\n {\n type: 'page',\n exclude: true,\n },\n {},\n ],\n });\n await this.#topLevelContextsLoaded();\n }, this.#logger);\n this.#eventManager.on(\"event\" /* EventManagerEvents.Event */, ({ message, event }) => {\n this.emitOutgoingMessage(message, event);\n });\n this.#commandProcessor.on(\"response\" /* CommandProcessorEvents.Response */, ({ message, event }) => {\n this.emitOutgoingMessage(message, event);\n });\n }\n /**\n * Creates and starts BiDi Mapper instance.\n */\n static async createAndStart(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, parser, logger) {\n // The default context is not exposed in Target.getBrowserContexts but can\n // be observed via Target.getTargets. To determine the default browser\n // context, we check which one is mentioned in Target.getTargets and not in\n // Target.getBrowserContexts.\n const [{ browserContextIds }, { targetInfos }] = await Promise.all([\n browserCdpClient.sendCommand('Target.getBrowserContexts'),\n browserCdpClient.sendCommand('Target.getTargets'),\n // Required for `Browser.downloadWillBegin` events.\n browserCdpClient.sendCommand('Browser.setDownloadBehavior', {\n behavior: 'default',\n eventsEnabled: true,\n }),\n ]);\n let defaultUserContextId = 'default';\n for (const info of targetInfos) {\n if (info.browserContextId &&\n !browserContextIds.includes(info.browserContextId)) {\n defaultUserContextId = info.browserContextId;\n break;\n }\n }\n const server = new BidiServer(bidiTransport, cdpConnection, browserCdpClient, selfTargetId, defaultUserContextId, parser, logger);\n return server;\n }\n /**\n * Sends BiDi message.\n */\n emitOutgoingMessage(messageEntry, event) {\n this.#messageQueue.add(messageEntry, event);\n }\n close() {\n this.#transport.close();\n }\n async #topLevelContextsLoaded() {\n await Promise.all(this.#browsingContextStorage\n .getTopLevelContexts()\n .map((c) => c.lifecycleLoaded()));\n }\n}\nexports.BidiServer = BidiServer;\n//# sourceMappingURL=BidiServer.js.map","\"use strict\";\n/**\n * Copyright 2022 Google LLC.\n * Copyright (c) Microsoft Corporation.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OutgoingMessage = exports.EventEmitter = exports.BidiServer = void 0;\n/**\n * @fileoverview The entry point to the BiDi Mapper namespace.\n * Other modules should only access exports defined in this file.\n * XXX: Add ESlint rule for this (https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-restricted-paths.md)\n */\nvar BidiServer_js_1 = require(\"./BidiServer.js\");\nObject.defineProperty(exports, \"BidiServer\", { enumerable: true, get: function () { return BidiServer_js_1.BidiServer; } });\nvar EventEmitter_js_1 = require(\"../utils/EventEmitter.js\");\nObject.defineProperty(exports, \"EventEmitter\", { enumerable: true, get: function () { return EventEmitter_js_1.EventEmitter; } });\nvar OutgoingMessage_js_1 = require(\"./OutgoingMessage.js\");\nObject.defineProperty(exports, \"OutgoingMessage\", { enumerable: true, get: function () { return OutgoingMessage_js_1.OutgoingMessage; } });\n//# sourceMappingURL=BidiMapper.js.map","import { CDPSession } from '../api/CDPSession.js';\nimport { TargetCloseError, UnsupportedOperation } from '../common/Errors.js';\nimport { Deferred } from '../util/Deferred.js';\n/**\n * @internal\n */\nexport class BidiCdpSession extends CDPSession {\n static sessions = new Map();\n #detached = false;\n #connection;\n #sessionId = Deferred.create();\n frame;\n constructor(frame, sessionId) {\n super();\n this.frame = frame;\n if (!this.frame.page().browser().cdpSupported) {\n return;\n }\n const connection = this.frame.page().browser().connection;\n this.#connection = connection;\n if (sessionId) {\n this.#sessionId.resolve(sessionId);\n BidiCdpSession.sessions.set(sessionId, this);\n }\n else {\n (async () => {\n try {\n const { result } = await connection.send('goog:cdp.getSession', {\n context: frame._id,\n });\n this.#sessionId.resolve(result.session);\n BidiCdpSession.sessions.set(result.session, this);\n }\n catch (error) {\n this.#sessionId.reject(error);\n }\n })();\n }\n // SAFETY: We never throw #sessionId.\n BidiCdpSession.sessions.set(this.#sessionId.value(), this);\n }\n connection() {\n return undefined;\n }\n get detached() {\n return this.#detached;\n }\n async send(method, params, options) {\n if (this.#connection === undefined) {\n throw new UnsupportedOperation('CDP support is required for this feature. The current browser does not support CDP.');\n }\n if (this.#detached) {\n throw new TargetCloseError(`Protocol error (${method}): Session closed. Most likely the page has been closed.`);\n }\n const session = await this.#sessionId.valueOrThrow();\n const { result } = await this.#connection.send('goog:cdp.sendCommand', {\n method: method,\n params: params,\n session,\n }, options?.timeout);\n return result.result;\n }\n async detach() {\n if (this.#connection === undefined ||\n this.#connection.closed ||\n this.#detached) {\n return;\n }\n try {\n await this.frame.client.send('Target.detachFromTarget', {\n sessionId: this.id(),\n });\n }\n finally {\n this.onClose();\n }\n }\n /**\n * @internal\n */\n onClose = () => {\n BidiCdpSession.sessions.delete(this.id());\n this.#detached = true;\n };\n id() {\n const value = this.#sessionId.value();\n return typeof value === 'string' ? value : '';\n }\n}\n//# sourceMappingURL=CDPSession.js.map","/**\n * @license\n * Copyright 2017 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { CallbackRegistry } from '../common/CallbackRegistry.js';\nimport { debug } from '../common/Debug.js';\nimport { EventEmitter } from '../common/EventEmitter.js';\nimport { debugError } from '../common/util.js';\nimport { assert } from '../util/assert.js';\nimport { BidiCdpSession } from './CDPSession.js';\nconst debugProtocolSend = debug('puppeteer:webDriverBiDi:SEND ►');\nconst debugProtocolReceive = debug('puppeteer:webDriverBiDi:RECV ◀');\n/**\n * @internal\n */\nexport class BidiConnection extends EventEmitter {\n #url;\n #transport;\n #delay;\n #timeout = 0;\n #closed = false;\n #callbacks = new CallbackRegistry();\n #emitters = [];\n constructor(url, transport, delay = 0, timeout) {\n super();\n this.#url = url;\n this.#delay = delay;\n this.#timeout = timeout ?? 180_000;\n this.#transport = transport;\n this.#transport.onmessage = this.onMessage.bind(this);\n this.#transport.onclose = this.unbind.bind(this);\n }\n get closed() {\n return this.#closed;\n }\n get url() {\n return this.#url;\n }\n pipeTo(emitter) {\n this.#emitters.push(emitter);\n }\n emit(type, event) {\n for (const emitter of this.#emitters) {\n emitter.emit(type, event);\n }\n return super.emit(type, event);\n }\n send(method, params, timeout) {\n assert(!this.#closed, 'Protocol error: Connection closed.');\n return this.#callbacks.create(method, timeout ?? this.#timeout, id => {\n const stringifiedMessage = JSON.stringify({\n id,\n method,\n params,\n });\n debugProtocolSend(stringifiedMessage);\n this.#transport.send(stringifiedMessage);\n });\n }\n /**\n * @internal\n */\n async onMessage(message) {\n if (this.#delay) {\n await new Promise(f => {\n return setTimeout(f, this.#delay);\n });\n }\n debugProtocolReceive(message);\n const object = JSON.parse(message);\n if ('type' in object) {\n switch (object.type) {\n case 'success':\n this.#callbacks.resolve(object.id, object);\n return;\n case 'error':\n if (object.id === null) {\n break;\n }\n this.#callbacks.reject(object.id, createProtocolError(object), `${object.error}: ${object.message}`);\n return;\n case 'event':\n if (isCdpEvent(object)) {\n BidiCdpSession.sessions\n .get(object.params.session)\n ?.emit(object.params.event, object.params.params);\n return;\n }\n // SAFETY: We know the method and parameter still match here.\n this.emit(object.method, object.params);\n return;\n }\n }\n // Even if the response in not in BiDi protocol format but `id` is provided, reject\n // the callback. This can happen if the endpoint supports CDP instead of BiDi.\n if ('id' in object) {\n this.#callbacks.reject(object.id, `Protocol Error. Message is not in BiDi protocol format: '${message}'`, object.message);\n }\n debugError(object);\n }\n /**\n * Unbinds the connection, but keeps the transport open. Useful when the transport will\n * be reused by other connection e.g. with different protocol.\n * @internal\n */\n unbind() {\n if (this.#closed) {\n return;\n }\n this.#closed = true;\n // Both may still be invoked and produce errors\n this.#transport.onmessage = () => { };\n this.#transport.onclose = () => { };\n this.#callbacks.clear();\n }\n /**\n * Unbinds the connection and closes the transport.\n */\n dispose() {\n this.unbind();\n this.#transport.close();\n }\n getPendingProtocolErrors() {\n return this.#callbacks.getPendingProtocolErrors();\n }\n}\n/**\n * @internal\n */\nfunction createProtocolError(object) {\n let message = `${object.error} ${object.message}`;\n if (object.stacktrace) {\n message += ` ${object.stacktrace}`;\n }\n return message;\n}\nfunction isCdpEvent(event) {\n return event.method.startsWith('goog:cdp.');\n}\n//# sourceMappingURL=Connection.js.map","/**\n * @license\n * Copyright 2023 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport * as BidiMapper from 'chromium-bidi/lib/cjs/bidiMapper/BidiMapper.js';\nimport { debug } from '../common/Debug.js';\nimport { TargetCloseError } from '../common/Errors.js';\nimport { BidiConnection } from './Connection.js';\nconst bidiServerLogger = (prefix, ...args) => {\n debug(`bidi:${prefix}`)(args);\n};\n/**\n * @internal\n */\nexport async function connectBidiOverCdp(cdp) {\n const transportBiDi = new NoOpTransport();\n const cdpConnectionAdapter = new CdpConnectionAdapter(cdp);\n const pptrTransport = {\n send(message) {\n // Forwards a BiDi command sent by Puppeteer to the input of the BidiServer.\n transportBiDi.emitMessage(JSON.parse(message));\n },\n close() {\n bidiServer.close();\n cdpConnectionAdapter.close();\n cdp.dispose();\n },\n onmessage(_message) {\n // The method is overridden by the Connection.\n },\n };\n transportBiDi.on('bidiResponse', (message) => {\n // Forwards a BiDi event sent by BidiServer to Puppeteer.\n pptrTransport.onmessage(JSON.stringify(message));\n });\n const pptrBiDiConnection = new BidiConnection(cdp.url(), pptrTransport, cdp.delay, cdp.timeout);\n const bidiServer = await BidiMapper.BidiServer.createAndStart(transportBiDi, cdpConnectionAdapter, cdpConnectionAdapter.browserClient(), \n /* selfTargetId= */ '', undefined, bidiServerLogger);\n return pptrBiDiConnection;\n}\n/**\n * Manages CDPSessions for BidiServer.\n * @internal\n */\nclass CdpConnectionAdapter {\n #cdp;\n #adapters = new Map();\n #browserCdpConnection;\n constructor(cdp) {\n this.#cdp = cdp;\n this.#browserCdpConnection = new CDPClientAdapter(cdp);\n }\n browserClient() {\n return this.#browserCdpConnection;\n }\n getCdpClient(id) {\n const session = this.#cdp.session(id);\n if (!session) {\n throw new Error(`Unknown CDP session with id ${id}`);\n }\n if (!this.#adapters.has(session)) {\n const adapter = new CDPClientAdapter(session, id, this.#browserCdpConnection);\n this.#adapters.set(session, adapter);\n return adapter;\n }\n return this.#adapters.get(session);\n }\n close() {\n this.#browserCdpConnection.close();\n for (const adapter of this.#adapters.values()) {\n adapter.close();\n }\n }\n}\n/**\n * Wrapper on top of CDPSession/CDPConnection to satisfy CDP interface that\n * BidiServer needs.\n *\n * @internal\n */\nclass CDPClientAdapter extends BidiMapper.EventEmitter {\n #closed = false;\n #client;\n sessionId = undefined;\n #browserClient;\n constructor(client, sessionId, browserClient) {\n super();\n this.#client = client;\n this.sessionId = sessionId;\n this.#browserClient = browserClient;\n this.#client.on('*', this.#forwardMessage);\n }\n browserClient() {\n return this.#browserClient;\n }\n #forwardMessage = (method, event) => {\n this.emit(method, event);\n };\n async sendCommand(method, ...params) {\n if (this.#closed) {\n return;\n }\n try {\n return await this.#client.send(method, ...params);\n }\n catch (err) {\n if (this.#closed) {\n return;\n }\n throw err;\n }\n }\n close() {\n this.#client.off('*', this.#forwardMessage);\n this.#closed = true;\n }\n isCloseError(error) {\n return error instanceof TargetCloseError;\n }\n}\n/**\n * This transport is given to the BiDi server instance and allows Puppeteer\n * to send and receive commands to the BiDiServer.\n * @internal\n */\nclass NoOpTransport extends BidiMapper.EventEmitter {\n #onMessage = async (_m) => {\n return;\n };\n emitMessage(message) {\n void this.#onMessage(message);\n }\n setOnMessage(onMessage) {\n this.#onMessage = onMessage;\n }\n async sendMessage(message) {\n this.emit('bidiResponse', message);\n }\n close() {\n this.#onMessage = async (_m) => {\n return;\n };\n }\n}\n//# sourceMappingURL=BidiOverCdp.js.map","/**\n * @license\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nimport { EventEmitter } from '../../common/EventEmitter.js';\nimport { inertIfDisposed } from '../../util/decorators.js';\nimport { DisposableStack, disposeSymbol } from '../../util/disposable.js';\n/**\n * @internal\n */\nlet Navigation = (() => {\n var _a;\n let _classSuper = EventEmitter;\n let _instanceExtraInitializers = [];\n let _dispose_decorators;\n return class Navigation extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n __esDecorate(this, null, _dispose_decorators, { kind: \"method\", name: \"dispose\", static: false, private: false, access: { has: obj => \"dispose\" in obj, get: obj => obj.dispose }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static from(context) {\n const navigation = new Navigation(context);\n navigation.#initialize();\n return navigation;\n }\n #request = __runInitializers(this, _instanceExtraInitializers);\n #navigation;\n #browsingContext;\n #disposables = new DisposableStack();\n #id;\n constructor(context) {\n super();\n this.#browsingContext = context;\n }\n #initialize() {\n const browsingContextEmitter = this.#disposables.use(new EventEmitter(this.#browsingContext));\n browsingContextEmitter.once('closed', () => {\n this.emit('failed', {\n url: this.#browsingContext.url,\n timestamp: new Date(),\n });\n this.dispose();\n });\n browsingContextEmitter.on('request', ({ request }) => {\n if (request.navigation === undefined ||\n // If a request with a navigation ID comes in, then the navigation ID is\n // for this navigation.\n !this.#matches(request.navigation)) {\n return;\n }\n this.#request = request;\n this.emit('request', request);\n const requestEmitter = this.#disposables.use(new EventEmitter(this.#request));\n requestEmitter.on('redirect', request => {\n this.#request = request;\n });\n });\n const sessionEmitter = this.#disposables.use(new EventEmitter(this.#session));\n sessionEmitter.on('browsingContext.navigationStarted', info => {\n if (info.context !== this.#browsingContext.id ||\n this.#navigation !== undefined) {\n return;\n }\n this.#navigation = Navigation.from(this.#browsingContext);\n });\n for (const eventName of [\n 'browsingContext.domContentLoaded',\n 'browsingContext.load',\n ]) {\n sessionEmitter.on(eventName, info => {\n if (info.context !== this.#browsingContext.id ||\n info.navigation === null ||\n !this.#matches(info.navigation)) {\n return;\n }\n this.dispose();\n });\n }\n for (const [eventName, event] of [\n ['browsingContext.fragmentNavigated', 'fragment'],\n ['browsingContext.navigationFailed', 'failed'],\n ['browsingContext.navigationAborted', 'aborted'],\n ]) {\n sessionEmitter.on(eventName, info => {\n if (info.context !== this.#browsingContext.id ||\n // Note we don't check if `navigation` is null since `null` means the\n // fragment navigated.\n !this.#matches(info.navigation)) {\n return;\n }\n this.emit(event, {\n url: info.url,\n timestamp: new Date(info.timestamp),\n });\n this.dispose();\n });\n }\n }\n #matches(navigation) {\n if (this.#navigation !== undefined && !this.#navigation.disposed) {\n return false;\n }\n if (this.#id === undefined) {\n this.#id = navigation;\n return true;\n }\n return this.#id === navigation;\n }\n get #session() {\n return this.#browsingContext.userContext.browser.session;\n }\n get disposed() {\n return this.#disposables.disposed;\n }\n get request() {\n return this.#request;\n }\n get navigation() {\n return this.#navigation;\n }\n dispose() {\n this[disposeSymbol]();\n }\n [(_dispose_decorators = [inertIfDisposed], disposeSymbol)]() {\n this.#disposables.dispose();\n super[disposeSymbol]();\n }\n };\n})();\nexport { Navigation };\n//# sourceMappingURL=Navigation.js.map","/**\n * @license\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nvar _a;\nimport { EventEmitter } from '../../common/EventEmitter.js';\nimport { inertIfDisposed, throwIfDisposed } from '../../util/decorators.js';\nimport { DisposableStack, disposeSymbol } from '../../util/disposable.js';\n/**\n * @internal\n */\nlet Realm = (() => {\n let _classSuper = EventEmitter;\n let _instanceExtraInitializers = [];\n let _dispose_decorators;\n let _disown_decorators;\n let _callFunction_decorators;\n let _evaluate_decorators;\n let _resolveExecutionContextId_decorators;\n return class Realm extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n __esDecorate(this, null, _dispose_decorators, { kind: \"method\", name: \"dispose\", static: false, private: false, access: { has: obj => \"dispose\" in obj, get: obj => obj.dispose }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _disown_decorators, { kind: \"method\", name: \"disown\", static: false, private: false, access: { has: obj => \"disown\" in obj, get: obj => obj.disown }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _callFunction_decorators, { kind: \"method\", name: \"callFunction\", static: false, private: false, access: { has: obj => \"callFunction\" in obj, get: obj => obj.callFunction }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _evaluate_decorators, { kind: \"method\", name: \"evaluate\", static: false, private: false, access: { has: obj => \"evaluate\" in obj, get: obj => obj.evaluate }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _resolveExecutionContextId_decorators, { kind: \"method\", name: \"resolveExecutionContextId\", static: false, private: false, access: { has: obj => \"resolveExecutionContextId\" in obj, get: obj => obj.resolveExecutionContextId }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n #reason = __runInitializers(this, _instanceExtraInitializers);\n disposables = new DisposableStack();\n id;\n origin;\n executionContextId;\n constructor(id, origin) {\n super();\n this.id = id;\n this.origin = origin;\n }\n get disposed() {\n return this.#reason !== undefined;\n }\n get target() {\n return { realm: this.id };\n }\n dispose(reason) {\n this.#reason = reason;\n this[disposeSymbol]();\n }\n async disown(handles) {\n await this.session.send('script.disown', {\n target: this.target,\n handles,\n });\n }\n async callFunction(functionDeclaration, awaitPromise, options = {}) {\n const { result } = await this.session.send('script.callFunction', {\n functionDeclaration,\n awaitPromise,\n target: this.target,\n ...options,\n });\n return result;\n }\n async evaluate(expression, awaitPromise, options = {}) {\n const { result } = await this.session.send('script.evaluate', {\n expression,\n awaitPromise,\n target: this.target,\n ...options,\n });\n return result;\n }\n async resolveExecutionContextId() {\n if (!this.executionContextId) {\n const { result } = await this.session.connection.send('goog:cdp.resolveRealm', { realm: this.id });\n this.executionContextId = result.executionContextId;\n }\n return this.executionContextId;\n }\n [(_dispose_decorators = [inertIfDisposed], _disown_decorators = [throwIfDisposed(realm => {\n // SAFETY: Disposal implies this exists.\n return realm.#reason;\n })], _callFunction_decorators = [throwIfDisposed(realm => {\n // SAFETY: Disposal implies this exists.\n return realm.#reason;\n })], _evaluate_decorators = [throwIfDisposed(realm => {\n // SAFETY: Disposal implies this exists.\n return realm.#reason;\n })], _resolveExecutionContextId_decorators = [throwIfDisposed(realm => {\n // SAFETY: Disposal implies this exists.\n return realm.#reason;\n })], disposeSymbol)]() {\n this.#reason ??=\n 'Realm already destroyed, probably because all associated browsing contexts closed.';\n this.emit('destroyed', { reason: this.#reason });\n this.disposables.dispose();\n super[disposeSymbol]();\n }\n };\n})();\nexport { Realm };\n/**\n * @internal\n */\nexport class WindowRealm extends Realm {\n static from(context, sandbox) {\n const realm = new WindowRealm(context, sandbox);\n realm.#initialize();\n return realm;\n }\n browsingContext;\n sandbox;\n #workers = new Map();\n constructor(context, sandbox) {\n super('', '');\n this.browsingContext = context;\n this.sandbox = sandbox;\n }\n #initialize() {\n const browsingContextEmitter = this.disposables.use(new EventEmitter(this.browsingContext));\n browsingContextEmitter.on('closed', ({ reason }) => {\n this.dispose(reason);\n });\n const sessionEmitter = this.disposables.use(new EventEmitter(this.session));\n sessionEmitter.on('script.realmCreated', info => {\n if (info.type !== 'window' ||\n info.context !== this.browsingContext.id ||\n info.sandbox !== this.sandbox) {\n return;\n }\n this.id = info.realm;\n this.origin = info.origin;\n this.executionContextId = undefined;\n this.emit('updated', this);\n });\n sessionEmitter.on('script.realmCreated', info => {\n if (info.type !== 'dedicated-worker') {\n return;\n }\n if (!info.owners.includes(this.id)) {\n return;\n }\n const realm = DedicatedWorkerRealm.from(this, info.realm, info.origin);\n this.#workers.set(realm.id, realm);\n const realmEmitter = this.disposables.use(new EventEmitter(realm));\n realmEmitter.once('destroyed', () => {\n realmEmitter.removeAllListeners();\n this.#workers.delete(realm.id);\n });\n this.emit('worker', realm);\n });\n }\n get session() {\n return this.browsingContext.userContext.browser.session;\n }\n get target() {\n return { context: this.browsingContext.id, sandbox: this.sandbox };\n }\n}\n/**\n * @internal\n */\nexport class DedicatedWorkerRealm extends Realm {\n static from(owner, id, origin) {\n const realm = new _a(owner, id, origin);\n realm.#initialize();\n return realm;\n }\n #workers = new Map();\n owners;\n constructor(owner, id, origin) {\n super(id, origin);\n this.owners = new Set([owner]);\n }\n #initialize() {\n const sessionEmitter = this.disposables.use(new EventEmitter(this.session));\n sessionEmitter.on('script.realmDestroyed', info => {\n if (info.realm !== this.id) {\n return;\n }\n this.dispose('Realm already destroyed.');\n });\n sessionEmitter.on('script.realmCreated', info => {\n if (info.type !== 'dedicated-worker') {\n return;\n }\n if (!info.owners.includes(this.id)) {\n return;\n }\n const realm = _a.from(this, info.realm, info.origin);\n this.#workers.set(realm.id, realm);\n const realmEmitter = this.disposables.use(new EventEmitter(realm));\n realmEmitter.once('destroyed', () => {\n this.#workers.delete(realm.id);\n });\n this.emit('worker', realm);\n });\n }\n get session() {\n // SAFETY: At least one owner will exist.\n return this.owners.values().next().value.session;\n }\n}\n_a = DedicatedWorkerRealm;\n/**\n * @internal\n */\nexport class SharedWorkerRealm extends Realm {\n static from(browser, id, origin) {\n const realm = new SharedWorkerRealm(browser, id, origin);\n realm.#initialize();\n return realm;\n }\n #workers = new Map();\n browser;\n constructor(browser, id, origin) {\n super(id, origin);\n this.browser = browser;\n }\n #initialize() {\n const sessionEmitter = this.disposables.use(new EventEmitter(this.session));\n sessionEmitter.on('script.realmDestroyed', info => {\n if (info.realm !== this.id) {\n return;\n }\n this.dispose('Realm already destroyed.');\n });\n sessionEmitter.on('script.realmCreated', info => {\n if (info.type !== 'dedicated-worker') {\n return;\n }\n if (!info.owners.includes(this.id)) {\n return;\n }\n const realm = DedicatedWorkerRealm.from(this, info.realm, info.origin);\n this.#workers.set(realm.id, realm);\n const realmEmitter = this.disposables.use(new EventEmitter(realm));\n realmEmitter.once('destroyed', () => {\n this.#workers.delete(realm.id);\n });\n this.emit('worker', realm);\n });\n }\n get session() {\n return this.browser.session;\n }\n}\n//# sourceMappingURL=Realm.js.map","/**\n * @license\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nimport { EventEmitter } from '../../common/EventEmitter.js';\nimport { inertIfDisposed } from '../../util/decorators.js';\nimport { DisposableStack, disposeSymbol } from '../../util/disposable.js';\n/**\n * @internal\n */\nlet Request = (() => {\n var _a;\n let _classSuper = EventEmitter;\n let _instanceExtraInitializers = [];\n let _dispose_decorators;\n return class Request extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n __esDecorate(this, null, _dispose_decorators, { kind: \"method\", name: \"dispose\", static: false, private: false, access: { has: obj => \"dispose\" in obj, get: obj => obj.dispose }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static from(browsingContext, event) {\n const request = new Request(browsingContext, event);\n request.#initialize();\n return request;\n }\n #error = __runInitializers(this, _instanceExtraInitializers);\n #redirect;\n #response;\n #browsingContext;\n #disposables = new DisposableStack();\n #event;\n constructor(browsingContext, event) {\n super();\n this.#browsingContext = browsingContext;\n this.#event = event;\n }\n #initialize() {\n const browsingContextEmitter = this.#disposables.use(new EventEmitter(this.#browsingContext));\n browsingContextEmitter.once('closed', ({ reason }) => {\n this.#error = reason;\n this.emit('error', this.#error);\n this.dispose();\n });\n const sessionEmitter = this.#disposables.use(new EventEmitter(this.#session));\n sessionEmitter.on('network.beforeRequestSent', event => {\n if (event.context !== this.#browsingContext.id ||\n event.request.request !== this.id ||\n event.redirectCount !== this.#event.redirectCount + 1) {\n return;\n }\n this.#redirect = Request.from(this.#browsingContext, event);\n this.emit('redirect', this.#redirect);\n this.dispose();\n });\n sessionEmitter.on('network.authRequired', event => {\n if (event.context !== this.#browsingContext.id ||\n event.request.request !== this.id ||\n // Don't try to authenticate for events that are not blocked\n !event.isBlocked) {\n return;\n }\n this.emit('authenticate', undefined);\n });\n sessionEmitter.on('network.fetchError', event => {\n if (event.context !== this.#browsingContext.id ||\n event.request.request !== this.id ||\n this.#event.redirectCount !== event.redirectCount) {\n return;\n }\n this.#error = event.errorText;\n this.emit('error', this.#error);\n this.dispose();\n });\n sessionEmitter.on('network.responseCompleted', event => {\n if (event.context !== this.#browsingContext.id ||\n event.request.request !== this.id ||\n this.#event.redirectCount !== event.redirectCount) {\n return;\n }\n this.#response = event.response;\n this.#event.request.timings = event.request.timings;\n this.emit('success', this.#response);\n // In case this is a redirect.\n if (this.#response.status >= 300 && this.#response.status < 400) {\n return;\n }\n this.dispose();\n });\n }\n get #session() {\n return this.#browsingContext.userContext.browser.session;\n }\n get disposed() {\n return this.#disposables.disposed;\n }\n get error() {\n return this.#error;\n }\n get headers() {\n return this.#event.request.headers;\n }\n get id() {\n return this.#event.request.request;\n }\n get initiator() {\n return this.#event.initiator;\n }\n get method() {\n return this.#event.request.method;\n }\n get navigation() {\n return this.#event.navigation ?? undefined;\n }\n get redirect() {\n return this.#redirect;\n }\n get lastRedirect() {\n let redirect = this.#redirect;\n while (redirect) {\n if (redirect && !redirect.#redirect) {\n return redirect;\n }\n redirect = redirect.#redirect;\n }\n return redirect;\n }\n get response() {\n return this.#response;\n }\n get url() {\n return this.#event.request.url;\n }\n get isBlocked() {\n return this.#event.isBlocked;\n }\n get resourceType() {\n // @ts-expect-error non-standard attribute.\n return this.#event.request['goog:resourceType'] ?? undefined;\n }\n get postData() {\n // @ts-expect-error non-standard attribute.\n return this.#event.request['goog:postData'] ?? undefined;\n }\n get hasPostData() {\n // @ts-expect-error non-standard attribute.\n return this.#event.request['goog:hasPostData'] ?? false;\n }\n async continueRequest({ url, method, headers, cookies, body, }) {\n await this.#session.send('network.continueRequest', {\n request: this.id,\n url,\n method,\n headers,\n body,\n cookies,\n });\n }\n async failRequest() {\n await this.#session.send('network.failRequest', {\n request: this.id,\n });\n }\n async provideResponse({ statusCode, reasonPhrase, headers, body, }) {\n await this.#session.send('network.provideResponse', {\n request: this.id,\n statusCode,\n reasonPhrase,\n headers,\n body,\n });\n }\n async continueWithAuth(parameters) {\n if (parameters.action === 'provideCredentials') {\n await this.#session.send('network.continueWithAuth', {\n request: this.id,\n action: parameters.action,\n credentials: parameters.credentials,\n });\n }\n else {\n await this.#session.send('network.continueWithAuth', {\n request: this.id,\n action: parameters.action,\n });\n }\n }\n dispose() {\n this[disposeSymbol]();\n }\n [(_dispose_decorators = [inertIfDisposed], disposeSymbol)]() {\n this.#disposables.dispose();\n super[disposeSymbol]();\n }\n timing() {\n return this.#event.request.timings;\n }\n };\n})();\nexport { Request };\n//# sourceMappingURL=Request.js.map","/**\n * @license\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nimport { EventEmitter } from '../../common/EventEmitter.js';\nimport { inertIfDisposed, throwIfDisposed } from '../../util/decorators.js';\nimport { DisposableStack, disposeSymbol } from '../../util/disposable.js';\n/**\n * @internal\n */\nlet UserPrompt = (() => {\n let _classSuper = EventEmitter;\n let _instanceExtraInitializers = [];\n let _dispose_decorators;\n let _handle_decorators;\n return class UserPrompt extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n __esDecorate(this, null, _dispose_decorators, { kind: \"method\", name: \"dispose\", static: false, private: false, access: { has: obj => \"dispose\" in obj, get: obj => obj.dispose }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handle_decorators, { kind: \"method\", name: \"handle\", static: false, private: false, access: { has: obj => \"handle\" in obj, get: obj => obj.handle }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static from(browsingContext, info) {\n const userPrompt = new UserPrompt(browsingContext, info);\n userPrompt.#initialize();\n return userPrompt;\n }\n #reason = __runInitializers(this, _instanceExtraInitializers);\n #result;\n #disposables = new DisposableStack();\n browsingContext;\n info;\n constructor(context, info) {\n super();\n this.browsingContext = context;\n this.info = info;\n }\n #initialize() {\n const browserContextEmitter = this.#disposables.use(new EventEmitter(this.browsingContext));\n browserContextEmitter.once('closed', ({ reason }) => {\n this.dispose(`User prompt already closed: ${reason}`);\n });\n const sessionEmitter = this.#disposables.use(new EventEmitter(this.#session));\n sessionEmitter.on('browsingContext.userPromptClosed', parameters => {\n if (parameters.context !== this.browsingContext.id) {\n return;\n }\n this.#result = parameters;\n this.emit('handled', parameters);\n this.dispose('User prompt already handled.');\n });\n }\n get #session() {\n return this.browsingContext.userContext.browser.session;\n }\n get closed() {\n return this.#reason !== undefined;\n }\n get disposed() {\n return this.closed;\n }\n get handled() {\n if (this.info.handler === \"accept\" /* Bidi.Session.UserPromptHandlerType.Accept */ ||\n this.info.handler === \"dismiss\" /* Bidi.Session.UserPromptHandlerType.Dismiss */) {\n return true;\n }\n return this.#result !== undefined;\n }\n get result() {\n return this.#result;\n }\n dispose(reason) {\n this.#reason = reason;\n this[disposeSymbol]();\n }\n async handle(options = {}) {\n await this.#session.send('browsingContext.handleUserPrompt', {\n ...options,\n context: this.info.context,\n });\n // SAFETY: `handled` is triggered before the above promise resolved.\n return this.#result;\n }\n [(_dispose_decorators = [inertIfDisposed], _handle_decorators = [throwIfDisposed(prompt => {\n // SAFETY: Disposal implies this exists.\n return prompt.#reason;\n })], disposeSymbol)]() {\n this.#reason ??=\n 'User prompt already closed, probably because the associated browsing context was destroyed.';\n this.emit('closed', { reason: this.#reason });\n this.#disposables.dispose();\n super[disposeSymbol]();\n }\n };\n})();\nexport { UserPrompt };\n//# sourceMappingURL=UserPrompt.js.map","/**\n * @license\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nimport { EventEmitter } from '../../common/EventEmitter.js';\nimport { inertIfDisposed, throwIfDisposed } from '../../util/decorators.js';\nimport { DisposableStack, disposeSymbol } from '../../util/disposable.js';\nimport { Navigation } from './Navigation.js';\nimport { WindowRealm } from './Realm.js';\nimport { Request } from './Request.js';\nimport { UserPrompt } from './UserPrompt.js';\n/**\n * @internal\n */\nlet BrowsingContext = (() => {\n var _a;\n let _classSuper = EventEmitter;\n let _instanceExtraInitializers = [];\n let _dispose_decorators;\n let _activate_decorators;\n let _captureScreenshot_decorators;\n let _close_decorators;\n let _traverseHistory_decorators;\n let _navigate_decorators;\n let _reload_decorators;\n let _setCacheBehavior_decorators;\n let _print_decorators;\n let _handleUserPrompt_decorators;\n let _setViewport_decorators;\n let _performActions_decorators;\n let _releaseActions_decorators;\n let _createWindowRealm_decorators;\n let _addPreloadScript_decorators;\n let _addIntercept_decorators;\n let _removePreloadScript_decorators;\n let _setGeolocationOverride_decorators;\n let _getCookies_decorators;\n let _setCookie_decorators;\n let _setFiles_decorators;\n let _subscribe_decorators;\n let _addInterception_decorators;\n let _deleteCookie_decorators;\n let _locateNodes_decorators;\n return class BrowsingContext extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _deleteCookie_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })];\n _locateNodes_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })];\n __esDecorate(this, null, _dispose_decorators, { kind: \"method\", name: \"dispose\", static: false, private: false, access: { has: obj => \"dispose\" in obj, get: obj => obj.dispose }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _activate_decorators, { kind: \"method\", name: \"activate\", static: false, private: false, access: { has: obj => \"activate\" in obj, get: obj => obj.activate }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _captureScreenshot_decorators, { kind: \"method\", name: \"captureScreenshot\", static: false, private: false, access: { has: obj => \"captureScreenshot\" in obj, get: obj => obj.captureScreenshot }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _close_decorators, { kind: \"method\", name: \"close\", static: false, private: false, access: { has: obj => \"close\" in obj, get: obj => obj.close }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _traverseHistory_decorators, { kind: \"method\", name: \"traverseHistory\", static: false, private: false, access: { has: obj => \"traverseHistory\" in obj, get: obj => obj.traverseHistory }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _navigate_decorators, { kind: \"method\", name: \"navigate\", static: false, private: false, access: { has: obj => \"navigate\" in obj, get: obj => obj.navigate }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _reload_decorators, { kind: \"method\", name: \"reload\", static: false, private: false, access: { has: obj => \"reload\" in obj, get: obj => obj.reload }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _setCacheBehavior_decorators, { kind: \"method\", name: \"setCacheBehavior\", static: false, private: false, access: { has: obj => \"setCacheBehavior\" in obj, get: obj => obj.setCacheBehavior }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _print_decorators, { kind: \"method\", name: \"print\", static: false, private: false, access: { has: obj => \"print\" in obj, get: obj => obj.print }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleUserPrompt_decorators, { kind: \"method\", name: \"handleUserPrompt\", static: false, private: false, access: { has: obj => \"handleUserPrompt\" in obj, get: obj => obj.handleUserPrompt }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _setViewport_decorators, { kind: \"method\", name: \"setViewport\", static: false, private: false, access: { has: obj => \"setViewport\" in obj, get: obj => obj.setViewport }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _performActions_decorators, { kind: \"method\", name: \"performActions\", static: false, private: false, access: { has: obj => \"performActions\" in obj, get: obj => obj.performActions }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _releaseActions_decorators, { kind: \"method\", name: \"releaseActions\", static: false, private: false, access: { has: obj => \"releaseActions\" in obj, get: obj => obj.releaseActions }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _createWindowRealm_decorators, { kind: \"method\", name: \"createWindowRealm\", static: false, private: false, access: { has: obj => \"createWindowRealm\" in obj, get: obj => obj.createWindowRealm }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _addPreloadScript_decorators, { kind: \"method\", name: \"addPreloadScript\", static: false, private: false, access: { has: obj => \"addPreloadScript\" in obj, get: obj => obj.addPreloadScript }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _addIntercept_decorators, { kind: \"method\", name: \"addIntercept\", static: false, private: false, access: { has: obj => \"addIntercept\" in obj, get: obj => obj.addIntercept }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _removePreloadScript_decorators, { kind: \"method\", name: \"removePreloadScript\", static: false, private: false, access: { has: obj => \"removePreloadScript\" in obj, get: obj => obj.removePreloadScript }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _setGeolocationOverride_decorators, { kind: \"method\", name: \"setGeolocationOverride\", static: false, private: false, access: { has: obj => \"setGeolocationOverride\" in obj, get: obj => obj.setGeolocationOverride }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _getCookies_decorators, { kind: \"method\", name: \"getCookies\", static: false, private: false, access: { has: obj => \"getCookies\" in obj, get: obj => obj.getCookies }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _setCookie_decorators, { kind: \"method\", name: \"setCookie\", static: false, private: false, access: { has: obj => \"setCookie\" in obj, get: obj => obj.setCookie }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _setFiles_decorators, { kind: \"method\", name: \"setFiles\", static: false, private: false, access: { has: obj => \"setFiles\" in obj, get: obj => obj.setFiles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _subscribe_decorators, { kind: \"method\", name: \"subscribe\", static: false, private: false, access: { has: obj => \"subscribe\" in obj, get: obj => obj.subscribe }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _addInterception_decorators, { kind: \"method\", name: \"addInterception\", static: false, private: false, access: { has: obj => \"addInterception\" in obj, get: obj => obj.addInterception }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _deleteCookie_decorators, { kind: \"method\", name: \"deleteCookie\", static: false, private: false, access: { has: obj => \"deleteCookie\" in obj, get: obj => obj.deleteCookie }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _locateNodes_decorators, { kind: \"method\", name: \"locateNodes\", static: false, private: false, access: { has: obj => \"locateNodes\" in obj, get: obj => obj.locateNodes }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static from(userContext, parent, id, url, originalOpener) {\n const browsingContext = new BrowsingContext(userContext, parent, id, url, originalOpener);\n browsingContext.#initialize();\n return browsingContext;\n }\n #navigation = __runInitializers(this, _instanceExtraInitializers);\n #reason;\n #url;\n #children = new Map();\n #disposables = new DisposableStack();\n #realms = new Map();\n #requests = new Map();\n defaultRealm;\n id;\n parent;\n userContext;\n originalOpener;\n constructor(context, parent, id, url, originalOpener) {\n super();\n this.#url = url;\n this.id = id;\n this.parent = parent;\n this.userContext = context;\n this.originalOpener = originalOpener;\n this.defaultRealm = this.#createWindowRealm();\n }\n #initialize() {\n const userContextEmitter = this.#disposables.use(new EventEmitter(this.userContext));\n userContextEmitter.once('closed', ({ reason }) => {\n this.dispose(`Browsing context already closed: ${reason}`);\n });\n const sessionEmitter = this.#disposables.use(new EventEmitter(this.#session));\n sessionEmitter.on('input.fileDialogOpened', info => {\n if (this.id !== info.context) {\n return;\n }\n this.emit('filedialogopened', info);\n });\n sessionEmitter.on('browsingContext.contextCreated', info => {\n if (info.parent !== this.id) {\n return;\n }\n const browsingContext = BrowsingContext.from(this.userContext, this, info.context, info.url, info.originalOpener);\n this.#children.set(info.context, browsingContext);\n const browsingContextEmitter = this.#disposables.use(new EventEmitter(browsingContext));\n browsingContextEmitter.once('closed', () => {\n browsingContextEmitter.removeAllListeners();\n this.#children.delete(browsingContext.id);\n });\n this.emit('browsingcontext', { browsingContext });\n });\n sessionEmitter.on('browsingContext.contextDestroyed', info => {\n if (info.context !== this.id) {\n return;\n }\n this.dispose('Browsing context already closed.');\n });\n sessionEmitter.on('browsingContext.historyUpdated', info => {\n if (info.context !== this.id) {\n return;\n }\n this.#url = info.url;\n this.emit('historyUpdated', undefined);\n });\n sessionEmitter.on('browsingContext.domContentLoaded', info => {\n if (info.context !== this.id) {\n return;\n }\n this.#url = info.url;\n this.emit('DOMContentLoaded', undefined);\n });\n sessionEmitter.on('browsingContext.load', info => {\n if (info.context !== this.id) {\n return;\n }\n this.#url = info.url;\n this.emit('load', undefined);\n });\n sessionEmitter.on('browsingContext.navigationStarted', info => {\n if (info.context !== this.id) {\n return;\n }\n // Note: we should not update this.#url at this point since the context\n // has not finished navigating to the info.url yet.\n for (const [id, request] of this.#requests) {\n if (request.disposed) {\n this.#requests.delete(id);\n }\n }\n // If the navigation hasn't finished, then this is nested navigation. The\n // current navigation will handle this.\n if (this.#navigation !== undefined && !this.#navigation.disposed) {\n return;\n }\n // Note the navigation ID is null for this event.\n this.#navigation = Navigation.from(this);\n const navigationEmitter = this.#disposables.use(new EventEmitter(this.#navigation));\n for (const eventName of ['fragment', 'failed', 'aborted']) {\n navigationEmitter.once(eventName, ({ url }) => {\n navigationEmitter[disposeSymbol]();\n this.#url = url;\n });\n }\n this.emit('navigation', { navigation: this.#navigation });\n });\n sessionEmitter.on('network.beforeRequestSent', event => {\n if (event.context !== this.id) {\n return;\n }\n if (this.#requests.has(event.request.request)) {\n // Means the request is a redirect. This is handled in Request.\n // Or an Auth event was issued\n return;\n }\n const request = Request.from(this, event);\n this.#requests.set(request.id, request);\n this.emit('request', { request });\n });\n sessionEmitter.on('log.entryAdded', entry => {\n if (entry.source.context !== this.id) {\n return;\n }\n this.emit('log', { entry });\n });\n sessionEmitter.on('browsingContext.userPromptOpened', info => {\n if (info.context !== this.id) {\n return;\n }\n const userPrompt = UserPrompt.from(this, info);\n this.emit('userprompt', { userPrompt });\n });\n }\n get #session() {\n return this.userContext.browser.session;\n }\n get children() {\n return this.#children.values();\n }\n get closed() {\n return this.#reason !== undefined;\n }\n get disposed() {\n return this.closed;\n }\n get realms() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias -- Required\n const self = this;\n return (function* () {\n yield self.defaultRealm;\n yield* self.#realms.values();\n })();\n }\n get top() {\n let context = this;\n for (let { parent } = context; parent; { parent } = context) {\n context = parent;\n }\n return context;\n }\n get url() {\n return this.#url;\n }\n #createWindowRealm(sandbox) {\n const realm = WindowRealm.from(this, sandbox);\n realm.on('worker', realm => {\n this.emit('worker', { realm });\n });\n return realm;\n }\n dispose(reason) {\n this.#reason = reason;\n for (const context of this.#children.values()) {\n context.dispose('Parent browsing context was disposed');\n }\n this[disposeSymbol]();\n }\n async activate() {\n await this.#session.send('browsingContext.activate', {\n context: this.id,\n });\n }\n async captureScreenshot(options = {}) {\n const { result: { data }, } = await this.#session.send('browsingContext.captureScreenshot', {\n context: this.id,\n ...options,\n });\n return data;\n }\n async close(promptUnload) {\n await Promise.all([...this.#children.values()].map(async (child) => {\n await child.close(promptUnload);\n }));\n await this.#session.send('browsingContext.close', {\n context: this.id,\n promptUnload,\n });\n }\n async traverseHistory(delta) {\n await this.#session.send('browsingContext.traverseHistory', {\n context: this.id,\n delta,\n });\n }\n async navigate(url, wait) {\n await this.#session.send('browsingContext.navigate', {\n context: this.id,\n url,\n wait,\n });\n }\n async reload(options = {}) {\n await this.#session.send('browsingContext.reload', {\n context: this.id,\n ...options,\n });\n }\n async setCacheBehavior(cacheBehavior) {\n // @ts-expect-error not in BiDi types yet.\n await this.#session.send('network.setCacheBehavior', {\n contexts: [this.id],\n cacheBehavior,\n });\n }\n async print(options = {}) {\n const { result: { data }, } = await this.#session.send('browsingContext.print', {\n context: this.id,\n ...options,\n });\n return data;\n }\n async handleUserPrompt(options = {}) {\n await this.#session.send('browsingContext.handleUserPrompt', {\n context: this.id,\n ...options,\n });\n }\n async setViewport(options = {}) {\n await this.#session.send('browsingContext.setViewport', {\n context: this.id,\n ...options,\n });\n }\n async performActions(actions) {\n await this.#session.send('input.performActions', {\n context: this.id,\n actions,\n });\n }\n async releaseActions() {\n await this.#session.send('input.releaseActions', {\n context: this.id,\n });\n }\n createWindowRealm(sandbox) {\n return this.#createWindowRealm(sandbox);\n }\n async addPreloadScript(functionDeclaration, options = {}) {\n return await this.userContext.browser.addPreloadScript(functionDeclaration, {\n ...options,\n contexts: [this],\n });\n }\n async addIntercept(options) {\n const { result: { intercept }, } = await this.userContext.browser.session.send('network.addIntercept', {\n ...options,\n contexts: [this.id],\n });\n return intercept;\n }\n async removePreloadScript(script) {\n await this.userContext.browser.removePreloadScript(script);\n }\n async setGeolocationOverride(options) {\n if (!('coordinates' in options)) {\n throw new Error('Missing coordinates');\n }\n await this.userContext.browser.session.send('emulation.setGeolocationOverride', {\n coordinates: options.coordinates,\n contexts: [this.id],\n });\n }\n async getCookies(options = {}) {\n const { result: { cookies }, } = await this.#session.send('storage.getCookies', {\n ...options,\n partition: {\n type: 'context',\n context: this.id,\n },\n });\n return cookies;\n }\n async setCookie(cookie) {\n await this.#session.send('storage.setCookie', {\n cookie,\n partition: {\n type: 'context',\n context: this.id,\n },\n });\n }\n async setFiles(element, files) {\n await this.#session.send('input.setFiles', {\n context: this.id,\n element,\n files,\n });\n }\n async subscribe(events) {\n await this.#session.subscribe(events, [this.id]);\n }\n async addInterception(events) {\n await this.#session.subscribe(events, [this.id]);\n }\n [(_dispose_decorators = [inertIfDisposed], _activate_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _captureScreenshot_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _close_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _traverseHistory_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _navigate_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _reload_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _setCacheBehavior_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _print_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _handleUserPrompt_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _setViewport_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _performActions_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _releaseActions_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _createWindowRealm_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _addPreloadScript_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _addIntercept_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _removePreloadScript_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _setGeolocationOverride_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _getCookies_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _setCookie_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _setFiles_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _subscribe_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _addInterception_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], disposeSymbol)]() {\n this.#reason ??=\n 'Browsing context already closed, probably because the user context closed.';\n this.emit('closed', { reason: this.#reason });\n this.#disposables.dispose();\n super[disposeSymbol]();\n }\n async deleteCookie(...cookieFilters) {\n await Promise.all(cookieFilters.map(async (filter) => {\n await this.#session.send('storage.deleteCookies', {\n filter: filter,\n partition: {\n type: 'context',\n context: this.id,\n },\n });\n }));\n }\n async locateNodes(locator, startNodes) {\n // TODO: add other locateNodes options if needed.\n const result = await this.#session.send('browsingContext.locateNodes', {\n context: this.id,\n locator,\n startNodes: startNodes.length ? startNodes : undefined,\n });\n return result.result.nodes;\n }\n };\n})();\nexport { BrowsingContext };\n//# sourceMappingURL=BrowsingContext.js.map","/**\n * @license\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nimport { EventEmitter } from '../../common/EventEmitter.js';\nimport { assert } from '../../util/assert.js';\nimport { inertIfDisposed, throwIfDisposed } from '../../util/decorators.js';\nimport { DisposableStack, disposeSymbol } from '../../util/disposable.js';\nimport { BrowsingContext } from './BrowsingContext.js';\n/**\n * @internal\n */\nlet UserContext = (() => {\n let _classSuper = EventEmitter;\n let _instanceExtraInitializers = [];\n let _dispose_decorators;\n let _createBrowsingContext_decorators;\n let _remove_decorators;\n let _getCookies_decorators;\n let _setCookie_decorators;\n let _setPermissions_decorators;\n return class UserContext extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n __esDecorate(this, null, _dispose_decorators, { kind: \"method\", name: \"dispose\", static: false, private: false, access: { has: obj => \"dispose\" in obj, get: obj => obj.dispose }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _createBrowsingContext_decorators, { kind: \"method\", name: \"createBrowsingContext\", static: false, private: false, access: { has: obj => \"createBrowsingContext\" in obj, get: obj => obj.createBrowsingContext }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _remove_decorators, { kind: \"method\", name: \"remove\", static: false, private: false, access: { has: obj => \"remove\" in obj, get: obj => obj.remove }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _getCookies_decorators, { kind: \"method\", name: \"getCookies\", static: false, private: false, access: { has: obj => \"getCookies\" in obj, get: obj => obj.getCookies }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _setCookie_decorators, { kind: \"method\", name: \"setCookie\", static: false, private: false, access: { has: obj => \"setCookie\" in obj, get: obj => obj.setCookie }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _setPermissions_decorators, { kind: \"method\", name: \"setPermissions\", static: false, private: false, access: { has: obj => \"setPermissions\" in obj, get: obj => obj.setPermissions }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static DEFAULT = 'default';\n static create(browser, id) {\n const context = new UserContext(browser, id);\n context.#initialize();\n return context;\n }\n #reason = __runInitializers(this, _instanceExtraInitializers);\n // Note these are only top-level contexts.\n #browsingContexts = new Map();\n #disposables = new DisposableStack();\n #id;\n browser;\n constructor(browser, id) {\n super();\n this.#id = id;\n this.browser = browser;\n }\n #initialize() {\n const browserEmitter = this.#disposables.use(new EventEmitter(this.browser));\n browserEmitter.once('closed', ({ reason }) => {\n this.dispose(`User context was closed: ${reason}`);\n });\n browserEmitter.once('disconnected', ({ reason }) => {\n this.dispose(`User context was closed: ${reason}`);\n });\n const sessionEmitter = this.#disposables.use(new EventEmitter(this.#session));\n sessionEmitter.on('browsingContext.contextCreated', info => {\n if (info.parent) {\n return;\n }\n if (info.userContext !== this.#id) {\n return;\n }\n const browsingContext = BrowsingContext.from(this, undefined, info.context, info.url, info.originalOpener);\n this.#browsingContexts.set(browsingContext.id, browsingContext);\n const browsingContextEmitter = this.#disposables.use(new EventEmitter(browsingContext));\n browsingContextEmitter.on('closed', () => {\n browsingContextEmitter.removeAllListeners();\n this.#browsingContexts.delete(browsingContext.id);\n });\n this.emit('browsingcontext', { browsingContext });\n });\n }\n get #session() {\n return this.browser.session;\n }\n get browsingContexts() {\n return this.#browsingContexts.values();\n }\n get closed() {\n return this.#reason !== undefined;\n }\n get disposed() {\n return this.closed;\n }\n get id() {\n return this.#id;\n }\n dispose(reason) {\n this.#reason = reason;\n this[disposeSymbol]();\n }\n async createBrowsingContext(type, options = {}) {\n const { result: { context: contextId }, } = await this.#session.send('browsingContext.create', {\n type,\n ...options,\n referenceContext: options.referenceContext?.id,\n userContext: this.#id,\n });\n const browsingContext = this.#browsingContexts.get(contextId);\n assert(browsingContext, 'The WebDriver BiDi implementation is failing to create a browsing context correctly.');\n // We use an array to avoid the promise from being awaited.\n return browsingContext;\n }\n async remove() {\n try {\n await this.#session.send('browser.removeUserContext', {\n userContext: this.#id,\n });\n }\n finally {\n this.dispose('User context already closed.');\n }\n }\n async getCookies(options = {}, sourceOrigin = undefined) {\n const { result: { cookies }, } = await this.#session.send('storage.getCookies', {\n ...options,\n partition: {\n type: 'storageKey',\n userContext: this.#id,\n sourceOrigin,\n },\n });\n return cookies;\n }\n async setCookie(cookie, sourceOrigin) {\n await this.#session.send('storage.setCookie', {\n cookie,\n partition: {\n type: 'storageKey',\n sourceOrigin,\n userContext: this.id,\n },\n });\n }\n async setPermissions(origin, descriptor, state) {\n await this.#session.send('permissions.setPermission', {\n origin,\n descriptor,\n state,\n userContext: this.#id,\n });\n }\n [(_dispose_decorators = [inertIfDisposed], _createBrowsingContext_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _remove_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _getCookies_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _setCookie_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], _setPermissions_decorators = [throwIfDisposed(context => {\n // SAFETY: Disposal implies this exists.\n return context.#reason;\n })], disposeSymbol)]() {\n this.#reason ??=\n 'User context already closed, probably because the browser disconnected/closed.';\n this.emit('closed', { reason: this.#reason });\n this.#disposables.dispose();\n super[disposeSymbol]();\n }\n };\n})();\nexport { UserContext };\n//# sourceMappingURL=UserContext.js.map","/**\n * @license\n * Copyright 2023 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { debugError } from '../common/util.js';\n/**\n * @internal\n */\nexport class BidiDeserializer {\n static deserialize(result) {\n if (!result) {\n debugError('Service did not produce a result.');\n return undefined;\n }\n switch (result.type) {\n case 'array':\n return result.value?.map(value => {\n return this.deserialize(value);\n });\n case 'set':\n return result.value?.reduce((acc, value) => {\n return acc.add(this.deserialize(value));\n }, new Set());\n case 'object':\n return result.value?.reduce((acc, tuple) => {\n const { key, value } = this.#deserializeTuple(tuple);\n acc[key] = value;\n return acc;\n }, {});\n case 'map':\n return result.value?.reduce((acc, tuple) => {\n const { key, value } = this.#deserializeTuple(tuple);\n return acc.set(key, value);\n }, new Map());\n case 'promise':\n return {};\n case 'regexp':\n return new RegExp(result.value.pattern, result.value.flags);\n case 'date':\n return new Date(result.value);\n case 'undefined':\n return undefined;\n case 'null':\n return null;\n case 'number':\n return this.#deserializeNumber(result.value);\n case 'bigint':\n return BigInt(result.value);\n case 'boolean':\n return Boolean(result.value);\n case 'string':\n return result.value;\n }\n debugError(`Deserialization of type ${result.type} not supported.`);\n return undefined;\n }\n static #deserializeNumber(value) {\n switch (value) {\n case '-0':\n return -0;\n case 'NaN':\n return NaN;\n case 'Infinity':\n return Infinity;\n case '-Infinity':\n return -Infinity;\n default:\n return value;\n }\n }\n static #deserializeTuple([serializedKey, serializedValue]) {\n const key = typeof serializedKey === 'string'\n ? serializedKey\n : this.deserialize(serializedKey);\n const value = this.deserialize(serializedValue);\n return { key, value };\n }\n}\n//# sourceMappingURL=Deserializer.js.map","/**\n * @license\n * Copyright 2023 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { JSHandle } from '../api/JSHandle.js';\nimport { UnsupportedOperation } from '../common/Errors.js';\nimport { BidiDeserializer } from './Deserializer.js';\n/**\n * @internal\n */\nexport class BidiJSHandle extends JSHandle {\n static from(value, realm) {\n return new BidiJSHandle(value, realm);\n }\n #remoteValue;\n realm;\n #disposed = false;\n constructor(value, realm) {\n super();\n this.#remoteValue = value;\n this.realm = realm;\n }\n get disposed() {\n return this.#disposed;\n }\n async jsonValue() {\n return await this.evaluate(value => {\n return value;\n });\n }\n asElement() {\n return null;\n }\n async dispose() {\n if (this.#disposed) {\n return;\n }\n this.#disposed = true;\n await this.realm.destroyHandles([this]);\n }\n get isPrimitiveValue() {\n switch (this.#remoteValue.type) {\n case 'string':\n case 'number':\n case 'bigint':\n case 'boolean':\n case 'undefined':\n case 'null':\n return true;\n default:\n return false;\n }\n }\n toString() {\n if (this.isPrimitiveValue) {\n return 'JSHandle:' + BidiDeserializer.deserialize(this.#remoteValue);\n }\n return 'JSHandle@' + this.#remoteValue.type;\n }\n get id() {\n return 'handle' in this.#remoteValue ? this.#remoteValue.handle : undefined;\n }\n remoteValue() {\n return this.#remoteValue;\n }\n remoteObject() {\n throw new UnsupportedOperation('Not available in WebDriver BiDi');\n }\n}\n//# sourceMappingURL=JSHandle.js.map","/**\n * @license\n * Copyright 2023 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nimport { bindIsolatedHandle, ElementHandle, } from '../api/ElementHandle.js';\nimport { UnsupportedOperation } from '../common/Errors.js';\nimport { environment } from '../environment.js';\nimport { AsyncIterableUtil } from '../util/AsyncIterableUtil.js';\nimport { throwIfDisposed } from '../util/decorators.js';\nimport { BidiJSHandle } from './JSHandle.js';\n/**\n * @internal\n */\nlet BidiElementHandle = (() => {\n let _classSuper = ElementHandle;\n let _instanceExtraInitializers = [];\n let _autofill_decorators;\n let _contentFrame_decorators;\n return class BidiElementHandle extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _autofill_decorators = [throwIfDisposed()];\n _contentFrame_decorators = [throwIfDisposed(), bindIsolatedHandle];\n __esDecorate(this, null, _autofill_decorators, { kind: \"method\", name: \"autofill\", static: false, private: false, access: { has: obj => \"autofill\" in obj, get: obj => obj.autofill }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _contentFrame_decorators, { kind: \"method\", name: \"contentFrame\", static: false, private: false, access: { has: obj => \"contentFrame\" in obj, get: obj => obj.contentFrame }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n #backendNodeId = __runInitializers(this, _instanceExtraInitializers);\n static from(value, realm) {\n return new BidiElementHandle(value, realm);\n }\n constructor(value, realm) {\n super(BidiJSHandle.from(value, realm));\n }\n get realm() {\n // SAFETY: See the super call in the constructor.\n return this.handle.realm;\n }\n get frame() {\n return this.realm.environment;\n }\n remoteValue() {\n return this.handle.remoteValue();\n }\n async autofill(data) {\n const client = this.frame.client;\n const nodeInfo = await client.send('DOM.describeNode', {\n objectId: this.handle.id,\n });\n const fieldId = nodeInfo.node.backendNodeId;\n const frameId = this.frame._id;\n await client.send('Autofill.trigger', {\n fieldId,\n frameId,\n card: data.creditCard,\n });\n }\n async contentFrame() {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const handle = __addDisposableResource(env_1, (await this.evaluateHandle(element => {\n if (element instanceof HTMLIFrameElement ||\n element instanceof HTMLFrameElement) {\n return element.contentWindow;\n }\n return;\n })), false);\n const value = handle.remoteValue();\n if (value.type === 'window') {\n return (this.frame\n .page()\n .frames()\n .find(frame => {\n return frame._id === value.value.context;\n }) ?? null);\n }\n return null;\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n __disposeResources(env_1);\n }\n }\n async uploadFile(...files) {\n // Locate all files and confirm that they exist.\n const path = environment.value.path;\n if (path) {\n files = files.map(file => {\n if (path.win32.isAbsolute(file) || path.posix.isAbsolute(file)) {\n return file;\n }\n else {\n return path.resolve(file);\n }\n });\n }\n await this.frame.setFiles(this, files);\n }\n async *queryAXTree(name, role) {\n const results = await this.frame.locateNodes(this, {\n type: 'accessibility',\n value: {\n role,\n name,\n },\n });\n return yield* AsyncIterableUtil.map(results, node => {\n // TODO: maybe change ownership since the default ownership is probably none.\n return Promise.resolve(BidiElementHandle.from(node, this.realm));\n });\n }\n async backendNodeId() {\n if (!this.frame.page().browser().cdpSupported) {\n throw new UnsupportedOperation();\n }\n if (this.#backendNodeId) {\n return this.#backendNodeId;\n }\n const { node } = await this.frame.client.send('DOM.describeNode', {\n objectId: this.handle.id,\n });\n this.#backendNodeId = node.backendNodeId;\n return this.#backendNodeId;\n }\n };\n})();\nexport { BidiElementHandle };\n//# sourceMappingURL=ElementHandle.js.map","/**\n * @license\n * Copyright 2017 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Dialog } from '../api/Dialog.js';\nexport class BidiDialog extends Dialog {\n static from(prompt) {\n return new BidiDialog(prompt);\n }\n #prompt;\n constructor(prompt) {\n super(prompt.info.type, prompt.info.message, prompt.info.defaultValue);\n this.#prompt = prompt;\n this.handled = prompt.handled;\n }\n async handle(options) {\n await this.#prompt.handle({\n accept: options.accept,\n userText: options.text,\n });\n }\n}\n//# sourceMappingURL=Dialog.js.map","/**\n * @license\n * Copyright 2023 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nimport * as Bidi from 'chromium-bidi/lib/cjs/protocol/protocol.js';\nimport { EventEmitter } from '../common/EventEmitter.js';\nimport { debugError } from '../common/util.js';\nimport { DisposableStack } from '../util/disposable.js';\nimport { interpolateFunction, stringifyFunction } from '../util/Function.js';\nimport { BidiElementHandle } from './ElementHandle.js';\nimport { BidiJSHandle } from './JSHandle.js';\n/**\n * @internal\n */\nexport class ExposableFunction {\n static async from(frame, name, apply, isolate = false) {\n const func = new ExposableFunction(frame, name, apply, isolate);\n await func.#initialize();\n return func;\n }\n #frame;\n name;\n #apply;\n #isolate;\n #channel;\n #scripts = [];\n #disposables = new DisposableStack();\n constructor(frame, name, apply, isolate = false) {\n this.#frame = frame;\n this.name = name;\n this.#apply = apply;\n this.#isolate = isolate;\n this.#channel = `__puppeteer__${this.#frame._id}_page_exposeFunction_${this.name}`;\n }\n async #initialize() {\n const connection = this.#connection;\n const channel = {\n type: 'channel',\n value: {\n channel: this.#channel,\n ownership: \"root\" /* Bidi.Script.ResultOwnership.Root */,\n },\n };\n const connectionEmitter = this.#disposables.use(new EventEmitter(connection));\n connectionEmitter.on(Bidi.ChromiumBidi.Script.EventNames.Message, this.#handleMessage);\n const functionDeclaration = stringifyFunction(interpolateFunction((callback) => {\n Object.assign(globalThis, {\n [PLACEHOLDER('name')]: function (...args) {\n return new Promise((resolve, reject) => {\n callback([resolve, reject, args]);\n });\n },\n });\n }, { name: JSON.stringify(this.name) }));\n const frames = [this.#frame];\n for (const frame of frames) {\n frames.push(...frame.childFrames());\n }\n await Promise.all(frames.map(async (frame) => {\n const realm = this.#isolate ? frame.isolatedRealm() : frame.mainRealm();\n try {\n const [script] = await Promise.all([\n frame.browsingContext.addPreloadScript(functionDeclaration, {\n arguments: [channel],\n sandbox: realm.sandbox,\n }),\n realm.realm.callFunction(functionDeclaration, false, {\n arguments: [channel],\n }),\n ]);\n this.#scripts.push([frame, script]);\n }\n catch (error) {\n // If it errors, the frame probably doesn't support call function. We\n // fail gracefully.\n debugError(error);\n }\n }));\n }\n get #connection() {\n return this.#frame.page().browser().connection;\n }\n #handleMessage = async (params) => {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n if (params.channel !== this.#channel) {\n return;\n }\n const realm = this.#getRealm(params.source);\n if (!realm) {\n // Unrelated message.\n return;\n }\n const dataHandle = __addDisposableResource(env_1, BidiJSHandle.from(params.data, realm), false);\n const stack = __addDisposableResource(env_1, new DisposableStack(), false);\n const args = [];\n let result;\n try {\n const env_2 = { stack: [], error: void 0, hasError: false };\n try {\n const argsHandle = __addDisposableResource(env_2, await dataHandle.evaluateHandle(([, , args]) => {\n return args;\n }), false);\n for (const [index, handle] of await argsHandle.getProperties()) {\n stack.use(handle);\n // Element handles are passed as is.\n if (handle instanceof BidiElementHandle) {\n args[+index] = handle;\n stack.use(handle);\n continue;\n }\n // Everything else is passed as the JS value.\n args[+index] = handle.jsonValue();\n }\n result = await this.#apply(...(await Promise.all(args)));\n }\n catch (e_1) {\n env_2.error = e_1;\n env_2.hasError = true;\n }\n finally {\n __disposeResources(env_2);\n }\n }\n catch (error) {\n try {\n if (error instanceof Error) {\n await dataHandle.evaluate(([, reject], name, message, stack) => {\n const error = new Error(message);\n error.name = name;\n if (stack) {\n error.stack = stack;\n }\n reject(error);\n }, error.name, error.message, error.stack);\n }\n else {\n await dataHandle.evaluate(([, reject], error) => {\n reject(error);\n }, error);\n }\n }\n catch (error) {\n debugError(error);\n }\n return;\n }\n try {\n await dataHandle.evaluate(([resolve], result) => {\n resolve(result);\n }, result);\n }\n catch (error) {\n debugError(error);\n }\n }\n catch (e_2) {\n env_1.error = e_2;\n env_1.hasError = true;\n }\n finally {\n __disposeResources(env_1);\n }\n };\n #getRealm(source) {\n const frame = this.#findFrame(source.context);\n if (!frame) {\n // Unrelated message.\n return;\n }\n return frame.realm(source.realm);\n }\n #findFrame(id) {\n const frames = [this.#frame];\n for (const frame of frames) {\n if (frame._id === id) {\n return frame;\n }\n frames.push(...frame.childFrames());\n }\n return;\n }\n [Symbol.dispose]() {\n void this[Symbol.asyncDispose]().catch(debugError);\n }\n async [Symbol.asyncDispose]() {\n this.#disposables.dispose();\n await Promise.all(this.#scripts.map(async ([frame, script]) => {\n const realm = this.#isolate ? frame.isolatedRealm() : frame.mainRealm();\n try {\n await Promise.all([\n realm.evaluate(name => {\n delete globalThis[name];\n }, this.name),\n ...frame.childFrames().map(childFrame => {\n return childFrame.evaluate(name => {\n delete globalThis[name];\n }, this.name);\n }),\n frame.browsingContext.removePreloadScript(script),\n ]);\n }\n catch (error) {\n debugError(error);\n }\n }));\n }\n}\n//# sourceMappingURL=ExposedFunction.js.map","var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nimport { HTTPResponse } from '../api/HTTPResponse.js';\nimport { UnsupportedOperation } from '../common/Errors.js';\nimport { SecurityDetails } from '../common/SecurityDetails.js';\nimport { invokeAtMostOnceForArguments } from '../util/decorators.js';\n/**\n * @internal\n */\nlet BidiHTTPResponse = (() => {\n let _classSuper = HTTPResponse;\n let _instanceExtraInitializers = [];\n let _remoteAddress_decorators;\n return class BidiHTTPResponse extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _remoteAddress_decorators = [invokeAtMostOnceForArguments];\n __esDecorate(this, null, _remoteAddress_decorators, { kind: \"method\", name: \"remoteAddress\", static: false, private: false, access: { has: obj => \"remoteAddress\" in obj, get: obj => obj.remoteAddress }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static from(data, request, cdpSupported) {\n const response = new BidiHTTPResponse(data, request, cdpSupported);\n response.#initialize();\n return response;\n }\n #data = __runInitializers(this, _instanceExtraInitializers);\n #request;\n #securityDetails;\n #cdpSupported = false;\n constructor(data, request, cdpSupported) {\n super();\n this.#data = data;\n this.#request = request;\n this.#cdpSupported = cdpSupported;\n // @ts-expect-error non-standard property.\n const securityDetails = data['goog:securityDetails'];\n if (cdpSupported && securityDetails) {\n this.#securityDetails = new SecurityDetails(securityDetails);\n }\n }\n #initialize() {\n if (this.#data.fromCache) {\n this.#request._fromMemoryCache = true;\n this.#request\n .frame()\n ?.page()\n .trustedEmitter.emit(\"requestservedfromcache\" /* PageEvent.RequestServedFromCache */, this.#request);\n }\n this.#request.frame()?.page().trustedEmitter.emit(\"response\" /* PageEvent.Response */, this);\n }\n remoteAddress() {\n return {\n ip: '',\n port: -1,\n };\n }\n url() {\n return this.#data.url;\n }\n status() {\n return this.#data.status;\n }\n statusText() {\n return this.#data.statusText;\n }\n headers() {\n const headers = {};\n for (const header of this.#data.headers) {\n // TODO: How to handle Binary Headers\n // https://w3c.github.io/webdriver-bidi/#type-network-Header\n if (header.value.type === 'string') {\n headers[header.name.toLowerCase()] = header.value.value;\n }\n }\n return headers;\n }\n request() {\n return this.#request;\n }\n fromCache() {\n return this.#data.fromCache;\n }\n timing() {\n const bidiTiming = this.#request.timing();\n return {\n requestTime: bidiTiming.requestTime,\n proxyStart: -1,\n proxyEnd: -1,\n dnsStart: bidiTiming.dnsStart,\n dnsEnd: bidiTiming.dnsEnd,\n connectStart: bidiTiming.connectStart,\n connectEnd: bidiTiming.connectEnd,\n sslStart: bidiTiming.tlsStart,\n sslEnd: -1,\n workerStart: -1,\n workerReady: -1,\n workerFetchStart: -1,\n workerRespondWithSettled: -1,\n workerRouterEvaluationStart: -1,\n workerCacheLookupStart: -1,\n sendStart: bidiTiming.requestStart,\n sendEnd: -1,\n pushStart: -1,\n pushEnd: -1,\n receiveHeadersStart: bidiTiming.responseStart,\n receiveHeadersEnd: bidiTiming.responseEnd,\n };\n }\n frame() {\n return this.#request.frame();\n }\n fromServiceWorker() {\n return false;\n }\n securityDetails() {\n if (!this.#cdpSupported) {\n throw new UnsupportedOperation();\n }\n return this.#securityDetails ?? null;\n }\n content() {\n throw new UnsupportedOperation();\n }\n };\n})();\nexport { BidiHTTPResponse };\n//# sourceMappingURL=HTTPResponse.js.map","var _a;\nimport { HTTPRequest, STATUS_TEXTS, handleError, } from '../api/HTTPRequest.js';\nimport { UnsupportedOperation } from '../common/Errors.js';\nimport { stringToBase64 } from '../util/encoding.js';\nimport { BidiHTTPResponse } from './HTTPResponse.js';\nexport const requests = new WeakMap();\n/**\n * @internal\n */\nexport class BidiHTTPRequest extends HTTPRequest {\n static from(bidiRequest, frame, redirect) {\n const request = new _a(bidiRequest, frame, redirect);\n request.#initialize();\n return request;\n }\n #redirectChain;\n #response = null;\n id;\n #frame;\n #request;\n constructor(request, frame, redirect) {\n super();\n requests.set(request, this);\n this.interception.enabled = request.isBlocked;\n this.#request = request;\n this.#frame = frame;\n this.#redirectChain = redirect ? redirect.#redirectChain : [];\n this.id = request.id;\n }\n get client() {\n return this.#frame.client;\n }\n #initialize() {\n this.#request.on('redirect', request => {\n const httpRequest = _a.from(request, this.#frame, this);\n this.#redirectChain.push(this);\n request.once('success', () => {\n this.#frame\n .page()\n .trustedEmitter.emit(\"requestfinished\" /* PageEvent.RequestFinished */, httpRequest);\n });\n request.once('error', () => {\n this.#frame\n .page()\n .trustedEmitter.emit(\"requestfailed\" /* PageEvent.RequestFailed */, httpRequest);\n });\n void httpRequest.finalizeInterceptions();\n });\n this.#request.once('success', data => {\n this.#response = BidiHTTPResponse.from(data, this, this.#frame.page().browser().cdpSupported);\n });\n this.#request.on('authenticate', this.#handleAuthentication);\n this.#frame.page().trustedEmitter.emit(\"request\" /* PageEvent.Request */, this);\n if (this.#hasInternalHeaderOverwrite) {\n this.interception.handlers.push(async () => {\n await this.continue({\n headers: this.headers(),\n }, 0);\n });\n }\n }\n url() {\n return this.#request.url;\n }\n resourceType() {\n if (!this.#frame.page().browser().cdpSupported) {\n throw new UnsupportedOperation();\n }\n return (this.#request.resourceType || 'other').toLowerCase();\n }\n method() {\n return this.#request.method;\n }\n postData() {\n if (!this.#frame.page().browser().cdpSupported) {\n throw new UnsupportedOperation();\n }\n return this.#request.postData;\n }\n hasPostData() {\n if (!this.#frame.page().browser().cdpSupported) {\n throw new UnsupportedOperation();\n }\n return this.#request.hasPostData;\n }\n async fetchPostData() {\n throw new UnsupportedOperation();\n }\n get #hasInternalHeaderOverwrite() {\n return Boolean(Object.keys(this.#extraHTTPHeaders).length ||\n Object.keys(this.#userAgentHeaders).length);\n }\n get #extraHTTPHeaders() {\n return this.#frame?.page()._extraHTTPHeaders ?? {};\n }\n get #userAgentHeaders() {\n return this.#frame?.page()._userAgentHeaders ?? {};\n }\n headers() {\n const headers = {};\n for (const header of this.#request.headers) {\n headers[header.name.toLowerCase()] = header.value.value;\n }\n return {\n ...headers,\n ...this.#extraHTTPHeaders,\n ...this.#userAgentHeaders,\n };\n }\n response() {\n return this.#response;\n }\n failure() {\n if (this.#request.error === undefined) {\n return null;\n }\n return { errorText: this.#request.error };\n }\n isNavigationRequest() {\n return this.#request.navigation !== undefined;\n }\n initiator() {\n return {\n ...this.#request.initiator,\n type: this.#request.initiator?.type ?? 'other',\n };\n }\n redirectChain() {\n return this.#redirectChain.slice();\n }\n frame() {\n return this.#frame;\n }\n async continue(overrides, priority) {\n return await super.continue({\n headers: this.#hasInternalHeaderOverwrite ? this.headers() : undefined,\n ...overrides,\n }, priority);\n }\n async _continue(overrides = {}) {\n const headers = getBidiHeaders(overrides.headers);\n this.interception.handled = true;\n return await this.#request\n .continueRequest({\n url: overrides.url,\n method: overrides.method,\n body: overrides.postData\n ? {\n type: 'base64',\n value: stringToBase64(overrides.postData),\n }\n : undefined,\n headers: headers.length > 0 ? headers : undefined,\n })\n .catch(error => {\n this.interception.handled = false;\n return handleError(error);\n });\n }\n async _abort() {\n this.interception.handled = true;\n return await this.#request.failRequest().catch(error => {\n this.interception.handled = false;\n throw error;\n });\n }\n async _respond(response, _priority) {\n this.interception.handled = true;\n let parsedBody;\n if (response.body) {\n parsedBody = HTTPRequest.getResponse(response.body);\n }\n const headers = getBidiHeaders(response.headers);\n const hasContentLength = headers.some(header => {\n return header.name === 'content-length';\n });\n if (response.contentType) {\n headers.push({\n name: 'content-type',\n value: {\n type: 'string',\n value: response.contentType,\n },\n });\n }\n if (parsedBody?.contentLength && !hasContentLength) {\n headers.push({\n name: 'content-length',\n value: {\n type: 'string',\n value: String(parsedBody.contentLength),\n },\n });\n }\n const status = response.status || 200;\n return await this.#request\n .provideResponse({\n statusCode: status,\n headers: headers.length > 0 ? headers : undefined,\n reasonPhrase: STATUS_TEXTS[status],\n body: parsedBody?.base64\n ? {\n type: 'base64',\n value: parsedBody?.base64,\n }\n : undefined,\n })\n .catch(error => {\n this.interception.handled = false;\n throw error;\n });\n }\n #authenticationHandled = false;\n #handleAuthentication = async () => {\n if (!this.#frame) {\n return;\n }\n const credentials = this.#frame.page()._credentials;\n if (credentials && !this.#authenticationHandled) {\n this.#authenticationHandled = true;\n void this.#request.continueWithAuth({\n action: 'provideCredentials',\n credentials: {\n type: 'password',\n username: credentials.username,\n password: credentials.password,\n },\n });\n }\n else {\n void this.#request.continueWithAuth({\n action: 'cancel',\n });\n }\n };\n timing() {\n return this.#request.timing();\n }\n}\n_a = BidiHTTPRequest;\nfunction getBidiHeaders(rawHeaders) {\n const headers = [];\n for (const [name, value] of Object.entries(rawHeaders ?? [])) {\n if (!Object.is(value, undefined)) {\n const values = Array.isArray(value) ? value : [value];\n for (const value of values) {\n headers.push({\n name: name.toLowerCase(),\n value: {\n type: 'string',\n value: String(value),\n },\n });\n }\n }\n }\n return headers;\n}\n//# sourceMappingURL=HTTPRequest.js.map","/**\n * @license\n * Copyright 2023 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { isDate, isPlainObject, isRegExp } from '../common/util.js';\n/**\n * @internal\n */\nclass UnserializableError extends Error {\n}\n/**\n * @internal\n */\nexport class BidiSerializer {\n static serialize(arg) {\n switch (typeof arg) {\n case 'symbol':\n case 'function':\n throw new UnserializableError(`Unable to serializable ${typeof arg}`);\n case 'object':\n return this.#serializeObject(arg);\n case 'undefined':\n return {\n type: 'undefined',\n };\n case 'number':\n return this.#serializeNumber(arg);\n case 'bigint':\n return {\n type: 'bigint',\n value: arg.toString(),\n };\n case 'string':\n return {\n type: 'string',\n value: arg,\n };\n case 'boolean':\n return {\n type: 'boolean',\n value: arg,\n };\n }\n }\n static #serializeNumber(arg) {\n let value;\n if (Object.is(arg, -0)) {\n value = '-0';\n }\n else if (Object.is(arg, Infinity)) {\n value = 'Infinity';\n }\n else if (Object.is(arg, -Infinity)) {\n value = '-Infinity';\n }\n else if (Object.is(arg, NaN)) {\n value = 'NaN';\n }\n else {\n value = arg;\n }\n return {\n type: 'number',\n value,\n };\n }\n static #serializeObject(arg) {\n if (arg === null) {\n return {\n type: 'null',\n };\n }\n else if (Array.isArray(arg)) {\n const parsedArray = arg.map(subArg => {\n return this.serialize(subArg);\n });\n return {\n type: 'array',\n value: parsedArray,\n };\n }\n else if (isPlainObject(arg)) {\n try {\n JSON.stringify(arg);\n }\n catch (error) {\n if (error instanceof TypeError &&\n error.message.startsWith('Converting circular structure to JSON')) {\n error.message += ' Recursive objects are not allowed.';\n }\n throw error;\n }\n const parsedObject = [];\n for (const key in arg) {\n parsedObject.push([this.serialize(key), this.serialize(arg[key])]);\n }\n return {\n type: 'object',\n value: parsedObject,\n };\n }\n else if (isRegExp(arg)) {\n return {\n type: 'regexp',\n value: {\n pattern: arg.source,\n flags: arg.flags,\n },\n };\n }\n else if (isDate(arg)) {\n return {\n type: 'date',\n value: arg.toISOString(),\n };\n }\n throw new UnserializableError('Custom object serialization not possible. Use plain objects instead.');\n }\n}\n//# sourceMappingURL=Serializer.js.map","/**\n * @license\n * Copyright 2023 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { ProtocolError, TimeoutError } from '../common/Errors.js';\nimport { PuppeteerURL } from '../common/util.js';\nimport { BidiDeserializer } from './Deserializer.js';\n/**\n * @internal\n */\nexport function createEvaluationError(details) {\n if (details.exception.type !== 'error') {\n return BidiDeserializer.deserialize(details.exception);\n }\n const [name = '', ...parts] = details.text.split(': ');\n const message = parts.join(': ');\n const error = new Error(message);\n error.name = name;\n // The first line is this function which we ignore.\n const stackLines = [];\n if (details.stackTrace && stackLines.length < Error.stackTraceLimit) {\n for (const frame of details.stackTrace.callFrames.reverse()) {\n if (PuppeteerURL.isPuppeteerURL(frame.url) &&\n frame.url !== PuppeteerURL.INTERNAL_URL) {\n const url = PuppeteerURL.parse(frame.url);\n stackLines.unshift(` at ${frame.functionName || url.functionName} (${url.functionName} at ${url.siteString}, <anonymous>:${frame.lineNumber}:${frame.columnNumber})`);\n }\n else {\n stackLines.push(` at ${frame.functionName || '<anonymous>'} (${frame.url}:${frame.lineNumber}:${frame.columnNumber})`);\n }\n if (stackLines.length >= Error.stackTraceLimit) {\n break;\n }\n }\n }\n error.stack = [details.text, ...stackLines].join('\\n');\n return error;\n}\n/**\n * @internal\n */\nexport function rewriteNavigationError(message, ms) {\n return error => {\n if (error instanceof ProtocolError) {\n error.message += ` at ${message}`;\n }\n else if (error instanceof TimeoutError) {\n error.message = `Navigation timeout of ${ms} ms exceeded`;\n }\n throw error;\n };\n}\n//# sourceMappingURL=util.js.map","var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nimport { Realm } from '../api/Realm.js';\nimport { ARIAQueryHandler } from '../cdp/AriaQueryHandler.js';\nimport { LazyArg } from '../common/LazyArg.js';\nimport { scriptInjector } from '../common/ScriptInjector.js';\nimport { debugError, getSourcePuppeteerURLIfAvailable, getSourceUrlComment, isString, PuppeteerURL, SOURCE_URL_REGEX, } from '../common/util.js';\nimport { AsyncIterableUtil } from '../util/AsyncIterableUtil.js';\nimport { stringifyFunction } from '../util/Function.js';\nimport { BidiDeserializer } from './Deserializer.js';\nimport { BidiElementHandle } from './ElementHandle.js';\nimport { ExposableFunction } from './ExposedFunction.js';\nimport { BidiJSHandle } from './JSHandle.js';\nimport { BidiSerializer } from './Serializer.js';\nimport { createEvaluationError } from './util.js';\n/**\n * @internal\n */\nexport class BidiRealm extends Realm {\n realm;\n constructor(realm, timeoutSettings) {\n super(timeoutSettings);\n this.realm = realm;\n }\n initialize() {\n this.realm.on('destroyed', ({ reason }) => {\n this.taskManager.terminateAll(new Error(reason));\n this.dispose();\n });\n this.realm.on('updated', () => {\n this.internalPuppeteerUtil = undefined;\n void this.taskManager.rerunAll();\n });\n }\n internalPuppeteerUtil;\n get puppeteerUtil() {\n const promise = Promise.resolve();\n scriptInjector.inject(script => {\n if (this.internalPuppeteerUtil) {\n void this.internalPuppeteerUtil.then(handle => {\n void handle.dispose();\n });\n }\n this.internalPuppeteerUtil = promise.then(() => {\n return this.evaluateHandle(script);\n });\n }, !this.internalPuppeteerUtil);\n return this.internalPuppeteerUtil;\n }\n async evaluateHandle(pageFunction, ...args) {\n return await this.#evaluate(false, pageFunction, ...args);\n }\n async evaluate(pageFunction, ...args) {\n return await this.#evaluate(true, pageFunction, ...args);\n }\n async #evaluate(returnByValue, pageFunction, ...args) {\n const sourceUrlComment = getSourceUrlComment(getSourcePuppeteerURLIfAvailable(pageFunction)?.toString() ??\n PuppeteerURL.INTERNAL_URL);\n let responsePromise;\n const resultOwnership = returnByValue\n ? \"none\" /* Bidi.Script.ResultOwnership.None */\n : \"root\" /* Bidi.Script.ResultOwnership.Root */;\n const serializationOptions = returnByValue\n ? {}\n : {\n maxObjectDepth: 0,\n maxDomDepth: 0,\n };\n if (isString(pageFunction)) {\n const expression = SOURCE_URL_REGEX.test(pageFunction)\n ? pageFunction\n : `${pageFunction}\\n${sourceUrlComment}\\n`;\n responsePromise = this.realm.evaluate(expression, true, {\n resultOwnership,\n userActivation: true,\n serializationOptions,\n });\n }\n else {\n let functionDeclaration = stringifyFunction(pageFunction);\n functionDeclaration = SOURCE_URL_REGEX.test(functionDeclaration)\n ? functionDeclaration\n : `${functionDeclaration}\\n${sourceUrlComment}\\n`;\n responsePromise = this.realm.callFunction(functionDeclaration, \n /* awaitPromise= */ true, {\n // LazyArgs are used only internally and should not affect the order\n // evaluate calls for the public APIs.\n arguments: args.some(arg => {\n return arg instanceof LazyArg;\n })\n ? await Promise.all(args.map(arg => {\n return this.serializeAsync(arg);\n }))\n : args.map(arg => {\n return this.serialize(arg);\n }),\n resultOwnership,\n userActivation: true,\n serializationOptions,\n });\n }\n const result = await responsePromise;\n if ('type' in result && result.type === 'exception') {\n throw createEvaluationError(result.exceptionDetails);\n }\n if (returnByValue) {\n return BidiDeserializer.deserialize(result.result);\n }\n return this.createHandle(result.result);\n }\n createHandle(result) {\n if ((result.type === 'node' || result.type === 'window') &&\n this instanceof BidiFrameRealm) {\n return BidiElementHandle.from(result, this);\n }\n return BidiJSHandle.from(result, this);\n }\n async serializeAsync(arg) {\n if (arg instanceof LazyArg) {\n arg = await arg.get(this);\n }\n return this.serialize(arg);\n }\n serialize(arg) {\n if (arg instanceof BidiJSHandle || arg instanceof BidiElementHandle) {\n if (arg.realm !== this) {\n if (!(arg.realm instanceof BidiFrameRealm) ||\n !(this instanceof BidiFrameRealm)) {\n throw new Error(\"Trying to evaluate JSHandle from different global types. Usually this means you're using a handle from a worker in a page or vice versa.\");\n }\n if (arg.realm.environment !== this.environment) {\n throw new Error(\"Trying to evaluate JSHandle from different frames. Usually this means you're using a handle from a page on a different page.\");\n }\n }\n if (arg.disposed) {\n throw new Error('JSHandle is disposed!');\n }\n return arg.remoteValue();\n }\n return BidiSerializer.serialize(arg);\n }\n async destroyHandles(handles) {\n if (this.disposed) {\n return;\n }\n const handleIds = handles\n .map(({ id }) => {\n return id;\n })\n .filter((id) => {\n return id !== undefined;\n });\n if (handleIds.length === 0) {\n return;\n }\n await this.realm.disown(handleIds).catch(error => {\n // Exceptions might happen in case of a page been navigated or closed.\n // Swallow these since they are harmless and we don't leak anything in this case.\n debugError(error);\n });\n }\n async adoptHandle(handle) {\n return (await this.evaluateHandle(node => {\n return node;\n }, handle));\n }\n async transferHandle(handle) {\n if (handle.realm === this) {\n return handle;\n }\n const transferredHandle = this.adoptHandle(handle);\n await handle.dispose();\n return await transferredHandle;\n }\n}\n/**\n * @internal\n */\nexport class BidiFrameRealm extends BidiRealm {\n static from(realm, frame) {\n const frameRealm = new BidiFrameRealm(realm, frame);\n frameRealm.#initialize();\n return frameRealm;\n }\n #frame;\n constructor(realm, frame) {\n super(realm, frame.timeoutSettings);\n this.#frame = frame;\n }\n #initialize() {\n super.initialize();\n // This should run first.\n this.realm.on('updated', () => {\n this.environment.clearDocumentHandle();\n this.#bindingsInstalled = false;\n });\n }\n #bindingsInstalled = false;\n get puppeteerUtil() {\n let promise = Promise.resolve();\n if (!this.#bindingsInstalled) {\n promise = Promise.all([\n ExposableFunction.from(this.environment, '__ariaQuerySelector', ARIAQueryHandler.queryOne, !!this.sandbox),\n ExposableFunction.from(this.environment, '__ariaQuerySelectorAll', async (element, selector) => {\n const results = ARIAQueryHandler.queryAll(element, selector);\n return await element.realm.evaluateHandle((...elements) => {\n return elements;\n }, ...(await AsyncIterableUtil.collect(results)));\n }, !!this.sandbox),\n ]);\n this.#bindingsInstalled = true;\n }\n return promise.then(() => {\n return super.puppeteerUtil;\n });\n }\n get sandbox() {\n return this.realm.sandbox;\n }\n get environment() {\n return this.#frame;\n }\n async adoptBackendNode(backendNodeId) {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const { object } = await this.#frame.client.send('DOM.resolveNode', {\n backendNodeId,\n executionContextId: await this.realm.resolveExecutionContextId(),\n });\n const handle = __addDisposableResource(env_1, BidiElementHandle.from({\n handle: object.objectId,\n type: 'node',\n }, this), false);\n // We need the sharedId, so we perform the following to obtain it.\n return await handle.evaluateHandle(element => {\n return element;\n });\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n __disposeResources(env_1);\n }\n }\n}\n/**\n * @internal\n */\nexport class BidiWorkerRealm extends BidiRealm {\n static from(realm, worker) {\n const workerRealm = new BidiWorkerRealm(realm, worker);\n workerRealm.initialize();\n return workerRealm;\n }\n #worker;\n constructor(realm, frame) {\n super(realm, frame.timeoutSettings);\n this.#worker = frame;\n }\n get environment() {\n return this.#worker;\n }\n async adoptBackendNode() {\n throw new Error('Cannot adopt DOM nodes into a worker.');\n }\n}\n//# sourceMappingURL=Realm.js.map","/**\n * @license\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { WebWorker } from '../api/WebWorker.js';\nimport { UnsupportedOperation } from '../common/Errors.js';\nimport { BidiWorkerRealm } from './Realm.js';\n/**\n * @internal\n */\nexport class BidiWebWorker extends WebWorker {\n static from(frame, realm) {\n const worker = new BidiWebWorker(frame, realm);\n return worker;\n }\n #frame;\n #realm;\n constructor(frame, realm) {\n super(realm.origin);\n this.#frame = frame;\n this.#realm = BidiWorkerRealm.from(realm, this);\n }\n get frame() {\n return this.#frame;\n }\n mainRealm() {\n return this.#realm;\n }\n get client() {\n throw new UnsupportedOperation();\n }\n}\n//# sourceMappingURL=WebWorker.js.map","/**\n * @license\n * Copyright 2023 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nvar __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\nimport { combineLatest, defer, delayWhen, filter, first, firstValueFrom, map, of, race, raceWith, switchMap, } from '../../third_party/rxjs/rxjs.js';\nimport { Frame, throwIfDetached, } from '../api/Frame.js';\nimport { Accessibility } from '../cdp/Accessibility.js';\nimport { ConsoleMessage, } from '../common/ConsoleMessage.js';\nimport { TargetCloseError, UnsupportedOperation } from '../common/Errors.js';\nimport { debugError, fromAbortSignal, fromEmitterEvent, timeout, } from '../common/util.js';\nimport { isErrorLike } from '../util/ErrorLike.js';\nimport { BidiCdpSession } from './CDPSession.js';\nimport { BidiDeserializer } from './Deserializer.js';\nimport { BidiDialog } from './Dialog.js';\nimport { ExposableFunction } from './ExposedFunction.js';\nimport { BidiHTTPRequest, requests } from './HTTPRequest.js';\nimport { BidiJSHandle } from './JSHandle.js';\nimport { BidiFrameRealm } from './Realm.js';\nimport { rewriteNavigationError } from './util.js';\nimport { BidiWebWorker } from './WebWorker.js';\n// TODO: Remove this and map CDP the correct method.\n// Requires breaking change.\nfunction convertConsoleMessageLevel(method) {\n switch (method) {\n case 'group':\n return 'startGroup';\n case 'groupCollapsed':\n return 'startGroupCollapsed';\n case 'groupEnd':\n return 'endGroup';\n default:\n return method;\n }\n}\nlet BidiFrame = (() => {\n var _a;\n let _classSuper = Frame;\n let _instanceExtraInitializers = [];\n let _goto_decorators;\n let _setContent_decorators;\n let _waitForNavigation_decorators;\n let _private_waitForLoad$_decorators;\n let _private_waitForLoad$_descriptor;\n let _private_waitForNetworkIdle$_decorators;\n let _private_waitForNetworkIdle$_descriptor;\n let _setFiles_decorators;\n let _locateNodes_decorators;\n return class BidiFrame extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _goto_decorators = [throwIfDetached];\n _setContent_decorators = [throwIfDetached];\n _waitForNavigation_decorators = [throwIfDetached];\n _private_waitForLoad$_decorators = [throwIfDetached];\n _private_waitForNetworkIdle$_decorators = [throwIfDetached];\n _setFiles_decorators = [throwIfDetached];\n _locateNodes_decorators = [throwIfDetached];\n __esDecorate(this, null, _goto_decorators, { kind: \"method\", name: \"goto\", static: false, private: false, access: { has: obj => \"goto\" in obj, get: obj => obj.goto }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _setContent_decorators, { kind: \"method\", name: \"setContent\", static: false, private: false, access: { has: obj => \"setContent\" in obj, get: obj => obj.setContent }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _waitForNavigation_decorators, { kind: \"method\", name: \"waitForNavigation\", static: false, private: false, access: { has: obj => \"waitForNavigation\" in obj, get: obj => obj.waitForNavigation }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, _private_waitForLoad$_descriptor = { value: __setFunctionName(function (options = {}) {\n let { waitUntil = 'load' } = options;\n const { timeout: ms = this.timeoutSettings.navigationTimeout() } = options;\n if (!Array.isArray(waitUntil)) {\n waitUntil = [waitUntil];\n }\n const events = new Set();\n for (const lifecycleEvent of waitUntil) {\n switch (lifecycleEvent) {\n case 'load': {\n events.add('load');\n break;\n }\n case 'domcontentloaded': {\n events.add('DOMContentLoaded');\n break;\n }\n }\n }\n if (events.size === 0) {\n return of(undefined);\n }\n return combineLatest([...events].map(event => {\n return fromEmitterEvent(this.browsingContext, event);\n })).pipe(map(() => { }), first(), raceWith(timeout(ms), this.#detached$().pipe(map(() => {\n throw new Error('Frame detached.');\n }))));\n }, \"#waitForLoad$\") }, _private_waitForLoad$_decorators, { kind: \"method\", name: \"#waitForLoad$\", static: false, private: true, access: { has: obj => #waitForLoad$ in obj, get: obj => obj.#waitForLoad$ }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, _private_waitForNetworkIdle$_descriptor = { value: __setFunctionName(function (options = {}) {\n let { waitUntil = 'load' } = options;\n if (!Array.isArray(waitUntil)) {\n waitUntil = [waitUntil];\n }\n let concurrency = Infinity;\n for (const event of waitUntil) {\n switch (event) {\n case 'networkidle0': {\n concurrency = Math.min(0, concurrency);\n break;\n }\n case 'networkidle2': {\n concurrency = Math.min(2, concurrency);\n break;\n }\n }\n }\n if (concurrency === Infinity) {\n return of(undefined);\n }\n return this.page().waitForNetworkIdle$({\n idleTime: 500,\n timeout: options.timeout ?? this.timeoutSettings.timeout(),\n concurrency,\n });\n }, \"#waitForNetworkIdle$\") }, _private_waitForNetworkIdle$_decorators, { kind: \"method\", name: \"#waitForNetworkIdle$\", static: false, private: true, access: { has: obj => #waitForNetworkIdle$ in obj, get: obj => obj.#waitForNetworkIdle$ }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _setFiles_decorators, { kind: \"method\", name: \"setFiles\", static: false, private: false, access: { has: obj => \"setFiles\" in obj, get: obj => obj.setFiles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _locateNodes_decorators, { kind: \"method\", name: \"locateNodes\", static: false, private: false, access: { has: obj => \"locateNodes\" in obj, get: obj => obj.locateNodes }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static from(parent, browsingContext) {\n const frame = new BidiFrame(parent, browsingContext);\n frame.#initialize();\n return frame;\n }\n #parent = __runInitializers(this, _instanceExtraInitializers);\n browsingContext;\n #frames = new WeakMap();\n realms;\n _id;\n client;\n accessibility;\n constructor(parent, browsingContext) {\n super();\n this.#parent = parent;\n this.browsingContext = browsingContext;\n this._id = browsingContext.id;\n this.client = new BidiCdpSession(this);\n this.realms = {\n default: BidiFrameRealm.from(this.browsingContext.defaultRealm, this),\n internal: BidiFrameRealm.from(this.browsingContext.createWindowRealm(`__puppeteer_internal_${Math.ceil(Math.random() * 10000)}`), this),\n };\n this.accessibility = new Accessibility(this.realms.default, this._id);\n }\n #initialize() {\n for (const browsingContext of this.browsingContext.children) {\n this.#createFrameTarget(browsingContext);\n }\n this.browsingContext.on('browsingcontext', ({ browsingContext }) => {\n this.#createFrameTarget(browsingContext);\n });\n this.browsingContext.on('closed', () => {\n for (const session of BidiCdpSession.sessions.values()) {\n if (session.frame === this) {\n session.onClose();\n }\n }\n this.page().trustedEmitter.emit(\"framedetached\" /* PageEvent.FrameDetached */, this);\n });\n this.browsingContext.on('request', ({ request }) => {\n const httpRequest = BidiHTTPRequest.from(request, this);\n request.once('success', () => {\n this.page().trustedEmitter.emit(\"requestfinished\" /* PageEvent.RequestFinished */, httpRequest);\n });\n request.once('error', () => {\n this.page().trustedEmitter.emit(\"requestfailed\" /* PageEvent.RequestFailed */, httpRequest);\n });\n void httpRequest.finalizeInterceptions();\n });\n this.browsingContext.on('navigation', ({ navigation }) => {\n navigation.once('fragment', () => {\n this.page().trustedEmitter.emit(\"framenavigated\" /* PageEvent.FrameNavigated */, this);\n });\n });\n this.browsingContext.on('load', () => {\n this.page().trustedEmitter.emit(\"load\" /* PageEvent.Load */, undefined);\n });\n this.browsingContext.on('DOMContentLoaded', () => {\n this._hasStartedLoading = true;\n this.page().trustedEmitter.emit(\"domcontentloaded\" /* PageEvent.DOMContentLoaded */, undefined);\n this.page().trustedEmitter.emit(\"framenavigated\" /* PageEvent.FrameNavigated */, this);\n });\n this.browsingContext.on('userprompt', ({ userPrompt }) => {\n this.page().trustedEmitter.emit(\"dialog\" /* PageEvent.Dialog */, BidiDialog.from(userPrompt));\n });\n this.browsingContext.on('log', ({ entry }) => {\n if (this._id !== entry.source.context) {\n return;\n }\n if (isConsoleLogEntry(entry)) {\n const args = entry.args.map(arg => {\n return this.mainRealm().createHandle(arg);\n });\n const text = args\n .reduce((value, arg) => {\n const parsedValue = arg instanceof BidiJSHandle && arg.isPrimitiveValue\n ? BidiDeserializer.deserialize(arg.remoteValue())\n : arg.toString();\n return `${value} ${parsedValue}`;\n }, '')\n .slice(1);\n this.page().trustedEmitter.emit(\"console\" /* PageEvent.Console */, new ConsoleMessage(convertConsoleMessageLevel(entry.method), text, args, getStackTraceLocations(entry.stackTrace), this));\n }\n else if (isJavaScriptLogEntry(entry)) {\n const error = new Error(entry.text ?? '');\n const messageHeight = error.message.split('\\n').length;\n const messageLines = error.stack.split('\\n').splice(0, messageHeight);\n const stackLines = [];\n if (entry.stackTrace) {\n for (const frame of entry.stackTrace.callFrames) {\n // Note we need to add `1` because the values are 0-indexed.\n stackLines.push(` at ${frame.functionName || '<anonymous>'} (${frame.url}:${frame.lineNumber + 1}:${frame.columnNumber + 1})`);\n if (stackLines.length >= Error.stackTraceLimit) {\n break;\n }\n }\n }\n error.stack = [...messageLines, ...stackLines].join('\\n');\n this.page().trustedEmitter.emit(\"pageerror\" /* PageEvent.PageError */, error);\n }\n else {\n debugError(`Unhandled LogEntry with type \"${entry.type}\", text \"${entry.text}\" and level \"${entry.level}\"`);\n }\n });\n this.browsingContext.on('worker', ({ realm }) => {\n const worker = BidiWebWorker.from(this, realm);\n realm.on('destroyed', () => {\n this.page().trustedEmitter.emit(\"workerdestroyed\" /* PageEvent.WorkerDestroyed */, worker);\n });\n this.page().trustedEmitter.emit(\"workercreated\" /* PageEvent.WorkerCreated */, worker);\n });\n }\n #createFrameTarget(browsingContext) {\n const frame = BidiFrame.from(this, browsingContext);\n this.#frames.set(browsingContext, frame);\n this.page().trustedEmitter.emit(\"frameattached\" /* PageEvent.FrameAttached */, frame);\n browsingContext.on('closed', () => {\n this.#frames.delete(browsingContext);\n });\n return frame;\n }\n get timeoutSettings() {\n return this.page()._timeoutSettings;\n }\n mainRealm() {\n return this.realms.default;\n }\n isolatedRealm() {\n return this.realms.internal;\n }\n realm(id) {\n for (const realm of Object.values(this.realms)) {\n if (realm.realm.id === id) {\n return realm;\n }\n }\n return;\n }\n page() {\n let parent = this.#parent;\n while (parent instanceof BidiFrame) {\n parent = parent.#parent;\n }\n return parent;\n }\n url() {\n return this.browsingContext.url;\n }\n parentFrame() {\n if (this.#parent instanceof BidiFrame) {\n return this.#parent;\n }\n return null;\n }\n childFrames() {\n return [...this.browsingContext.children].map(child => {\n return this.#frames.get(child);\n });\n }\n #detached$() {\n return defer(() => {\n if (this.detached) {\n return of(this);\n }\n return fromEmitterEvent(this.page().trustedEmitter, \"framedetached\" /* PageEvent.FrameDetached */).pipe(filter(detachedFrame => {\n return detachedFrame === this;\n }));\n });\n }\n async goto(url, options = {}) {\n const [response] = await Promise.all([\n this.waitForNavigation(options),\n // Some implementations currently only report errors when the\n // readiness=interactive.\n //\n // Related: https://bugzilla.mozilla.org/show_bug.cgi?id=1846601\n this.browsingContext\n .navigate(url, \"interactive\" /* Bidi.BrowsingContext.ReadinessState.Interactive */)\n .catch(error => {\n if (isErrorLike(error) &&\n error.message.includes('net::ERR_HTTP_RESPONSE_CODE_FAILURE')) {\n return;\n }\n if (error.message.includes('navigation canceled')) {\n return;\n }\n if (error.message.includes('Navigation was aborted by another navigation')) {\n return;\n }\n throw error;\n }),\n ]).catch(rewriteNavigationError(url, options.timeout ?? this.timeoutSettings.navigationTimeout()));\n return response;\n }\n async setContent(html, options = {}) {\n await Promise.all([\n this.setFrameContent(html),\n firstValueFrom(combineLatest([\n this.#waitForLoad$(options),\n this.#waitForNetworkIdle$(options),\n ])),\n ]);\n }\n async waitForNavigation(options = {}) {\n const { timeout: ms = this.timeoutSettings.navigationTimeout(), signal } = options;\n const frames = this.childFrames().map(frame => {\n return frame.#detached$();\n });\n return await firstValueFrom(combineLatest([\n race(fromEmitterEvent(this.browsingContext, 'navigation'), fromEmitterEvent(this.browsingContext, 'historyUpdated').pipe(map(() => {\n return { navigation: null };\n })))\n .pipe(first())\n .pipe(switchMap(({ navigation }) => {\n if (navigation === null) {\n return of(null);\n }\n return this.#waitForLoad$(options).pipe(delayWhen(() => {\n if (frames.length === 0) {\n return of(undefined);\n }\n return combineLatest(frames);\n }), raceWith(fromEmitterEvent(navigation, 'fragment'), fromEmitterEvent(navigation, 'failed'), fromEmitterEvent(navigation, 'aborted')), switchMap(() => {\n if (navigation.request) {\n function requestFinished$(request) {\n if (navigation === null) {\n return of(null);\n }\n // Reduces flakiness if the response events arrive after\n // the load event.\n // Usually, the response or error is already there at this point.\n if (request.response || request.error) {\n return of(navigation);\n }\n if (request.redirect) {\n return requestFinished$(request.redirect);\n }\n return fromEmitterEvent(request, 'success')\n .pipe(raceWith(fromEmitterEvent(request, 'error')), raceWith(fromEmitterEvent(request, 'redirect')))\n .pipe(switchMap(() => {\n return requestFinished$(request);\n }));\n }\n return requestFinished$(navigation.request);\n }\n return of(navigation);\n }));\n })),\n this.#waitForNetworkIdle$(options),\n ]).pipe(map(([navigation]) => {\n if (!navigation) {\n return null;\n }\n const request = navigation.request;\n if (!request) {\n return null;\n }\n const lastRequest = request.lastRedirect ?? request;\n const httpRequest = requests.get(lastRequest);\n return httpRequest.response();\n }), raceWith(timeout(ms), fromAbortSignal(signal), this.#detached$().pipe(map(() => {\n throw new TargetCloseError('Frame detached.');\n })))));\n }\n waitForDevicePrompt() {\n throw new UnsupportedOperation();\n }\n get detached() {\n return this.browsingContext.closed;\n }\n #exposedFunctions = new Map();\n async exposeFunction(name, apply) {\n if (this.#exposedFunctions.has(name)) {\n throw new Error(`Failed to add page binding with name ${name}: globalThis['${name}'] already exists!`);\n }\n const exposable = await ExposableFunction.from(this, name, apply);\n this.#exposedFunctions.set(name, exposable);\n }\n async removeExposedFunction(name) {\n const exposedFunction = this.#exposedFunctions.get(name);\n if (!exposedFunction) {\n throw new Error(`Failed to remove page binding with name ${name}: window['${name}'] does not exists!`);\n }\n this.#exposedFunctions.delete(name);\n await exposedFunction[Symbol.asyncDispose]();\n }\n async createCDPSession() {\n if (!this.page().browser().cdpSupported) {\n throw new UnsupportedOperation();\n }\n const cdpConnection = this.page().browser().cdpConnection;\n return await cdpConnection._createSession({ targetId: this._id });\n }\n get #waitForLoad$() { return _private_waitForLoad$_descriptor.value; }\n get #waitForNetworkIdle$() { return _private_waitForNetworkIdle$_descriptor.value; }\n async setFiles(element, files) {\n await this.browsingContext.setFiles(\n // SAFETY: ElementHandles are always remote references.\n element.remoteValue(), files);\n }\n async locateNodes(element, locator) {\n return await this.browsingContext.locateNodes(locator, \n // SAFETY: ElementHandles are always remote references.\n [element.remoteValue()]);\n }\n };\n})();\nexport { BidiFrame };\nfunction isConsoleLogEntry(event) {\n return event.type === 'console';\n}\nfunction isJavaScriptLogEntry(event) {\n return event.type === 'javascript';\n}\nfunction getStackTraceLocations(stackTrace) {\n const stackTraceLocations = [];\n if (stackTrace) {\n for (const callFrame of stackTrace.callFrames) {\n stackTraceLocations.push({\n url: callFrame.url,\n lineNumber: callFrame.lineNumber,\n columnNumber: callFrame.columnNumber,\n });\n }\n }\n return stackTraceLocations;\n}\n//# sourceMappingURL=Frame.js.map","/**\n * @license\n * Copyright 2017 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Keyboard, Mouse, MouseButton, Touchscreen, } from '../api/Input.js';\nimport { UnsupportedOperation } from '../common/Errors.js';\nimport { TouchError } from '../common/Errors.js';\nvar SourceActionsType;\n(function (SourceActionsType) {\n SourceActionsType[\"None\"] = \"none\";\n SourceActionsType[\"Key\"] = \"key\";\n SourceActionsType[\"Pointer\"] = \"pointer\";\n SourceActionsType[\"Wheel\"] = \"wheel\";\n})(SourceActionsType || (SourceActionsType = {}));\nvar ActionType;\n(function (ActionType) {\n ActionType[\"Pause\"] = \"pause\";\n ActionType[\"KeyDown\"] = \"keyDown\";\n ActionType[\"KeyUp\"] = \"keyUp\";\n ActionType[\"PointerUp\"] = \"pointerUp\";\n ActionType[\"PointerDown\"] = \"pointerDown\";\n ActionType[\"PointerMove\"] = \"pointerMove\";\n ActionType[\"Scroll\"] = \"scroll\";\n})(ActionType || (ActionType = {}));\nconst getBidiKeyValue = (key) => {\n switch (key) {\n case '\\r':\n case '\\n':\n key = 'Enter';\n break;\n }\n // Measures the number of code points rather than UTF-16 code units.\n if ([...key].length === 1) {\n return key;\n }\n switch (key) {\n case 'Cancel':\n return '\\uE001';\n case 'Help':\n return '\\uE002';\n case 'Backspace':\n return '\\uE003';\n case 'Tab':\n return '\\uE004';\n case 'Clear':\n return '\\uE005';\n case 'Enter':\n return '\\uE007';\n case 'Shift':\n case 'ShiftLeft':\n return '\\uE008';\n case 'Control':\n case 'ControlLeft':\n return '\\uE009';\n case 'Alt':\n case 'AltLeft':\n return '\\uE00A';\n case 'Pause':\n return '\\uE00B';\n case 'Escape':\n return '\\uE00C';\n case 'PageUp':\n return '\\uE00E';\n case 'PageDown':\n return '\\uE00F';\n case 'End':\n return '\\uE010';\n case 'Home':\n return '\\uE011';\n case 'ArrowLeft':\n return '\\uE012';\n case 'ArrowUp':\n return '\\uE013';\n case 'ArrowRight':\n return '\\uE014';\n case 'ArrowDown':\n return '\\uE015';\n case 'Insert':\n return '\\uE016';\n case 'Delete':\n return '\\uE017';\n case 'NumpadEqual':\n return '\\uE019';\n case 'Numpad0':\n return '\\uE01A';\n case 'Numpad1':\n return '\\uE01B';\n case 'Numpad2':\n return '\\uE01C';\n case 'Numpad3':\n return '\\uE01D';\n case 'Numpad4':\n return '\\uE01E';\n case 'Numpad5':\n return '\\uE01F';\n case 'Numpad6':\n return '\\uE020';\n case 'Numpad7':\n return '\\uE021';\n case 'Numpad8':\n return '\\uE022';\n case 'Numpad9':\n return '\\uE023';\n case 'NumpadMultiply':\n return '\\uE024';\n case 'NumpadAdd':\n return '\\uE025';\n case 'NumpadSubtract':\n return '\\uE027';\n case 'NumpadDecimal':\n return '\\uE028';\n case 'NumpadDivide':\n return '\\uE029';\n case 'F1':\n return '\\uE031';\n case 'F2':\n return '\\uE032';\n case 'F3':\n return '\\uE033';\n case 'F4':\n return '\\uE034';\n case 'F5':\n return '\\uE035';\n case 'F6':\n return '\\uE036';\n case 'F7':\n return '\\uE037';\n case 'F8':\n return '\\uE038';\n case 'F9':\n return '\\uE039';\n case 'F10':\n return '\\uE03A';\n case 'F11':\n return '\\uE03B';\n case 'F12':\n return '\\uE03C';\n case 'Meta':\n case 'MetaLeft':\n return '\\uE03D';\n case 'ShiftRight':\n return '\\uE050';\n case 'ControlRight':\n return '\\uE051';\n case 'AltRight':\n return '\\uE052';\n case 'MetaRight':\n return '\\uE053';\n case 'Digit0':\n return '0';\n case 'Digit1':\n return '1';\n case 'Digit2':\n return '2';\n case 'Digit3':\n return '3';\n case 'Digit4':\n return '4';\n case 'Digit5':\n return '5';\n case 'Digit6':\n return '6';\n case 'Digit7':\n return '7';\n case 'Digit8':\n return '8';\n case 'Digit9':\n return '9';\n case 'KeyA':\n return 'a';\n case 'KeyB':\n return 'b';\n case 'KeyC':\n return 'c';\n case 'KeyD':\n return 'd';\n case 'KeyE':\n return 'e';\n case 'KeyF':\n return 'f';\n case 'KeyG':\n return 'g';\n case 'KeyH':\n return 'h';\n case 'KeyI':\n return 'i';\n case 'KeyJ':\n return 'j';\n case 'KeyK':\n return 'k';\n case 'KeyL':\n return 'l';\n case 'KeyM':\n return 'm';\n case 'KeyN':\n return 'n';\n case 'KeyO':\n return 'o';\n case 'KeyP':\n return 'p';\n case 'KeyQ':\n return 'q';\n case 'KeyR':\n return 'r';\n case 'KeyS':\n return 's';\n case 'KeyT':\n return 't';\n case 'KeyU':\n return 'u';\n case 'KeyV':\n return 'v';\n case 'KeyW':\n return 'w';\n case 'KeyX':\n return 'x';\n case 'KeyY':\n return 'y';\n case 'KeyZ':\n return 'z';\n case 'Semicolon':\n return ';';\n case 'Equal':\n return '=';\n case 'Comma':\n return ',';\n case 'Minus':\n return '-';\n case 'Period':\n return '.';\n case 'Slash':\n return '/';\n case 'Backquote':\n return '`';\n case 'BracketLeft':\n return '[';\n case 'Backslash':\n return '\\\\';\n case 'BracketRight':\n return ']';\n case 'Quote':\n return '\"';\n default:\n throw new Error(`Unknown key: \"${key}\"`);\n }\n};\n/**\n * @internal\n */\nexport class BidiKeyboard extends Keyboard {\n #page;\n constructor(page) {\n super();\n this.#page = page;\n }\n async down(key, _options) {\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Key,\n id: \"__puppeteer_keyboard\" /* InputId.Keyboard */,\n actions: [\n {\n type: ActionType.KeyDown,\n value: getBidiKeyValue(key),\n },\n ],\n },\n ]);\n }\n async up(key) {\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Key,\n id: \"__puppeteer_keyboard\" /* InputId.Keyboard */,\n actions: [\n {\n type: ActionType.KeyUp,\n value: getBidiKeyValue(key),\n },\n ],\n },\n ]);\n }\n async press(key, options = {}) {\n const { delay = 0 } = options;\n const actions = [\n {\n type: ActionType.KeyDown,\n value: getBidiKeyValue(key),\n },\n ];\n if (delay > 0) {\n actions.push({\n type: ActionType.Pause,\n duration: delay,\n });\n }\n actions.push({\n type: ActionType.KeyUp,\n value: getBidiKeyValue(key),\n });\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Key,\n id: \"__puppeteer_keyboard\" /* InputId.Keyboard */,\n actions,\n },\n ]);\n }\n async type(text, options = {}) {\n const { delay = 0 } = options;\n // This spread separates the characters into code points rather than UTF-16\n // code units.\n const values = [...text].map(getBidiKeyValue);\n const actions = [];\n if (delay <= 0) {\n for (const value of values) {\n actions.push({\n type: ActionType.KeyDown,\n value,\n }, {\n type: ActionType.KeyUp,\n value,\n });\n }\n }\n else {\n for (const value of values) {\n actions.push({\n type: ActionType.KeyDown,\n value,\n }, {\n type: ActionType.Pause,\n duration: delay,\n }, {\n type: ActionType.KeyUp,\n value,\n });\n }\n }\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Key,\n id: \"__puppeteer_keyboard\" /* InputId.Keyboard */,\n actions,\n },\n ]);\n }\n async sendCharacter(char) {\n // Measures the number of code points rather than UTF-16 code units.\n if ([...char].length > 1) {\n throw new Error('Cannot send more than 1 character.');\n }\n const frame = await this.#page.focusedFrame();\n await frame.isolatedRealm().evaluate(async (char) => {\n document.execCommand('insertText', false, char);\n }, char);\n }\n}\nconst getBidiButton = (button) => {\n switch (button) {\n case MouseButton.Left:\n return 0;\n case MouseButton.Middle:\n return 1;\n case MouseButton.Right:\n return 2;\n case MouseButton.Back:\n return 3;\n case MouseButton.Forward:\n return 4;\n }\n};\n/**\n * @internal\n */\nexport class BidiMouse extends Mouse {\n #page;\n #lastMovePoint = { x: 0, y: 0 };\n constructor(page) {\n super();\n this.#page = page;\n }\n async reset() {\n this.#lastMovePoint = { x: 0, y: 0 };\n await this.#page.mainFrame().browsingContext.releaseActions();\n }\n async move(x, y, options = {}) {\n const from = this.#lastMovePoint;\n const to = {\n x: Math.round(x),\n y: Math.round(y),\n };\n const actions = [];\n const steps = options.steps ?? 0;\n for (let i = 0; i < steps; ++i) {\n actions.push({\n type: ActionType.PointerMove,\n x: from.x + (to.x - from.x) * (i / steps),\n y: from.y + (to.y - from.y) * (i / steps),\n origin: options.origin,\n });\n }\n actions.push({\n type: ActionType.PointerMove,\n ...to,\n origin: options.origin,\n });\n // https://w3c.github.io/webdriver-bidi/#command-input-performActions:~:text=input.PointerMoveAction%20%3D%20%7B%0A%20%20type%3A%20%22pointerMove%22%2C%0A%20%20x%3A%20js%2Dint%2C\n this.#lastMovePoint = to;\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Pointer,\n id: \"__puppeteer_mouse\" /* InputId.Mouse */,\n actions,\n },\n ]);\n }\n async down(options = {}) {\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Pointer,\n id: \"__puppeteer_mouse\" /* InputId.Mouse */,\n actions: [\n {\n type: ActionType.PointerDown,\n button: getBidiButton(options.button ?? MouseButton.Left),\n },\n ],\n },\n ]);\n }\n async up(options = {}) {\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Pointer,\n id: \"__puppeteer_mouse\" /* InputId.Mouse */,\n actions: [\n {\n type: ActionType.PointerUp,\n button: getBidiButton(options.button ?? MouseButton.Left),\n },\n ],\n },\n ]);\n }\n async click(x, y, options = {}) {\n const actions = [\n {\n type: ActionType.PointerMove,\n x: Math.round(x),\n y: Math.round(y),\n origin: options.origin,\n },\n ];\n const pointerDownAction = {\n type: ActionType.PointerDown,\n button: getBidiButton(options.button ?? MouseButton.Left),\n };\n const pointerUpAction = {\n type: ActionType.PointerUp,\n button: pointerDownAction.button,\n };\n for (let i = 1; i < (options.count ?? 1); ++i) {\n actions.push(pointerDownAction, pointerUpAction);\n }\n actions.push(pointerDownAction);\n if (options.delay) {\n actions.push({\n type: ActionType.Pause,\n duration: options.delay,\n });\n }\n actions.push(pointerUpAction);\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Pointer,\n id: \"__puppeteer_mouse\" /* InputId.Mouse */,\n actions,\n },\n ]);\n }\n async wheel(options = {}) {\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Wheel,\n id: \"__puppeteer_wheel\" /* InputId.Wheel */,\n actions: [\n {\n type: ActionType.Scroll,\n ...(this.#lastMovePoint ?? {\n x: 0,\n y: 0,\n }),\n deltaX: options.deltaX ?? 0,\n deltaY: options.deltaY ?? 0,\n },\n ],\n },\n ]);\n }\n drag() {\n throw new UnsupportedOperation();\n }\n dragOver() {\n throw new UnsupportedOperation();\n }\n dragEnter() {\n throw new UnsupportedOperation();\n }\n drop() {\n throw new UnsupportedOperation();\n }\n dragAndDrop() {\n throw new UnsupportedOperation();\n }\n}\n/**\n * @internal\n */\nclass BidiTouchHandle {\n #started = false;\n #x;\n #y;\n #bidiId;\n #page;\n #touchScreen;\n #properties;\n constructor(page, touchScreen, id, x, y, properties) {\n this.#page = page;\n this.#touchScreen = touchScreen;\n this.#x = Math.round(x);\n this.#y = Math.round(y);\n this.#properties = properties;\n this.#bidiId = `${\"__puppeteer_finger\" /* InputId.Finger */}_${id}`;\n }\n async start(options = {}) {\n if (this.#started) {\n throw new TouchError('Touch has already started');\n }\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Pointer,\n id: this.#bidiId,\n parameters: {\n pointerType: \"touch\" /* Bidi.Input.PointerType.Touch */,\n },\n actions: [\n {\n type: ActionType.PointerMove,\n x: this.#x,\n y: this.#y,\n origin: options.origin,\n },\n {\n ...this.#properties,\n type: ActionType.PointerDown,\n button: 0,\n },\n ],\n },\n ]);\n this.#started = true;\n }\n move(x, y) {\n const newX = Math.round(x);\n const newY = Math.round(y);\n return this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Pointer,\n id: this.#bidiId,\n parameters: {\n pointerType: \"touch\" /* Bidi.Input.PointerType.Touch */,\n },\n actions: [\n {\n ...this.#properties,\n type: ActionType.PointerMove,\n x: newX,\n y: newY,\n },\n ],\n },\n ]);\n }\n async end() {\n await this.#page.mainFrame().browsingContext.performActions([\n {\n type: SourceActionsType.Pointer,\n id: this.#bidiId,\n parameters: {\n pointerType: \"touch\" /* Bidi.Input.PointerType.Touch */,\n },\n actions: [\n {\n type: ActionType.PointerUp,\n button: 0,\n },\n ],\n },\n ]);\n this.#touchScreen.removeHandle(this);\n }\n}\n/**\n * @internal\n */\nexport class BidiTouchscreen extends Touchscreen {\n #page;\n constructor(page) {\n super();\n this.#page = page;\n }\n async touchStart(x, y, options = {}) {\n const id = this.idGenerator();\n const properties = {\n width: 0.5 * 2, // 2 times default touch radius.\n height: 0.5 * 2, // 2 times default touch radius.\n pressure: 0.5,\n altitudeAngle: Math.PI / 2,\n };\n const touch = new BidiTouchHandle(this.#page, this, id, x, y, properties);\n await touch.start(options);\n this.touches.push(touch);\n return touch;\n }\n}\n//# sourceMappingURL=Input.js.map","/**\n * @license\n * Copyright 2022 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nimport { firstValueFrom, from, raceWith } from '../../third_party/rxjs/rxjs.js';\nimport { Page, } from '../api/Page.js';\nimport { Coverage } from '../cdp/Coverage.js';\nimport { EmulationManager } from '../cdp/EmulationManager.js';\nimport { Tracing } from '../cdp/Tracing.js';\nimport { UnsupportedOperation } from '../common/Errors.js';\nimport { EventEmitter } from '../common/EventEmitter.js';\nimport { FileChooser } from '../common/FileChooser.js';\nimport { evaluationString, isString, parsePDFOptions, timeout, } from '../common/util.js';\nimport { assert } from '../util/assert.js';\nimport { bubble } from '../util/decorators.js';\nimport { Deferred } from '../util/Deferred.js';\nimport { stringToTypedArray } from '../util/encoding.js';\nimport { isErrorLike } from '../util/ErrorLike.js';\nimport { BidiElementHandle } from './ElementHandle.js';\nimport { BidiFrame } from './Frame.js';\nimport { BidiKeyboard, BidiMouse, BidiTouchscreen } from './Input.js';\nimport { rewriteNavigationError } from './util.js';\n/**\n * Implements Page using WebDriver BiDi.\n *\n * @internal\n */\nlet BidiPage = (() => {\n let _classSuper = Page;\n let _trustedEmitter_decorators;\n let _trustedEmitter_initializers = [];\n let _trustedEmitter_extraInitializers = [];\n return class BidiPage extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _trustedEmitter_decorators = [bubble()];\n __esDecorate(this, null, _trustedEmitter_decorators, { kind: \"accessor\", name: \"trustedEmitter\", static: false, private: false, access: { has: obj => \"trustedEmitter\" in obj, get: obj => obj.trustedEmitter, set: (obj, value) => { obj.trustedEmitter = value; } }, metadata: _metadata }, _trustedEmitter_initializers, _trustedEmitter_extraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static from(browserContext, browsingContext) {\n const page = new BidiPage(browserContext, browsingContext);\n page.#initialize();\n return page;\n }\n #trustedEmitter_accessor_storage = __runInitializers(this, _trustedEmitter_initializers, new EventEmitter());\n get trustedEmitter() { return this.#trustedEmitter_accessor_storage; }\n set trustedEmitter(value) { this.#trustedEmitter_accessor_storage = value; }\n #browserContext = __runInitializers(this, _trustedEmitter_extraInitializers);\n #frame;\n #viewport = null;\n #workers = new Set();\n keyboard;\n mouse;\n touchscreen;\n tracing;\n coverage;\n #cdpEmulationManager;\n #emulatedNetworkConditions;\n #fileChooserDeferreds = new Set();\n _client() {\n return this.#frame.client;\n }\n constructor(browserContext, browsingContext) {\n super();\n this.#browserContext = browserContext;\n this.#frame = BidiFrame.from(this, browsingContext);\n this.#cdpEmulationManager = new EmulationManager(this.#frame.client);\n this.tracing = new Tracing(this.#frame.client);\n this.coverage = new Coverage(this.#frame.client);\n this.keyboard = new BidiKeyboard(this);\n this.mouse = new BidiMouse(this);\n this.touchscreen = new BidiTouchscreen(this);\n }\n #initialize() {\n this.#frame.browsingContext.on('closed', () => {\n this.trustedEmitter.emit(\"close\" /* PageEvent.Close */, undefined);\n this.trustedEmitter.removeAllListeners();\n });\n this.trustedEmitter.on(\"workercreated\" /* PageEvent.WorkerCreated */, worker => {\n this.#workers.add(worker);\n });\n this.trustedEmitter.on(\"workerdestroyed\" /* PageEvent.WorkerDestroyed */, worker => {\n this.#workers.delete(worker);\n });\n }\n /**\n * @internal\n */\n _userAgentHeaders = {};\n #userAgentInterception;\n #userAgentPreloadScript;\n async setUserAgent(userAgent, userAgentMetadata) {\n if (!this.#browserContext.browser().cdpSupported && userAgentMetadata) {\n throw new UnsupportedOperation('Current Browser does not support `userAgentMetadata`');\n }\n else if (this.#browserContext.browser().cdpSupported &&\n userAgentMetadata) {\n return await this._client().send('Network.setUserAgentOverride', {\n userAgent: userAgent,\n userAgentMetadata: userAgentMetadata,\n });\n }\n const enable = userAgent !== '';\n userAgent = userAgent ?? (await this.#browserContext.browser().userAgent());\n this._userAgentHeaders = enable\n ? {\n 'User-Agent': userAgent,\n }\n : {};\n this.#userAgentInterception = await this.#toggleInterception([\"beforeRequestSent\" /* Bidi.Network.InterceptPhase.BeforeRequestSent */], this.#userAgentInterception, enable);\n const changeUserAgent = (userAgent) => {\n Object.defineProperty(navigator, 'userAgent', {\n value: userAgent,\n configurable: true,\n });\n };\n const frames = [this.#frame];\n for (const frame of frames) {\n frames.push(...frame.childFrames());\n }\n if (this.#userAgentPreloadScript) {\n await this.removeScriptToEvaluateOnNewDocument(this.#userAgentPreloadScript);\n }\n const [evaluateToken] = await Promise.all([\n enable\n ? this.evaluateOnNewDocument(changeUserAgent, userAgent)\n : undefined,\n // When we disable the UserAgent we want to\n // evaluate the original value in all Browsing Contexts\n ...frames.map(frame => {\n return frame.evaluate(changeUserAgent, userAgent);\n }),\n ]);\n this.#userAgentPreloadScript = evaluateToken?.identifier;\n }\n async setBypassCSP(enabled) {\n // TODO: handle CDP-specific cases such as mprach.\n await this._client().send('Page.setBypassCSP', { enabled });\n }\n async queryObjects(prototypeHandle) {\n assert(!prototypeHandle.disposed, 'Prototype JSHandle is disposed!');\n assert(prototypeHandle.id, 'Prototype JSHandle must not be referencing primitive value');\n const response = await this.#frame.client.send('Runtime.queryObjects', {\n prototypeObjectId: prototypeHandle.id,\n });\n return this.#frame.mainRealm().createHandle({\n type: 'array',\n handle: response.objects.objectId,\n });\n }\n browser() {\n return this.browserContext().browser();\n }\n browserContext() {\n return this.#browserContext;\n }\n mainFrame() {\n return this.#frame;\n }\n async focusedFrame() {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const handle = __addDisposableResource(env_1, (await this.mainFrame()\n .isolatedRealm()\n .evaluateHandle(() => {\n let win = window;\n while (win.document.activeElement instanceof win.HTMLIFrameElement ||\n win.document.activeElement instanceof win.HTMLFrameElement) {\n if (win.document.activeElement.contentWindow === null) {\n break;\n }\n win = win.document.activeElement.contentWindow;\n }\n return win;\n })), false);\n const value = handle.remoteValue();\n assert(value.type === 'window');\n const frame = this.frames().find(frame => {\n return frame._id === value.value.context;\n });\n assert(frame);\n return frame;\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n __disposeResources(env_1);\n }\n }\n frames() {\n const frames = [this.#frame];\n for (const frame of frames) {\n frames.push(...frame.childFrames());\n }\n return frames;\n }\n isClosed() {\n return this.#frame.detached;\n }\n async close(options) {\n const env_2 = { stack: [], error: void 0, hasError: false };\n try {\n const _guard = __addDisposableResource(env_2, await this.#browserContext.waitForScreenshotOperations(), false);\n try {\n await this.#frame.browsingContext.close(options?.runBeforeUnload);\n }\n catch {\n return;\n }\n }\n catch (e_2) {\n env_2.error = e_2;\n env_2.hasError = true;\n }\n finally {\n __disposeResources(env_2);\n }\n }\n async reload(options = {}) {\n const [response] = await Promise.all([\n this.#frame.waitForNavigation(options),\n this.#frame.browsingContext.reload(),\n ]).catch(rewriteNavigationError(this.url(), options.timeout ?? this._timeoutSettings.navigationTimeout()));\n return response;\n }\n setDefaultNavigationTimeout(timeout) {\n this._timeoutSettings.setDefaultNavigationTimeout(timeout);\n }\n setDefaultTimeout(timeout) {\n this._timeoutSettings.setDefaultTimeout(timeout);\n }\n getDefaultTimeout() {\n return this._timeoutSettings.timeout();\n }\n getDefaultNavigationTimeout() {\n return this._timeoutSettings.navigationTimeout();\n }\n isJavaScriptEnabled() {\n return this.#cdpEmulationManager.javascriptEnabled;\n }\n async setGeolocation(options) {\n const { longitude, latitude, accuracy = 0 } = options;\n if (longitude < -180 || longitude > 180) {\n throw new Error(`Invalid longitude \"${longitude}\": precondition -180 <= LONGITUDE <= 180 failed.`);\n }\n if (latitude < -90 || latitude > 90) {\n throw new Error(`Invalid latitude \"${latitude}\": precondition -90 <= LATITUDE <= 90 failed.`);\n }\n if (accuracy < 0) {\n throw new Error(`Invalid accuracy \"${accuracy}\": precondition 0 <= ACCURACY failed.`);\n }\n return await this.#frame.browsingContext.setGeolocationOverride({\n coordinates: {\n latitude: options.latitude,\n longitude: options.longitude,\n accuracy: options.accuracy,\n },\n });\n }\n async setJavaScriptEnabled(enabled) {\n return await this.#cdpEmulationManager.setJavaScriptEnabled(enabled);\n }\n async emulateMediaType(type) {\n return await this.#cdpEmulationManager.emulateMediaType(type);\n }\n async emulateCPUThrottling(factor) {\n return await this.#cdpEmulationManager.emulateCPUThrottling(factor);\n }\n async emulateMediaFeatures(features) {\n return await this.#cdpEmulationManager.emulateMediaFeatures(features);\n }\n async emulateTimezone(timezoneId) {\n return await this.#cdpEmulationManager.emulateTimezone(timezoneId);\n }\n async emulateIdleState(overrides) {\n return await this.#cdpEmulationManager.emulateIdleState(overrides);\n }\n async emulateVisionDeficiency(type) {\n return await this.#cdpEmulationManager.emulateVisionDeficiency(type);\n }\n async setViewport(viewport) {\n if (!this.browser().cdpSupported) {\n await this.#frame.browsingContext.setViewport({\n viewport: viewport?.width && viewport?.height\n ? {\n width: viewport.width,\n height: viewport.height,\n }\n : null,\n devicePixelRatio: viewport?.deviceScaleFactor\n ? viewport.deviceScaleFactor\n : null,\n });\n this.#viewport = viewport;\n return;\n }\n const needsReload = await this.#cdpEmulationManager.emulateViewport(viewport);\n this.#viewport = viewport;\n if (needsReload) {\n await this.reload();\n }\n }\n viewport() {\n return this.#viewport;\n }\n async pdf(options = {}) {\n const { timeout: ms = this._timeoutSettings.timeout(), path = undefined } = options;\n const { printBackground: background, margin, landscape, width, height, pageRanges: ranges, scale, preferCSSPageSize, } = parsePDFOptions(options, 'cm');\n const pageRanges = ranges ? ranges.split(', ') : [];\n await firstValueFrom(from(this.mainFrame()\n .isolatedRealm()\n .evaluate(() => {\n return document.fonts.ready;\n })).pipe(raceWith(timeout(ms))));\n const data = await firstValueFrom(from(this.#frame.browsingContext.print({\n background,\n margin,\n orientation: landscape ? 'landscape' : 'portrait',\n page: {\n width,\n height,\n },\n pageRanges,\n scale,\n shrinkToFit: !preferCSSPageSize,\n })).pipe(raceWith(timeout(ms))));\n const typedArray = stringToTypedArray(data, true);\n await this._maybeWriteTypedArrayToFile(path, typedArray);\n return typedArray;\n }\n async createPDFStream(options) {\n const typedArray = await this.pdf(options);\n return new ReadableStream({\n start(controller) {\n controller.enqueue(typedArray);\n controller.close();\n },\n });\n }\n async _screenshot(options) {\n const { clip, type, captureBeyondViewport, quality } = options;\n if (options.omitBackground !== undefined && options.omitBackground) {\n throw new UnsupportedOperation(`BiDi does not support 'omitBackground'.`);\n }\n if (options.optimizeForSpeed !== undefined && options.optimizeForSpeed) {\n throw new UnsupportedOperation(`BiDi does not support 'optimizeForSpeed'.`);\n }\n if (options.fromSurface !== undefined && !options.fromSurface) {\n throw new UnsupportedOperation(`BiDi does not support 'fromSurface'.`);\n }\n if (clip !== undefined && clip.scale !== undefined && clip.scale !== 1) {\n throw new UnsupportedOperation(`BiDi does not support 'scale' in 'clip'.`);\n }\n let box;\n if (clip) {\n if (captureBeyondViewport) {\n box = clip;\n }\n else {\n // The clip is always with respect to the document coordinates, so we\n // need to convert this to viewport coordinates when we aren't capturing\n // beyond the viewport.\n const [pageLeft, pageTop] = await this.evaluate(() => {\n if (!window.visualViewport) {\n throw new Error('window.visualViewport is not supported.');\n }\n return [\n window.visualViewport.pageLeft,\n window.visualViewport.pageTop,\n ];\n });\n box = {\n ...clip,\n x: clip.x - pageLeft,\n y: clip.y - pageTop,\n };\n }\n }\n const data = await this.#frame.browsingContext.captureScreenshot({\n origin: captureBeyondViewport ? 'document' : 'viewport',\n format: {\n type: `image/${type}`,\n ...(quality !== undefined ? { quality: quality / 100 } : {}),\n },\n ...(box ? { clip: { type: 'box', ...box } } : {}),\n });\n return data;\n }\n async createCDPSession() {\n return await this.#frame.createCDPSession();\n }\n async bringToFront() {\n await this.#frame.browsingContext.activate();\n }\n async evaluateOnNewDocument(pageFunction, ...args) {\n const expression = evaluationExpression(pageFunction, ...args);\n const script = await this.#frame.browsingContext.addPreloadScript(expression);\n return { identifier: script };\n }\n async removeScriptToEvaluateOnNewDocument(id) {\n await this.#frame.browsingContext.removePreloadScript(id);\n }\n async exposeFunction(name, pptrFunction) {\n return await this.mainFrame().exposeFunction(name, 'default' in pptrFunction ? pptrFunction.default : pptrFunction);\n }\n isDragInterceptionEnabled() {\n return false;\n }\n async setCacheEnabled(enabled) {\n if (!this.#browserContext.browser().cdpSupported) {\n await this.#frame.browsingContext.setCacheBehavior(enabled ? 'default' : 'bypass');\n return;\n }\n // TODO: handle CDP-specific cases such as mprach.\n await this._client().send('Network.setCacheDisabled', {\n cacheDisabled: !enabled,\n });\n }\n async cookies(...urls) {\n const normalizedUrls = (urls.length ? urls : [this.url()]).map(url => {\n return new URL(url);\n });\n const cookies = await this.#frame.browsingContext.getCookies();\n return cookies\n .map(cookie => {\n return bidiToPuppeteerCookie(cookie);\n })\n .filter(cookie => {\n return normalizedUrls.some(url => {\n return testUrlMatchCookie(cookie, url);\n });\n });\n }\n isServiceWorkerBypassed() {\n throw new UnsupportedOperation();\n }\n target() {\n throw new UnsupportedOperation();\n }\n async waitForFileChooser(options = {}) {\n const { timeout = this._timeoutSettings.timeout() } = options;\n const deferred = Deferred.create({\n message: `Waiting for \\`FileChooser\\` failed: ${timeout}ms exceeded`,\n timeout,\n });\n this.#fileChooserDeferreds.add(deferred);\n if (options.signal) {\n options.signal.addEventListener('abort', () => {\n deferred.reject(options.signal?.reason);\n }, { once: true });\n }\n this.#frame.browsingContext.once('filedialogopened', info => {\n if (!info.element) {\n return;\n }\n const chooser = new FileChooser(BidiElementHandle.from({\n sharedId: info.element.sharedId,\n handle: info.element.handle,\n type: 'node',\n }, this.#frame.mainRealm()), info.multiple);\n for (const deferred of this.#fileChooserDeferreds) {\n deferred.resolve(chooser);\n this.#fileChooserDeferreds.delete(deferred);\n }\n });\n try {\n return await deferred.valueOrThrow();\n }\n catch (error) {\n this.#fileChooserDeferreds.delete(deferred);\n throw error;\n }\n }\n workers() {\n return [...this.#workers];\n }\n #userInterception;\n async setRequestInterception(enable) {\n this.#userInterception = await this.#toggleInterception([\"beforeRequestSent\" /* Bidi.Network.InterceptPhase.BeforeRequestSent */], this.#userInterception, enable);\n }\n /**\n * @internal\n */\n _extraHTTPHeaders = {};\n #extraHeadersInterception;\n async setExtraHTTPHeaders(headers) {\n const extraHTTPHeaders = {};\n for (const [key, value] of Object.entries(headers)) {\n assert(isString(value), `Expected value of header \"${key}\" to be String, but \"${typeof value}\" is found.`);\n extraHTTPHeaders[key.toLowerCase()] = value;\n }\n this._extraHTTPHeaders = extraHTTPHeaders;\n this.#extraHeadersInterception = await this.#toggleInterception([\"beforeRequestSent\" /* Bidi.Network.InterceptPhase.BeforeRequestSent */], this.#extraHeadersInterception, Boolean(Object.keys(this._extraHTTPHeaders).length));\n }\n /**\n * @internal\n */\n _credentials = null;\n #authInterception;\n async authenticate(credentials) {\n this.#authInterception = await this.#toggleInterception([\"authRequired\" /* Bidi.Network.InterceptPhase.AuthRequired */], this.#authInterception, Boolean(credentials));\n this._credentials = credentials;\n }\n async #toggleInterception(phases, interception, expected) {\n if (expected && !interception) {\n return await this.#frame.browsingContext.addIntercept({\n phases,\n });\n }\n else if (!expected && interception) {\n await this.#frame.browsingContext.userContext.browser.removeIntercept(interception);\n return;\n }\n return interception;\n }\n setDragInterception() {\n throw new UnsupportedOperation();\n }\n setBypassServiceWorker() {\n throw new UnsupportedOperation();\n }\n async setOfflineMode(enabled) {\n if (!this.#browserContext.browser().cdpSupported) {\n throw new UnsupportedOperation();\n }\n if (!this.#emulatedNetworkConditions) {\n this.#emulatedNetworkConditions = {\n offline: false,\n upload: -1,\n download: -1,\n latency: 0,\n };\n }\n this.#emulatedNetworkConditions.offline = enabled;\n return await this.#applyNetworkConditions();\n }\n async emulateNetworkConditions(networkConditions) {\n if (!this.#browserContext.browser().cdpSupported) {\n throw new UnsupportedOperation();\n }\n if (!this.#emulatedNetworkConditions) {\n this.#emulatedNetworkConditions = {\n offline: false,\n upload: -1,\n download: -1,\n latency: 0,\n };\n }\n this.#emulatedNetworkConditions.upload = networkConditions\n ? networkConditions.upload\n : -1;\n this.#emulatedNetworkConditions.download = networkConditions\n ? networkConditions.download\n : -1;\n this.#emulatedNetworkConditions.latency = networkConditions\n ? networkConditions.latency\n : 0;\n return await this.#applyNetworkConditions();\n }\n async #applyNetworkConditions() {\n if (!this.#emulatedNetworkConditions) {\n return;\n }\n await this._client().send('Network.emulateNetworkConditions', {\n offline: this.#emulatedNetworkConditions.offline,\n latency: this.#emulatedNetworkConditions.latency,\n uploadThroughput: this.#emulatedNetworkConditions.upload,\n downloadThroughput: this.#emulatedNetworkConditions.download,\n });\n }\n async setCookie(...cookies) {\n const pageURL = this.url();\n const pageUrlStartsWithHTTP = pageURL.startsWith('http');\n for (const cookie of cookies) {\n let cookieUrl = cookie.url || '';\n if (!cookieUrl && pageUrlStartsWithHTTP) {\n cookieUrl = pageURL;\n }\n assert(cookieUrl !== 'about:blank', `Blank page can not have cookie \"${cookie.name}\"`);\n assert(!String.prototype.startsWith.call(cookieUrl || '', 'data:'), `Data URL page can not have cookie \"${cookie.name}\"`);\n // TODO: Support Chrome cookie partition keys\n assert(cookie.partitionKey === undefined ||\n typeof cookie.partitionKey === 'string', 'BiDi only allows domain partition keys');\n const normalizedUrl = URL.canParse(cookieUrl)\n ? new URL(cookieUrl)\n : undefined;\n const domain = cookie.domain ?? normalizedUrl?.hostname;\n assert(domain !== undefined, `At least one of the url and domain needs to be specified`);\n const bidiCookie = {\n domain: domain,\n name: cookie.name,\n value: {\n type: 'string',\n value: cookie.value,\n },\n ...(cookie.path !== undefined ? { path: cookie.path } : {}),\n ...(cookie.httpOnly !== undefined ? { httpOnly: cookie.httpOnly } : {}),\n ...(cookie.secure !== undefined ? { secure: cookie.secure } : {}),\n ...(cookie.sameSite !== undefined\n ? { sameSite: convertCookiesSameSiteCdpToBiDi(cookie.sameSite) }\n : {}),\n ...{ expiry: convertCookiesExpiryCdpToBiDi(cookie.expires) },\n // Chrome-specific properties.\n ...cdpSpecificCookiePropertiesFromPuppeteerToBidi(cookie, 'sameParty', 'sourceScheme', 'priority', 'url'),\n };\n if (cookie.partitionKey !== undefined) {\n await this.browserContext().userContext.setCookie(bidiCookie, cookie.partitionKey);\n }\n else {\n await this.#frame.browsingContext.setCookie(bidiCookie);\n }\n }\n }\n async deleteCookie(...cookies) {\n await Promise.all(cookies.map(async (deleteCookieRequest) => {\n const cookieUrl = deleteCookieRequest.url ?? this.url();\n const normalizedUrl = URL.canParse(cookieUrl)\n ? new URL(cookieUrl)\n : undefined;\n const domain = deleteCookieRequest.domain ?? normalizedUrl?.hostname;\n assert(domain !== undefined, `At least one of the url and domain needs to be specified`);\n const filter = {\n domain: domain,\n name: deleteCookieRequest.name,\n ...(deleteCookieRequest.path !== undefined\n ? { path: deleteCookieRequest.path }\n : {}),\n };\n await this.#frame.browsingContext.deleteCookie(filter);\n }));\n }\n async removeExposedFunction(name) {\n await this.#frame.removeExposedFunction(name);\n }\n metrics() {\n throw new UnsupportedOperation();\n }\n async goBack(options = {}) {\n return await this.#go(-1, options);\n }\n async goForward(options = {}) {\n return await this.#go(1, options);\n }\n async #go(delta, options) {\n const controller = new AbortController();\n try {\n const [response] = await Promise.all([\n this.waitForNavigation({\n ...options,\n signal: controller.signal,\n }),\n this.#frame.browsingContext.traverseHistory(delta),\n ]);\n return response;\n }\n catch (error) {\n controller.abort();\n if (isErrorLike(error)) {\n if (error.message.includes('no such history entry')) {\n return null;\n }\n }\n throw error;\n }\n }\n waitForDevicePrompt() {\n throw new UnsupportedOperation();\n }\n };\n})();\nexport { BidiPage };\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nfunction evaluationExpression(fun, ...args) {\n return `() => {${evaluationString(fun, ...args)}}`;\n}\n/**\n * Check domains match.\n */\nfunction testUrlMatchCookieHostname(cookie, normalizedUrl) {\n const cookieDomain = cookie.domain.toLowerCase();\n const urlHostname = normalizedUrl.hostname.toLowerCase();\n if (cookieDomain === urlHostname) {\n return true;\n }\n // TODO: does not consider additional restrictions w.r.t to IP\n // addresses which is fine as it is for representation and does not\n // mean that cookies actually apply that way in the browser.\n // https://datatracker.ietf.org/doc/html/rfc6265#section-5.1.3\n return cookieDomain.startsWith('.') && urlHostname.endsWith(cookieDomain);\n}\n/**\n * Check paths match.\n * Spec: https://datatracker.ietf.org/doc/html/rfc6265#section-5.1.4\n */\nfunction testUrlMatchCookiePath(cookie, normalizedUrl) {\n const uriPath = normalizedUrl.pathname;\n const cookiePath = cookie.path;\n if (uriPath === cookiePath) {\n // The cookie-path and the request-path are identical.\n return true;\n }\n if (uriPath.startsWith(cookiePath)) {\n // The cookie-path is a prefix of the request-path.\n if (cookiePath.endsWith('/')) {\n // The last character of the cookie-path is %x2F (\"/\").\n return true;\n }\n if (uriPath[cookiePath.length] === '/') {\n // The first character of the request-path that is not included in the cookie-path\n // is a %x2F (\"/\") character.\n return true;\n }\n }\n return false;\n}\n/**\n * Checks the cookie matches the URL according to the spec:\n */\nfunction testUrlMatchCookie(cookie, url) {\n const normalizedUrl = new URL(url);\n assert(cookie !== undefined);\n if (!testUrlMatchCookieHostname(cookie, normalizedUrl)) {\n return false;\n }\n return testUrlMatchCookiePath(cookie, normalizedUrl);\n}\nexport function bidiToPuppeteerCookie(bidiCookie, returnCompositePartitionKey = false) {\n const partitionKey = bidiCookie[CDP_SPECIFIC_PREFIX + 'partitionKey'];\n function getParitionKey() {\n if (typeof partitionKey === 'string') {\n return { partitionKey };\n }\n if (typeof partitionKey === 'object' && partitionKey !== null) {\n if (returnCompositePartitionKey) {\n return {\n partitionKey: {\n sourceOrigin: partitionKey.topLevelSite,\n hasCrossSiteAncestor: partitionKey.hasCrossSiteAncestor ?? false,\n },\n };\n }\n return {\n // TODO: a breaking change in Puppeteer is required to change\n // partitionKey type and report the composite partition key.\n partitionKey: partitionKey.topLevelSite,\n };\n }\n return {};\n }\n return {\n name: bidiCookie.name,\n // Presents binary value as base64 string.\n value: bidiCookie.value.value,\n domain: bidiCookie.domain,\n path: bidiCookie.path,\n size: bidiCookie.size,\n httpOnly: bidiCookie.httpOnly,\n secure: bidiCookie.secure,\n sameSite: convertCookiesSameSiteBiDiToCdp(bidiCookie.sameSite),\n expires: bidiCookie.expiry ?? -1,\n session: bidiCookie.expiry === undefined || bidiCookie.expiry <= 0,\n // Extending with CDP-specific properties with `goog:` prefix.\n ...cdpSpecificCookiePropertiesFromBidiToPuppeteer(bidiCookie, 'sameParty', 'sourceScheme', 'partitionKeyOpaque', 'priority'),\n ...getParitionKey(),\n };\n}\nconst CDP_SPECIFIC_PREFIX = 'goog:';\n/**\n * Gets CDP-specific properties from the BiDi cookie and returns them as a new object.\n */\nfunction cdpSpecificCookiePropertiesFromBidiToPuppeteer(bidiCookie, ...propertyNames) {\n const result = {};\n for (const property of propertyNames) {\n if (bidiCookie[CDP_SPECIFIC_PREFIX + property] !== undefined) {\n result[property] = bidiCookie[CDP_SPECIFIC_PREFIX + property];\n }\n }\n return result;\n}\n/**\n * Gets CDP-specific properties from the cookie, adds CDP-specific prefixes and returns\n * them as a new object which can be used in BiDi.\n */\nexport function cdpSpecificCookiePropertiesFromPuppeteerToBidi(cookieParam, ...propertyNames) {\n const result = {};\n for (const property of propertyNames) {\n if (cookieParam[property] !== undefined) {\n result[CDP_SPECIFIC_PREFIX + property] = cookieParam[property];\n }\n }\n return result;\n}\nfunction convertCookiesSameSiteBiDiToCdp(sameSite) {\n return sameSite === 'strict' ? 'Strict' : sameSite === 'lax' ? 'Lax' : 'None';\n}\nexport function convertCookiesSameSiteCdpToBiDi(sameSite) {\n return sameSite === 'Strict'\n ? \"strict\" /* Bidi.Network.SameSite.Strict */\n : sameSite === 'Lax'\n ? \"lax\" /* Bidi.Network.SameSite.Lax */\n : \"none\" /* Bidi.Network.SameSite.None */;\n}\nexport function convertCookiesExpiryCdpToBiDi(expiry) {\n return [undefined, -1].includes(expiry) ? undefined : expiry;\n}\nexport function convertCookiesPartitionKeyFromPuppeteerToBiDi(partitionKey) {\n if (partitionKey === undefined || typeof partitionKey === 'string') {\n return partitionKey;\n }\n if (partitionKey.hasCrossSiteAncestor) {\n throw new UnsupportedOperation('WebDriver BiDi does not support `hasCrossSiteAncestor` yet.');\n }\n return partitionKey.sourceOrigin;\n}\n//# sourceMappingURL=Page.js.map","/**\n * @license\n * Copyright 2023 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Target, TargetType } from '../api/Target.js';\nimport { UnsupportedOperation } from '../common/Errors.js';\nimport { BidiPage } from './Page.js';\n/**\n * @internal\n */\nexport class BidiBrowserTarget extends Target {\n #browser;\n constructor(browser) {\n super();\n this.#browser = browser;\n }\n asPage() {\n throw new UnsupportedOperation();\n }\n url() {\n return '';\n }\n createCDPSession() {\n throw new UnsupportedOperation();\n }\n type() {\n return TargetType.BROWSER;\n }\n browser() {\n return this.#browser;\n }\n browserContext() {\n return this.#browser.defaultBrowserContext();\n }\n opener() {\n throw new UnsupportedOperation();\n }\n}\n/**\n * @internal\n */\nexport class BidiPageTarget extends Target {\n #page;\n constructor(page) {\n super();\n this.#page = page;\n }\n async page() {\n return this.#page;\n }\n async asPage() {\n return BidiPage.from(this.browserContext(), this.#page.mainFrame().browsingContext);\n }\n url() {\n return this.#page.url();\n }\n createCDPSession() {\n return this.#page.createCDPSession();\n }\n type() {\n return TargetType.PAGE;\n }\n browser() {\n return this.browserContext().browser();\n }\n browserContext() {\n return this.#page.browserContext();\n }\n opener() {\n throw new UnsupportedOperation();\n }\n}\n/**\n * @internal\n */\nexport class BidiFrameTarget extends Target {\n #frame;\n #page;\n constructor(frame) {\n super();\n this.#frame = frame;\n }\n async page() {\n if (this.#page === undefined) {\n this.#page = BidiPage.from(this.browserContext(), this.#frame.browsingContext);\n }\n return this.#page;\n }\n async asPage() {\n return BidiPage.from(this.browserContext(), this.#frame.browsingContext);\n }\n url() {\n return this.#frame.url();\n }\n createCDPSession() {\n return this.#frame.createCDPSession();\n }\n type() {\n return TargetType.PAGE;\n }\n browser() {\n return this.browserContext().browser();\n }\n browserContext() {\n return this.#frame.page().browserContext();\n }\n opener() {\n throw new UnsupportedOperation();\n }\n}\n/**\n * @internal\n */\nexport class BidiWorkerTarget extends Target {\n #worker;\n constructor(worker) {\n super();\n this.#worker = worker;\n }\n async page() {\n throw new UnsupportedOperation();\n }\n async asPage() {\n throw new UnsupportedOperation();\n }\n url() {\n return this.#worker.url();\n }\n createCDPSession() {\n throw new UnsupportedOperation();\n }\n type() {\n return TargetType.OTHER;\n }\n browser() {\n return this.browserContext().browser();\n }\n browserContext() {\n return this.#worker.frame.page().browserContext();\n }\n opener() {\n throw new UnsupportedOperation();\n }\n}\n//# sourceMappingURL=Target.js.map","/**\n * @license\n * Copyright 2022 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nimport { WEB_PERMISSION_TO_PROTOCOL_PERMISSION } from '../api/Browser.js';\nimport { BrowserContext } from '../api/BrowserContext.js';\nimport { EventEmitter } from '../common/EventEmitter.js';\nimport { debugError } from '../common/util.js';\nimport { assert } from '../util/assert.js';\nimport { bubble } from '../util/decorators.js';\nimport { UserContext } from './core/UserContext.js';\nimport { BidiPage, bidiToPuppeteerCookie, cdpSpecificCookiePropertiesFromPuppeteerToBidi, convertCookiesExpiryCdpToBiDi, convertCookiesPartitionKeyFromPuppeteerToBiDi, convertCookiesSameSiteCdpToBiDi, } from './Page.js';\nimport { BidiWorkerTarget } from './Target.js';\nimport { BidiFrameTarget, BidiPageTarget } from './Target.js';\n/**\n * @internal\n */\nlet BidiBrowserContext = (() => {\n let _classSuper = BrowserContext;\n let _trustedEmitter_decorators;\n let _trustedEmitter_initializers = [];\n let _trustedEmitter_extraInitializers = [];\n return class BidiBrowserContext extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _trustedEmitter_decorators = [bubble()];\n __esDecorate(this, null, _trustedEmitter_decorators, { kind: \"accessor\", name: \"trustedEmitter\", static: false, private: false, access: { has: obj => \"trustedEmitter\" in obj, get: obj => obj.trustedEmitter, set: (obj, value) => { obj.trustedEmitter = value; } }, metadata: _metadata }, _trustedEmitter_initializers, _trustedEmitter_extraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static from(browser, userContext, options) {\n const context = new BidiBrowserContext(browser, userContext, options);\n context.#initialize();\n return context;\n }\n #trustedEmitter_accessor_storage = __runInitializers(this, _trustedEmitter_initializers, new EventEmitter());\n get trustedEmitter() { return this.#trustedEmitter_accessor_storage; }\n set trustedEmitter(value) { this.#trustedEmitter_accessor_storage = value; }\n #browser = __runInitializers(this, _trustedEmitter_extraInitializers);\n #defaultViewport;\n // This is public because of cookies.\n userContext;\n #pages = new WeakMap();\n #targets = new Map();\n #overrides = [];\n constructor(browser, userContext, options) {\n super();\n this.#browser = browser;\n this.userContext = userContext;\n this.#defaultViewport = options.defaultViewport;\n }\n #initialize() {\n // Create targets for existing browsing contexts.\n for (const browsingContext of this.userContext.browsingContexts) {\n this.#createPage(browsingContext);\n }\n this.userContext.on('browsingcontext', ({ browsingContext }) => {\n const page = this.#createPage(browsingContext);\n // We need to wait for the DOMContentLoaded as the\n // browsingContext still may be navigating from the about:blank\n if (browsingContext.originalOpener) {\n for (const context of this.userContext.browsingContexts) {\n if (context.id === browsingContext.originalOpener) {\n this.#pages\n .get(context)\n .trustedEmitter.emit(\"popup\" /* PageEvent.Popup */, page);\n }\n }\n }\n });\n this.userContext.on('closed', () => {\n this.trustedEmitter.removeAllListeners();\n });\n }\n #createPage(browsingContext) {\n const page = BidiPage.from(this, browsingContext);\n this.#pages.set(browsingContext, page);\n page.trustedEmitter.on(\"close\" /* PageEvent.Close */, () => {\n this.#pages.delete(browsingContext);\n });\n // -- Target stuff starts here --\n const pageTarget = new BidiPageTarget(page);\n const pageTargets = new Map();\n this.#targets.set(page, [pageTarget, pageTargets]);\n page.trustedEmitter.on(\"frameattached\" /* PageEvent.FrameAttached */, frame => {\n const bidiFrame = frame;\n const target = new BidiFrameTarget(bidiFrame);\n pageTargets.set(bidiFrame, target);\n this.trustedEmitter.emit(\"targetcreated\" /* BrowserContextEvent.TargetCreated */, target);\n });\n page.trustedEmitter.on(\"framenavigated\" /* PageEvent.FrameNavigated */, frame => {\n const bidiFrame = frame;\n const target = pageTargets.get(bidiFrame);\n // If there is no target, then this is the page's frame.\n if (target === undefined) {\n this.trustedEmitter.emit(\"targetchanged\" /* BrowserContextEvent.TargetChanged */, pageTarget);\n }\n else {\n this.trustedEmitter.emit(\"targetchanged\" /* BrowserContextEvent.TargetChanged */, target);\n }\n });\n page.trustedEmitter.on(\"framedetached\" /* PageEvent.FrameDetached */, frame => {\n const bidiFrame = frame;\n const target = pageTargets.get(bidiFrame);\n if (target === undefined) {\n return;\n }\n pageTargets.delete(bidiFrame);\n this.trustedEmitter.emit(\"targetdestroyed\" /* BrowserContextEvent.TargetDestroyed */, target);\n });\n page.trustedEmitter.on(\"workercreated\" /* PageEvent.WorkerCreated */, worker => {\n const bidiWorker = worker;\n const target = new BidiWorkerTarget(bidiWorker);\n pageTargets.set(bidiWorker, target);\n this.trustedEmitter.emit(\"targetcreated\" /* BrowserContextEvent.TargetCreated */, target);\n });\n page.trustedEmitter.on(\"workerdestroyed\" /* PageEvent.WorkerDestroyed */, worker => {\n const bidiWorker = worker;\n const target = pageTargets.get(bidiWorker);\n if (target === undefined) {\n return;\n }\n pageTargets.delete(worker);\n this.trustedEmitter.emit(\"targetdestroyed\" /* BrowserContextEvent.TargetDestroyed */, target);\n });\n page.trustedEmitter.on(\"close\" /* PageEvent.Close */, () => {\n this.#targets.delete(page);\n this.trustedEmitter.emit(\"targetdestroyed\" /* BrowserContextEvent.TargetDestroyed */, pageTarget);\n });\n this.trustedEmitter.emit(\"targetcreated\" /* BrowserContextEvent.TargetCreated */, pageTarget);\n // -- Target stuff ends here --\n return page;\n }\n targets() {\n return [...this.#targets.values()].flatMap(([target, frames]) => {\n return [target, ...frames.values()];\n });\n }\n async newPage() {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const _guard = __addDisposableResource(env_1, await this.waitForScreenshotOperations(), false);\n const context = await this.userContext.createBrowsingContext(\"tab\" /* Bidi.BrowsingContext.CreateType.Tab */);\n const page = this.#pages.get(context);\n if (!page) {\n throw new Error('Page is not found');\n }\n if (this.#defaultViewport) {\n try {\n await page.setViewport(this.#defaultViewport);\n }\n catch {\n // No support for setViewport in Firefox.\n }\n }\n return page;\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n __disposeResources(env_1);\n }\n }\n async close() {\n assert(this.userContext.id !== UserContext.DEFAULT, 'Default BrowserContext cannot be closed!');\n try {\n await this.userContext.remove();\n }\n catch (error) {\n debugError(error);\n }\n this.#targets.clear();\n }\n browser() {\n return this.#browser;\n }\n async pages() {\n return [...this.userContext.browsingContexts].map(context => {\n return this.#pages.get(context);\n });\n }\n async overridePermissions(origin, permissions) {\n const permissionsSet = new Set(permissions.map(permission => {\n const protocolPermission = WEB_PERMISSION_TO_PROTOCOL_PERMISSION.get(permission);\n if (!protocolPermission) {\n throw new Error('Unknown permission: ' + permission);\n }\n return permission;\n }));\n await Promise.all(Array.from(WEB_PERMISSION_TO_PROTOCOL_PERMISSION.keys()).map(permission => {\n const result = this.userContext.setPermissions(origin, {\n name: permission,\n }, permissionsSet.has(permission)\n ? \"granted\" /* Bidi.Permissions.PermissionState.Granted */\n : \"denied\" /* Bidi.Permissions.PermissionState.Denied */);\n this.#overrides.push({ origin, permission });\n // TODO: some permissions are outdated and setting them to denied does\n // not work.\n if (!permissionsSet.has(permission)) {\n return result.catch(debugError);\n }\n return result;\n }));\n }\n async clearPermissionOverrides() {\n const promises = this.#overrides.map(({ permission, origin }) => {\n return this.userContext\n .setPermissions(origin, {\n name: permission,\n }, \"prompt\" /* Bidi.Permissions.PermissionState.Prompt */)\n .catch(debugError);\n });\n this.#overrides = [];\n await Promise.all(promises);\n }\n get id() {\n if (this.userContext.id === UserContext.DEFAULT) {\n return undefined;\n }\n return this.userContext.id;\n }\n async cookies() {\n const cookies = await this.userContext.getCookies();\n return cookies.map(cookie => {\n return bidiToPuppeteerCookie(cookie, true);\n });\n }\n async setCookie(...cookies) {\n await Promise.all(cookies.map(async (cookie) => {\n const bidiCookie = {\n domain: cookie.domain,\n name: cookie.name,\n value: {\n type: 'string',\n value: cookie.value,\n },\n ...(cookie.path !== undefined ? { path: cookie.path } : {}),\n ...(cookie.httpOnly !== undefined ? { httpOnly: cookie.httpOnly } : {}),\n ...(cookie.secure !== undefined ? { secure: cookie.secure } : {}),\n ...(cookie.sameSite !== undefined\n ? { sameSite: convertCookiesSameSiteCdpToBiDi(cookie.sameSite) }\n : {}),\n ...{ expiry: convertCookiesExpiryCdpToBiDi(cookie.expires) },\n // Chrome-specific properties.\n ...cdpSpecificCookiePropertiesFromPuppeteerToBidi(cookie, 'sameParty', 'sourceScheme', 'priority', 'url'),\n };\n return await this.userContext.setCookie(bidiCookie, convertCookiesPartitionKeyFromPuppeteerToBiDi(cookie.partitionKey));\n }));\n }\n };\n})();\nexport { BidiBrowserContext };\n//# sourceMappingURL=BrowserContext.js.map","/**\n * @license\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nvar __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n};\nvar __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n return function (env) {\n function fail(e) {\n env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n };\n})(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n});\nimport { EventEmitter } from '../../common/EventEmitter.js';\nimport { inertIfDisposed, throwIfDisposed } from '../../util/decorators.js';\nimport { DisposableStack, disposeSymbol } from '../../util/disposable.js';\nimport { SharedWorkerRealm } from './Realm.js';\nimport { UserContext } from './UserContext.js';\n/**\n * @internal\n */\nlet Browser = (() => {\n let _classSuper = EventEmitter;\n let _instanceExtraInitializers = [];\n let _dispose_decorators;\n let _close_decorators;\n let _addPreloadScript_decorators;\n let _removeIntercept_decorators;\n let _removePreloadScript_decorators;\n let _createUserContext_decorators;\n let _installExtension_decorators;\n let _uninstallExtension_decorators;\n return class Browser extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n __esDecorate(this, null, _dispose_decorators, { kind: \"method\", name: \"dispose\", static: false, private: false, access: { has: obj => \"dispose\" in obj, get: obj => obj.dispose }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _close_decorators, { kind: \"method\", name: \"close\", static: false, private: false, access: { has: obj => \"close\" in obj, get: obj => obj.close }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _addPreloadScript_decorators, { kind: \"method\", name: \"addPreloadScript\", static: false, private: false, access: { has: obj => \"addPreloadScript\" in obj, get: obj => obj.addPreloadScript }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _removeIntercept_decorators, { kind: \"method\", name: \"removeIntercept\", static: false, private: false, access: { has: obj => \"removeIntercept\" in obj, get: obj => obj.removeIntercept }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _removePreloadScript_decorators, { kind: \"method\", name: \"removePreloadScript\", static: false, private: false, access: { has: obj => \"removePreloadScript\" in obj, get: obj => obj.removePreloadScript }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _createUserContext_decorators, { kind: \"method\", name: \"createUserContext\", static: false, private: false, access: { has: obj => \"createUserContext\" in obj, get: obj => obj.createUserContext }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _installExtension_decorators, { kind: \"method\", name: \"installExtension\", static: false, private: false, access: { has: obj => \"installExtension\" in obj, get: obj => obj.installExtension }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _uninstallExtension_decorators, { kind: \"method\", name: \"uninstallExtension\", static: false, private: false, access: { has: obj => \"uninstallExtension\" in obj, get: obj => obj.uninstallExtension }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static async from(session) {\n const browser = new Browser(session);\n await browser.#initialize();\n return browser;\n }\n #closed = (__runInitializers(this, _instanceExtraInitializers), false);\n #reason;\n #disposables = new DisposableStack();\n #userContexts = new Map();\n session;\n #sharedWorkers = new Map();\n constructor(session) {\n super();\n this.session = session;\n }\n async #initialize() {\n const sessionEmitter = this.#disposables.use(new EventEmitter(this.session));\n sessionEmitter.once('ended', ({ reason }) => {\n this.dispose(reason);\n });\n sessionEmitter.on('script.realmCreated', info => {\n if (info.type !== 'shared-worker') {\n return;\n }\n this.#sharedWorkers.set(info.realm, SharedWorkerRealm.from(this, info.realm, info.origin));\n });\n await this.#syncUserContexts();\n await this.#syncBrowsingContexts();\n }\n async #syncUserContexts() {\n const { result: { userContexts }, } = await this.session.send('browser.getUserContexts', {});\n for (const context of userContexts) {\n this.#createUserContext(context.userContext);\n }\n }\n async #syncBrowsingContexts() {\n // In case contexts are created or destroyed during `getTree`, we use this\n // set to detect them.\n const contextIds = new Set();\n let contexts;\n {\n const env_1 = { stack: [], error: void 0, hasError: false };\n try {\n const sessionEmitter = __addDisposableResource(env_1, new EventEmitter(this.session), false);\n sessionEmitter.on('browsingContext.contextCreated', info => {\n contextIds.add(info.context);\n });\n const { result } = await this.session.send('browsingContext.getTree', {});\n contexts = result.contexts;\n }\n catch (e_1) {\n env_1.error = e_1;\n env_1.hasError = true;\n }\n finally {\n __disposeResources(env_1);\n }\n }\n // Simulating events so contexts are created naturally.\n for (const info of contexts) {\n if (!contextIds.has(info.context)) {\n this.session.emit('browsingContext.contextCreated', info);\n }\n if (info.children) {\n contexts.push(...info.children);\n }\n }\n }\n #createUserContext(id) {\n const userContext = UserContext.create(this, id);\n this.#userContexts.set(userContext.id, userContext);\n const userContextEmitter = this.#disposables.use(new EventEmitter(userContext));\n userContextEmitter.once('closed', () => {\n userContextEmitter.removeAllListeners();\n this.#userContexts.delete(userContext.id);\n });\n return userContext;\n }\n get closed() {\n return this.#closed;\n }\n get defaultUserContext() {\n // SAFETY: A UserContext is always created for the default context.\n return this.#userContexts.get(UserContext.DEFAULT);\n }\n get disconnected() {\n return this.#reason !== undefined;\n }\n get disposed() {\n return this.disconnected;\n }\n get userContexts() {\n return this.#userContexts.values();\n }\n dispose(reason, closed = false) {\n this.#closed = closed;\n this.#reason = reason;\n this[disposeSymbol]();\n }\n async close() {\n try {\n await this.session.send('browser.close', {});\n }\n finally {\n this.dispose('Browser already closed.', true);\n }\n }\n async addPreloadScript(functionDeclaration, options = {}) {\n const { result: { script }, } = await this.session.send('script.addPreloadScript', {\n functionDeclaration,\n ...options,\n contexts: options.contexts?.map(context => {\n return context.id;\n }),\n });\n return script;\n }\n async removeIntercept(intercept) {\n await this.session.send('network.removeIntercept', {\n intercept,\n });\n }\n async removePreloadScript(script) {\n await this.session.send('script.removePreloadScript', {\n script,\n });\n }\n async createUserContext() {\n const { result: { userContext: context }, } = await this.session.send('browser.createUserContext', {});\n return this.#createUserContext(context);\n }\n async installExtension(path) {\n const { result: { extension }, } = await this.session.send('webExtension.install', {\n extensionData: { type: 'path', path },\n });\n return extension;\n }\n async uninstallExtension(id) {\n await this.session.send('webExtension.uninstall', { extension: id });\n }\n [(_dispose_decorators = [inertIfDisposed], _close_decorators = [throwIfDisposed(browser => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return browser.#reason;\n })], _addPreloadScript_decorators = [throwIfDisposed(browser => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return browser.#reason;\n })], _removeIntercept_decorators = [throwIfDisposed(browser => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return browser.#reason;\n })], _removePreloadScript_decorators = [throwIfDisposed(browser => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return browser.#reason;\n })], _createUserContext_decorators = [throwIfDisposed(browser => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return browser.#reason;\n })], _installExtension_decorators = [throwIfDisposed(browser => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return browser.#reason;\n })], _uninstallExtension_decorators = [throwIfDisposed(browser => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return browser.#reason;\n })], disposeSymbol)]() {\n this.#reason ??=\n 'Browser was disconnected, probably because the session ended.';\n if (this.closed) {\n this.emit('closed', { reason: this.#reason });\n }\n this.emit('disconnected', { reason: this.#reason });\n this.#disposables.dispose();\n super[disposeSymbol]();\n }\n };\n})();\nexport { Browser };\n//# sourceMappingURL=Browser.js.map","/**\n * @license\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nimport { EventEmitter } from '../../common/EventEmitter.js';\nimport { bubble, inertIfDisposed, throwIfDisposed, } from '../../util/decorators.js';\nimport { DisposableStack, disposeSymbol } from '../../util/disposable.js';\nimport { Browser } from './Browser.js';\n/**\n * @internal\n */\nlet Session = (() => {\n let _classSuper = EventEmitter;\n let _instanceExtraInitializers = [];\n let _connection_decorators;\n let _connection_initializers = [];\n let _connection_extraInitializers = [];\n let _dispose_decorators;\n let _send_decorators;\n let _subscribe_decorators;\n let _addIntercepts_decorators;\n let _end_decorators;\n return class Session extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n __esDecorate(this, null, _connection_decorators, { kind: \"accessor\", name: \"connection\", static: false, private: false, access: { has: obj => \"connection\" in obj, get: obj => obj.connection, set: (obj, value) => { obj.connection = value; } }, metadata: _metadata }, _connection_initializers, _connection_extraInitializers);\n __esDecorate(this, null, _dispose_decorators, { kind: \"method\", name: \"dispose\", static: false, private: false, access: { has: obj => \"dispose\" in obj, get: obj => obj.dispose }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _send_decorators, { kind: \"method\", name: \"send\", static: false, private: false, access: { has: obj => \"send\" in obj, get: obj => obj.send }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _subscribe_decorators, { kind: \"method\", name: \"subscribe\", static: false, private: false, access: { has: obj => \"subscribe\" in obj, get: obj => obj.subscribe }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _addIntercepts_decorators, { kind: \"method\", name: \"addIntercepts\", static: false, private: false, access: { has: obj => \"addIntercepts\" in obj, get: obj => obj.addIntercepts }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _end_decorators, { kind: \"method\", name: \"end\", static: false, private: false, access: { has: obj => \"end\" in obj, get: obj => obj.end }, metadata: _metadata }, null, _instanceExtraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n static async from(connection, capabilities) {\n const { result } = await connection.send('session.new', {\n capabilities,\n });\n const session = new Session(connection, result);\n await session.#initialize();\n return session;\n }\n #reason = __runInitializers(this, _instanceExtraInitializers);\n #disposables = new DisposableStack();\n #info;\n browser;\n #connection_accessor_storage = __runInitializers(this, _connection_initializers, void 0);\n get connection() { return this.#connection_accessor_storage; }\n set connection(value) { this.#connection_accessor_storage = value; }\n constructor(connection, info) {\n super();\n __runInitializers(this, _connection_extraInitializers);\n this.#info = info;\n this.connection = connection;\n }\n async #initialize() {\n // SAFETY: We use `any` to allow assignment of the readonly property.\n this.browser = await Browser.from(this);\n const browserEmitter = this.#disposables.use(this.browser);\n browserEmitter.once('closed', ({ reason }) => {\n this.dispose(reason);\n });\n // TODO: Currently, some implementations do not emit navigationStarted event\n // for fragment navigations (as per spec) and some do. This could emits a\n // synthetic navigationStarted to work around this inconsistency.\n const seen = new WeakSet();\n this.on('browsingContext.fragmentNavigated', info => {\n if (seen.has(info)) {\n return;\n }\n seen.add(info);\n this.emit('browsingContext.navigationStarted', info);\n this.emit('browsingContext.fragmentNavigated', info);\n });\n }\n get capabilities() {\n return this.#info.capabilities;\n }\n get disposed() {\n return this.ended;\n }\n get ended() {\n return this.#reason !== undefined;\n }\n get id() {\n return this.#info.sessionId;\n }\n dispose(reason) {\n this.#reason = reason;\n this[disposeSymbol]();\n }\n /**\n * Currently, there is a 1:1 relationship between the session and the\n * session. In the future, we might support multiple sessions and in that\n * case we always needs to make sure that the session for the right session\n * object is used, so we implement this method here, although it's not defined\n * in the spec.\n */\n async send(method, params) {\n return await this.connection.send(method, params);\n }\n async subscribe(events, contexts) {\n await this.send('session.subscribe', {\n events,\n contexts,\n });\n }\n async addIntercepts(events, contexts) {\n await this.send('session.subscribe', {\n events,\n contexts,\n });\n }\n async end() {\n try {\n await this.send('session.end', {});\n }\n finally {\n this.dispose(`Session already ended.`);\n }\n }\n [(_connection_decorators = [bubble()], _dispose_decorators = [inertIfDisposed], _send_decorators = [throwIfDisposed(session => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return session.#reason;\n })], _subscribe_decorators = [throwIfDisposed(session => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return session.#reason;\n })], _addIntercepts_decorators = [throwIfDisposed(session => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return session.#reason;\n })], _end_decorators = [throwIfDisposed(session => {\n // SAFETY: By definition of `disposed`, `#reason` is defined.\n return session.#reason;\n })], disposeSymbol)]() {\n this.#reason ??=\n 'Session already destroyed, probably because the connection broke.';\n this.emit('ended', { reason: this.#reason });\n this.#disposables.dispose();\n super[disposeSymbol]();\n }\n };\n})();\nexport { Session };\n//# sourceMappingURL=Session.js.map","/**\n * @license\n * Copyright 2022 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\nvar __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\nvar __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\nimport { Browser, } from '../api/Browser.js';\nimport { EventEmitter } from '../common/EventEmitter.js';\nimport { debugError } from '../common/util.js';\nimport { bubble } from '../util/decorators.js';\nimport { BidiBrowserContext } from './BrowserContext.js';\nimport { Session } from './core/Session.js';\nimport { BidiBrowserTarget } from './Target.js';\n/**\n * @internal\n */\nlet BidiBrowser = (() => {\n let _classSuper = Browser;\n let _private_trustedEmitter_decorators;\n let _private_trustedEmitter_initializers = [];\n let _private_trustedEmitter_extraInitializers = [];\n let _private_trustedEmitter_descriptor;\n return class BidiBrowser extends _classSuper {\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _private_trustedEmitter_decorators = [bubble()];\n __esDecorate(this, _private_trustedEmitter_descriptor = { get: __setFunctionName(function () { return this.#trustedEmitter_accessor_storage; }, \"#trustedEmitter\", \"get\"), set: __setFunctionName(function (value) { this.#trustedEmitter_accessor_storage = value; }, \"#trustedEmitter\", \"set\") }, _private_trustedEmitter_decorators, { kind: \"accessor\", name: \"#trustedEmitter\", static: false, private: true, access: { has: obj => #trustedEmitter in obj, get: obj => obj.#trustedEmitter, set: (obj, value) => { obj.#trustedEmitter = value; } }, metadata: _metadata }, _private_trustedEmitter_initializers, _private_trustedEmitter_extraInitializers);\n if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n protocol = 'webDriverBiDi';\n static subscribeModules = [\n 'browsingContext',\n 'network',\n 'log',\n 'script',\n 'input',\n ];\n static subscribeCdpEvents = [\n // Coverage\n 'goog:cdp.Debugger.scriptParsed',\n 'goog:cdp.CSS.styleSheetAdded',\n 'goog:cdp.Runtime.executionContextsCleared',\n // Tracing\n 'goog:cdp.Tracing.tracingComplete',\n // TODO: subscribe to all CDP events in the future.\n 'goog:cdp.Network.requestWillBeSent',\n 'goog:cdp.Debugger.scriptParsed',\n 'goog:cdp.Page.screencastFrame',\n ];\n static async create(opts) {\n const session = await Session.from(opts.connection, {\n firstMatch: opts.capabilities?.firstMatch,\n alwaysMatch: {\n ...opts.capabilities?.alwaysMatch,\n // Capabilities that come from Puppeteer's API take precedence.\n acceptInsecureCerts: opts.acceptInsecureCerts,\n unhandledPromptBehavior: {\n default: \"ignore\" /* Bidi.Session.UserPromptHandlerType.Ignore */,\n },\n webSocketUrl: true,\n // Puppeteer with WebDriver BiDi does not support prerendering\n // yet because WebDriver BiDi behavior is not specified. See\n // https://github.com/w3c/webdriver-bidi/issues/321.\n 'goog:prerenderingDisabled': true,\n },\n });\n await session.subscribe(session.capabilities.browserName.toLocaleLowerCase().includes('firefox')\n ? BidiBrowser.subscribeModules\n : [...BidiBrowser.subscribeModules, ...BidiBrowser.subscribeCdpEvents]);\n const browser = new BidiBrowser(session.browser, opts);\n browser.#initialize();\n return browser;\n }\n #trustedEmitter_accessor_storage = __runInitializers(this, _private_trustedEmitter_initializers, new EventEmitter());\n get #trustedEmitter() { return _private_trustedEmitter_descriptor.get.call(this); }\n set #trustedEmitter(value) { return _private_trustedEmitter_descriptor.set.call(this, value); }\n #process = __runInitializers(this, _private_trustedEmitter_extraInitializers);\n #closeCallback;\n #browserCore;\n #defaultViewport;\n #browserContexts = new WeakMap();\n #target = new BidiBrowserTarget(this);\n #cdpConnection;\n constructor(browserCore, opts) {\n super();\n this.#process = opts.process;\n this.#closeCallback = opts.closeCallback;\n this.#browserCore = browserCore;\n this.#defaultViewport = opts.defaultViewport;\n this.#cdpConnection = opts.cdpConnection;\n }\n #initialize() {\n // Initializing existing contexts.\n for (const userContext of this.#browserCore.userContexts) {\n this.#createBrowserContext(userContext);\n }\n this.#browserCore.once('disconnected', () => {\n this.#trustedEmitter.emit(\"disconnected\" /* BrowserEvent.Disconnected */, undefined);\n this.#trustedEmitter.removeAllListeners();\n });\n this.#process?.once('close', () => {\n this.#browserCore.dispose('Browser process exited.', true);\n this.connection.dispose();\n });\n }\n get #browserName() {\n return this.#browserCore.session.capabilities.browserName;\n }\n get #browserVersion() {\n return this.#browserCore.session.capabilities.browserVersion;\n }\n get cdpSupported() {\n return this.#cdpConnection !== undefined;\n }\n get cdpConnection() {\n return this.#cdpConnection;\n }\n async userAgent() {\n return this.#browserCore.session.capabilities.userAgent;\n }\n #createBrowserContext(userContext) {\n const browserContext = BidiBrowserContext.from(this, userContext, {\n defaultViewport: this.#defaultViewport,\n });\n this.#browserContexts.set(userContext, browserContext);\n browserContext.trustedEmitter.on(\"targetcreated\" /* BrowserContextEvent.TargetCreated */, target => {\n this.#trustedEmitter.emit(\"targetcreated\" /* BrowserEvent.TargetCreated */, target);\n });\n browserContext.trustedEmitter.on(\"targetchanged\" /* BrowserContextEvent.TargetChanged */, target => {\n this.#trustedEmitter.emit(\"targetchanged\" /* BrowserEvent.TargetChanged */, target);\n });\n browserContext.trustedEmitter.on(\"targetdestroyed\" /* BrowserContextEvent.TargetDestroyed */, target => {\n this.#trustedEmitter.emit(\"targetdestroyed\" /* BrowserEvent.TargetDestroyed */, target);\n });\n return browserContext;\n }\n get connection() {\n // SAFETY: We only have one implementation.\n return this.#browserCore.session.connection;\n }\n wsEndpoint() {\n return this.connection.url;\n }\n async close() {\n if (this.connection.closed) {\n return;\n }\n try {\n await this.#browserCore.close();\n await this.#closeCallback?.call(null);\n }\n catch (error) {\n // Fail silently.\n debugError(error);\n }\n finally {\n this.connection.dispose();\n }\n }\n get connected() {\n return !this.#browserCore.disconnected;\n }\n process() {\n return this.#process ?? null;\n }\n async createBrowserContext(_options) {\n const userContext = await this.#browserCore.createUserContext();\n return this.#createBrowserContext(userContext);\n }\n async version() {\n return `${this.#browserName}/${this.#browserVersion}`;\n }\n browserContexts() {\n return [...this.#browserCore.userContexts].map(context => {\n return this.#browserContexts.get(context);\n });\n }\n defaultBrowserContext() {\n return this.#browserContexts.get(this.#browserCore.defaultUserContext);\n }\n newPage() {\n return this.defaultBrowserContext().newPage();\n }\n installExtension(path) {\n return this.#browserCore.installExtension(path);\n }\n async uninstallExtension(id) {\n await this.#browserCore.uninstallExtension(id);\n }\n targets() {\n return [\n this.#target,\n ...this.browserContexts().flatMap(context => {\n return context.targets();\n }),\n ];\n }\n target() {\n return this.#target;\n }\n async disconnect() {\n try {\n await this.#browserCore.session.end();\n }\n catch (error) {\n // Fail silently.\n debugError(error);\n }\n finally {\n this.connection.dispose();\n }\n }\n get debugInfo() {\n return {\n pendingProtocolErrors: this.connection.getPendingProtocolErrors(),\n };\n }\n };\n})();\nexport { BidiBrowser };\n//# sourceMappingURL=Browser.js.map"],"names":["this","EventEmitter_1","EventEmitter","ProcessingQueue_1","require$$0","ProcessingQueue","require$$1","require$$2","require$$3","require$$4","require$$5","BidiNoOpParser_1","BidiNoOpParser","BrowserProcessor_1","BrowserProcessor","CdpProcessor_1","CdpProcessor","BrowsingContextProcessor_1","BrowsingContextProcessor","EmulationProcessor_1","EmulationProcessor","assert_1","assert","ActionDispatcher_1","ActionDispatcher","Mutex_1","Mutex","InputState_1","InputState","InputStateManager_1","InputStateManager","InputProcessor_1","InputProcessor","NetworkProcessor_1","NetworkProcessor","PermissionsProcessor_1","PermissionsProcessor","ChannelProxy_1","ChannelProxy","PreloadScript_1","PreloadScript","ScriptProcessor_1","ScriptProcessor","SessionProcessor_1","SessionProcessor","StorageProcessor_1","StorageProcessor","WebExtensionProcessor_1","WebExtensionProcessor","OutgoingMessage_1","OutgoingMessage","CommandProcessor_1","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","CommandProcessor","BluetoothProcessor_1","BluetoothProcessor","UserContextConfig_1","UserContextConfig","UserContextStorage_1","UserContextStorage","Deferred_1","Deferred","Realm_1","WindowRealm_1","NavigationTracker_1","NavigationTracker","BrowsingContextImpl_1","BrowsingContextImpl","WorkerRealm_1","WorkerRealm","LogManager_1","LogManager","CdpTarget_1","CdpTarget","CdpTargetManager_1","CdpTargetManager","BrowsingContextStorage_1","BrowsingContextStorage","DefaultMap_1","DefaultMap","NetworkRequest_1","NetworkRequest","NetworkStorage_1","NetworkStorage","PreloadScriptStorage_1","PreloadScriptStorage","RealmStorage_1","RealmStorage","Buffer_1","IdWrapper_1","IdWrapper","SubscriptionManager_1","SubscriptionManager","EventManager_1","EventManager","BidiServer_1","BidiServer","CDPSession","UnsupportedOperation","TargetCloseError","debug","CallbackRegistry","debugError","BidiMapper.BidiServer","BidiMapper.EventEmitter","__runInitializers","__esDecorate","DisposableStack","disposeSymbol","inertIfDisposed","_a","throwIfDisposed","JSHandle","__addDisposableResource","__disposeResources","ElementHandle","bindIsolatedHandle","environment","AsyncIterableUtil","Dialog","Bidi.ChromiumBidi","stringifyFunction","interpolateFunction","HTTPResponse","invokeAtMostOnceForArguments","SecurityDetails","HTTPRequest","stringToBase64","handleError","STATUS_TEXTS","isPlainObject","isRegExp","isDate","PuppeteerURL","ProtocolError","TimeoutError","Realm","scriptInjector","getSourceUrlComment","getSourcePuppeteerURLIfAvailable","isString","SOURCE_URL_REGEX","LazyArg","ARIAQueryHandler","WebWorker","__setFunctionName","Frame","throwIfDetached","of","combineLatest","fromEmitterEvent","map","first","raceWith","timeout","Accessibility","ConsoleMessage","defer","filter","isErrorLike","firstValueFrom","race","switchMap","delayWhen","fromAbortSignal","Keyboard","MouseButton","Mouse","TouchError","Touchscreen","Page","bubble","EmulationManager","Tracing","Coverage","parsePDFOptions","from","stringToTypedArray","FileChooser","evaluationString","Target","TargetType","BrowserContext","WEB_PERMISSION_TO_PROTOCOL_PERMISSION","Browser"],"mappings":"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MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAAM;AACzB,SAAQ,KAAK,GAAG;AAChB,SAAQ,KAAK,GAAG;AAChB,aAAY,OAAO,MAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96]}
|