{"version":3,"file":"bidi-DfZSKIkl.mjs","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","BidiMapper.BidiServer","BidiMapper.EventEmitter","__runInitializers","__esDecorate","_a","__addDisposableResource","__disposeResources","Bidi.ChromiumBidi","Realm","__setFunctionName","Browser"],"mappings":"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AM;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,MAAM;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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]}