{"version":3,"file":"src-ChZlNrRV.mjs","names":["#size","#parts","#endings","#type","Blob","Blob","#lastModified","#name","File","C","F","#d","INTERNALS","Buffer","pipeline","Blob","INTERNALS","formatUrl","fs","pump","Buffer"],"sources":["../node_modules/.pnpm/data-uri-to-buffer@4.0.1/node_modules/data-uri-to-buffer/dist/index.js","../node_modules/.pnpm/web-streams-polyfill@3.3.3/node_modules/web-streams-polyfill/dist/ponyfill.es2018.js","../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/streams.cjs","../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/index.js","../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/file.js","../node_modules/.pnpm/formdata-polyfill@4.0.10/node_modules/formdata-polyfill/esm.min.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/errors/base.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/errors/fetch-error.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/is.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/body.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/headers.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/is-redirect.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/response.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/get-search.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/utils/referrer.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/request.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/errors/abort-error.js","../node_modules/.pnpm/node-domexception@1.0.0/node_modules/node-domexception/index.js","../node_modules/.pnpm/fetch-blob@3.2.0/node_modules/fetch-blob/from.js","../node_modules/.pnpm/node-fetch@3.3.2/node_modules/node-fetch/src/index.js"],"sourcesContent":["/**\n * Returns a `Buffer` instance from the given data URI `uri`.\n *\n * @param {String} uri Data URI to turn into a Buffer instance\n * @returns {Buffer} Buffer instance from Data URI\n * @api public\n */\nexport function dataUriToBuffer(uri) {\n    if (!/^data:/i.test(uri)) {\n        throw new TypeError('`uri` does not appear to be a Data URI (must begin with \"data:\")');\n    }\n    // strip newlines\n    uri = uri.replace(/\\r?\\n/g, '');\n    // split the URI up into the \"metadata\" and the \"data\" portions\n    const firstComma = uri.indexOf(',');\n    if (firstComma === -1 || firstComma <= 4) {\n        throw new TypeError('malformed data: URI');\n    }\n    // remove the \"data:\" scheme and parse the metadata\n    const meta = uri.substring(5, firstComma).split(';');\n    let charset = '';\n    let base64 = false;\n    const type = meta[0] || 'text/plain';\n    let typeFull = type;\n    for (let i = 1; i < meta.length; i++) {\n        if (meta[i] === 'base64') {\n            base64 = true;\n        }\n        else if (meta[i]) {\n            typeFull += `;${meta[i]}`;\n            if (meta[i].indexOf('charset=') === 0) {\n                charset = meta[i].substring(8);\n            }\n        }\n    }\n    // defaults to US-ASCII only if type is not provided\n    if (!meta[0] && !charset.length) {\n        typeFull += ';charset=US-ASCII';\n        charset = 'US-ASCII';\n    }\n    // get the encoded data portion and decode URI-encoded chars\n    const encoding = base64 ? 'base64' : 'ascii';\n    const data = unescape(uri.substring(firstComma + 1));\n    const buffer = Buffer.from(data, encoding);\n    // set `.type` and `.typeFull` properties to MIME type\n    buffer.type = type;\n    buffer.typeFull = typeFull;\n    // set the `.charset` property\n    buffer.charset = charset;\n    return buffer;\n}\nexport default dataUriToBuffer;\n//# sourceMappingURL=index.js.map","/**\n * @license\n * web-streams-polyfill v3.3.3\n * Copyright 2024 Mattias Buelens, Diwank Singh Tomer and other contributors.\n * This code is released under the MIT license.\n * SPDX-License-Identifier: MIT\n */\n(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n    typeof define === 'function' && define.amd ? define(['exports'], factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.WebStreamsPolyfill = {}));\n})(this, (function (exports) { 'use strict';\n\n    function noop() {\n        return undefined;\n    }\n\n    function typeIsObject(x) {\n        return (typeof x === 'object' && x !== null) || typeof x === 'function';\n    }\n    const rethrowAssertionErrorRejection = noop;\n    function setFunctionName(fn, name) {\n        try {\n            Object.defineProperty(fn, 'name', {\n                value: name,\n                configurable: true\n            });\n        }\n        catch (_a) {\n            // This property is non-configurable in older browsers, so ignore if this throws.\n            // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility\n        }\n    }\n\n    const originalPromise = Promise;\n    const originalPromiseThen = Promise.prototype.then;\n    const originalPromiseReject = Promise.reject.bind(originalPromise);\n    // https://webidl.spec.whatwg.org/#a-new-promise\n    function newPromise(executor) {\n        return new originalPromise(executor);\n    }\n    // https://webidl.spec.whatwg.org/#a-promise-resolved-with\n    function promiseResolvedWith(value) {\n        return newPromise(resolve => resolve(value));\n    }\n    // https://webidl.spec.whatwg.org/#a-promise-rejected-with\n    function promiseRejectedWith(reason) {\n        return originalPromiseReject(reason);\n    }\n    function PerformPromiseThen(promise, onFulfilled, onRejected) {\n        // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\n        // approximation.\n        return originalPromiseThen.call(promise, onFulfilled, onRejected);\n    }\n    // Bluebird logs a warning when a promise is created within a fulfillment handler, but then isn't returned\n    // from that handler. To prevent this, return null instead of void from all handlers.\n    // http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-created-in-a-handler-but-was-not-returned-from-it\n    function uponPromise(promise, onFulfilled, onRejected) {\n        PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\n    }\n    function uponFulfillment(promise, onFulfilled) {\n        uponPromise(promise, onFulfilled);\n    }\n    function uponRejection(promise, onRejected) {\n        uponPromise(promise, undefined, onRejected);\n    }\n    function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\n        return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\n    }\n    function setPromiseIsHandledToTrue(promise) {\n        PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\n    }\n    let _queueMicrotask = callback => {\n        if (typeof queueMicrotask === 'function') {\n            _queueMicrotask = queueMicrotask;\n        }\n        else {\n            const resolvedPromise = promiseResolvedWith(undefined);\n            _queueMicrotask = cb => PerformPromiseThen(resolvedPromise, cb);\n        }\n        return _queueMicrotask(callback);\n    };\n    function reflectCall(F, V, args) {\n        if (typeof F !== 'function') {\n            throw new TypeError('Argument is not a function');\n        }\n        return Function.prototype.apply.call(F, V, args);\n    }\n    function promiseCall(F, V, args) {\n        try {\n            return promiseResolvedWith(reflectCall(F, V, args));\n        }\n        catch (value) {\n            return promiseRejectedWith(value);\n        }\n    }\n\n    // Original from Chromium\n    // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\n    const QUEUE_MAX_ARRAY_SIZE = 16384;\n    /**\n     * Simple queue structure.\n     *\n     * Avoids scalability issues with using a packed array directly by using\n     * multiple arrays in a linked list and keeping the array size bounded.\n     */\n    class SimpleQueue {\n        constructor() {\n            this._cursor = 0;\n            this._size = 0;\n            // _front and _back are always defined.\n            this._front = {\n                _elements: [],\n                _next: undefined\n            };\n            this._back = this._front;\n            // The cursor is used to avoid calling Array.shift().\n            // It contains the index of the front element of the array inside the\n            // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\n            this._cursor = 0;\n            // When there is only one node, size === elements.length - cursor.\n            this._size = 0;\n        }\n        get length() {\n            return this._size;\n        }\n        // For exception safety, this method is structured in order:\n        // 1. Read state\n        // 2. Calculate required state mutations\n        // 3. Perform state mutations\n        push(element) {\n            const oldBack = this._back;\n            let newBack = oldBack;\n            if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\n                newBack = {\n                    _elements: [],\n                    _next: undefined\n                };\n            }\n            // push() is the mutation most likely to throw an exception, so it\n            // goes first.\n            oldBack._elements.push(element);\n            if (newBack !== oldBack) {\n                this._back = newBack;\n                oldBack._next = newBack;\n            }\n            ++this._size;\n        }\n        // Like push(), shift() follows the read -> calculate -> mutate pattern for\n        // exception safety.\n        shift() { // must not be called on an empty queue\n            const oldFront = this._front;\n            let newFront = oldFront;\n            const oldCursor = this._cursor;\n            let newCursor = oldCursor + 1;\n            const elements = oldFront._elements;\n            const element = elements[oldCursor];\n            if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\n                newFront = oldFront._next;\n                newCursor = 0;\n            }\n            // No mutations before this point.\n            --this._size;\n            this._cursor = newCursor;\n            if (oldFront !== newFront) {\n                this._front = newFront;\n            }\n            // Permit shifted element to be garbage collected.\n            elements[oldCursor] = undefined;\n            return element;\n        }\n        // The tricky thing about forEach() is that it can be called\n        // re-entrantly. The queue may be mutated inside the callback. It is easy to\n        // see that push() within the callback has no negative effects since the end\n        // of the queue is checked for on every iteration. If shift() is called\n        // repeatedly within the callback then the next iteration may return an\n        // element that has been removed. In this case the callback will be called\n        // with undefined values until we either \"catch up\" with elements that still\n        // exist or reach the back of the queue.\n        forEach(callback) {\n            let i = this._cursor;\n            let node = this._front;\n            let elements = node._elements;\n            while (i !== elements.length || node._next !== undefined) {\n                if (i === elements.length) {\n                    node = node._next;\n                    elements = node._elements;\n                    i = 0;\n                    if (elements.length === 0) {\n                        break;\n                    }\n                }\n                callback(elements[i]);\n                ++i;\n            }\n        }\n        // Return the element that would be returned if shift() was called now,\n        // without modifying the queue.\n        peek() { // must not be called on an empty queue\n            const front = this._front;\n            const cursor = this._cursor;\n            return front._elements[cursor];\n        }\n    }\n\n    const AbortSteps = Symbol('[[AbortSteps]]');\n    const ErrorSteps = Symbol('[[ErrorSteps]]');\n    const CancelSteps = Symbol('[[CancelSteps]]');\n    const PullSteps = Symbol('[[PullSteps]]');\n    const ReleaseSteps = Symbol('[[ReleaseSteps]]');\n\n    function ReadableStreamReaderGenericInitialize(reader, stream) {\n        reader._ownerReadableStream = stream;\n        stream._reader = reader;\n        if (stream._state === 'readable') {\n            defaultReaderClosedPromiseInitialize(reader);\n        }\n        else if (stream._state === 'closed') {\n            defaultReaderClosedPromiseInitializeAsResolved(reader);\n        }\n        else {\n            defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n        }\n    }\n    // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n    // check.\n    function ReadableStreamReaderGenericCancel(reader, reason) {\n        const stream = reader._ownerReadableStream;\n        return ReadableStreamCancel(stream, reason);\n    }\n    function ReadableStreamReaderGenericRelease(reader) {\n        const stream = reader._ownerReadableStream;\n        if (stream._state === 'readable') {\n            defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n        }\n        else {\n            defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`));\n        }\n        stream._readableStreamController[ReleaseSteps]();\n        stream._reader = undefined;\n        reader._ownerReadableStream = undefined;\n    }\n    // Helper functions for the readers.\n    function readerLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released reader');\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderClosedPromiseInitialize(reader) {\n        reader._closedPromise = newPromise((resolve, reject) => {\n            reader._closedPromise_resolve = resolve;\n            reader._closedPromise_reject = reject;\n        });\n    }\n    function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseReject(reader, reason);\n    }\n    function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n        defaultReaderClosedPromiseInitialize(reader);\n        defaultReaderClosedPromiseResolve(reader);\n    }\n    function defaultReaderClosedPromiseReject(reader, reason) {\n        if (reader._closedPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(reader._closedPromise);\n        reader._closedPromise_reject(reason);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n    function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n        defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\n    }\n    function defaultReaderClosedPromiseResolve(reader) {\n        if (reader._closedPromise_resolve === undefined) {\n            return;\n        }\n        reader._closedPromise_resolve(undefined);\n        reader._closedPromise_resolve = undefined;\n        reader._closedPromise_reject = undefined;\n    }\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill\n    const NumberIsFinite = Number.isFinite || function (x) {\n        return typeof x === 'number' && isFinite(x);\n    };\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill\n    const MathTrunc = Math.trunc || function (v) {\n        return v < 0 ? Math.ceil(v) : Math.floor(v);\n    };\n\n    // https://heycam.github.io/webidl/#idl-dictionaries\n    function isDictionary(x) {\n        return typeof x === 'object' || typeof x === 'function';\n    }\n    function assertDictionary(obj, context) {\n        if (obj !== undefined && !isDictionary(obj)) {\n            throw new TypeError(`${context} is not an object.`);\n        }\n    }\n    // https://heycam.github.io/webidl/#idl-callback-functions\n    function assertFunction(x, context) {\n        if (typeof x !== 'function') {\n            throw new TypeError(`${context} is not a function.`);\n        }\n    }\n    // https://heycam.github.io/webidl/#idl-object\n    function isObject(x) {\n        return (typeof x === 'object' && x !== null) || typeof x === 'function';\n    }\n    function assertObject(x, context) {\n        if (!isObject(x)) {\n            throw new TypeError(`${context} is not an object.`);\n        }\n    }\n    function assertRequiredArgument(x, position, context) {\n        if (x === undefined) {\n            throw new TypeError(`Parameter ${position} is required in '${context}'.`);\n        }\n    }\n    function assertRequiredField(x, field, context) {\n        if (x === undefined) {\n            throw new TypeError(`${field} is required in '${context}'.`);\n        }\n    }\n    // https://heycam.github.io/webidl/#idl-unrestricted-double\n    function convertUnrestrictedDouble(value) {\n        return Number(value);\n    }\n    function censorNegativeZero(x) {\n        return x === 0 ? 0 : x;\n    }\n    function integerPart(x) {\n        return censorNegativeZero(MathTrunc(x));\n    }\n    // https://heycam.github.io/webidl/#idl-unsigned-long-long\n    function convertUnsignedLongLongWithEnforceRange(value, context) {\n        const lowerBound = 0;\n        const upperBound = Number.MAX_SAFE_INTEGER;\n        let x = Number(value);\n        x = censorNegativeZero(x);\n        if (!NumberIsFinite(x)) {\n            throw new TypeError(`${context} is not a finite number`);\n        }\n        x = integerPart(x);\n        if (x < lowerBound || x > upperBound) {\n            throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`);\n        }\n        if (!NumberIsFinite(x) || x === 0) {\n            return 0;\n        }\n        // TODO Use BigInt if supported?\n        // let xBigInt = BigInt(integerPart(x));\n        // xBigInt = BigInt.asUintN(64, xBigInt);\n        // return Number(xBigInt);\n        return x;\n    }\n\n    function assertReadableStream(x, context) {\n        if (!IsReadableStream(x)) {\n            throw new TypeError(`${context} is not a ReadableStream.`);\n        }\n    }\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamDefaultReader(stream) {\n        return new ReadableStreamDefaultReader(stream);\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadRequest(stream, readRequest) {\n        stream._reader._readRequests.push(readRequest);\n    }\n    function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n        const reader = stream._reader;\n        const readRequest = reader._readRequests.shift();\n        if (done) {\n            readRequest._closeSteps();\n        }\n        else {\n            readRequest._chunkSteps(chunk);\n        }\n    }\n    function ReadableStreamGetNumReadRequests(stream) {\n        return stream._reader._readRequests.length;\n    }\n    function ReadableStreamHasDefaultReader(stream) {\n        const reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamDefaultReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * A default reader vended by a {@link ReadableStream}.\n     *\n     * @public\n     */\n    class ReadableStreamDefaultReader {\n        constructor(stream) {\n            assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader');\n            assertReadableStream(stream, 'First parameter');\n            if (IsReadableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readRequests = new SimpleQueue();\n        }\n        /**\n         * Returns a promise that will be fulfilled when the stream becomes closed,\n         * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing.\n         */\n        get closed() {\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\n            }\n            return this._closedPromise;\n        }\n        /**\n         * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n         */\n        cancel(reason = undefined) {\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        }\n        /**\n         * Returns a promise that allows access to the next chunk from the stream's internal queue, if available.\n         *\n         * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source.\n         */\n        read() {\n            if (!IsReadableStreamDefaultReader(this)) {\n                return promiseRejectedWith(defaultReaderBrandCheckException('read'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            let resolvePromise;\n            let rejectPromise;\n            const promise = newPromise((resolve, reject) => {\n                resolvePromise = resolve;\n                rejectPromise = reject;\n            });\n            const readRequest = {\n                _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n                _closeSteps: () => resolvePromise({ value: undefined, done: true }),\n                _errorSteps: e => rejectPromise(e)\n            };\n            ReadableStreamDefaultReaderRead(this, readRequest);\n            return promise;\n        }\n        /**\n         * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n         * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n         * from now on; otherwise, the reader will appear closed.\n         *\n         * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n         * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to\n         * do so will throw a `TypeError` and leave the reader locked to the stream.\n         */\n        releaseLock() {\n            if (!IsReadableStreamDefaultReader(this)) {\n                throw defaultReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            ReadableStreamDefaultReaderRelease(this);\n        }\n    }\n    Object.defineProperties(ReadableStreamDefaultReader.prototype, {\n        cancel: { enumerable: true },\n        read: { enumerable: true },\n        releaseLock: { enumerable: true },\n        closed: { enumerable: true }\n    });\n    setFunctionName(ReadableStreamDefaultReader.prototype.cancel, 'cancel');\n    setFunctionName(ReadableStreamDefaultReader.prototype.read, 'read');\n    setFunctionName(ReadableStreamDefaultReader.prototype.releaseLock, 'releaseLock');\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamDefaultReader.prototype, Symbol.toStringTag, {\n            value: 'ReadableStreamDefaultReader',\n            configurable: true\n        });\n    }\n    // Abstract operations for the readers.\n    function IsReadableStreamDefaultReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n            return false;\n        }\n        return x instanceof ReadableStreamDefaultReader;\n    }\n    function ReadableStreamDefaultReaderRead(reader, readRequest) {\n        const stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            readRequest._closeSteps();\n        }\n        else if (stream._state === 'errored') {\n            readRequest._errorSteps(stream._storedError);\n        }\n        else {\n            stream._readableStreamController[PullSteps](readRequest);\n        }\n    }\n    function ReadableStreamDefaultReaderRelease(reader) {\n        ReadableStreamReaderGenericRelease(reader);\n        const e = new TypeError('Reader was released');\n        ReadableStreamDefaultReaderErrorReadRequests(reader, e);\n    }\n    function ReadableStreamDefaultReaderErrorReadRequests(reader, e) {\n        const readRequests = reader._readRequests;\n        reader._readRequests = new SimpleQueue();\n        readRequests.forEach(readRequest => {\n            readRequest._errorSteps(e);\n        });\n    }\n    // Helper functions for the ReadableStreamDefaultReader.\n    function defaultReaderBrandCheckException(name) {\n        return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`);\n    }\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    /* eslint-disable @typescript-eslint/no-empty-function */\n    const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () { }).prototype);\n\n    /// <reference lib=\"es2018.asynciterable\" />\n    class ReadableStreamAsyncIteratorImpl {\n        constructor(reader, preventCancel) {\n            this._ongoingPromise = undefined;\n            this._isFinished = false;\n            this._reader = reader;\n            this._preventCancel = preventCancel;\n        }\n        next() {\n            const nextSteps = () => this._nextSteps();\n            this._ongoingPromise = this._ongoingPromise ?\n                transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) :\n                nextSteps();\n            return this._ongoingPromise;\n        }\n        return(value) {\n            const returnSteps = () => this._returnSteps(value);\n            return this._ongoingPromise ?\n                transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) :\n                returnSteps();\n        }\n        _nextSteps() {\n            if (this._isFinished) {\n                return Promise.resolve({ value: undefined, done: true });\n            }\n            const reader = this._reader;\n            let resolvePromise;\n            let rejectPromise;\n            const promise = newPromise((resolve, reject) => {\n                resolvePromise = resolve;\n                rejectPromise = reject;\n            });\n            const readRequest = {\n                _chunkSteps: chunk => {\n                    this._ongoingPromise = undefined;\n                    // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test.\n                    // FIXME Is this a bug in the specification, or in the test?\n                    _queueMicrotask(() => resolvePromise({ value: chunk, done: false }));\n                },\n                _closeSteps: () => {\n                    this._ongoingPromise = undefined;\n                    this._isFinished = true;\n                    ReadableStreamReaderGenericRelease(reader);\n                    resolvePromise({ value: undefined, done: true });\n                },\n                _errorSteps: reason => {\n                    this._ongoingPromise = undefined;\n                    this._isFinished = true;\n                    ReadableStreamReaderGenericRelease(reader);\n                    rejectPromise(reason);\n                }\n            };\n            ReadableStreamDefaultReaderRead(reader, readRequest);\n            return promise;\n        }\n        _returnSteps(value) {\n            if (this._isFinished) {\n                return Promise.resolve({ value, done: true });\n            }\n            this._isFinished = true;\n            const reader = this._reader;\n            if (!this._preventCancel) {\n                const result = ReadableStreamReaderGenericCancel(reader, value);\n                ReadableStreamReaderGenericRelease(reader);\n                return transformPromiseWith(result, () => ({ value, done: true }));\n            }\n            ReadableStreamReaderGenericRelease(reader);\n            return promiseResolvedWith({ value, done: true });\n        }\n    }\n    const ReadableStreamAsyncIteratorPrototype = {\n        next() {\n            if (!IsReadableStreamAsyncIterator(this)) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\n            }\n            return this._asyncIteratorImpl.next();\n        },\n        return(value) {\n            if (!IsReadableStreamAsyncIterator(this)) {\n                return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return'));\n            }\n            return this._asyncIteratorImpl.return(value);\n        }\n    };\n    Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\n        const reader = AcquireReadableStreamDefaultReader(stream);\n        const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel);\n        const iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\n        iterator._asyncIteratorImpl = impl;\n        return iterator;\n    }\n    function IsReadableStreamAsyncIterator(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) {\n            return false;\n        }\n        try {\n            // noinspection SuspiciousTypeOfGuard\n            return x._asyncIteratorImpl instanceof\n                ReadableStreamAsyncIteratorImpl;\n        }\n        catch (_a) {\n            return false;\n        }\n    }\n    // Helper functions for the ReadableStream.\n    function streamAsyncIteratorBrandCheckException(name) {\n        return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`);\n    }\n\n    /// <reference lib=\"es2015.core\" />\n    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\n    const NumberIsNaN = Number.isNaN || function (x) {\n        // eslint-disable-next-line no-self-compare\n        return x !== x;\n    };\n\n    var _a, _b, _c;\n    function CreateArrayFromList(elements) {\n        // We use arrays to represent lists, so this is basically a no-op.\n        // Do a slice though just in case we happen to depend on the unique-ness.\n        return elements.slice();\n    }\n    function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) {\n        new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n    }\n    let TransferArrayBuffer = (O) => {\n        if (typeof O.transfer === 'function') {\n            TransferArrayBuffer = buffer => buffer.transfer();\n        }\n        else if (typeof structuredClone === 'function') {\n            TransferArrayBuffer = buffer => structuredClone(buffer, { transfer: [buffer] });\n        }\n        else {\n            // Not implemented correctly\n            TransferArrayBuffer = buffer => buffer;\n        }\n        return TransferArrayBuffer(O);\n    };\n    let IsDetachedBuffer = (O) => {\n        if (typeof O.detached === 'boolean') {\n            IsDetachedBuffer = buffer => buffer.detached;\n        }\n        else {\n            // Not implemented correctly\n            IsDetachedBuffer = buffer => buffer.byteLength === 0;\n        }\n        return IsDetachedBuffer(O);\n    };\n    function ArrayBufferSlice(buffer, begin, end) {\n        // ArrayBuffer.prototype.slice is not available on IE10\n        // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice\n        if (buffer.slice) {\n            return buffer.slice(begin, end);\n        }\n        const length = end - begin;\n        const slice = new ArrayBuffer(length);\n        CopyDataBlockBytes(slice, 0, buffer, begin, length);\n        return slice;\n    }\n    function GetMethod(receiver, prop) {\n        const func = receiver[prop];\n        if (func === undefined || func === null) {\n            return undefined;\n        }\n        if (typeof func !== 'function') {\n            throw new TypeError(`${String(prop)} is not a function`);\n        }\n        return func;\n    }\n    function CreateAsyncFromSyncIterator(syncIteratorRecord) {\n        // Instead of re-implementing CreateAsyncFromSyncIterator and %AsyncFromSyncIteratorPrototype%,\n        // we use yield* inside an async generator function to achieve the same result.\n        // Wrap the sync iterator inside a sync iterable, so we can use it with yield*.\n        const syncIterable = {\n            [Symbol.iterator]: () => syncIteratorRecord.iterator\n        };\n        // Create an async generator function and immediately invoke it.\n        const asyncIterator = (async function* () {\n            return yield* syncIterable;\n        }());\n        // Return as an async iterator record.\n        const nextMethod = asyncIterator.next;\n        return { iterator: asyncIterator, nextMethod, done: false };\n    }\n    // Aligns with core-js/modules/es.symbol.async-iterator.js\n    const SymbolAsyncIterator = (_c = (_a = Symbol.asyncIterator) !== null && _a !== void 0 ? _a : (_b = Symbol.for) === null || _b === void 0 ? void 0 : _b.call(Symbol, 'Symbol.asyncIterator')) !== null && _c !== void 0 ? _c : '@@asyncIterator';\n    function GetIterator(obj, hint = 'sync', method) {\n        if (method === undefined) {\n            if (hint === 'async') {\n                method = GetMethod(obj, SymbolAsyncIterator);\n                if (method === undefined) {\n                    const syncMethod = GetMethod(obj, Symbol.iterator);\n                    const syncIteratorRecord = GetIterator(obj, 'sync', syncMethod);\n                    return CreateAsyncFromSyncIterator(syncIteratorRecord);\n                }\n            }\n            else {\n                method = GetMethod(obj, Symbol.iterator);\n            }\n        }\n        if (method === undefined) {\n            throw new TypeError('The object is not iterable');\n        }\n        const iterator = reflectCall(method, obj, []);\n        if (!typeIsObject(iterator)) {\n            throw new TypeError('The iterator method must return an object');\n        }\n        const nextMethod = iterator.next;\n        return { iterator, nextMethod, done: false };\n    }\n    function IteratorNext(iteratorRecord) {\n        const result = reflectCall(iteratorRecord.nextMethod, iteratorRecord.iterator, []);\n        if (!typeIsObject(result)) {\n            throw new TypeError('The iterator.next() method must return an object');\n        }\n        return result;\n    }\n    function IteratorComplete(iterResult) {\n        return Boolean(iterResult.done);\n    }\n    function IteratorValue(iterResult) {\n        return iterResult.value;\n    }\n\n    function IsNonNegativeNumber(v) {\n        if (typeof v !== 'number') {\n            return false;\n        }\n        if (NumberIsNaN(v)) {\n            return false;\n        }\n        if (v < 0) {\n            return false;\n        }\n        return true;\n    }\n    function CloneAsUint8Array(O) {\n        const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength);\n        return new Uint8Array(buffer);\n    }\n\n    function DequeueValue(container) {\n        const pair = container._queue.shift();\n        container._queueTotalSize -= pair.size;\n        if (container._queueTotalSize < 0) {\n            container._queueTotalSize = 0;\n        }\n        return pair.value;\n    }\n    function EnqueueValueWithSize(container, value, size) {\n        if (!IsNonNegativeNumber(size) || size === Infinity) {\n            throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n        }\n        container._queue.push({ value, size });\n        container._queueTotalSize += size;\n    }\n    function PeekQueueValue(container) {\n        const pair = container._queue.peek();\n        return pair.value;\n    }\n    function ResetQueue(container) {\n        container._queue = new SimpleQueue();\n        container._queueTotalSize = 0;\n    }\n\n    function isDataViewConstructor(ctor) {\n        return ctor === DataView;\n    }\n    function isDataView(view) {\n        return isDataViewConstructor(view.constructor);\n    }\n    function arrayBufferViewElementSize(ctor) {\n        if (isDataViewConstructor(ctor)) {\n            return 1;\n        }\n        return ctor.BYTES_PER_ELEMENT;\n    }\n\n    /**\n     * A pull-into request in a {@link ReadableByteStreamController}.\n     *\n     * @public\n     */\n    class ReadableStreamBYOBRequest {\n        constructor() {\n            throw new TypeError('Illegal constructor');\n        }\n        /**\n         * Returns the view for writing in to, or `null` if the BYOB request has already been responded to.\n         */\n        get view() {\n            if (!IsReadableStreamBYOBRequest(this)) {\n                throw byobRequestBrandCheckException('view');\n            }\n            return this._view;\n        }\n        respond(bytesWritten) {\n            if (!IsReadableStreamBYOBRequest(this)) {\n                throw byobRequestBrandCheckException('respond');\n            }\n            assertRequiredArgument(bytesWritten, 1, 'respond');\n            bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter');\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (IsDetachedBuffer(this._view.buffer)) {\n                throw new TypeError(`The BYOB request's buffer has been detached and so cannot be used as a response`);\n            }\n            ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n        }\n        respondWithNewView(view) {\n            if (!IsReadableStreamBYOBRequest(this)) {\n                throw byobRequestBrandCheckException('respondWithNewView');\n            }\n            assertRequiredArgument(view, 1, 'respondWithNewView');\n            if (!ArrayBuffer.isView(view)) {\n                throw new TypeError('You can only respond with array buffer views');\n            }\n            if (this._associatedReadableByteStreamController === undefined) {\n                throw new TypeError('This BYOB request has been invalidated');\n            }\n            if (IsDetachedBuffer(view.buffer)) {\n                throw new TypeError('The given view\\'s buffer has been detached and so cannot be used as a response');\n            }\n            ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n        }\n    }\n    Object.defineProperties(ReadableStreamBYOBRequest.prototype, {\n        respond: { enumerable: true },\n        respondWithNewView: { enumerable: true },\n        view: { enumerable: true }\n    });\n    setFunctionName(ReadableStreamBYOBRequest.prototype.respond, 'respond');\n    setFunctionName(ReadableStreamBYOBRequest.prototype.respondWithNewView, 'respondWithNewView');\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamBYOBRequest.prototype, Symbol.toStringTag, {\n            value: 'ReadableStreamBYOBRequest',\n            configurable: true\n        });\n    }\n    /**\n     * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue.\n     *\n     * @public\n     */\n    class ReadableByteStreamController {\n        constructor() {\n            throw new TypeError('Illegal constructor');\n        }\n        /**\n         * Returns the current BYOB pull request, or `null` if there isn't one.\n         */\n        get byobRequest() {\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('byobRequest');\n            }\n            return ReadableByteStreamControllerGetBYOBRequest(this);\n        }\n        /**\n         * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n         * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure.\n         */\n        get desiredSize() {\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('desiredSize');\n            }\n            return ReadableByteStreamControllerGetDesiredSize(this);\n        }\n        /**\n         * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n         * the stream, but once those are read, the stream will become closed.\n         */\n        close() {\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('close');\n            }\n            if (this._closeRequested) {\n                throw new TypeError('The stream has already been closed; do not close it again!');\n            }\n            const state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be closed`);\n            }\n            ReadableByteStreamControllerClose(this);\n        }\n        enqueue(chunk) {\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('enqueue');\n            }\n            assertRequiredArgument(chunk, 1, 'enqueue');\n            if (!ArrayBuffer.isView(chunk)) {\n                throw new TypeError('chunk must be an array buffer view');\n            }\n            if (chunk.byteLength === 0) {\n                throw new TypeError('chunk must have non-zero byteLength');\n            }\n            if (chunk.buffer.byteLength === 0) {\n                throw new TypeError(`chunk's buffer must have non-zero byteLength`);\n            }\n            if (this._closeRequested) {\n                throw new TypeError('stream is closed or draining');\n            }\n            const state = this._controlledReadableByteStream._state;\n            if (state !== 'readable') {\n                throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be enqueued to`);\n            }\n            ReadableByteStreamControllerEnqueue(this, chunk);\n        }\n        /**\n         * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n         */\n        error(e = undefined) {\n            if (!IsReadableByteStreamController(this)) {\n                throw byteStreamControllerBrandCheckException('error');\n            }\n            ReadableByteStreamControllerError(this, e);\n        }\n        /** @internal */\n        [CancelSteps](reason) {\n            ReadableByteStreamControllerClearPendingPullIntos(this);\n            ResetQueue(this);\n            const result = this._cancelAlgorithm(reason);\n            ReadableByteStreamControllerClearAlgorithms(this);\n            return result;\n        }\n        /** @internal */\n        [PullSteps](readRequest) {\n            const stream = this._controlledReadableByteStream;\n            if (this._queueTotalSize > 0) {\n                ReadableByteStreamControllerFillReadRequestFromQueue(this, readRequest);\n                return;\n            }\n            const autoAllocateChunkSize = this._autoAllocateChunkSize;\n            if (autoAllocateChunkSize !== undefined) {\n                let buffer;\n                try {\n                    buffer = new ArrayBuffer(autoAllocateChunkSize);\n                }\n                catch (bufferE) {\n                    readRequest._errorSteps(bufferE);\n                    return;\n                }\n                const pullIntoDescriptor = {\n                    buffer,\n                    bufferByteLength: autoAllocateChunkSize,\n                    byteOffset: 0,\n                    byteLength: autoAllocateChunkSize,\n                    bytesFilled: 0,\n                    minimumFill: 1,\n                    elementSize: 1,\n                    viewConstructor: Uint8Array,\n                    readerType: 'default'\n                };\n                this._pendingPullIntos.push(pullIntoDescriptor);\n            }\n            ReadableStreamAddReadRequest(stream, readRequest);\n            ReadableByteStreamControllerCallPullIfNeeded(this);\n        }\n        /** @internal */\n        [ReleaseSteps]() {\n            if (this._pendingPullIntos.length > 0) {\n                const firstPullInto = this._pendingPullIntos.peek();\n                firstPullInto.readerType = 'none';\n                this._pendingPullIntos = new SimpleQueue();\n                this._pendingPullIntos.push(firstPullInto);\n            }\n        }\n    }\n    Object.defineProperties(ReadableByteStreamController.prototype, {\n        close: { enumerable: true },\n        enqueue: { enumerable: true },\n        error: { enumerable: true },\n        byobRequest: { enumerable: true },\n        desiredSize: { enumerable: true }\n    });\n    setFunctionName(ReadableByteStreamController.prototype.close, 'close');\n    setFunctionName(ReadableByteStreamController.prototype.enqueue, 'enqueue');\n    setFunctionName(ReadableByteStreamController.prototype.error, 'error');\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableByteStreamController.prototype, Symbol.toStringTag, {\n            value: 'ReadableByteStreamController',\n            configurable: true\n        });\n    }\n    // Abstract operations for the ReadableByteStreamController.\n    function IsReadableByteStreamController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\n            return false;\n        }\n        return x instanceof ReadableByteStreamController;\n    }\n    function IsReadableStreamBYOBRequest(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n            return false;\n        }\n        return x instanceof ReadableStreamBYOBRequest;\n    }\n    function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n        const shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n        if (!shouldPull) {\n            return;\n        }\n        if (controller._pulling) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        // TODO: Test controller argument\n        const pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, () => {\n            controller._pulling = false;\n            if (controller._pullAgain) {\n                controller._pullAgain = false;\n                ReadableByteStreamControllerCallPullIfNeeded(controller);\n            }\n            return null;\n        }, e => {\n            ReadableByteStreamControllerError(controller, e);\n            return null;\n        });\n    }\n    function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        controller._pendingPullIntos = new SimpleQueue();\n    }\n    function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n        let done = false;\n        if (stream._state === 'closed') {\n            done = true;\n        }\n        const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n        if (pullIntoDescriptor.readerType === 'default') {\n            ReadableStreamFulfillReadRequest(stream, filledView, done);\n        }\n        else {\n            ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n        }\n    }\n    function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n        const bytesFilled = pullIntoDescriptor.bytesFilled;\n        const elementSize = pullIntoDescriptor.elementSize;\n        return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n    }\n    function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n        controller._queue.push({ buffer, byteOffset, byteLength });\n        controller._queueTotalSize += byteLength;\n    }\n    function ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, buffer, byteOffset, byteLength) {\n        let clonedChunk;\n        try {\n            clonedChunk = ArrayBufferSlice(buffer, byteOffset, byteOffset + byteLength);\n        }\n        catch (cloneE) {\n            ReadableByteStreamControllerError(controller, cloneE);\n            throw cloneE;\n        }\n        ReadableByteStreamControllerEnqueueChunkToQueue(controller, clonedChunk, 0, byteLength);\n    }\n    function ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, firstDescriptor) {\n        if (firstDescriptor.bytesFilled > 0) {\n            ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, firstDescriptor.buffer, firstDescriptor.byteOffset, firstDescriptor.bytesFilled);\n        }\n        ReadableByteStreamControllerShiftPendingPullInto(controller);\n    }\n    function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n        const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n        const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n        let totalBytesToCopyRemaining = maxBytesToCopy;\n        let ready = false;\n        const remainderBytes = maxBytesFilled % pullIntoDescriptor.elementSize;\n        const maxAlignedBytes = maxBytesFilled - remainderBytes;\n        // A descriptor for a read() request that is not yet filled up to its minimum length will stay at the head\n        // of the queue, so the underlying source can keep filling it.\n        if (maxAlignedBytes >= pullIntoDescriptor.minimumFill) {\n            totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n            ready = true;\n        }\n        const queue = controller._queue;\n        while (totalBytesToCopyRemaining > 0) {\n            const headOfQueue = queue.peek();\n            const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n            const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n            if (headOfQueue.byteLength === bytesToCopy) {\n                queue.shift();\n            }\n            else {\n                headOfQueue.byteOffset += bytesToCopy;\n                headOfQueue.byteLength -= bytesToCopy;\n            }\n            controller._queueTotalSize -= bytesToCopy;\n            ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n            totalBytesToCopyRemaining -= bytesToCopy;\n        }\n        return ready;\n    }\n    function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n        pullIntoDescriptor.bytesFilled += size;\n    }\n    function ReadableByteStreamControllerHandleQueueDrain(controller) {\n        if (controller._queueTotalSize === 0 && controller._closeRequested) {\n            ReadableByteStreamControllerClearAlgorithms(controller);\n            ReadableStreamClose(controller._controlledReadableByteStream);\n        }\n        else {\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n        }\n    }\n    function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n        if (controller._byobRequest === null) {\n            return;\n        }\n        controller._byobRequest._associatedReadableByteStreamController = undefined;\n        controller._byobRequest._view = null;\n        controller._byobRequest = null;\n    }\n    function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n        while (controller._pendingPullIntos.length > 0) {\n            if (controller._queueTotalSize === 0) {\n                return;\n            }\n            const pullIntoDescriptor = controller._pendingPullIntos.peek();\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n                ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerProcessReadRequestsUsingQueue(controller) {\n        const reader = controller._controlledReadableByteStream._reader;\n        while (reader._readRequests.length > 0) {\n            if (controller._queueTotalSize === 0) {\n                return;\n            }\n            const readRequest = reader._readRequests.shift();\n            ReadableByteStreamControllerFillReadRequestFromQueue(controller, readRequest);\n        }\n    }\n    function ReadableByteStreamControllerPullInto(controller, view, min, readIntoRequest) {\n        const stream = controller._controlledReadableByteStream;\n        const ctor = view.constructor;\n        const elementSize = arrayBufferViewElementSize(ctor);\n        const { byteOffset, byteLength } = view;\n        const minimumFill = min * elementSize;\n        let buffer;\n        try {\n            buffer = TransferArrayBuffer(view.buffer);\n        }\n        catch (e) {\n            readIntoRequest._errorSteps(e);\n            return;\n        }\n        const pullIntoDescriptor = {\n            buffer,\n            bufferByteLength: buffer.byteLength,\n            byteOffset,\n            byteLength,\n            bytesFilled: 0,\n            minimumFill,\n            elementSize,\n            viewConstructor: ctor,\n            readerType: 'byob'\n        };\n        if (controller._pendingPullIntos.length > 0) {\n            controller._pendingPullIntos.push(pullIntoDescriptor);\n            // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n            // - No change happens on desiredSize\n            // - The source has already been notified of that there's at least 1 pending read(view)\n            ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n            return;\n        }\n        if (stream._state === 'closed') {\n            const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n            readIntoRequest._closeSteps(emptyView);\n            return;\n        }\n        if (controller._queueTotalSize > 0) {\n            if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) {\n                const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n                ReadableByteStreamControllerHandleQueueDrain(controller);\n                readIntoRequest._chunkSteps(filledView);\n                return;\n            }\n            if (controller._closeRequested) {\n                const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                readIntoRequest._errorSteps(e);\n                return;\n            }\n        }\n        controller._pendingPullIntos.push(pullIntoDescriptor);\n        ReadableStreamAddReadIntoRequest(stream, readIntoRequest);\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n        if (firstDescriptor.readerType === 'none') {\n            ReadableByteStreamControllerShiftPendingPullInto(controller);\n        }\n        const stream = controller._controlledReadableByteStream;\n        if (ReadableStreamHasBYOBReader(stream)) {\n            while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n                const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n                ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n            }\n        }\n    }\n    function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n        ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n        if (pullIntoDescriptor.readerType === 'none') {\n            ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, pullIntoDescriptor);\n            ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n            return;\n        }\n        if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.minimumFill) {\n            // A descriptor for a read() request that is not yet filled up to its minimum length will stay at the head\n            // of the queue, so the underlying source can keep filling it.\n            return;\n        }\n        ReadableByteStreamControllerShiftPendingPullInto(controller);\n        const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n        if (remainderSize > 0) {\n            const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n            ReadableByteStreamControllerEnqueueClonedChunkToQueue(controller, pullIntoDescriptor.buffer, end - remainderSize, remainderSize);\n        }\n        pullIntoDescriptor.bytesFilled -= remainderSize;\n        ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\n        ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n    }\n    function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n        const firstDescriptor = controller._pendingPullIntos.peek();\n        ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n        const state = controller._controlledReadableByteStream._state;\n        if (state === 'closed') {\n            ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n        }\n        else {\n            ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n        const descriptor = controller._pendingPullIntos.shift();\n        return descriptor;\n    }\n    function ReadableByteStreamControllerShouldCallPull(controller) {\n        const stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return false;\n        }\n        if (controller._closeRequested) {\n            return false;\n        }\n        if (!controller._started) {\n            return false;\n        }\n        if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n            return true;\n        }\n        const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableByteStreamControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n    }\n    // A client of ReadableByteStreamController may use these functions directly to bypass state check.\n    function ReadableByteStreamControllerClose(controller) {\n        const stream = controller._controlledReadableByteStream;\n        if (controller._closeRequested || stream._state !== 'readable') {\n            return;\n        }\n        if (controller._queueTotalSize > 0) {\n            controller._closeRequested = true;\n            return;\n        }\n        if (controller._pendingPullIntos.length > 0) {\n            const firstPendingPullInto = controller._pendingPullIntos.peek();\n            if (firstPendingPullInto.bytesFilled % firstPendingPullInto.elementSize !== 0) {\n                const e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n                ReadableByteStreamControllerError(controller, e);\n                throw e;\n            }\n        }\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamClose(stream);\n    }\n    function ReadableByteStreamControllerEnqueue(controller, chunk) {\n        const stream = controller._controlledReadableByteStream;\n        if (controller._closeRequested || stream._state !== 'readable') {\n            return;\n        }\n        const { buffer, byteOffset, byteLength } = chunk;\n        if (IsDetachedBuffer(buffer)) {\n            throw new TypeError('chunk\\'s buffer is detached and so cannot be enqueued');\n        }\n        const transferredBuffer = TransferArrayBuffer(buffer);\n        if (controller._pendingPullIntos.length > 0) {\n            const firstPendingPullInto = controller._pendingPullIntos.peek();\n            if (IsDetachedBuffer(firstPendingPullInto.buffer)) {\n                throw new TypeError('The BYOB request\\'s buffer has been detached and so cannot be filled with an enqueued chunk');\n            }\n            ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n            firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer);\n            if (firstPendingPullInto.readerType === 'none') {\n                ReadableByteStreamControllerEnqueueDetachedPullIntoToQueue(controller, firstPendingPullInto);\n            }\n        }\n        if (ReadableStreamHasDefaultReader(stream)) {\n            ReadableByteStreamControllerProcessReadRequestsUsingQueue(controller);\n            if (ReadableStreamGetNumReadRequests(stream) === 0) {\n                ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            }\n            else {\n                if (controller._pendingPullIntos.length > 0) {\n                    ReadableByteStreamControllerShiftPendingPullInto(controller);\n                }\n                const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n                ReadableStreamFulfillReadRequest(stream, transferredView, false);\n            }\n        }\n        else if (ReadableStreamHasBYOBReader(stream)) {\n            // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n            ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n        }\n        else {\n            ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n        }\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n    function ReadableByteStreamControllerError(controller, e) {\n        const stream = controller._controlledReadableByteStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ReadableByteStreamControllerClearPendingPullIntos(controller);\n        ResetQueue(controller);\n        ReadableByteStreamControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableByteStreamControllerFillReadRequestFromQueue(controller, readRequest) {\n        const entry = controller._queue.shift();\n        controller._queueTotalSize -= entry.byteLength;\n        ReadableByteStreamControllerHandleQueueDrain(controller);\n        const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n        readRequest._chunkSteps(view);\n    }\n    function ReadableByteStreamControllerGetBYOBRequest(controller) {\n        if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) {\n            const firstDescriptor = controller._pendingPullIntos.peek();\n            const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n            const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\n            SetUpReadableStreamBYOBRequest(byobRequest, controller, view);\n            controller._byobRequest = byobRequest;\n        }\n        return controller._byobRequest;\n    }\n    function ReadableByteStreamControllerGetDesiredSize(controller) {\n        const state = controller._controlledReadableByteStream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n        const firstDescriptor = controller._pendingPullIntos.peek();\n        const state = controller._controlledReadableByteStream._state;\n        if (state === 'closed') {\n            if (bytesWritten !== 0) {\n                throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n            }\n        }\n        else {\n            if (bytesWritten === 0) {\n                throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream');\n            }\n            if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) {\n                throw new RangeError('bytesWritten out of range');\n            }\n        }\n        firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n        ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n    }\n    function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n        const firstDescriptor = controller._pendingPullIntos.peek();\n        const state = controller._controlledReadableByteStream._state;\n        if (state === 'closed') {\n            if (view.byteLength !== 0) {\n                throw new TypeError('The view\\'s length must be 0 when calling respondWithNewView() on a closed stream');\n            }\n        }\n        else {\n            if (view.byteLength === 0) {\n                throw new TypeError('The view\\'s length must be greater than 0 when calling respondWithNewView() on a readable stream');\n            }\n        }\n        if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n            throw new RangeError('The region specified by view does not match byobRequest');\n        }\n        if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) {\n            throw new RangeError('The buffer of view has different capacity than byobRequest');\n        }\n        if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) {\n            throw new RangeError('The region specified by view is larger than byobRequest');\n        }\n        const viewByteLength = view.byteLength;\n        firstDescriptor.buffer = TransferArrayBuffer(view.buffer);\n        ReadableByteStreamControllerRespondInternal(controller, viewByteLength);\n    }\n    function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\n        controller._controlledReadableByteStream = stream;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._byobRequest = null;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._closeRequested = false;\n        controller._started = false;\n        controller._strategyHWM = highWaterMark;\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        controller._autoAllocateChunkSize = autoAllocateChunkSize;\n        controller._pendingPullIntos = new SimpleQueue();\n        stream._readableStreamController = controller;\n        const startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), () => {\n            controller._started = true;\n            ReadableByteStreamControllerCallPullIfNeeded(controller);\n            return null;\n        }, r => {\n            ReadableByteStreamControllerError(controller, r);\n            return null;\n        });\n    }\n    function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\n        const controller = Object.create(ReadableByteStreamController.prototype);\n        let startAlgorithm;\n        let pullAlgorithm;\n        let cancelAlgorithm;\n        if (underlyingByteSource.start !== undefined) {\n            startAlgorithm = () => underlyingByteSource.start(controller);\n        }\n        else {\n            startAlgorithm = () => undefined;\n        }\n        if (underlyingByteSource.pull !== undefined) {\n            pullAlgorithm = () => underlyingByteSource.pull(controller);\n        }\n        else {\n            pullAlgorithm = () => promiseResolvedWith(undefined);\n        }\n        if (underlyingByteSource.cancel !== undefined) {\n            cancelAlgorithm = reason => underlyingByteSource.cancel(reason);\n        }\n        else {\n            cancelAlgorithm = () => promiseResolvedWith(undefined);\n        }\n        const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n        if (autoAllocateChunkSize === 0) {\n            throw new TypeError('autoAllocateChunkSize must be greater than 0');\n        }\n        SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\n    }\n    function SetUpReadableStreamBYOBRequest(request, controller, view) {\n        request._associatedReadableByteStreamController = controller;\n        request._view = view;\n    }\n    // Helper functions for the ReadableStreamBYOBRequest.\n    function byobRequestBrandCheckException(name) {\n        return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`);\n    }\n    // Helper functions for the ReadableByteStreamController.\n    function byteStreamControllerBrandCheckException(name) {\n        return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`);\n    }\n\n    function convertReaderOptions(options, context) {\n        assertDictionary(options, context);\n        const mode = options === null || options === void 0 ? void 0 : options.mode;\n        return {\n            mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`)\n        };\n    }\n    function convertReadableStreamReaderMode(mode, context) {\n        mode = `${mode}`;\n        if (mode !== 'byob') {\n            throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`);\n        }\n        return mode;\n    }\n    function convertByobReadOptions(options, context) {\n        var _a;\n        assertDictionary(options, context);\n        const min = (_a = options === null || options === void 0 ? void 0 : options.min) !== null && _a !== void 0 ? _a : 1;\n        return {\n            min: convertUnsignedLongLongWithEnforceRange(min, `${context} has member 'min' that`)\n        };\n    }\n\n    // Abstract operations for the ReadableStream.\n    function AcquireReadableStreamBYOBReader(stream) {\n        return new ReadableStreamBYOBReader(stream);\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) {\n        stream._reader._readIntoRequests.push(readIntoRequest);\n    }\n    function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n        const reader = stream._reader;\n        const readIntoRequest = reader._readIntoRequests.shift();\n        if (done) {\n            readIntoRequest._closeSteps(chunk);\n        }\n        else {\n            readIntoRequest._chunkSteps(chunk);\n        }\n    }\n    function ReadableStreamGetNumReadIntoRequests(stream) {\n        return stream._reader._readIntoRequests.length;\n    }\n    function ReadableStreamHasBYOBReader(stream) {\n        const reader = stream._reader;\n        if (reader === undefined) {\n            return false;\n        }\n        if (!IsReadableStreamBYOBReader(reader)) {\n            return false;\n        }\n        return true;\n    }\n    /**\n     * A BYOB reader vended by a {@link ReadableStream}.\n     *\n     * @public\n     */\n    class ReadableStreamBYOBReader {\n        constructor(stream) {\n            assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader');\n            assertReadableStream(stream, 'First parameter');\n            if (IsReadableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n            }\n            if (!IsReadableByteStreamController(stream._readableStreamController)) {\n                throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\n                    'source');\n            }\n            ReadableStreamReaderGenericInitialize(this, stream);\n            this._readIntoRequests = new SimpleQueue();\n        }\n        /**\n         * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n         * the reader's lock is released before the stream finishes closing.\n         */\n        get closed() {\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('closed'));\n            }\n            return this._closedPromise;\n        }\n        /**\n         * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}.\n         */\n        cancel(reason = undefined) {\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('cancel'));\n            }\n            return ReadableStreamReaderGenericCancel(this, reason);\n        }\n        read(view, rawOptions = {}) {\n            if (!IsReadableStreamBYOBReader(this)) {\n                return promiseRejectedWith(byobReaderBrandCheckException('read'));\n            }\n            if (!ArrayBuffer.isView(view)) {\n                return promiseRejectedWith(new TypeError('view must be an array buffer view'));\n            }\n            if (view.byteLength === 0) {\n                return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\n            }\n            if (view.buffer.byteLength === 0) {\n                return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`));\n            }\n            if (IsDetachedBuffer(view.buffer)) {\n                return promiseRejectedWith(new TypeError('view\\'s buffer has been detached'));\n            }\n            let options;\n            try {\n                options = convertByobReadOptions(rawOptions, 'options');\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            const min = options.min;\n            if (min === 0) {\n                return promiseRejectedWith(new TypeError('options.min must be greater than 0'));\n            }\n            if (!isDataView(view)) {\n                if (min > view.length) {\n                    return promiseRejectedWith(new RangeError('options.min must be less than or equal to view\\'s length'));\n                }\n            }\n            else if (min > view.byteLength) {\n                return promiseRejectedWith(new RangeError('options.min must be less than or equal to view\\'s byteLength'));\n            }\n            if (this._ownerReadableStream === undefined) {\n                return promiseRejectedWith(readerLockException('read from'));\n            }\n            let resolvePromise;\n            let rejectPromise;\n            const promise = newPromise((resolve, reject) => {\n                resolvePromise = resolve;\n                rejectPromise = reject;\n            });\n            const readIntoRequest = {\n                _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }),\n                _closeSteps: chunk => resolvePromise({ value: chunk, done: true }),\n                _errorSteps: e => rejectPromise(e)\n            };\n            ReadableStreamBYOBReaderRead(this, view, min, readIntoRequest);\n            return promise;\n        }\n        /**\n         * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active.\n         * If the associated stream is errored when the lock is released, the reader will appear errored in the same way\n         * from now on; otherwise, the reader will appear closed.\n         *\n         * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by\n         * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to\n         * do so will throw a `TypeError` and leave the reader locked to the stream.\n         */\n        releaseLock() {\n            if (!IsReadableStreamBYOBReader(this)) {\n                throw byobReaderBrandCheckException('releaseLock');\n            }\n            if (this._ownerReadableStream === undefined) {\n                return;\n            }\n            ReadableStreamBYOBReaderRelease(this);\n        }\n    }\n    Object.defineProperties(ReadableStreamBYOBReader.prototype, {\n        cancel: { enumerable: true },\n        read: { enumerable: true },\n        releaseLock: { enumerable: true },\n        closed: { enumerable: true }\n    });\n    setFunctionName(ReadableStreamBYOBReader.prototype.cancel, 'cancel');\n    setFunctionName(ReadableStreamBYOBReader.prototype.read, 'read');\n    setFunctionName(ReadableStreamBYOBReader.prototype.releaseLock, 'releaseLock');\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamBYOBReader.prototype, Symbol.toStringTag, {\n            value: 'ReadableStreamBYOBReader',\n            configurable: true\n        });\n    }\n    // Abstract operations for the readers.\n    function IsReadableStreamBYOBReader(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n            return false;\n        }\n        return x instanceof ReadableStreamBYOBReader;\n    }\n    function ReadableStreamBYOBReaderRead(reader, view, min, readIntoRequest) {\n        const stream = reader._ownerReadableStream;\n        stream._disturbed = true;\n        if (stream._state === 'errored') {\n            readIntoRequest._errorSteps(stream._storedError);\n        }\n        else {\n            ReadableByteStreamControllerPullInto(stream._readableStreamController, view, min, readIntoRequest);\n        }\n    }\n    function ReadableStreamBYOBReaderRelease(reader) {\n        ReadableStreamReaderGenericRelease(reader);\n        const e = new TypeError('Reader was released');\n        ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e);\n    }\n    function ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e) {\n        const readIntoRequests = reader._readIntoRequests;\n        reader._readIntoRequests = new SimpleQueue();\n        readIntoRequests.forEach(readIntoRequest => {\n            readIntoRequest._errorSteps(e);\n        });\n    }\n    // Helper functions for the ReadableStreamBYOBReader.\n    function byobReaderBrandCheckException(name) {\n        return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`);\n    }\n\n    function ExtractHighWaterMark(strategy, defaultHWM) {\n        const { highWaterMark } = strategy;\n        if (highWaterMark === undefined) {\n            return defaultHWM;\n        }\n        if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\n            throw new RangeError('Invalid highWaterMark');\n        }\n        return highWaterMark;\n    }\n    function ExtractSizeAlgorithm(strategy) {\n        const { size } = strategy;\n        if (!size) {\n            return () => 1;\n        }\n        return size;\n    }\n\n    function convertQueuingStrategy(init, context) {\n        assertDictionary(init, context);\n        const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n        const size = init === null || init === void 0 ? void 0 : init.size;\n        return {\n            highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark),\n            size: size === undefined ? undefined : convertQueuingStrategySize(size, `${context} has member 'size' that`)\n        };\n    }\n    function convertQueuingStrategySize(fn, context) {\n        assertFunction(fn, context);\n        return chunk => convertUnrestrictedDouble(fn(chunk));\n    }\n\n    function convertUnderlyingSink(original, context) {\n        assertDictionary(original, context);\n        const abort = original === null || original === void 0 ? void 0 : original.abort;\n        const close = original === null || original === void 0 ? void 0 : original.close;\n        const start = original === null || original === void 0 ? void 0 : original.start;\n        const type = original === null || original === void 0 ? void 0 : original.type;\n        const write = original === null || original === void 0 ? void 0 : original.write;\n        return {\n            abort: abort === undefined ?\n                undefined :\n                convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`),\n            close: close === undefined ?\n                undefined :\n                convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`),\n            start: start === undefined ?\n                undefined :\n                convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`),\n            write: write === undefined ?\n                undefined :\n                convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`),\n            type\n        };\n    }\n    function convertUnderlyingSinkAbortCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (reason) => promiseCall(fn, original, [reason]);\n    }\n    function convertUnderlyingSinkCloseCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return () => promiseCall(fn, original, []);\n    }\n    function convertUnderlyingSinkStartCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (controller) => reflectCall(fn, original, [controller]);\n    }\n    function convertUnderlyingSinkWriteCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n    }\n\n    function assertWritableStream(x, context) {\n        if (!IsWritableStream(x)) {\n            throw new TypeError(`${context} is not a WritableStream.`);\n        }\n    }\n\n    function isAbortSignal(value) {\n        if (typeof value !== 'object' || value === null) {\n            return false;\n        }\n        try {\n            return typeof value.aborted === 'boolean';\n        }\n        catch (_a) {\n            // AbortSignal.prototype.aborted throws if its brand check fails\n            return false;\n        }\n    }\n    const supportsAbortController = typeof AbortController === 'function';\n    /**\n     * Construct a new AbortController, if supported by the platform.\n     *\n     * @internal\n     */\n    function createAbortController() {\n        if (supportsAbortController) {\n            return new AbortController();\n        }\n        return undefined;\n    }\n\n    /**\n     * A writable stream represents a destination for data, into which you can write.\n     *\n     * @public\n     */\n    class WritableStream {\n        constructor(rawUnderlyingSink = {}, rawStrategy = {}) {\n            if (rawUnderlyingSink === undefined) {\n                rawUnderlyingSink = null;\n            }\n            else {\n                assertObject(rawUnderlyingSink, 'First parameter');\n            }\n            const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n            const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter');\n            InitializeWritableStream(this);\n            const type = underlyingSink.type;\n            if (type !== undefined) {\n                throw new RangeError('Invalid type is specified');\n            }\n            const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n            const highWaterMark = ExtractHighWaterMark(strategy, 1);\n            SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\n        }\n        /**\n         * Returns whether or not the writable stream is locked to a writer.\n         */\n        get locked() {\n            if (!IsWritableStream(this)) {\n                throw streamBrandCheckException$2('locked');\n            }\n            return IsWritableStreamLocked(this);\n        }\n        /**\n         * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be\n         * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort\n         * mechanism of the underlying sink.\n         *\n         * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled\n         * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel\n         * the stream) if the stream is currently locked.\n         */\n        abort(reason = undefined) {\n            if (!IsWritableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$2('abort'));\n            }\n            if (IsWritableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\n            }\n            return WritableStreamAbort(this, reason);\n        }\n        /**\n         * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its\n         * close behavior. During this time any further attempts to write will fail (without erroring the stream).\n         *\n         * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream\n         * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with\n         * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked.\n         */\n        close() {\n            if (!IsWritableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$2('close'));\n            }\n            if (IsWritableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(this)) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamClose(this);\n        }\n        /**\n         * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream\n         * is locked, no other writer can be acquired until this one is released.\n         *\n         * This functionality is especially useful for creating abstractions that desire the ability to write to a stream\n         * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at\n         * the same time, which would cause the resulting written data to be unpredictable and probably useless.\n         */\n        getWriter() {\n            if (!IsWritableStream(this)) {\n                throw streamBrandCheckException$2('getWriter');\n            }\n            return AcquireWritableStreamDefaultWriter(this);\n        }\n    }\n    Object.defineProperties(WritableStream.prototype, {\n        abort: { enumerable: true },\n        close: { enumerable: true },\n        getWriter: { enumerable: true },\n        locked: { enumerable: true }\n    });\n    setFunctionName(WritableStream.prototype.abort, 'abort');\n    setFunctionName(WritableStream.prototype.close, 'close');\n    setFunctionName(WritableStream.prototype.getWriter, 'getWriter');\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(WritableStream.prototype, Symbol.toStringTag, {\n            value: 'WritableStream',\n            configurable: true\n        });\n    }\n    // Abstract operations for the WritableStream.\n    function AcquireWritableStreamDefaultWriter(stream) {\n        return new WritableStreamDefaultWriter(stream);\n    }\n    // Throws if and only if startAlgorithm throws.\n    function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n        const stream = Object.create(WritableStream.prototype);\n        InitializeWritableStream(stream);\n        const controller = Object.create(WritableStreamDefaultController.prototype);\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    function InitializeWritableStream(stream) {\n        stream._state = 'writable';\n        // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n        // 'erroring' or 'errored'. May be set to an undefined value.\n        stream._storedError = undefined;\n        stream._writer = undefined;\n        // Initialize to undefined first because the constructor of the controller checks this\n        // variable to validate the caller.\n        stream._writableStreamController = undefined;\n        // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n        // producer without waiting for the queued writes to finish.\n        stream._writeRequests = new SimpleQueue();\n        // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n        // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n        stream._inFlightWriteRequest = undefined;\n        // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n        // has been detached.\n        stream._closeRequest = undefined;\n        // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n        // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n        stream._inFlightCloseRequest = undefined;\n        // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n        stream._pendingAbortRequest = undefined;\n        // The backpressure signal set by the controller.\n        stream._backpressure = false;\n    }\n    function IsWritableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n            return false;\n        }\n        return x instanceof WritableStream;\n    }\n    function IsWritableStreamLocked(stream) {\n        if (stream._writer === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamAbort(stream, reason) {\n        var _a;\n        if (stream._state === 'closed' || stream._state === 'errored') {\n            return promiseResolvedWith(undefined);\n        }\n        stream._writableStreamController._abortReason = reason;\n        (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort(reason);\n        // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring',\n        // but it doesn't know that signaling abort runs author code that might have changed the state.\n        // Widen the type again by casting to WritableStreamState.\n        const state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._pendingAbortRequest !== undefined) {\n            return stream._pendingAbortRequest._promise;\n        }\n        let wasAlreadyErroring = false;\n        if (state === 'erroring') {\n            wasAlreadyErroring = true;\n            // reason will not be used, so don't keep a reference to it.\n            reason = undefined;\n        }\n        const promise = newPromise((resolve, reject) => {\n            stream._pendingAbortRequest = {\n                _promise: undefined,\n                _resolve: resolve,\n                _reject: reject,\n                _reason: reason,\n                _wasAlreadyErroring: wasAlreadyErroring\n            };\n        });\n        stream._pendingAbortRequest._promise = promise;\n        if (!wasAlreadyErroring) {\n            WritableStreamStartErroring(stream, reason);\n        }\n        return promise;\n    }\n    function WritableStreamClose(stream) {\n        const state = stream._state;\n        if (state === 'closed' || state === 'errored') {\n            return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));\n        }\n        const promise = newPromise((resolve, reject) => {\n            const closeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._closeRequest = closeRequest;\n        });\n        const writer = stream._writer;\n        if (writer !== undefined && stream._backpressure && state === 'writable') {\n            defaultWriterReadyPromiseResolve(writer);\n        }\n        WritableStreamDefaultControllerClose(stream._writableStreamController);\n        return promise;\n    }\n    // WritableStream API exposed for controllers.\n    function WritableStreamAddWriteRequest(stream) {\n        const promise = newPromise((resolve, reject) => {\n            const writeRequest = {\n                _resolve: resolve,\n                _reject: reject\n            };\n            stream._writeRequests.push(writeRequest);\n        });\n        return promise;\n    }\n    function WritableStreamDealWithRejection(stream, error) {\n        const state = stream._state;\n        if (state === 'writable') {\n            WritableStreamStartErroring(stream, error);\n            return;\n        }\n        WritableStreamFinishErroring(stream);\n    }\n    function WritableStreamStartErroring(stream, reason) {\n        const controller = stream._writableStreamController;\n        stream._state = 'erroring';\n        stream._storedError = reason;\n        const writer = stream._writer;\n        if (writer !== undefined) {\n            WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n        }\n        if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) {\n            WritableStreamFinishErroring(stream);\n        }\n    }\n    function WritableStreamFinishErroring(stream) {\n        stream._state = 'errored';\n        stream._writableStreamController[ErrorSteps]();\n        const storedError = stream._storedError;\n        stream._writeRequests.forEach(writeRequest => {\n            writeRequest._reject(storedError);\n        });\n        stream._writeRequests = new SimpleQueue();\n        if (stream._pendingAbortRequest === undefined) {\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        const abortRequest = stream._pendingAbortRequest;\n        stream._pendingAbortRequest = undefined;\n        if (abortRequest._wasAlreadyErroring) {\n            abortRequest._reject(storedError);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return;\n        }\n        const promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\n        uponPromise(promise, () => {\n            abortRequest._resolve();\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return null;\n        }, (reason) => {\n            abortRequest._reject(reason);\n            WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n            return null;\n        });\n    }\n    function WritableStreamFinishInFlightWrite(stream) {\n        stream._inFlightWriteRequest._resolve(undefined);\n        stream._inFlightWriteRequest = undefined;\n    }\n    function WritableStreamFinishInFlightWriteWithError(stream, error) {\n        stream._inFlightWriteRequest._reject(error);\n        stream._inFlightWriteRequest = undefined;\n        WritableStreamDealWithRejection(stream, error);\n    }\n    function WritableStreamFinishInFlightClose(stream) {\n        stream._inFlightCloseRequest._resolve(undefined);\n        stream._inFlightCloseRequest = undefined;\n        const state = stream._state;\n        if (state === 'erroring') {\n            // The error was too late to do anything, so it is ignored.\n            stream._storedError = undefined;\n            if (stream._pendingAbortRequest !== undefined) {\n                stream._pendingAbortRequest._resolve();\n                stream._pendingAbortRequest = undefined;\n            }\n        }\n        stream._state = 'closed';\n        const writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseResolve(writer);\n        }\n    }\n    function WritableStreamFinishInFlightCloseWithError(stream, error) {\n        stream._inFlightCloseRequest._reject(error);\n        stream._inFlightCloseRequest = undefined;\n        // Never execute sink abort() after sink close().\n        if (stream._pendingAbortRequest !== undefined) {\n            stream._pendingAbortRequest._reject(error);\n            stream._pendingAbortRequest = undefined;\n        }\n        WritableStreamDealWithRejection(stream, error);\n    }\n    // TODO(ricea): Fix alphabetical order.\n    function WritableStreamCloseQueuedOrInFlight(stream) {\n        if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamHasOperationMarkedInFlight(stream) {\n        if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n            return false;\n        }\n        return true;\n    }\n    function WritableStreamMarkCloseRequestInFlight(stream) {\n        stream._inFlightCloseRequest = stream._closeRequest;\n        stream._closeRequest = undefined;\n    }\n    function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n        stream._inFlightWriteRequest = stream._writeRequests.shift();\n    }\n    function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n        if (stream._closeRequest !== undefined) {\n            stream._closeRequest._reject(stream._storedError);\n            stream._closeRequest = undefined;\n        }\n        const writer = stream._writer;\n        if (writer !== undefined) {\n            defaultWriterClosedPromiseReject(writer, stream._storedError);\n        }\n    }\n    function WritableStreamUpdateBackpressure(stream, backpressure) {\n        const writer = stream._writer;\n        if (writer !== undefined && backpressure !== stream._backpressure) {\n            if (backpressure) {\n                defaultWriterReadyPromiseReset(writer);\n            }\n            else {\n                defaultWriterReadyPromiseResolve(writer);\n            }\n        }\n        stream._backpressure = backpressure;\n    }\n    /**\n     * A default writer vended by a {@link WritableStream}.\n     *\n     * @public\n     */\n    class WritableStreamDefaultWriter {\n        constructor(stream) {\n            assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter');\n            assertWritableStream(stream, 'First parameter');\n            if (IsWritableStreamLocked(stream)) {\n                throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n            }\n            this._ownerWritableStream = stream;\n            stream._writer = this;\n            const state = stream._state;\n            if (state === 'writable') {\n                if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) {\n                    defaultWriterReadyPromiseInitialize(this);\n                }\n                else {\n                    defaultWriterReadyPromiseInitializeAsResolved(this);\n                }\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'erroring') {\n                defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n                defaultWriterClosedPromiseInitialize(this);\n            }\n            else if (state === 'closed') {\n                defaultWriterReadyPromiseInitializeAsResolved(this);\n                defaultWriterClosedPromiseInitializeAsResolved(this);\n            }\n            else {\n                const storedError = stream._storedError;\n                defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n                defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n            }\n        }\n        /**\n         * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or\n         * the writer’s lock is released before the stream finishes closing.\n         */\n        get closed() {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\n            }\n            return this._closedPromise;\n        }\n        /**\n         * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full.\n         * A producer can use this information to determine the right amount of data to write.\n         *\n         * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort\n         * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when\n         * the writer’s lock is released.\n         */\n        get desiredSize() {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                throw defaultWriterBrandCheckException('desiredSize');\n            }\n            if (this._ownerWritableStream === undefined) {\n                throw defaultWriterLockException('desiredSize');\n            }\n            return WritableStreamDefaultWriterGetDesiredSize(this);\n        }\n        /**\n         * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions\n         * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips\n         * back to zero or below, the getter will return a new promise that stays pending until the next transition.\n         *\n         * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become\n         * rejected.\n         */\n        get ready() {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\n            }\n            return this._readyPromise;\n        }\n        /**\n         * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}.\n         */\n        abort(reason = undefined) {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('abort'));\n            }\n            return WritableStreamDefaultWriterAbort(this, reason);\n        }\n        /**\n         * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}.\n         */\n        close() {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('close'));\n            }\n            const stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('close'));\n            }\n            if (WritableStreamCloseQueuedOrInFlight(stream)) {\n                return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\n            }\n            return WritableStreamDefaultWriterClose(this);\n        }\n        /**\n         * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active.\n         * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from\n         * now on; otherwise, the writer will appear closed.\n         *\n         * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the\n         * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled).\n         * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents\n         * other producers from writing in an interleaved manner.\n         */\n        releaseLock() {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                throw defaultWriterBrandCheckException('releaseLock');\n            }\n            const stream = this._ownerWritableStream;\n            if (stream === undefined) {\n                return;\n            }\n            WritableStreamDefaultWriterRelease(this);\n        }\n        write(chunk = undefined) {\n            if (!IsWritableStreamDefaultWriter(this)) {\n                return promiseRejectedWith(defaultWriterBrandCheckException('write'));\n            }\n            if (this._ownerWritableStream === undefined) {\n                return promiseRejectedWith(defaultWriterLockException('write to'));\n            }\n            return WritableStreamDefaultWriterWrite(this, chunk);\n        }\n    }\n    Object.defineProperties(WritableStreamDefaultWriter.prototype, {\n        abort: { enumerable: true },\n        close: { enumerable: true },\n        releaseLock: { enumerable: true },\n        write: { enumerable: true },\n        closed: { enumerable: true },\n        desiredSize: { enumerable: true },\n        ready: { enumerable: true }\n    });\n    setFunctionName(WritableStreamDefaultWriter.prototype.abort, 'abort');\n    setFunctionName(WritableStreamDefaultWriter.prototype.close, 'close');\n    setFunctionName(WritableStreamDefaultWriter.prototype.releaseLock, 'releaseLock');\n    setFunctionName(WritableStreamDefaultWriter.prototype.write, 'write');\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(WritableStreamDefaultWriter.prototype, Symbol.toStringTag, {\n            value: 'WritableStreamDefaultWriter',\n            configurable: true\n        });\n    }\n    // Abstract operations for the WritableStreamDefaultWriter.\n    function IsWritableStreamDefaultWriter(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n            return false;\n        }\n        return x instanceof WritableStreamDefaultWriter;\n    }\n    // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n    function WritableStreamDefaultWriterAbort(writer, reason) {\n        const stream = writer._ownerWritableStream;\n        return WritableStreamAbort(stream, reason);\n    }\n    function WritableStreamDefaultWriterClose(writer) {\n        const stream = writer._ownerWritableStream;\n        return WritableStreamClose(stream);\n    }\n    function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n        const stream = writer._ownerWritableStream;\n        const state = stream._state;\n        if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        return WritableStreamDefaultWriterClose(writer);\n    }\n    function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n        if (writer._closedPromiseState === 'pending') {\n            defaultWriterClosedPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterClosedPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n        if (writer._readyPromiseState === 'pending') {\n            defaultWriterReadyPromiseReject(writer, error);\n        }\n        else {\n            defaultWriterReadyPromiseResetToRejected(writer, error);\n        }\n    }\n    function WritableStreamDefaultWriterGetDesiredSize(writer) {\n        const stream = writer._ownerWritableStream;\n        const state = stream._state;\n        if (state === 'errored' || state === 'erroring') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n    }\n    function WritableStreamDefaultWriterRelease(writer) {\n        const stream = writer._ownerWritableStream;\n        const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`);\n        WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n        // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n        // rejected until afterwards. This means that simply testing state will not work.\n        WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n        stream._writer = undefined;\n        writer._ownerWritableStream = undefined;\n    }\n    function WritableStreamDefaultWriterWrite(writer, chunk) {\n        const stream = writer._ownerWritableStream;\n        const controller = stream._writableStreamController;\n        const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n        if (stream !== writer._ownerWritableStream) {\n            return promiseRejectedWith(defaultWriterLockException('write to'));\n        }\n        const state = stream._state;\n        if (state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') {\n            return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\n        }\n        if (state === 'erroring') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        const promise = WritableStreamAddWriteRequest(stream);\n        WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n        return promise;\n    }\n    const closeSentinel = {};\n    /**\n     * Allows control of a {@link WritableStream | writable stream}'s state and internal queue.\n     *\n     * @public\n     */\n    class WritableStreamDefaultController {\n        constructor() {\n            throw new TypeError('Illegal constructor');\n        }\n        /**\n         * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted.\n         *\n         * @deprecated\n         *  This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177.\n         *  Use {@link WritableStreamDefaultController.signal}'s `reason` instead.\n         */\n        get abortReason() {\n            if (!IsWritableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$2('abortReason');\n            }\n            return this._abortReason;\n        }\n        /**\n         * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted.\n         */\n        get signal() {\n            if (!IsWritableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$2('signal');\n            }\n            if (this._abortController === undefined) {\n                // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`.\n                // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill,\n                // so instead we only implement support for `signal` if we find a global `AbortController` constructor.\n                throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported');\n            }\n            return this._abortController.signal;\n        }\n        /**\n         * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`.\n         *\n         * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying\n         * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the\n         * normal lifecycle of interactions with the underlying sink.\n         */\n        error(e = undefined) {\n            if (!IsWritableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$2('error');\n            }\n            const state = this._controlledWritableStream._state;\n            if (state !== 'writable') {\n                // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n                // just treat it as a no-op.\n                return;\n            }\n            WritableStreamDefaultControllerError(this, e);\n        }\n        /** @internal */\n        [AbortSteps](reason) {\n            const result = this._abortAlgorithm(reason);\n            WritableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        }\n        /** @internal */\n        [ErrorSteps]() {\n            ResetQueue(this);\n        }\n    }\n    Object.defineProperties(WritableStreamDefaultController.prototype, {\n        abortReason: { enumerable: true },\n        signal: { enumerable: true },\n        error: { enumerable: true }\n    });\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(WritableStreamDefaultController.prototype, Symbol.toStringTag, {\n            value: 'WritableStreamDefaultController',\n            configurable: true\n        });\n    }\n    // Abstract operations implementing interface required by the WritableStream.\n    function IsWritableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\n            return false;\n        }\n        return x instanceof WritableStreamDefaultController;\n    }\n    function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledWritableStream = stream;\n        stream._writableStreamController = controller;\n        // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._abortReason = undefined;\n        controller._abortController = createAbortController();\n        controller._started = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._writeAlgorithm = writeAlgorithm;\n        controller._closeAlgorithm = closeAlgorithm;\n        controller._abortAlgorithm = abortAlgorithm;\n        const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n        WritableStreamUpdateBackpressure(stream, backpressure);\n        const startResult = startAlgorithm();\n        const startPromise = promiseResolvedWith(startResult);\n        uponPromise(startPromise, () => {\n            controller._started = true;\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n            return null;\n        }, r => {\n            controller._started = true;\n            WritableStreamDealWithRejection(stream, r);\n            return null;\n        });\n    }\n    function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\n        const controller = Object.create(WritableStreamDefaultController.prototype);\n        let startAlgorithm;\n        let writeAlgorithm;\n        let closeAlgorithm;\n        let abortAlgorithm;\n        if (underlyingSink.start !== undefined) {\n            startAlgorithm = () => underlyingSink.start(controller);\n        }\n        else {\n            startAlgorithm = () => undefined;\n        }\n        if (underlyingSink.write !== undefined) {\n            writeAlgorithm = chunk => underlyingSink.write(chunk, controller);\n        }\n        else {\n            writeAlgorithm = () => promiseResolvedWith(undefined);\n        }\n        if (underlyingSink.close !== undefined) {\n            closeAlgorithm = () => underlyingSink.close();\n        }\n        else {\n            closeAlgorithm = () => promiseResolvedWith(undefined);\n        }\n        if (underlyingSink.abort !== undefined) {\n            abortAlgorithm = reason => underlyingSink.abort(reason);\n        }\n        else {\n            abortAlgorithm = () => promiseResolvedWith(undefined);\n        }\n        SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\n    function WritableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._writeAlgorithm = undefined;\n        controller._closeAlgorithm = undefined;\n        controller._abortAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    function WritableStreamDefaultControllerClose(controller) {\n        EnqueueValueWithSize(controller, closeSentinel, 0);\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n        try {\n            return controller._strategySizeAlgorithm(chunk);\n        }\n        catch (chunkSizeE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n            return 1;\n        }\n    }\n    function WritableStreamDefaultControllerGetDesiredSize(controller) {\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n        try {\n            EnqueueValueWithSize(controller, chunk, chunkSize);\n        }\n        catch (enqueueE) {\n            WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n            return;\n        }\n        const stream = controller._controlledWritableStream;\n        if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') {\n            const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n            WritableStreamUpdateBackpressure(stream, backpressure);\n        }\n        WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }\n    // Abstract operations for the WritableStreamDefaultController.\n    function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n        const stream = controller._controlledWritableStream;\n        if (!controller._started) {\n            return;\n        }\n        if (stream._inFlightWriteRequest !== undefined) {\n            return;\n        }\n        const state = stream._state;\n        if (state === 'erroring') {\n            WritableStreamFinishErroring(stream);\n            return;\n        }\n        if (controller._queue.length === 0) {\n            return;\n        }\n        const value = PeekQueueValue(controller);\n        if (value === closeSentinel) {\n            WritableStreamDefaultControllerProcessClose(controller);\n        }\n        else {\n            WritableStreamDefaultControllerProcessWrite(controller, value);\n        }\n    }\n    function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n        if (controller._controlledWritableStream._state === 'writable') {\n            WritableStreamDefaultControllerError(controller, error);\n        }\n    }\n    function WritableStreamDefaultControllerProcessClose(controller) {\n        const stream = controller._controlledWritableStream;\n        WritableStreamMarkCloseRequestInFlight(stream);\n        DequeueValue(controller);\n        const sinkClosePromise = controller._closeAlgorithm();\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(sinkClosePromise, () => {\n            WritableStreamFinishInFlightClose(stream);\n            return null;\n        }, reason => {\n            WritableStreamFinishInFlightCloseWithError(stream, reason);\n            return null;\n        });\n    }\n    function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n        const stream = controller._controlledWritableStream;\n        WritableStreamMarkFirstWriteRequestInFlight(stream);\n        const sinkWritePromise = controller._writeAlgorithm(chunk);\n        uponPromise(sinkWritePromise, () => {\n            WritableStreamFinishInFlightWrite(stream);\n            const state = stream._state;\n            DequeueValue(controller);\n            if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') {\n                const backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n                WritableStreamUpdateBackpressure(stream, backpressure);\n            }\n            WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n            return null;\n        }, reason => {\n            if (stream._state === 'writable') {\n                WritableStreamDefaultControllerClearAlgorithms(controller);\n            }\n            WritableStreamFinishInFlightWriteWithError(stream, reason);\n            return null;\n        });\n    }\n    function WritableStreamDefaultControllerGetBackpressure(controller) {\n        const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n        return desiredSize <= 0;\n    }\n    // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n    function WritableStreamDefaultControllerError(controller, error) {\n        const stream = controller._controlledWritableStream;\n        WritableStreamDefaultControllerClearAlgorithms(controller);\n        WritableStreamStartErroring(stream, error);\n    }\n    // Helper functions for the WritableStream.\n    function streamBrandCheckException$2(name) {\n        return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`);\n    }\n    // Helper functions for the WritableStreamDefaultController.\n    function defaultControllerBrandCheckException$2(name) {\n        return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`);\n    }\n    // Helper functions for the WritableStreamDefaultWriter.\n    function defaultWriterBrandCheckException(name) {\n        return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`);\n    }\n    function defaultWriterLockException(name) {\n        return new TypeError('Cannot ' + name + ' a stream using a released writer');\n    }\n    function defaultWriterClosedPromiseInitialize(writer) {\n        writer._closedPromise = newPromise((resolve, reject) => {\n            writer._closedPromise_resolve = resolve;\n            writer._closedPromise_reject = reject;\n            writer._closedPromiseState = 'pending';\n        });\n    }\n    function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseReject(writer, reason);\n    }\n    function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n        defaultWriterClosedPromiseInitialize(writer);\n        defaultWriterClosedPromiseResolve(writer);\n    }\n    function defaultWriterClosedPromiseReject(writer, reason) {\n        if (writer._closedPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(writer._closedPromise);\n        writer._closedPromise_reject(reason);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'rejected';\n    }\n    function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n        defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterClosedPromiseResolve(writer) {\n        if (writer._closedPromise_resolve === undefined) {\n            return;\n        }\n        writer._closedPromise_resolve(undefined);\n        writer._closedPromise_resolve = undefined;\n        writer._closedPromise_reject = undefined;\n        writer._closedPromiseState = 'resolved';\n    }\n    function defaultWriterReadyPromiseInitialize(writer) {\n        writer._readyPromise = newPromise((resolve, reject) => {\n            writer._readyPromise_resolve = resolve;\n            writer._readyPromise_reject = reject;\n        });\n        writer._readyPromiseState = 'pending';\n    }\n    function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseReject(writer, reason);\n    }\n    function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n        defaultWriterReadyPromiseResolve(writer);\n    }\n    function defaultWriterReadyPromiseReject(writer, reason) {\n        if (writer._readyPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(writer._readyPromise);\n        writer._readyPromise_reject(reason);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'rejected';\n    }\n    function defaultWriterReadyPromiseReset(writer) {\n        defaultWriterReadyPromiseInitialize(writer);\n    }\n    function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n        defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\n    }\n    function defaultWriterReadyPromiseResolve(writer) {\n        if (writer._readyPromise_resolve === undefined) {\n            return;\n        }\n        writer._readyPromise_resolve(undefined);\n        writer._readyPromise_resolve = undefined;\n        writer._readyPromise_reject = undefined;\n        writer._readyPromiseState = 'fulfilled';\n    }\n\n    /// <reference lib=\"dom\" />\n    function getGlobals() {\n        if (typeof globalThis !== 'undefined') {\n            return globalThis;\n        }\n        else if (typeof self !== 'undefined') {\n            return self;\n        }\n        else if (typeof global !== 'undefined') {\n            return global;\n        }\n        return undefined;\n    }\n    const globals = getGlobals();\n\n    /// <reference types=\"node\" />\n    function isDOMExceptionConstructor(ctor) {\n        if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\n            return false;\n        }\n        if (ctor.name !== 'DOMException') {\n            return false;\n        }\n        try {\n            new ctor();\n            return true;\n        }\n        catch (_a) {\n            return false;\n        }\n    }\n    /**\n     * Support:\n     * - Web browsers\n     * - Node 18 and higher (https://github.com/nodejs/node/commit/e4b1fb5e6422c1ff151234bb9de792d45dd88d87)\n     */\n    function getFromGlobal() {\n        const ctor = globals === null || globals === void 0 ? void 0 : globals.DOMException;\n        return isDOMExceptionConstructor(ctor) ? ctor : undefined;\n    }\n    /**\n     * Support:\n     * - All platforms\n     */\n    function createPolyfill() {\n        // eslint-disable-next-line @typescript-eslint/no-shadow\n        const ctor = function DOMException(message, name) {\n            this.message = message || '';\n            this.name = name || 'Error';\n            if (Error.captureStackTrace) {\n                Error.captureStackTrace(this, this.constructor);\n            }\n        };\n        setFunctionName(ctor, 'DOMException');\n        ctor.prototype = Object.create(Error.prototype);\n        Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\n        return ctor;\n    }\n    // eslint-disable-next-line @typescript-eslint/no-redeclare\n    const DOMException = getFromGlobal() || createPolyfill();\n\n    function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\n        const reader = AcquireReadableStreamDefaultReader(source);\n        const writer = AcquireWritableStreamDefaultWriter(dest);\n        source._disturbed = true;\n        let shuttingDown = false;\n        // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n        let currentWrite = promiseResolvedWith(undefined);\n        return newPromise((resolve, reject) => {\n            let abortAlgorithm;\n            if (signal !== undefined) {\n                abortAlgorithm = () => {\n                    const error = signal.reason !== undefined ? signal.reason : new DOMException('Aborted', 'AbortError');\n                    const actions = [];\n                    if (!preventAbort) {\n                        actions.push(() => {\n                            if (dest._state === 'writable') {\n                                return WritableStreamAbort(dest, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    if (!preventCancel) {\n                        actions.push(() => {\n                            if (source._state === 'readable') {\n                                return ReadableStreamCancel(source, error);\n                            }\n                            return promiseResolvedWith(undefined);\n                        });\n                    }\n                    shutdownWithAction(() => Promise.all(actions.map(action => action())), true, error);\n                };\n                if (signal.aborted) {\n                    abortAlgorithm();\n                    return;\n                }\n                signal.addEventListener('abort', abortAlgorithm);\n            }\n            // Using reader and writer, read all chunks from this and write them to dest\n            // - Backpressure must be enforced\n            // - Shutdown must stop all activity\n            function pipeLoop() {\n                return newPromise((resolveLoop, rejectLoop) => {\n                    function next(done) {\n                        if (done) {\n                            resolveLoop();\n                        }\n                        else {\n                            // Use `PerformPromiseThen` instead of `uponPromise` to avoid\n                            // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\n                            PerformPromiseThen(pipeStep(), next, rejectLoop);\n                        }\n                    }\n                    next(false);\n                });\n            }\n            function pipeStep() {\n                if (shuttingDown) {\n                    return promiseResolvedWith(true);\n                }\n                return PerformPromiseThen(writer._readyPromise, () => {\n                    return newPromise((resolveRead, rejectRead) => {\n                        ReadableStreamDefaultReaderRead(reader, {\n                            _chunkSteps: chunk => {\n                                currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop);\n                                resolveRead(false);\n                            },\n                            _closeSteps: () => resolveRead(true),\n                            _errorSteps: rejectRead\n                        });\n                    });\n                });\n            }\n            // Errors must be propagated forward\n            isOrBecomesErrored(source, reader._closedPromise, storedError => {\n                if (!preventAbort) {\n                    shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n                return null;\n            });\n            // Errors must be propagated backward\n            isOrBecomesErrored(dest, writer._closedPromise, storedError => {\n                if (!preventCancel) {\n                    shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError);\n                }\n                else {\n                    shutdown(true, storedError);\n                }\n                return null;\n            });\n            // Closing must be propagated forward\n            isOrBecomesClosed(source, reader._closedPromise, () => {\n                if (!preventClose) {\n                    shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer));\n                }\n                else {\n                    shutdown();\n                }\n                return null;\n            });\n            // Closing must be propagated backward\n            if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') {\n                const destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n                if (!preventCancel) {\n                    shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed);\n                }\n                else {\n                    shutdown(true, destClosed);\n                }\n            }\n            setPromiseIsHandledToTrue(pipeLoop());\n            function waitForWritesToFinish() {\n                // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n                // for that too.\n                const oldCurrentWrite = currentWrite;\n                return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined);\n            }\n            function isOrBecomesErrored(stream, promise, action) {\n                if (stream._state === 'errored') {\n                    action(stream._storedError);\n                }\n                else {\n                    uponRejection(promise, action);\n                }\n            }\n            function isOrBecomesClosed(stream, promise, action) {\n                if (stream._state === 'closed') {\n                    action();\n                }\n                else {\n                    uponFulfillment(promise, action);\n                }\n            }\n            function shutdownWithAction(action, originalIsError, originalError) {\n                if (shuttingDown) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n                    uponFulfillment(waitForWritesToFinish(), doTheRest);\n                }\n                else {\n                    doTheRest();\n                }\n                function doTheRest() {\n                    uponPromise(action(), () => finalize(originalIsError, originalError), newError => finalize(true, newError));\n                    return null;\n                }\n            }\n            function shutdown(isError, error) {\n                if (shuttingDown) {\n                    return;\n                }\n                shuttingDown = true;\n                if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) {\n                    uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error));\n                }\n                else {\n                    finalize(isError, error);\n                }\n            }\n            function finalize(isError, error) {\n                WritableStreamDefaultWriterRelease(writer);\n                ReadableStreamReaderGenericRelease(reader);\n                if (signal !== undefined) {\n                    signal.removeEventListener('abort', abortAlgorithm);\n                }\n                if (isError) {\n                    reject(error);\n                }\n                else {\n                    resolve(undefined);\n                }\n                return null;\n            }\n        });\n    }\n\n    /**\n     * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue.\n     *\n     * @public\n     */\n    class ReadableStreamDefaultController {\n        constructor() {\n            throw new TypeError('Illegal constructor');\n        }\n        /**\n         * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is\n         * over-full. An underlying source ought to use this information to determine when and how to apply backpressure.\n         */\n        get desiredSize() {\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('desiredSize');\n            }\n            return ReadableStreamDefaultControllerGetDesiredSize(this);\n        }\n        /**\n         * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from\n         * the stream, but once those are read, the stream will become closed.\n         */\n        close() {\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('close');\n            }\n            if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n                throw new TypeError('The stream is not in a state that permits close');\n            }\n            ReadableStreamDefaultControllerClose(this);\n        }\n        enqueue(chunk = undefined) {\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('enqueue');\n            }\n            if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) {\n                throw new TypeError('The stream is not in a state that permits enqueue');\n            }\n            return ReadableStreamDefaultControllerEnqueue(this, chunk);\n        }\n        /**\n         * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`.\n         */\n        error(e = undefined) {\n            if (!IsReadableStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException$1('error');\n            }\n            ReadableStreamDefaultControllerError(this, e);\n        }\n        /** @internal */\n        [CancelSteps](reason) {\n            ResetQueue(this);\n            const result = this._cancelAlgorithm(reason);\n            ReadableStreamDefaultControllerClearAlgorithms(this);\n            return result;\n        }\n        /** @internal */\n        [PullSteps](readRequest) {\n            const stream = this._controlledReadableStream;\n            if (this._queue.length > 0) {\n                const chunk = DequeueValue(this);\n                if (this._closeRequested && this._queue.length === 0) {\n                    ReadableStreamDefaultControllerClearAlgorithms(this);\n                    ReadableStreamClose(stream);\n                }\n                else {\n                    ReadableStreamDefaultControllerCallPullIfNeeded(this);\n                }\n                readRequest._chunkSteps(chunk);\n            }\n            else {\n                ReadableStreamAddReadRequest(stream, readRequest);\n                ReadableStreamDefaultControllerCallPullIfNeeded(this);\n            }\n        }\n        /** @internal */\n        [ReleaseSteps]() {\n            // Do nothing.\n        }\n    }\n    Object.defineProperties(ReadableStreamDefaultController.prototype, {\n        close: { enumerable: true },\n        enqueue: { enumerable: true },\n        error: { enumerable: true },\n        desiredSize: { enumerable: true }\n    });\n    setFunctionName(ReadableStreamDefaultController.prototype.close, 'close');\n    setFunctionName(ReadableStreamDefaultController.prototype.enqueue, 'enqueue');\n    setFunctionName(ReadableStreamDefaultController.prototype.error, 'error');\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStreamDefaultController.prototype, Symbol.toStringTag, {\n            value: 'ReadableStreamDefaultController',\n            configurable: true\n        });\n    }\n    // Abstract operations for the ReadableStreamDefaultController.\n    function IsReadableStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\n            return false;\n        }\n        return x instanceof ReadableStreamDefaultController;\n    }\n    function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n        const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n        if (!shouldPull) {\n            return;\n        }\n        if (controller._pulling) {\n            controller._pullAgain = true;\n            return;\n        }\n        controller._pulling = true;\n        const pullPromise = controller._pullAlgorithm();\n        uponPromise(pullPromise, () => {\n            controller._pulling = false;\n            if (controller._pullAgain) {\n                controller._pullAgain = false;\n                ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n            }\n            return null;\n        }, e => {\n            ReadableStreamDefaultControllerError(controller, e);\n            return null;\n        });\n    }\n    function ReadableStreamDefaultControllerShouldCallPull(controller) {\n        const stream = controller._controlledReadableStream;\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n            return false;\n        }\n        if (!controller._started) {\n            return false;\n        }\n        if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n            return true;\n        }\n        const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n        if (desiredSize > 0) {\n            return true;\n        }\n        return false;\n    }\n    function ReadableStreamDefaultControllerClearAlgorithms(controller) {\n        controller._pullAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n        controller._strategySizeAlgorithm = undefined;\n    }\n    // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n    function ReadableStreamDefaultControllerClose(controller) {\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n            return;\n        }\n        const stream = controller._controlledReadableStream;\n        controller._closeRequested = true;\n        if (controller._queue.length === 0) {\n            ReadableStreamDefaultControllerClearAlgorithms(controller);\n            ReadableStreamClose(stream);\n        }\n    }\n    function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) {\n            return;\n        }\n        const stream = controller._controlledReadableStream;\n        if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) {\n            ReadableStreamFulfillReadRequest(stream, chunk, false);\n        }\n        else {\n            let chunkSize;\n            try {\n                chunkSize = controller._strategySizeAlgorithm(chunk);\n            }\n            catch (chunkSizeE) {\n                ReadableStreamDefaultControllerError(controller, chunkSizeE);\n                throw chunkSizeE;\n            }\n            try {\n                EnqueueValueWithSize(controller, chunk, chunkSize);\n            }\n            catch (enqueueE) {\n                ReadableStreamDefaultControllerError(controller, enqueueE);\n                throw enqueueE;\n            }\n        }\n        ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n    }\n    function ReadableStreamDefaultControllerError(controller, e) {\n        const stream = controller._controlledReadableStream;\n        if (stream._state !== 'readable') {\n            return;\n        }\n        ResetQueue(controller);\n        ReadableStreamDefaultControllerClearAlgorithms(controller);\n        ReadableStreamError(stream, e);\n    }\n    function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n        const state = controller._controlledReadableStream._state;\n        if (state === 'errored') {\n            return null;\n        }\n        if (state === 'closed') {\n            return 0;\n        }\n        return controller._strategyHWM - controller._queueTotalSize;\n    }\n    // This is used in the implementation of TransformStream.\n    function ReadableStreamDefaultControllerHasBackpressure(controller) {\n        if (ReadableStreamDefaultControllerShouldCallPull(controller)) {\n            return false;\n        }\n        return true;\n    }\n    function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\n        const state = controller._controlledReadableStream._state;\n        if (!controller._closeRequested && state === 'readable') {\n            return true;\n        }\n        return false;\n    }\n    function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\n        controller._controlledReadableStream = stream;\n        controller._queue = undefined;\n        controller._queueTotalSize = undefined;\n        ResetQueue(controller);\n        controller._started = false;\n        controller._closeRequested = false;\n        controller._pullAgain = false;\n        controller._pulling = false;\n        controller._strategySizeAlgorithm = sizeAlgorithm;\n        controller._strategyHWM = highWaterMark;\n        controller._pullAlgorithm = pullAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        stream._readableStreamController = controller;\n        const startResult = startAlgorithm();\n        uponPromise(promiseResolvedWith(startResult), () => {\n            controller._started = true;\n            ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n            return null;\n        }, r => {\n            ReadableStreamDefaultControllerError(controller, r);\n            return null;\n        });\n    }\n    function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\n        const controller = Object.create(ReadableStreamDefaultController.prototype);\n        let startAlgorithm;\n        let pullAlgorithm;\n        let cancelAlgorithm;\n        if (underlyingSource.start !== undefined) {\n            startAlgorithm = () => underlyingSource.start(controller);\n        }\n        else {\n            startAlgorithm = () => undefined;\n        }\n        if (underlyingSource.pull !== undefined) {\n            pullAlgorithm = () => underlyingSource.pull(controller);\n        }\n        else {\n            pullAlgorithm = () => promiseResolvedWith(undefined);\n        }\n        if (underlyingSource.cancel !== undefined) {\n            cancelAlgorithm = reason => underlyingSource.cancel(reason);\n        }\n        else {\n            cancelAlgorithm = () => promiseResolvedWith(undefined);\n        }\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n    }\n    // Helper functions for the ReadableStreamDefaultController.\n    function defaultControllerBrandCheckException$1(name) {\n        return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`);\n    }\n\n    function ReadableStreamTee(stream, cloneForBranch2) {\n        if (IsReadableByteStreamController(stream._readableStreamController)) {\n            return ReadableByteStreamTee(stream);\n        }\n        return ReadableStreamDefaultTee(stream);\n    }\n    function ReadableStreamDefaultTee(stream, cloneForBranch2) {\n        const reader = AcquireReadableStreamDefaultReader(stream);\n        let reading = false;\n        let readAgain = false;\n        let canceled1 = false;\n        let canceled2 = false;\n        let reason1;\n        let reason2;\n        let branch1;\n        let branch2;\n        let resolveCancelPromise;\n        const cancelPromise = newPromise(resolve => {\n            resolveCancelPromise = resolve;\n        });\n        function pullAlgorithm() {\n            if (reading) {\n                readAgain = true;\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            const readRequest = {\n                _chunkSteps: chunk => {\n                    // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n                    // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n                    // successful synchronously-available reads get ahead of asynchronously-available errors.\n                    _queueMicrotask(() => {\n                        readAgain = false;\n                        const chunk1 = chunk;\n                        const chunk2 = chunk;\n                        // There is no way to access the cloning code right now in the reference implementation.\n                        // If we add one then we'll need an implementation for serializable objects.\n                        // if (!canceled2 && cloneForBranch2) {\n                        //   chunk2 = StructuredDeserialize(StructuredSerialize(chunk2));\n                        // }\n                        if (!canceled1) {\n                            ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1);\n                        }\n                        if (!canceled2) {\n                            ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2);\n                        }\n                        reading = false;\n                        if (readAgain) {\n                            pullAlgorithm();\n                        }\n                    });\n                },\n                _closeSteps: () => {\n                    reading = false;\n                    if (!canceled1) {\n                        ReadableStreamDefaultControllerClose(branch1._readableStreamController);\n                    }\n                    if (!canceled2) {\n                        ReadableStreamDefaultControllerClose(branch2._readableStreamController);\n                    }\n                    if (!canceled1 || !canceled2) {\n                        resolveCancelPromise(undefined);\n                    }\n                },\n                _errorSteps: () => {\n                    reading = false;\n                }\n            };\n            ReadableStreamDefaultReaderRead(reader, readRequest);\n            return promiseResolvedWith(undefined);\n        }\n        function cancel1Algorithm(reason) {\n            canceled1 = true;\n            reason1 = reason;\n            if (canceled2) {\n                const compositeReason = CreateArrayFromList([reason1, reason2]);\n                const cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function cancel2Algorithm(reason) {\n            canceled2 = true;\n            reason2 = reason;\n            if (canceled1) {\n                const compositeReason = CreateArrayFromList([reason1, reason2]);\n                const cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function startAlgorithm() {\n            // do nothing\n        }\n        branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\n        branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\n        uponRejection(reader._closedPromise, (r) => {\n            ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\n            ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\n            if (!canceled1 || !canceled2) {\n                resolveCancelPromise(undefined);\n            }\n            return null;\n        });\n        return [branch1, branch2];\n    }\n    function ReadableByteStreamTee(stream) {\n        let reader = AcquireReadableStreamDefaultReader(stream);\n        let reading = false;\n        let readAgainForBranch1 = false;\n        let readAgainForBranch2 = false;\n        let canceled1 = false;\n        let canceled2 = false;\n        let reason1;\n        let reason2;\n        let branch1;\n        let branch2;\n        let resolveCancelPromise;\n        const cancelPromise = newPromise(resolve => {\n            resolveCancelPromise = resolve;\n        });\n        function forwardReaderError(thisReader) {\n            uponRejection(thisReader._closedPromise, r => {\n                if (thisReader !== reader) {\n                    return null;\n                }\n                ReadableByteStreamControllerError(branch1._readableStreamController, r);\n                ReadableByteStreamControllerError(branch2._readableStreamController, r);\n                if (!canceled1 || !canceled2) {\n                    resolveCancelPromise(undefined);\n                }\n                return null;\n            });\n        }\n        function pullWithDefaultReader() {\n            if (IsReadableStreamBYOBReader(reader)) {\n                ReadableStreamReaderGenericRelease(reader);\n                reader = AcquireReadableStreamDefaultReader(stream);\n                forwardReaderError(reader);\n            }\n            const readRequest = {\n                _chunkSteps: chunk => {\n                    // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n                    // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n                    // successful synchronously-available reads get ahead of asynchronously-available errors.\n                    _queueMicrotask(() => {\n                        readAgainForBranch1 = false;\n                        readAgainForBranch2 = false;\n                        const chunk1 = chunk;\n                        let chunk2 = chunk;\n                        if (!canceled1 && !canceled2) {\n                            try {\n                                chunk2 = CloneAsUint8Array(chunk);\n                            }\n                            catch (cloneE) {\n                                ReadableByteStreamControllerError(branch1._readableStreamController, cloneE);\n                                ReadableByteStreamControllerError(branch2._readableStreamController, cloneE);\n                                resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n                                return;\n                            }\n                        }\n                        if (!canceled1) {\n                            ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1);\n                        }\n                        if (!canceled2) {\n                            ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2);\n                        }\n                        reading = false;\n                        if (readAgainForBranch1) {\n                            pull1Algorithm();\n                        }\n                        else if (readAgainForBranch2) {\n                            pull2Algorithm();\n                        }\n                    });\n                },\n                _closeSteps: () => {\n                    reading = false;\n                    if (!canceled1) {\n                        ReadableByteStreamControllerClose(branch1._readableStreamController);\n                    }\n                    if (!canceled2) {\n                        ReadableByteStreamControllerClose(branch2._readableStreamController);\n                    }\n                    if (branch1._readableStreamController._pendingPullIntos.length > 0) {\n                        ReadableByteStreamControllerRespond(branch1._readableStreamController, 0);\n                    }\n                    if (branch2._readableStreamController._pendingPullIntos.length > 0) {\n                        ReadableByteStreamControllerRespond(branch2._readableStreamController, 0);\n                    }\n                    if (!canceled1 || !canceled2) {\n                        resolveCancelPromise(undefined);\n                    }\n                },\n                _errorSteps: () => {\n                    reading = false;\n                }\n            };\n            ReadableStreamDefaultReaderRead(reader, readRequest);\n        }\n        function pullWithBYOBReader(view, forBranch2) {\n            if (IsReadableStreamDefaultReader(reader)) {\n                ReadableStreamReaderGenericRelease(reader);\n                reader = AcquireReadableStreamBYOBReader(stream);\n                forwardReaderError(reader);\n            }\n            const byobBranch = forBranch2 ? branch2 : branch1;\n            const otherBranch = forBranch2 ? branch1 : branch2;\n            const readIntoRequest = {\n                _chunkSteps: chunk => {\n                    // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using\n                    // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let\n                    // successful synchronously-available reads get ahead of asynchronously-available errors.\n                    _queueMicrotask(() => {\n                        readAgainForBranch1 = false;\n                        readAgainForBranch2 = false;\n                        const byobCanceled = forBranch2 ? canceled2 : canceled1;\n                        const otherCanceled = forBranch2 ? canceled1 : canceled2;\n                        if (!otherCanceled) {\n                            let clonedChunk;\n                            try {\n                                clonedChunk = CloneAsUint8Array(chunk);\n                            }\n                            catch (cloneE) {\n                                ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE);\n                                ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE);\n                                resolveCancelPromise(ReadableStreamCancel(stream, cloneE));\n                                return;\n                            }\n                            if (!byobCanceled) {\n                                ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n                            }\n                            ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk);\n                        }\n                        else if (!byobCanceled) {\n                            ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n                        }\n                        reading = false;\n                        if (readAgainForBranch1) {\n                            pull1Algorithm();\n                        }\n                        else if (readAgainForBranch2) {\n                            pull2Algorithm();\n                        }\n                    });\n                },\n                _closeSteps: chunk => {\n                    reading = false;\n                    const byobCanceled = forBranch2 ? canceled2 : canceled1;\n                    const otherCanceled = forBranch2 ? canceled1 : canceled2;\n                    if (!byobCanceled) {\n                        ReadableByteStreamControllerClose(byobBranch._readableStreamController);\n                    }\n                    if (!otherCanceled) {\n                        ReadableByteStreamControllerClose(otherBranch._readableStreamController);\n                    }\n                    if (chunk !== undefined) {\n                        if (!byobCanceled) {\n                            ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk);\n                        }\n                        if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) {\n                            ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0);\n                        }\n                    }\n                    if (!byobCanceled || !otherCanceled) {\n                        resolveCancelPromise(undefined);\n                    }\n                },\n                _errorSteps: () => {\n                    reading = false;\n                }\n            };\n            ReadableStreamBYOBReaderRead(reader, view, 1, readIntoRequest);\n        }\n        function pull1Algorithm() {\n            if (reading) {\n                readAgainForBranch1 = true;\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController);\n            if (byobRequest === null) {\n                pullWithDefaultReader();\n            }\n            else {\n                pullWithBYOBReader(byobRequest._view, false);\n            }\n            return promiseResolvedWith(undefined);\n        }\n        function pull2Algorithm() {\n            if (reading) {\n                readAgainForBranch2 = true;\n                return promiseResolvedWith(undefined);\n            }\n            reading = true;\n            const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController);\n            if (byobRequest === null) {\n                pullWithDefaultReader();\n            }\n            else {\n                pullWithBYOBReader(byobRequest._view, true);\n            }\n            return promiseResolvedWith(undefined);\n        }\n        function cancel1Algorithm(reason) {\n            canceled1 = true;\n            reason1 = reason;\n            if (canceled2) {\n                const compositeReason = CreateArrayFromList([reason1, reason2]);\n                const cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function cancel2Algorithm(reason) {\n            canceled2 = true;\n            reason2 = reason;\n            if (canceled1) {\n                const compositeReason = CreateArrayFromList([reason1, reason2]);\n                const cancelResult = ReadableStreamCancel(stream, compositeReason);\n                resolveCancelPromise(cancelResult);\n            }\n            return cancelPromise;\n        }\n        function startAlgorithm() {\n            return;\n        }\n        branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm);\n        branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm);\n        forwardReaderError(reader);\n        return [branch1, branch2];\n    }\n\n    function isReadableStreamLike(stream) {\n        return typeIsObject(stream) && typeof stream.getReader !== 'undefined';\n    }\n\n    function ReadableStreamFrom(source) {\n        if (isReadableStreamLike(source)) {\n            return ReadableStreamFromDefaultReader(source.getReader());\n        }\n        return ReadableStreamFromIterable(source);\n    }\n    function ReadableStreamFromIterable(asyncIterable) {\n        let stream;\n        const iteratorRecord = GetIterator(asyncIterable, 'async');\n        const startAlgorithm = noop;\n        function pullAlgorithm() {\n            let nextResult;\n            try {\n                nextResult = IteratorNext(iteratorRecord);\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            const nextPromise = promiseResolvedWith(nextResult);\n            return transformPromiseWith(nextPromise, iterResult => {\n                if (!typeIsObject(iterResult)) {\n                    throw new TypeError('The promise returned by the iterator.next() method must fulfill with an object');\n                }\n                const done = IteratorComplete(iterResult);\n                if (done) {\n                    ReadableStreamDefaultControllerClose(stream._readableStreamController);\n                }\n                else {\n                    const value = IteratorValue(iterResult);\n                    ReadableStreamDefaultControllerEnqueue(stream._readableStreamController, value);\n                }\n            });\n        }\n        function cancelAlgorithm(reason) {\n            const iterator = iteratorRecord.iterator;\n            let returnMethod;\n            try {\n                returnMethod = GetMethod(iterator, 'return');\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            if (returnMethod === undefined) {\n                return promiseResolvedWith(undefined);\n            }\n            let returnResult;\n            try {\n                returnResult = reflectCall(returnMethod, iterator, [reason]);\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            const returnPromise = promiseResolvedWith(returnResult);\n            return transformPromiseWith(returnPromise, iterResult => {\n                if (!typeIsObject(iterResult)) {\n                    throw new TypeError('The promise returned by the iterator.return() method must fulfill with an object');\n                }\n                return undefined;\n            });\n        }\n        stream = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, 0);\n        return stream;\n    }\n    function ReadableStreamFromDefaultReader(reader) {\n        let stream;\n        const startAlgorithm = noop;\n        function pullAlgorithm() {\n            let readPromise;\n            try {\n                readPromise = reader.read();\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            return transformPromiseWith(readPromise, readResult => {\n                if (!typeIsObject(readResult)) {\n                    throw new TypeError('The promise returned by the reader.read() method must fulfill with an object');\n                }\n                if (readResult.done) {\n                    ReadableStreamDefaultControllerClose(stream._readableStreamController);\n                }\n                else {\n                    const value = readResult.value;\n                    ReadableStreamDefaultControllerEnqueue(stream._readableStreamController, value);\n                }\n            });\n        }\n        function cancelAlgorithm(reason) {\n            try {\n                return promiseResolvedWith(reader.cancel(reason));\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n        }\n        stream = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, 0);\n        return stream;\n    }\n\n    function convertUnderlyingDefaultOrByteSource(source, context) {\n        assertDictionary(source, context);\n        const original = source;\n        const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize;\n        const cancel = original === null || original === void 0 ? void 0 : original.cancel;\n        const pull = original === null || original === void 0 ? void 0 : original.pull;\n        const start = original === null || original === void 0 ? void 0 : original.start;\n        const type = original === null || original === void 0 ? void 0 : original.type;\n        return {\n            autoAllocateChunkSize: autoAllocateChunkSize === undefined ?\n                undefined :\n                convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`),\n            cancel: cancel === undefined ?\n                undefined :\n                convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`),\n            pull: pull === undefined ?\n                undefined :\n                convertUnderlyingSourcePullCallback(pull, original, `${context} has member 'pull' that`),\n            start: start === undefined ?\n                undefined :\n                convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`),\n            type: type === undefined ? undefined : convertReadableStreamType(type, `${context} has member 'type' that`)\n        };\n    }\n    function convertUnderlyingSourceCancelCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (reason) => promiseCall(fn, original, [reason]);\n    }\n    function convertUnderlyingSourcePullCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (controller) => promiseCall(fn, original, [controller]);\n    }\n    function convertUnderlyingSourceStartCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (controller) => reflectCall(fn, original, [controller]);\n    }\n    function convertReadableStreamType(type, context) {\n        type = `${type}`;\n        if (type !== 'bytes') {\n            throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`);\n        }\n        return type;\n    }\n\n    function convertIteratorOptions(options, context) {\n        assertDictionary(options, context);\n        const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n        return { preventCancel: Boolean(preventCancel) };\n    }\n\n    function convertPipeOptions(options, context) {\n        assertDictionary(options, context);\n        const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort;\n        const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel;\n        const preventClose = options === null || options === void 0 ? void 0 : options.preventClose;\n        const signal = options === null || options === void 0 ? void 0 : options.signal;\n        if (signal !== undefined) {\n            assertAbortSignal(signal, `${context} has member 'signal' that`);\n        }\n        return {\n            preventAbort: Boolean(preventAbort),\n            preventCancel: Boolean(preventCancel),\n            preventClose: Boolean(preventClose),\n            signal\n        };\n    }\n    function assertAbortSignal(signal, context) {\n        if (!isAbortSignal(signal)) {\n            throw new TypeError(`${context} is not an AbortSignal.`);\n        }\n    }\n\n    function convertReadableWritablePair(pair, context) {\n        assertDictionary(pair, context);\n        const readable = pair === null || pair === void 0 ? void 0 : pair.readable;\n        assertRequiredField(readable, 'readable', 'ReadableWritablePair');\n        assertReadableStream(readable, `${context} has member 'readable' that`);\n        const writable = pair === null || pair === void 0 ? void 0 : pair.writable;\n        assertRequiredField(writable, 'writable', 'ReadableWritablePair');\n        assertWritableStream(writable, `${context} has member 'writable' that`);\n        return { readable, writable };\n    }\n\n    /**\n     * A readable stream represents a source of data, from which you can read.\n     *\n     * @public\n     */\n    class ReadableStream {\n        constructor(rawUnderlyingSource = {}, rawStrategy = {}) {\n            if (rawUnderlyingSource === undefined) {\n                rawUnderlyingSource = null;\n            }\n            else {\n                assertObject(rawUnderlyingSource, 'First parameter');\n            }\n            const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter');\n            const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter');\n            InitializeReadableStream(this);\n            if (underlyingSource.type === 'bytes') {\n                if (strategy.size !== undefined) {\n                    throw new RangeError('The strategy for a byte stream cannot have a size function');\n                }\n                const highWaterMark = ExtractHighWaterMark(strategy, 0);\n                SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\n            }\n            else {\n                const sizeAlgorithm = ExtractSizeAlgorithm(strategy);\n                const highWaterMark = ExtractHighWaterMark(strategy, 1);\n                SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\n            }\n        }\n        /**\n         * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}.\n         */\n        get locked() {\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('locked');\n            }\n            return IsReadableStreamLocked(this);\n        }\n        /**\n         * Cancels the stream, signaling a loss of interest in the stream by a consumer.\n         *\n         * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()}\n         * method, which might or might not use it.\n         */\n        cancel(reason = undefined) {\n            if (!IsReadableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$1('cancel'));\n            }\n            if (IsReadableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\n            }\n            return ReadableStreamCancel(this, reason);\n        }\n        getReader(rawOptions = undefined) {\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('getReader');\n            }\n            const options = convertReaderOptions(rawOptions, 'First parameter');\n            if (options.mode === undefined) {\n                return AcquireReadableStreamDefaultReader(this);\n            }\n            return AcquireReadableStreamBYOBReader(this);\n        }\n        pipeThrough(rawTransform, rawOptions = {}) {\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('pipeThrough');\n            }\n            assertRequiredArgument(rawTransform, 1, 'pipeThrough');\n            const transform = convertReadableWritablePair(rawTransform, 'First parameter');\n            const options = convertPipeOptions(rawOptions, 'Second parameter');\n            if (IsReadableStreamLocked(this)) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\n            }\n            if (IsWritableStreamLocked(transform.writable)) {\n                throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\n            }\n            const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n            setPromiseIsHandledToTrue(promise);\n            return transform.readable;\n        }\n        pipeTo(destination, rawOptions = {}) {\n            if (!IsReadableStream(this)) {\n                return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\n            }\n            if (destination === undefined) {\n                return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`);\n            }\n            if (!IsWritableStream(destination)) {\n                return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`));\n            }\n            let options;\n            try {\n                options = convertPipeOptions(rawOptions, 'Second parameter');\n            }\n            catch (e) {\n                return promiseRejectedWith(e);\n            }\n            if (IsReadableStreamLocked(this)) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n            }\n            if (IsWritableStreamLocked(destination)) {\n                return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n            }\n            return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal);\n        }\n        /**\n         * Tees this readable stream, returning a two-element array containing the two resulting branches as\n         * new {@link ReadableStream} instances.\n         *\n         * Teeing a stream will lock it, preventing any other consumer from acquiring a reader.\n         * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be\n         * propagated to the stream's underlying source.\n         *\n         * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable,\n         * this could allow interference between the two branches.\n         */\n        tee() {\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('tee');\n            }\n            const branches = ReadableStreamTee(this);\n            return CreateArrayFromList(branches);\n        }\n        values(rawOptions = undefined) {\n            if (!IsReadableStream(this)) {\n                throw streamBrandCheckException$1('values');\n            }\n            const options = convertIteratorOptions(rawOptions, 'First parameter');\n            return AcquireReadableStreamAsyncIterator(this, options.preventCancel);\n        }\n        [SymbolAsyncIterator](options) {\n            // Stub implementation, overridden below\n            return this.values(options);\n        }\n        /**\n         * Creates a new ReadableStream wrapping the provided iterable or async iterable.\n         *\n         * This can be used to adapt various kinds of objects into a readable stream,\n         * such as an array, an async generator, or a Node.js readable stream.\n         */\n        static from(asyncIterable) {\n            return ReadableStreamFrom(asyncIterable);\n        }\n    }\n    Object.defineProperties(ReadableStream, {\n        from: { enumerable: true }\n    });\n    Object.defineProperties(ReadableStream.prototype, {\n        cancel: { enumerable: true },\n        getReader: { enumerable: true },\n        pipeThrough: { enumerable: true },\n        pipeTo: { enumerable: true },\n        tee: { enumerable: true },\n        values: { enumerable: true },\n        locked: { enumerable: true }\n    });\n    setFunctionName(ReadableStream.from, 'from');\n    setFunctionName(ReadableStream.prototype.cancel, 'cancel');\n    setFunctionName(ReadableStream.prototype.getReader, 'getReader');\n    setFunctionName(ReadableStream.prototype.pipeThrough, 'pipeThrough');\n    setFunctionName(ReadableStream.prototype.pipeTo, 'pipeTo');\n    setFunctionName(ReadableStream.prototype.tee, 'tee');\n    setFunctionName(ReadableStream.prototype.values, 'values');\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(ReadableStream.prototype, Symbol.toStringTag, {\n            value: 'ReadableStream',\n            configurable: true\n        });\n    }\n    Object.defineProperty(ReadableStream.prototype, SymbolAsyncIterator, {\n        value: ReadableStream.prototype.values,\n        writable: true,\n        configurable: true\n    });\n    // Abstract operations for the ReadableStream.\n    // Throws if and only if startAlgorithm throws.\n    function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) {\n        const stream = Object.create(ReadableStream.prototype);\n        InitializeReadableStream(stream);\n        const controller = Object.create(ReadableStreamDefaultController.prototype);\n        SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\n        return stream;\n    }\n    // Throws if and only if startAlgorithm throws.\n    function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) {\n        const stream = Object.create(ReadableStream.prototype);\n        InitializeReadableStream(stream);\n        const controller = Object.create(ReadableByteStreamController.prototype);\n        SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined);\n        return stream;\n    }\n    function InitializeReadableStream(stream) {\n        stream._state = 'readable';\n        stream._reader = undefined;\n        stream._storedError = undefined;\n        stream._disturbed = false;\n    }\n    function IsReadableStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n            return false;\n        }\n        return x instanceof ReadableStream;\n    }\n    function IsReadableStreamLocked(stream) {\n        if (stream._reader === undefined) {\n            return false;\n        }\n        return true;\n    }\n    // ReadableStream API exposed for controllers.\n    function ReadableStreamCancel(stream, reason) {\n        stream._disturbed = true;\n        if (stream._state === 'closed') {\n            return promiseResolvedWith(undefined);\n        }\n        if (stream._state === 'errored') {\n            return promiseRejectedWith(stream._storedError);\n        }\n        ReadableStreamClose(stream);\n        const reader = stream._reader;\n        if (reader !== undefined && IsReadableStreamBYOBReader(reader)) {\n            const readIntoRequests = reader._readIntoRequests;\n            reader._readIntoRequests = new SimpleQueue();\n            readIntoRequests.forEach(readIntoRequest => {\n                readIntoRequest._closeSteps(undefined);\n            });\n        }\n        const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\n        return transformPromiseWith(sourceCancelPromise, noop);\n    }\n    function ReadableStreamClose(stream) {\n        stream._state = 'closed';\n        const reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        defaultReaderClosedPromiseResolve(reader);\n        if (IsReadableStreamDefaultReader(reader)) {\n            const readRequests = reader._readRequests;\n            reader._readRequests = new SimpleQueue();\n            readRequests.forEach(readRequest => {\n                readRequest._closeSteps();\n            });\n        }\n    }\n    function ReadableStreamError(stream, e) {\n        stream._state = 'errored';\n        stream._storedError = e;\n        const reader = stream._reader;\n        if (reader === undefined) {\n            return;\n        }\n        defaultReaderClosedPromiseReject(reader, e);\n        if (IsReadableStreamDefaultReader(reader)) {\n            ReadableStreamDefaultReaderErrorReadRequests(reader, e);\n        }\n        else {\n            ReadableStreamBYOBReaderErrorReadIntoRequests(reader, e);\n        }\n    }\n    // Helper functions for the ReadableStream.\n    function streamBrandCheckException$1(name) {\n        return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`);\n    }\n\n    function convertQueuingStrategyInit(init, context) {\n        assertDictionary(init, context);\n        const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark;\n        assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit');\n        return {\n            highWaterMark: convertUnrestrictedDouble(highWaterMark)\n        };\n    }\n\n    // The size function must not have a prototype property nor be a constructor\n    const byteLengthSizeFunction = (chunk) => {\n        return chunk.byteLength;\n    };\n    setFunctionName(byteLengthSizeFunction, 'size');\n    /**\n     * A queuing strategy that counts the number of bytes in each chunk.\n     *\n     * @public\n     */\n    class ByteLengthQueuingStrategy {\n        constructor(options) {\n            assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy');\n            options = convertQueuingStrategyInit(options, 'First parameter');\n            this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark;\n        }\n        /**\n         * Returns the high water mark provided to the constructor.\n         */\n        get highWaterMark() {\n            if (!IsByteLengthQueuingStrategy(this)) {\n                throw byteLengthBrandCheckException('highWaterMark');\n            }\n            return this._byteLengthQueuingStrategyHighWaterMark;\n        }\n        /**\n         * Measures the size of `chunk` by returning the value of its `byteLength` property.\n         */\n        get size() {\n            if (!IsByteLengthQueuingStrategy(this)) {\n                throw byteLengthBrandCheckException('size');\n            }\n            return byteLengthSizeFunction;\n        }\n    }\n    Object.defineProperties(ByteLengthQueuingStrategy.prototype, {\n        highWaterMark: { enumerable: true },\n        size: { enumerable: true }\n    });\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(ByteLengthQueuingStrategy.prototype, Symbol.toStringTag, {\n            value: 'ByteLengthQueuingStrategy',\n            configurable: true\n        });\n    }\n    // Helper functions for the ByteLengthQueuingStrategy.\n    function byteLengthBrandCheckException(name) {\n        return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`);\n    }\n    function IsByteLengthQueuingStrategy(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) {\n            return false;\n        }\n        return x instanceof ByteLengthQueuingStrategy;\n    }\n\n    // The size function must not have a prototype property nor be a constructor\n    const countSizeFunction = () => {\n        return 1;\n    };\n    setFunctionName(countSizeFunction, 'size');\n    /**\n     * A queuing strategy that counts the number of chunks.\n     *\n     * @public\n     */\n    class CountQueuingStrategy {\n        constructor(options) {\n            assertRequiredArgument(options, 1, 'CountQueuingStrategy');\n            options = convertQueuingStrategyInit(options, 'First parameter');\n            this._countQueuingStrategyHighWaterMark = options.highWaterMark;\n        }\n        /**\n         * Returns the high water mark provided to the constructor.\n         */\n        get highWaterMark() {\n            if (!IsCountQueuingStrategy(this)) {\n                throw countBrandCheckException('highWaterMark');\n            }\n            return this._countQueuingStrategyHighWaterMark;\n        }\n        /**\n         * Measures the size of `chunk` by always returning 1.\n         * This ensures that the total queue size is a count of the number of chunks in the queue.\n         */\n        get size() {\n            if (!IsCountQueuingStrategy(this)) {\n                throw countBrandCheckException('size');\n            }\n            return countSizeFunction;\n        }\n    }\n    Object.defineProperties(CountQueuingStrategy.prototype, {\n        highWaterMark: { enumerable: true },\n        size: { enumerable: true }\n    });\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(CountQueuingStrategy.prototype, Symbol.toStringTag, {\n            value: 'CountQueuingStrategy',\n            configurable: true\n        });\n    }\n    // Helper functions for the CountQueuingStrategy.\n    function countBrandCheckException(name) {\n        return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`);\n    }\n    function IsCountQueuingStrategy(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) {\n            return false;\n        }\n        return x instanceof CountQueuingStrategy;\n    }\n\n    function convertTransformer(original, context) {\n        assertDictionary(original, context);\n        const cancel = original === null || original === void 0 ? void 0 : original.cancel;\n        const flush = original === null || original === void 0 ? void 0 : original.flush;\n        const readableType = original === null || original === void 0 ? void 0 : original.readableType;\n        const start = original === null || original === void 0 ? void 0 : original.start;\n        const transform = original === null || original === void 0 ? void 0 : original.transform;\n        const writableType = original === null || original === void 0 ? void 0 : original.writableType;\n        return {\n            cancel: cancel === undefined ?\n                undefined :\n                convertTransformerCancelCallback(cancel, original, `${context} has member 'cancel' that`),\n            flush: flush === undefined ?\n                undefined :\n                convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`),\n            readableType,\n            start: start === undefined ?\n                undefined :\n                convertTransformerStartCallback(start, original, `${context} has member 'start' that`),\n            transform: transform === undefined ?\n                undefined :\n                convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`),\n            writableType\n        };\n    }\n    function convertTransformerFlushCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (controller) => promiseCall(fn, original, [controller]);\n    }\n    function convertTransformerStartCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (controller) => reflectCall(fn, original, [controller]);\n    }\n    function convertTransformerTransformCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (chunk, controller) => promiseCall(fn, original, [chunk, controller]);\n    }\n    function convertTransformerCancelCallback(fn, original, context) {\n        assertFunction(fn, context);\n        return (reason) => promiseCall(fn, original, [reason]);\n    }\n\n    // Class TransformStream\n    /**\n     * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream},\n     * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side.\n     * In a manner specific to the transform stream in question, writes to the writable side result in new data being\n     * made available for reading from the readable side.\n     *\n     * @public\n     */\n    class TransformStream {\n        constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) {\n            if (rawTransformer === undefined) {\n                rawTransformer = null;\n            }\n            const writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter');\n            const readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter');\n            const transformer = convertTransformer(rawTransformer, 'First parameter');\n            if (transformer.readableType !== undefined) {\n                throw new RangeError('Invalid readableType specified');\n            }\n            if (transformer.writableType !== undefined) {\n                throw new RangeError('Invalid writableType specified');\n            }\n            const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0);\n            const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy);\n            const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);\n            const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);\n            let startPromise_resolve;\n            const startPromise = newPromise(resolve => {\n                startPromise_resolve = resolve;\n            });\n            InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n            SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\n            if (transformer.start !== undefined) {\n                startPromise_resolve(transformer.start(this._transformStreamController));\n            }\n            else {\n                startPromise_resolve(undefined);\n            }\n        }\n        /**\n         * The readable side of the transform stream.\n         */\n        get readable() {\n            if (!IsTransformStream(this)) {\n                throw streamBrandCheckException('readable');\n            }\n            return this._readable;\n        }\n        /**\n         * The writable side of the transform stream.\n         */\n        get writable() {\n            if (!IsTransformStream(this)) {\n                throw streamBrandCheckException('writable');\n            }\n            return this._writable;\n        }\n    }\n    Object.defineProperties(TransformStream.prototype, {\n        readable: { enumerable: true },\n        writable: { enumerable: true }\n    });\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(TransformStream.prototype, Symbol.toStringTag, {\n            value: 'TransformStream',\n            configurable: true\n        });\n    }\n    function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\n        function startAlgorithm() {\n            return startPromise;\n        }\n        function writeAlgorithm(chunk) {\n            return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\n        }\n        function abortAlgorithm(reason) {\n            return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\n        }\n        function closeAlgorithm() {\n            return TransformStreamDefaultSinkCloseAlgorithm(stream);\n        }\n        stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\n        function pullAlgorithm() {\n            return TransformStreamDefaultSourcePullAlgorithm(stream);\n        }\n        function cancelAlgorithm(reason) {\n            return TransformStreamDefaultSourceCancelAlgorithm(stream, reason);\n        }\n        stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\n        // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\n        stream._backpressure = undefined;\n        stream._backpressureChangePromise = undefined;\n        stream._backpressureChangePromise_resolve = undefined;\n        TransformStreamSetBackpressure(stream, true);\n        stream._transformStreamController = undefined;\n    }\n    function IsTransformStream(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n            return false;\n        }\n        return x instanceof TransformStream;\n    }\n    // This is a no-op if both sides are already errored.\n    function TransformStreamError(stream, e) {\n        ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\n        TransformStreamErrorWritableAndUnblockWrite(stream, e);\n    }\n    function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\n        TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\n        WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\n        TransformStreamUnblockWrite(stream);\n    }\n    function TransformStreamUnblockWrite(stream) {\n        if (stream._backpressure) {\n            // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\n            // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\n            // _backpressure is set.\n            TransformStreamSetBackpressure(stream, false);\n        }\n    }\n    function TransformStreamSetBackpressure(stream, backpressure) {\n        // Passes also when called during construction.\n        if (stream._backpressureChangePromise !== undefined) {\n            stream._backpressureChangePromise_resolve();\n        }\n        stream._backpressureChangePromise = newPromise(resolve => {\n            stream._backpressureChangePromise_resolve = resolve;\n        });\n        stream._backpressure = backpressure;\n    }\n    // Class TransformStreamDefaultController\n    /**\n     * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}.\n     *\n     * @public\n     */\n    class TransformStreamDefaultController {\n        constructor() {\n            throw new TypeError('Illegal constructor');\n        }\n        /**\n         * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full.\n         */\n        get desiredSize() {\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('desiredSize');\n            }\n            const readableController = this._controlledTransformStream._readable._readableStreamController;\n            return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n        }\n        enqueue(chunk = undefined) {\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('enqueue');\n            }\n            TransformStreamDefaultControllerEnqueue(this, chunk);\n        }\n        /**\n         * Errors both the readable side and the writable side of the controlled transform stream, making all future\n         * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded.\n         */\n        error(reason = undefined) {\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('error');\n            }\n            TransformStreamDefaultControllerError(this, reason);\n        }\n        /**\n         * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the\n         * transformer only needs to consume a portion of the chunks written to the writable side.\n         */\n        terminate() {\n            if (!IsTransformStreamDefaultController(this)) {\n                throw defaultControllerBrandCheckException('terminate');\n            }\n            TransformStreamDefaultControllerTerminate(this);\n        }\n    }\n    Object.defineProperties(TransformStreamDefaultController.prototype, {\n        enqueue: { enumerable: true },\n        error: { enumerable: true },\n        terminate: { enumerable: true },\n        desiredSize: { enumerable: true }\n    });\n    setFunctionName(TransformStreamDefaultController.prototype.enqueue, 'enqueue');\n    setFunctionName(TransformStreamDefaultController.prototype.error, 'error');\n    setFunctionName(TransformStreamDefaultController.prototype.terminate, 'terminate');\n    if (typeof Symbol.toStringTag === 'symbol') {\n        Object.defineProperty(TransformStreamDefaultController.prototype, Symbol.toStringTag, {\n            value: 'TransformStreamDefaultController',\n            configurable: true\n        });\n    }\n    // Transform Stream Default Controller Abstract Operations\n    function IsTransformStreamDefaultController(x) {\n        if (!typeIsObject(x)) {\n            return false;\n        }\n        if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n            return false;\n        }\n        return x instanceof TransformStreamDefaultController;\n    }\n    function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm, cancelAlgorithm) {\n        controller._controlledTransformStream = stream;\n        stream._transformStreamController = controller;\n        controller._transformAlgorithm = transformAlgorithm;\n        controller._flushAlgorithm = flushAlgorithm;\n        controller._cancelAlgorithm = cancelAlgorithm;\n        controller._finishPromise = undefined;\n        controller._finishPromise_resolve = undefined;\n        controller._finishPromise_reject = undefined;\n    }\n    function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\n        const controller = Object.create(TransformStreamDefaultController.prototype);\n        let transformAlgorithm;\n        let flushAlgorithm;\n        let cancelAlgorithm;\n        if (transformer.transform !== undefined) {\n            transformAlgorithm = chunk => transformer.transform(chunk, controller);\n        }\n        else {\n            transformAlgorithm = chunk => {\n                try {\n                    TransformStreamDefaultControllerEnqueue(controller, chunk);\n                    return promiseResolvedWith(undefined);\n                }\n                catch (transformResultE) {\n                    return promiseRejectedWith(transformResultE);\n                }\n            };\n        }\n        if (transformer.flush !== undefined) {\n            flushAlgorithm = () => transformer.flush(controller);\n        }\n        else {\n            flushAlgorithm = () => promiseResolvedWith(undefined);\n        }\n        if (transformer.cancel !== undefined) {\n            cancelAlgorithm = reason => transformer.cancel(reason);\n        }\n        else {\n            cancelAlgorithm = () => promiseResolvedWith(undefined);\n        }\n        SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm, cancelAlgorithm);\n    }\n    function TransformStreamDefaultControllerClearAlgorithms(controller) {\n        controller._transformAlgorithm = undefined;\n        controller._flushAlgorithm = undefined;\n        controller._cancelAlgorithm = undefined;\n    }\n    function TransformStreamDefaultControllerEnqueue(controller, chunk) {\n        const stream = controller._controlledTransformStream;\n        const readableController = stream._readable._readableStreamController;\n        if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) {\n            throw new TypeError('Readable side is not in a state that permits enqueue');\n        }\n        // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\n        // accept TransformStreamDefaultControllerEnqueue() calls.\n        try {\n            ReadableStreamDefaultControllerEnqueue(readableController, chunk);\n        }\n        catch (e) {\n            // This happens when readableStrategy.size() throws.\n            TransformStreamErrorWritableAndUnblockWrite(stream, e);\n            throw stream._readable._storedError;\n        }\n        const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\n        if (backpressure !== stream._backpressure) {\n            TransformStreamSetBackpressure(stream, true);\n        }\n    }\n    function TransformStreamDefaultControllerError(controller, e) {\n        TransformStreamError(controller._controlledTransformStream, e);\n    }\n    function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\n        const transformPromise = controller._transformAlgorithm(chunk);\n        return transformPromiseWith(transformPromise, undefined, r => {\n            TransformStreamError(controller._controlledTransformStream, r);\n            throw r;\n        });\n    }\n    function TransformStreamDefaultControllerTerminate(controller) {\n        const stream = controller._controlledTransformStream;\n        const readableController = stream._readable._readableStreamController;\n        ReadableStreamDefaultControllerClose(readableController);\n        const error = new TypeError('TransformStream terminated');\n        TransformStreamErrorWritableAndUnblockWrite(stream, error);\n    }\n    // TransformStreamDefaultSink Algorithms\n    function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\n        const controller = stream._transformStreamController;\n        if (stream._backpressure) {\n            const backpressureChangePromise = stream._backpressureChangePromise;\n            return transformPromiseWith(backpressureChangePromise, () => {\n                const writable = stream._writable;\n                const state = writable._state;\n                if (state === 'erroring') {\n                    throw writable._storedError;\n                }\n                return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n            });\n        }\n        return TransformStreamDefaultControllerPerformTransform(controller, chunk);\n    }\n    function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\n        const controller = stream._transformStreamController;\n        if (controller._finishPromise !== undefined) {\n            return controller._finishPromise;\n        }\n        // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n        const readable = stream._readable;\n        // Assign the _finishPromise now so that if _cancelAlgorithm calls readable.cancel() internally,\n        // we don't run the _cancelAlgorithm again.\n        controller._finishPromise = newPromise((resolve, reject) => {\n            controller._finishPromise_resolve = resolve;\n            controller._finishPromise_reject = reject;\n        });\n        const cancelPromise = controller._cancelAlgorithm(reason);\n        TransformStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(cancelPromise, () => {\n            if (readable._state === 'errored') {\n                defaultControllerFinishPromiseReject(controller, readable._storedError);\n            }\n            else {\n                ReadableStreamDefaultControllerError(readable._readableStreamController, reason);\n                defaultControllerFinishPromiseResolve(controller);\n            }\n            return null;\n        }, r => {\n            ReadableStreamDefaultControllerError(readable._readableStreamController, r);\n            defaultControllerFinishPromiseReject(controller, r);\n            return null;\n        });\n        return controller._finishPromise;\n    }\n    function TransformStreamDefaultSinkCloseAlgorithm(stream) {\n        const controller = stream._transformStreamController;\n        if (controller._finishPromise !== undefined) {\n            return controller._finishPromise;\n        }\n        // stream._readable cannot change after construction, so caching it across a call to user code is safe.\n        const readable = stream._readable;\n        // Assign the _finishPromise now so that if _flushAlgorithm calls readable.cancel() internally,\n        // we don't also run the _cancelAlgorithm.\n        controller._finishPromise = newPromise((resolve, reject) => {\n            controller._finishPromise_resolve = resolve;\n            controller._finishPromise_reject = reject;\n        });\n        const flushPromise = controller._flushAlgorithm();\n        TransformStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(flushPromise, () => {\n            if (readable._state === 'errored') {\n                defaultControllerFinishPromiseReject(controller, readable._storedError);\n            }\n            else {\n                ReadableStreamDefaultControllerClose(readable._readableStreamController);\n                defaultControllerFinishPromiseResolve(controller);\n            }\n            return null;\n        }, r => {\n            ReadableStreamDefaultControllerError(readable._readableStreamController, r);\n            defaultControllerFinishPromiseReject(controller, r);\n            return null;\n        });\n        return controller._finishPromise;\n    }\n    // TransformStreamDefaultSource Algorithms\n    function TransformStreamDefaultSourcePullAlgorithm(stream) {\n        // Invariant. Enforced by the promises returned by start() and pull().\n        TransformStreamSetBackpressure(stream, false);\n        // Prevent the next pull() call until there is backpressure.\n        return stream._backpressureChangePromise;\n    }\n    function TransformStreamDefaultSourceCancelAlgorithm(stream, reason) {\n        const controller = stream._transformStreamController;\n        if (controller._finishPromise !== undefined) {\n            return controller._finishPromise;\n        }\n        // stream._writable cannot change after construction, so caching it across a call to user code is safe.\n        const writable = stream._writable;\n        // Assign the _finishPromise now so that if _flushAlgorithm calls writable.abort() or\n        // writable.cancel() internally, we don't run the _cancelAlgorithm again, or also run the\n        // _flushAlgorithm.\n        controller._finishPromise = newPromise((resolve, reject) => {\n            controller._finishPromise_resolve = resolve;\n            controller._finishPromise_reject = reject;\n        });\n        const cancelPromise = controller._cancelAlgorithm(reason);\n        TransformStreamDefaultControllerClearAlgorithms(controller);\n        uponPromise(cancelPromise, () => {\n            if (writable._state === 'errored') {\n                defaultControllerFinishPromiseReject(controller, writable._storedError);\n            }\n            else {\n                WritableStreamDefaultControllerErrorIfNeeded(writable._writableStreamController, reason);\n                TransformStreamUnblockWrite(stream);\n                defaultControllerFinishPromiseResolve(controller);\n            }\n            return null;\n        }, r => {\n            WritableStreamDefaultControllerErrorIfNeeded(writable._writableStreamController, r);\n            TransformStreamUnblockWrite(stream);\n            defaultControllerFinishPromiseReject(controller, r);\n            return null;\n        });\n        return controller._finishPromise;\n    }\n    // Helper functions for the TransformStreamDefaultController.\n    function defaultControllerBrandCheckException(name) {\n        return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`);\n    }\n    function defaultControllerFinishPromiseResolve(controller) {\n        if (controller._finishPromise_resolve === undefined) {\n            return;\n        }\n        controller._finishPromise_resolve();\n        controller._finishPromise_resolve = undefined;\n        controller._finishPromise_reject = undefined;\n    }\n    function defaultControllerFinishPromiseReject(controller, reason) {\n        if (controller._finishPromise_reject === undefined) {\n            return;\n        }\n        setPromiseIsHandledToTrue(controller._finishPromise);\n        controller._finishPromise_reject(reason);\n        controller._finishPromise_resolve = undefined;\n        controller._finishPromise_reject = undefined;\n    }\n    // Helper functions for the TransformStream.\n    function streamBrandCheckException(name) {\n        return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`);\n    }\n\n    exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n    exports.CountQueuingStrategy = CountQueuingStrategy;\n    exports.ReadableByteStreamController = ReadableByteStreamController;\n    exports.ReadableStream = ReadableStream;\n    exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader;\n    exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest;\n    exports.ReadableStreamDefaultController = ReadableStreamDefaultController;\n    exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader;\n    exports.TransformStream = TransformStream;\n    exports.TransformStreamDefaultController = TransformStreamDefaultController;\n    exports.WritableStream = WritableStream;\n    exports.WritableStreamDefaultController = WritableStreamDefaultController;\n    exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter;\n\n}));\n//# sourceMappingURL=ponyfill.es2018.js.map\n","/* c8 ignore start */\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\nif (!globalThis.ReadableStream) {\n  // `node:stream/web` got introduced in v16.5.0 as experimental\n  // and it's preferred over the polyfilled version. So we also\n  // suppress the warning that gets emitted by NodeJS for using it.\n  try {\n    const process = require('node:process')\n    const { emitWarning } = process\n    try {\n      process.emitWarning = () => {}\n      Object.assign(globalThis, require('node:stream/web'))\n      process.emitWarning = emitWarning\n    } catch (error) {\n      process.emitWarning = emitWarning\n      throw error\n    }\n  } catch (error) {\n    // fallback to polyfill implementation\n    Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js'))\n  }\n}\n\ntry {\n  // Don't use node: prefix for this, require+node: is not supported until node v14.14\n  // Only `import()` can use prefix in 12.20 and later\n  const { Blob } = require('buffer')\n  if (Blob && !Blob.prototype.stream) {\n    Blob.prototype.stream = function name (params) {\n      let position = 0\n      const blob = this\n\n      return new ReadableStream({\n        type: 'bytes',\n        async pull (ctrl) {\n          const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE))\n          const buffer = await chunk.arrayBuffer()\n          position += buffer.byteLength\n          ctrl.enqueue(new Uint8Array(buffer))\n\n          if (position === blob.size) {\n            ctrl.close()\n          }\n        }\n      })\n    }\n  }\n} catch (error) {}\n/* c8 ignore end */\n","/*! fetch-blob. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\n// TODO (jimmywarting): in the feature use conditional loading with top level await (requires 14.x)\n// Node has recently added whatwg stream into core\n\nimport './streams.cjs'\n\n// 64 KiB (same size chrome slice theirs blob into Uint8array's)\nconst POOL_SIZE = 65536\n\n/** @param {(Blob | Uint8Array)[]} parts */\nasync function * toIterator (parts, clone = true) {\n  for (const part of parts) {\n    if ('stream' in part) {\n      yield * (/** @type {AsyncIterableIterator<Uint8Array>} */ (part.stream()))\n    } else if (ArrayBuffer.isView(part)) {\n      if (clone) {\n        let position = part.byteOffset\n        const end = part.byteOffset + part.byteLength\n        while (position !== end) {\n          const size = Math.min(end - position, POOL_SIZE)\n          const chunk = part.buffer.slice(position, position + size)\n          position += chunk.byteLength\n          yield new Uint8Array(chunk)\n        }\n      } else {\n        yield part\n      }\n    /* c8 ignore next 10 */\n    } else {\n      // For blobs that have arrayBuffer but no stream method (nodes buffer.Blob)\n      let position = 0, b = (/** @type {Blob} */ (part))\n      while (position !== b.size) {\n        const chunk = b.slice(position, Math.min(b.size, position + POOL_SIZE))\n        const buffer = await chunk.arrayBuffer()\n        position += buffer.byteLength\n        yield new Uint8Array(buffer)\n      }\n    }\n  }\n}\n\nconst _Blob = class Blob {\n  /** @type {Array.<(Blob|Uint8Array)>} */\n  #parts = []\n  #type = ''\n  #size = 0\n  #endings = 'transparent'\n\n  /**\n   * The Blob() constructor returns a new Blob object. The content\n   * of the blob consists of the concatenation of the values given\n   * in the parameter array.\n   *\n   * @param {*} blobParts\n   * @param {{ type?: string, endings?: string }} [options]\n   */\n  constructor (blobParts = [], options = {}) {\n    if (typeof blobParts !== 'object' || blobParts === null) {\n      throw new TypeError('Failed to construct \\'Blob\\': The provided value cannot be converted to a sequence.')\n    }\n\n    if (typeof blobParts[Symbol.iterator] !== 'function') {\n      throw new TypeError('Failed to construct \\'Blob\\': The object must have a callable @@iterator property.')\n    }\n\n    if (typeof options !== 'object' && typeof options !== 'function') {\n      throw new TypeError('Failed to construct \\'Blob\\': parameter 2 cannot convert to dictionary.')\n    }\n\n    if (options === null) options = {}\n\n    const encoder = new TextEncoder()\n    for (const element of blobParts) {\n      let part\n      if (ArrayBuffer.isView(element)) {\n        part = new Uint8Array(element.buffer.slice(element.byteOffset, element.byteOffset + element.byteLength))\n      } else if (element instanceof ArrayBuffer) {\n        part = new Uint8Array(element.slice(0))\n      } else if (element instanceof Blob) {\n        part = element\n      } else {\n        part = encoder.encode(`${element}`)\n      }\n\n      this.#size += ArrayBuffer.isView(part) ? part.byteLength : part.size\n      this.#parts.push(part)\n    }\n\n    this.#endings = `${options.endings === undefined ? 'transparent' : options.endings}`\n    const type = options.type === undefined ? '' : String(options.type)\n    this.#type = /^[\\x20-\\x7E]*$/.test(type) ? type : ''\n  }\n\n  /**\n   * The Blob interface's size property returns the\n   * size of the Blob in bytes.\n   */\n  get size () {\n    return this.#size\n  }\n\n  /**\n   * The type property of a Blob object returns the MIME type of the file.\n   */\n  get type () {\n    return this.#type\n  }\n\n  /**\n   * The text() method in the Blob interface returns a Promise\n   * that resolves with a string containing the contents of\n   * the blob, interpreted as UTF-8.\n   *\n   * @return {Promise<string>}\n   */\n  async text () {\n    // More optimized than using this.arrayBuffer()\n    // that requires twice as much ram\n    const decoder = new TextDecoder()\n    let str = ''\n    for await (const part of toIterator(this.#parts, false)) {\n      str += decoder.decode(part, { stream: true })\n    }\n    // Remaining\n    str += decoder.decode()\n    return str\n  }\n\n  /**\n   * The arrayBuffer() method in the Blob interface returns a\n   * Promise that resolves with the contents of the blob as\n   * binary data contained in an ArrayBuffer.\n   *\n   * @return {Promise<ArrayBuffer>}\n   */\n  async arrayBuffer () {\n    // Easier way... Just a unnecessary overhead\n    // const view = new Uint8Array(this.size);\n    // await this.stream().getReader({mode: 'byob'}).read(view);\n    // return view.buffer;\n\n    const data = new Uint8Array(this.size)\n    let offset = 0\n    for await (const chunk of toIterator(this.#parts, false)) {\n      data.set(chunk, offset)\n      offset += chunk.length\n    }\n\n    return data.buffer\n  }\n\n  stream () {\n    const it = toIterator(this.#parts, true)\n\n    return new globalThis.ReadableStream({\n      // @ts-ignore\n      type: 'bytes',\n      async pull (ctrl) {\n        const chunk = await it.next()\n        chunk.done ? ctrl.close() : ctrl.enqueue(chunk.value)\n      },\n\n      async cancel () {\n        await it.return()\n      }\n    })\n  }\n\n  /**\n   * The Blob interface's slice() method creates and returns a\n   * new Blob object which contains data from a subset of the\n   * blob on which it's called.\n   *\n   * @param {number} [start]\n   * @param {number} [end]\n   * @param {string} [type]\n   */\n  slice (start = 0, end = this.size, type = '') {\n    const { size } = this\n\n    let relativeStart = start < 0 ? Math.max(size + start, 0) : Math.min(start, size)\n    let relativeEnd = end < 0 ? Math.max(size + end, 0) : Math.min(end, size)\n\n    const span = Math.max(relativeEnd - relativeStart, 0)\n    const parts = this.#parts\n    const blobParts = []\n    let added = 0\n\n    for (const part of parts) {\n      // don't add the overflow to new blobParts\n      if (added >= span) {\n        break\n      }\n\n      const size = ArrayBuffer.isView(part) ? part.byteLength : part.size\n      if (relativeStart && size <= relativeStart) {\n        // Skip the beginning and change the relative\n        // start & end position as we skip the unwanted parts\n        relativeStart -= size\n        relativeEnd -= size\n      } else {\n        let chunk\n        if (ArrayBuffer.isView(part)) {\n          chunk = part.subarray(relativeStart, Math.min(size, relativeEnd))\n          added += chunk.byteLength\n        } else {\n          chunk = part.slice(relativeStart, Math.min(size, relativeEnd))\n          added += chunk.size\n        }\n        relativeEnd -= size\n        blobParts.push(chunk)\n        relativeStart = 0 // All next sequential parts should start at 0\n      }\n    }\n\n    const blob = new Blob([], { type: String(type).toLowerCase() })\n    blob.#size = span\n    blob.#parts = blobParts\n\n    return blob\n  }\n\n  get [Symbol.toStringTag] () {\n    return 'Blob'\n  }\n\n  static [Symbol.hasInstance] (object) {\n    return (\n      object &&\n      typeof object === 'object' &&\n      typeof object.constructor === 'function' &&\n      (\n        typeof object.stream === 'function' ||\n        typeof object.arrayBuffer === 'function'\n      ) &&\n      /^(Blob|File)$/.test(object[Symbol.toStringTag])\n    )\n  }\n}\n\nObject.defineProperties(_Blob.prototype, {\n  size: { enumerable: true },\n  type: { enumerable: true },\n  slice: { enumerable: true }\n})\n\n/** @type {typeof globalThis.Blob} */\nexport const Blob = _Blob\nexport default Blob\n","import Blob from './index.js'\n\nconst _File = class File extends Blob {\n  #lastModified = 0\n  #name = ''\n\n  /**\n   * @param {*[]} fileBits\n   * @param {string} fileName\n   * @param {{lastModified?: number, type?: string}} options\n   */// @ts-ignore\n  constructor (fileBits, fileName, options = {}) {\n    if (arguments.length < 2) {\n      throw new TypeError(`Failed to construct 'File': 2 arguments required, but only ${arguments.length} present.`)\n    }\n    super(fileBits, options)\n\n    if (options === null) options = {}\n\n    // Simulate WebIDL type casting for NaN value in lastModified option.\n    const lastModified = options.lastModified === undefined ? Date.now() : Number(options.lastModified)\n    if (!Number.isNaN(lastModified)) {\n      this.#lastModified = lastModified\n    }\n\n    this.#name = String(fileName)\n  }\n\n  get name () {\n    return this.#name\n  }\n\n  get lastModified () {\n    return this.#lastModified\n  }\n\n  get [Symbol.toStringTag] () {\n    return 'File'\n  }\n\n  static [Symbol.hasInstance] (object) {\n    return !!object && object instanceof Blob &&\n      /^(File)$/.test(object[Symbol.toStringTag])\n  }\n}\n\n/** @type {typeof globalThis.File} */// @ts-ignore\nexport const File = _File\nexport default File\n","/*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nimport C from 'fetch-blob'\nimport F from 'fetch-blob/file.js'\n\nvar {toStringTag:t,iterator:i,hasInstance:h}=Symbol,\nr=Math.random,\nm='append,set,get,getAll,delete,keys,values,entries,forEach,constructor'.split(','),\nf=(a,b,c)=>(a+='',/^(Blob|File)$/.test(b && b[t])?[(c=c!==void 0?c+'':b[t]=='File'?b.name:'blob',a),b.name!==c||b[t]=='blob'?new F([b],c,b):b]:[a,b+'']),\ne=(c,f)=>(f?c:c.replace(/\\r?\\n|\\r/g,'\\r\\n')).replace(/\\n/g,'%0A').replace(/\\r/g,'%0D').replace(/\"/g,'%22'),\nx=(n, a, e)=>{if(a.length<e){throw new TypeError(`Failed to execute '${n}' on 'FormData': ${e} arguments required, but only ${a.length} present.`)}}\n\nexport const File = F\n\n/** @type {typeof globalThis.FormData} */\nexport const FormData = class FormData {\n#d=[];\nconstructor(...a){if(a.length)throw new TypeError(`Failed to construct 'FormData': parameter 1 is not of type 'HTMLFormElement'.`)}\nget [t]() {return 'FormData'}\n[i](){return this.entries()}\nstatic [h](o) {return o&&typeof o==='object'&&o[t]==='FormData'&&!m.some(m=>typeof o[m]!='function')}\nappend(...a){x('append',arguments,2);this.#d.push(f(...a))}\ndelete(a){x('delete',arguments,1);a+='';this.#d=this.#d.filter(([b])=>b!==a)}\nget(a){x('get',arguments,1);a+='';for(var b=this.#d,l=b.length,c=0;c<l;c++)if(b[c][0]===a)return b[c][1];return null}\ngetAll(a,b){x('getAll',arguments,1);b=[];a+='';this.#d.forEach(c=>c[0]===a&&b.push(c[1]));return b}\nhas(a){x('has',arguments,1);a+='';return this.#d.some(b=>b[0]===a)}\nforEach(a,b){x('forEach',arguments,1);for(var [c,d]of this)a.call(b,d,c,this)}\nset(...a){x('set',arguments,2);var b=[],c=!0;a=f(...a);this.#d.forEach(d=>{d[0]===a[0]?c&&(c=!b.push(a)):b.push(d)});c&&b.push(a);this.#d=b}\n*entries(){yield*this.#d}\n*keys(){for(var[a]of this)yield a}\n*values(){for(var[,a]of this)yield a}}\n\n/** @param {FormData} F */\nexport function formDataToBlob (F,B=C){\nvar b=`${r()}${r()}`.replace(/\\./g, '').slice(-28).padStart(32, '-'),c=[],p=`--${b}\\r\\nContent-Disposition: form-data; name=\"`\nF.forEach((v,n)=>typeof v=='string'\n?c.push(p+e(n)+`\"\\r\\n\\r\\n${v.replace(/\\r(?!\\n)|(?<!\\r)\\n/g, '\\r\\n')}\\r\\n`)\n:c.push(p+e(n)+`\"; filename=\"${e(v.name, 1)}\"\\r\\nContent-Type: ${v.type||\"application/octet-stream\"}\\r\\n\\r\\n`, v, '\\r\\n'))\nc.push(`--${b}--`)\nreturn new B(c,{type:\"multipart/form-data; boundary=\"+b})}\n","export class FetchBaseError extends Error {\n\tconstructor(message, type) {\n\t\tsuper(message);\n\t\t// Hide custom error implementation details from end-users\n\t\tError.captureStackTrace(this, this.constructor);\n\n\t\tthis.type = type;\n\t}\n\n\tget name() {\n\t\treturn this.constructor.name;\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n}\n","\nimport {FetchBaseError} from './base.js';\n\n/**\n * @typedef {{ address?: string, code: string, dest?: string, errno: number, info?: object, message: string, path?: string, port?: number, syscall: string}} SystemError\n*/\n\n/**\n * FetchError interface for operational errors\n */\nexport class FetchError extends FetchBaseError {\n\t/**\n\t * @param  {string} message -      Error message for human\n\t * @param  {string} [type] -        Error type for machine\n\t * @param  {SystemError} [systemError] - For Node.js system error\n\t */\n\tconstructor(message, type, systemError) {\n\t\tsuper(message, type);\n\t\t// When err.type is `system`, err.erroredSysCall contains system error and err.code contains system error code\n\t\tif (systemError) {\n\t\t\t// eslint-disable-next-line no-multi-assign\n\t\t\tthis.code = this.errno = systemError.code;\n\t\t\tthis.erroredSysCall = systemError.syscall;\n\t\t}\n\t}\n}\n","/**\n * Is.js\n *\n * Object type checks.\n */\n\nconst NAME = Symbol.toStringTag;\n\n/**\n * Check if `obj` is a URLSearchParams object\n * ref: https://github.com/node-fetch/node-fetch/issues/296#issuecomment-307598143\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isURLSearchParameters = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.append === 'function' &&\n\t\ttypeof object.delete === 'function' &&\n\t\ttypeof object.get === 'function' &&\n\t\ttypeof object.getAll === 'function' &&\n\t\ttypeof object.has === 'function' &&\n\t\ttypeof object.set === 'function' &&\n\t\ttypeof object.sort === 'function' &&\n\t\tobject[NAME] === 'URLSearchParams'\n\t);\n};\n\n/**\n * Check if `object` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isBlob = object => {\n\treturn (\n\t\tobject &&\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.arrayBuffer === 'function' &&\n\t\ttypeof object.type === 'string' &&\n\t\ttypeof object.stream === 'function' &&\n\t\ttypeof object.constructor === 'function' &&\n\t\t/^(Blob|File)$/.test(object[NAME])\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isAbortSignal = object => {\n\treturn (\n\t\ttypeof object === 'object' && (\n\t\t\tobject[NAME] === 'AbortSignal' ||\n\t\t\tobject[NAME] === 'EventTarget'\n\t\t)\n\t);\n};\n\n/**\n * isDomainOrSubdomain reports whether sub is a subdomain (or exact match) of\n * the parent domain.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isDomainOrSubdomain = (destination, original) => {\n\tconst orig = new URL(original).hostname;\n\tconst dest = new URL(destination).hostname;\n\n\treturn orig === dest || orig.endsWith(`.${dest}`);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isSameProtocol = (destination, original) => {\n\tconst orig = new URL(original).protocol;\n\tconst dest = new URL(destination).protocol;\n\n\treturn orig === dest;\n};\n","\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param   Stream  body  Readable stream\n * @param   Object  opts  Response options\n * @return  Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return  Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return  Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return  Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return  Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param   Mixed   instance       Response or Request instance\n * @param   String  highWaterMark  highWaterMark for both PassThrough body streams\n * @return  Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise<void>}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'node:util';\nimport http from 'node:http';\n\n/* c8 ignore next 9 */\nconst validateHeaderName = typeof http.validateHeaderName === 'function' ?\n\thttp.validateHeaderName :\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst error = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/* c8 ignore next 9 */\nconst validateHeaderValue = typeof http.validateHeaderValue === 'function' ?\n\thttp.validateHeaderValue :\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst error = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/**\n * @typedef {Headers | Record<string, string> | Iterable<readonly [string, string]> | Iterable<Iterable<string>>} HeadersInit\n */\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers.\n * These actions include retrieving, setting, adding to, and removing.\n * A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.\n * You can add to this using methods like append() (see Examples.)\n * In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n */\nexport default class Headers extends URLSearchParams {\n\t/**\n\t * Headers class\n\t *\n\t * @constructor\n\t * @param {HeadersInit} [init] - Response headers\n\t */\n\tconstructor(init) {\n\t\t// Validate and normalize init object in [name, value(s)][]\n\t\t/** @type {string[][]} */\n\t\tlet result = [];\n\t\tif (init instanceof Headers) {\n\t\t\tconst raw = init.raw();\n\t\t\tfor (const [name, values] of Object.entries(raw)) {\n\t\t\t\tresult.push(...values.map(value => [name, value]));\n\t\t\t}\n\t\t} else if (init == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\t\t// No op\n\t\t} else if (typeof init === 'object' && !types.isBoxedPrimitive(init)) {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\t\tif (method == null) {\n\t\t\t\t// Record<ByteString, ByteString>\n\t\t\t\tresult.push(...Object.entries(init));\n\t\t\t} else {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// Sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tresult = [...init]\n\t\t\t\t\t.map(pair => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t}).map(pair => {\n\t\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to construct \\'Headers\\': The provided value is not of type \\'(sequence<sequence<ByteString>> or record<ByteString, ByteString>)');\n\t\t}\n\n\t\t// Validate and lowercase\n\t\tresult =\n\t\t\tresult.length > 0 ?\n\t\t\t\tresult.map(([name, value]) => {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn [String(name).toLowerCase(), String(value)];\n\t\t\t\t}) :\n\t\t\t\tundefined;\n\n\t\tsuper(result);\n\n\t\t// Returning a Proxy that will lowercase key names, validate parameters and sort keys\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn new Proxy(this, {\n\t\t\tget(target, p, receiver) {\n\t\t\t\tswitch (p) {\n\t\t\t\t\tcase 'append':\n\t\t\t\t\tcase 'set':\n\t\t\t\t\t\treturn (name, value) => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase(),\n\t\t\t\t\t\t\t\tString(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\tcase 'has':\n\t\t\t\t\tcase 'getAll':\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'keys':\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\ttarget.sort();\n\t\t\t\t\t\t\treturn new Set(URLSearchParams.prototype.keys.call(target)).keys();\n\t\t\t\t\t\t};\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn Reflect.get(target, p, receiver);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/* c8 ignore next */\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n\n\ttoString() {\n\t\treturn Object.prototype.toString.call(this);\n\t}\n\n\tget(name) {\n\t\tconst values = this.getAll(name);\n\t\tif (values.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet value = values.join(', ');\n\t\tif (/^content-encoding$/i.test(name)) {\n\t\t\tvalue = value.toLowerCase();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield this.get(name);\n\t\t}\n\t}\n\n\t/**\n\t * @type {() => IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield [name, this.get(name)];\n\t\t}\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\t/**\n\t * Node-fetch non-spec method\n\t * returning all headers and their values as array\n\t * @returns {Record<string, string[]>}\n\t */\n\traw() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tresult[key] = this.getAll(key);\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\t/**\n\t * For better console.log(headers) and also to convert Headers into Node.js Request compatible format\n\t */\n\t[Symbol.for('nodejs.util.inspect.custom')]() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tconst values = this.getAll(key);\n\t\t\t// Http.request() only supports string as Host header.\n\t\t\t// This hack makes specifying custom Host header possible.\n\t\t\tif (key === 'host') {\n\t\t\t\tresult[key] = values[0];\n\t\t\t} else {\n\t\t\t\tresult[key] = values.length > 1 ? values : values[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n}\n\n/**\n * Re-shaping object for Web IDL tests\n * Only need to do it for overridden methods\n */\nObject.defineProperties(\n\tHeaders.prototype,\n\t['get', 'entries', 'forEach', 'values'].reduce((result, property) => {\n\t\tresult[property] = {enumerable: true};\n\t\treturn result;\n\t}, {})\n);\n\n/**\n * Create a Headers object from an http.IncomingMessage.rawHeaders, ignoring those that do\n * not conform to HTTP grammar productions.\n * @param {import('http').IncomingMessage['rawHeaders']} headers\n */\nexport function fromRawHeaders(headers = []) {\n\treturn new Headers(\n\t\theaders\n\t\t\t// Split into pairs\n\t\t\t.reduce((result, value, index, array) => {\n\t\t\t\tif (index % 2 === 0) {\n\t\t\t\t\tresult.push(array.slice(index, index + 2));\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}, [])\n\t\t\t.filter(([name, value]) => {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t} catch {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t})\n\n\t);\n}\n","const redirectStatus = new Set([301, 302, 303, 307, 308]);\n\n/**\n * Redirect code matching\n *\n * @param {number} code - Status code\n * @return {boolean}\n */\nexport const isRedirect = code => {\n\treturn redirectStatus.has(code);\n};\n","/**\n * Response.js\n *\n * Response class provides content decoding\n */\n\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType} from './body.js';\nimport {isRedirect} from './utils/is-redirect.js';\n\nconst INTERNALS = Symbol('Response internals');\n\n/**\n * Response class\n *\n * Ref: https://fetch.spec.whatwg.org/#response-class\n *\n * @param   Stream  body  Readable stream\n * @param   Object  opts  Response options\n * @return  Void\n */\nexport default class Response extends Body {\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq, no-negated-condition\n\t\tconst status = options.status != null ? options.status : 200;\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\ttype: 'default',\n\t\t\turl: options.url,\n\t\t\tstatus,\n\t\t\tstatusText: options.statusText || '',\n\t\t\theaders,\n\t\t\tcounter: options.counter,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn this[INTERNALS].type;\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS].status;\n\t}\n\n\t/**\n\t * Convenience property representing if the request ended normally\n\t */\n\tget ok() {\n\t\treturn this[INTERNALS].status >= 200 && this[INTERNALS].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget highWaterMark() {\n\t\treturn this[INTERNALS].highWaterMark;\n\t}\n\n\t/**\n\t * Clone this response\n\t *\n\t * @return  Response\n\t */\n\tclone() {\n\t\treturn new Response(clone(this, this.highWaterMark), {\n\t\t\ttype: this.type,\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected,\n\t\t\tsize: this.size,\n\t\t\thighWaterMark: this.highWaterMark\n\t\t});\n\t}\n\n\t/**\n\t * @param {string} url    The URL that the new response is to originate from.\n\t * @param {number} status An optional status code for the response (e.g., 302.)\n\t * @returns {Response}    A Response object.\n\t */\n\tstatic redirect(url, status = 302) {\n\t\tif (!isRedirect(status)) {\n\t\t\tthrow new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n\t\t}\n\n\t\treturn new Response(null, {\n\t\t\theaders: {\n\t\t\t\tlocation: new URL(url).toString()\n\t\t\t},\n\t\t\tstatus\n\t\t});\n\t}\n\n\tstatic error() {\n\t\tconst response = new Response(null, {status: 0, statusText: ''});\n\t\tresponse[INTERNALS].type = 'error';\n\t\treturn response;\n\t}\n\n\tstatic json(data = undefined, init = {}) {\n\t\tconst body = JSON.stringify(data);\n\n\t\tif (body === undefined) {\n\t\t\tthrow new TypeError('data is not JSON serializable');\n\t\t}\n\n\t\tconst headers = new Headers(init && init.headers);\n\n\t\tif (!headers.has('content-type')) {\n\t\t\theaders.set('content-type', 'application/json');\n\t\t}\n\n\t\treturn new Response(body, {\n\t\t\t...init,\n\t\t\theaders\n\t\t});\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\n\ttype: {enumerable: true},\n\turl: {enumerable: true},\n\tstatus: {enumerable: true},\n\tok: {enumerable: true},\n\tredirected: {enumerable: true},\n\tstatusText: {enumerable: true},\n\theaders: {enumerable: true},\n\tclone: {enumerable: true}\n});\n","export const getSearch = parsedURL => {\n\tif (parsedURL.search) {\n\t\treturn parsedURL.search;\n\t}\n\n\tconst lastOffset = parsedURL.href.length - 1;\n\tconst hash = parsedURL.hash || (parsedURL.href[lastOffset] === '#' ? '#' : '');\n\treturn parsedURL.href[lastOffset - hash.length] === '?' ? '?' : '';\n};\n","import {isIP} from 'node:net';\n\n/**\n * @external URL\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL|URL}\n */\n\n/**\n * @module utils/referrer\n * @private\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url|Referrer Policy §8.4. Strip url for use as a referrer}\n * @param {string} URL\n * @param {boolean} [originOnly=false]\n */\nexport function stripURLForUseAsAReferrer(url, originOnly = false) {\n\t// 1. If url is null, return no referrer.\n\tif (url == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\treturn 'no-referrer';\n\t}\n\n\turl = new URL(url);\n\n\t// 2. If url's scheme is a local scheme, then return no referrer.\n\tif (/^(about|blob|data):$/.test(url.protocol)) {\n\t\treturn 'no-referrer';\n\t}\n\n\t// 3. Set url's username to the empty string.\n\turl.username = '';\n\n\t// 4. Set url's password to null.\n\t// Note: `null` appears to be a mistake as this actually results in the password being `\"null\"`.\n\turl.password = '';\n\n\t// 5. Set url's fragment to null.\n\t// Note: `null` appears to be a mistake as this actually results in the fragment being `\"#null\"`.\n\turl.hash = '';\n\n\t// 6. If the origin-only flag is true, then:\n\tif (originOnly) {\n\t\t// 6.1. Set url's path to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the path being `\"/null\"`.\n\t\turl.pathname = '';\n\n\t\t// 6.2. Set url's query to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the query being `\"?null\"`.\n\t\turl.search = '';\n\t}\n\n\t// 7. Return url.\n\treturn url;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy|enum ReferrerPolicy}\n */\nexport const ReferrerPolicy = new Set([\n\t'',\n\t'no-referrer',\n\t'no-referrer-when-downgrade',\n\t'same-origin',\n\t'origin',\n\t'strict-origin',\n\t'origin-when-cross-origin',\n\t'strict-origin-when-cross-origin',\n\t'unsafe-url'\n]);\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy|default referrer policy}\n */\nexport const DEFAULT_REFERRER_POLICY = 'strict-origin-when-cross-origin';\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies|Referrer Policy §3. Referrer Policies}\n * @param {string} referrerPolicy\n * @returns {string} referrerPolicy\n */\nexport function validateReferrerPolicy(referrerPolicy) {\n\tif (!ReferrerPolicy.has(referrerPolicy)) {\n\t\tthrow new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);\n\t}\n\n\treturn referrerPolicy;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy|Referrer Policy §3.2. Is origin potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isOriginPotentiallyTrustworthy(url) {\n\t// 1. If origin is an opaque origin, return \"Not Trustworthy\".\n\t// Not applicable\n\n\t// 2. Assert: origin is a tuple origin.\n\t// Not for implementations\n\n\t// 3. If origin's scheme is either \"https\" or \"wss\", return \"Potentially Trustworthy\".\n\tif (/^(http|ws)s:$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 4. If origin's host component matches one of the CIDR notations 127.0.0.0/8 or ::1/128 [RFC4632], return \"Potentially Trustworthy\".\n\tconst hostIp = url.host.replace(/(^\\[)|(]$)/g, '');\n\tconst hostIPVersion = isIP(hostIp);\n\n\tif (hostIPVersion === 4 && /^127\\./.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\tif (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\t// 5. If origin's host component is \"localhost\" or falls within \".localhost\", and the user agent conforms to the name resolution rules in [let-localhost-be-localhost], return \"Potentially Trustworthy\".\n\t// We are returning FALSE here because we cannot ensure conformance to\n\t// let-localhost-be-loalhost (https://tools.ietf.org/html/draft-west-let-localhost-be-localhost)\n\tif (url.host === 'localhost' || url.host.endsWith('.localhost')) {\n\t\treturn false;\n\t}\n\n\t// 6. If origin's scheme component is file, return \"Potentially Trustworthy\".\n\tif (url.protocol === 'file:') {\n\t\treturn true;\n\t}\n\n\t// 7. If origin's scheme component is one which the user agent considers to be authenticated, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 8. If origin has been configured as a trustworthy origin, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 9. Return \"Not Trustworthy\".\n\treturn false;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy|Referrer Policy §3.3. Is url potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isUrlPotentiallyTrustworthy(url) {\n\t// 1. If url is \"about:blank\" or \"about:srcdoc\", return \"Potentially Trustworthy\".\n\tif (/^about:(blank|srcdoc)$/.test(url)) {\n\t\treturn true;\n\t}\n\n\t// 2. If url's scheme is \"data\", return \"Potentially Trustworthy\".\n\tif (url.protocol === 'data:') {\n\t\treturn true;\n\t}\n\n\t// Note: The origin of blob: and filesystem: URLs is the origin of the context in which they were\n\t// created. Therefore, blobs created in a trustworthy origin will themselves be potentially\n\t// trustworthy.\n\tif (/^(blob|filesystem):$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 3. Return the result of executing §3.2 Is origin potentially trustworthy? on url's origin.\n\treturn isOriginPotentiallyTrustworthy(url);\n}\n\n/**\n * Modifies the referrerURL to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerURLCallback\n * @param {external:URL} referrerURL\n * @returns {external:URL} modified referrerURL\n */\n\n/**\n * Modifies the referrerOrigin to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerOriginCallback\n * @param {external:URL} referrerOrigin\n * @returns {external:URL} modified referrerOrigin\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}\n * @param {Request} request\n * @param {object} o\n * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback\n * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback\n * @returns {external:URL} Request's referrer\n */\nexport function determineRequestsReferrer(request, {referrerURLCallback, referrerOriginCallback} = {}) {\n\t// There are 2 notes in the specification about invalid pre-conditions.  We return null, here, for\n\t// these cases:\n\t// > Note: If request's referrer is \"no-referrer\", Fetch will not call into this algorithm.\n\t// > Note: If request's referrer policy is the empty string, Fetch will not call into this\n\t// > algorithm.\n\tif (request.referrer === 'no-referrer' || request.referrerPolicy === '') {\n\t\treturn null;\n\t}\n\n\t// 1. Let policy be request's associated referrer policy.\n\tconst policy = request.referrerPolicy;\n\n\t// 2. Let environment be request's client.\n\t// not applicable to node.js\n\n\t// 3. Switch on request's referrer:\n\tif (request.referrer === 'about:client') {\n\t\treturn 'no-referrer';\n\t}\n\n\t// \"a URL\": Let referrerSource be request's referrer.\n\tconst referrerSource = request.referrer;\n\n\t// 4. Let request's referrerURL be the result of stripping referrerSource for use as a referrer.\n\tlet referrerURL = stripURLForUseAsAReferrer(referrerSource);\n\n\t// 5. Let referrerOrigin be the result of stripping referrerSource for use as a referrer, with the\n\t//    origin-only flag set to true.\n\tlet referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true);\n\n\t// 6. If the result of serializing referrerURL is a string whose length is greater than 4096, set\n\t//    referrerURL to referrerOrigin.\n\tif (referrerURL.toString().length > 4096) {\n\t\treferrerURL = referrerOrigin;\n\t}\n\n\t// 7. The user agent MAY alter referrerURL or referrerOrigin at this point to enforce arbitrary\n\t//    policy considerations in the interests of minimizing data leakage. For example, the user\n\t//    agent could strip the URL down to an origin, modify its host, replace it with an empty\n\t//    string, etc.\n\tif (referrerURLCallback) {\n\t\treferrerURL = referrerURLCallback(referrerURL);\n\t}\n\n\tif (referrerOriginCallback) {\n\t\treferrerOrigin = referrerOriginCallback(referrerOrigin);\n\t}\n\n\t// 8.Execute the statements corresponding to the value of policy:\n\tconst currentURL = new URL(request.url);\n\n\tswitch (policy) {\n\t\tcase 'no-referrer':\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin':\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'unsafe-url':\n\t\t\treturn referrerURL;\n\n\t\tcase 'strict-origin':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t//    potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerOrigin.\n\t\t\treturn referrerOrigin.toString();\n\n\t\tcase 'strict-origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t//    return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t//    potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 3. Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'same-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t//    return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. Return no referrer.\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t//    return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'no-referrer-when-downgrade':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t//    potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerURL.\n\t\t\treturn referrerURL;\n\n\t\tdefault:\n\t\t\tthrow new TypeError(`Invalid referrerPolicy: ${policy}`);\n\t}\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header}\n * @param {Headers} headers Response headers\n * @returns {string} policy\n */\nexport function parseReferrerPolicyFromHeader(headers) {\n\t// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy`\n\t//    and response’s header list.\n\tconst policyTokens = (headers.get('referrer-policy') || '').split(/[,\\s]+/);\n\n\t// 2. Let policy be the empty string.\n\tlet policy = '';\n\n\t// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty\n\t//    string, then set policy to token.\n\t// Note: This algorithm loops over multiple policy values to allow deployment of new policy\n\t// values with fallbacks for older user agents, as described in § 11.1 Unknown Policy Values.\n\tfor (const token of policyTokens) {\n\t\tif (token && ReferrerPolicy.has(token)) {\n\t\t\tpolicy = token;\n\t\t}\n\t}\n\n\t// 4. Return policy.\n\treturn policy;\n}\n","/**\n * Request.js\n *\n * Request class contains server only options\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport {format as formatUrl} from 'node:url';\nimport {deprecate} from 'node:util';\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType, getTotalBytes} from './body.js';\nimport {isAbortSignal} from './utils/is.js';\nimport {getSearch} from './utils/get-search.js';\nimport {\n\tvalidateReferrerPolicy, determineRequestsReferrer, DEFAULT_REFERRER_POLICY\n} from './utils/referrer.js';\n\nconst INTERNALS = Symbol('Request internals');\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param  {*} object\n * @return {boolean}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\nconst doBadDataWarn = deprecate(() => {},\n\t'.data is not a valid RequestInit property, use .body instead',\n\t'https://github.com/node-fetch/node-fetch/issues/1000 (request)');\n\n/**\n * Request class\n *\n * Ref: https://fetch.spec.whatwg.org/#request-class\n *\n * @param   Mixed   input  Url or Request instance\n * @param   Object  init   Custom options\n * @return  Void\n */\nexport default class Request extends Body {\n\tconstructor(input, init = {}) {\n\t\tlet parsedURL;\n\n\t\t// Normalize input and force URL to be encoded as UTF-8 (https://github.com/node-fetch/node-fetch/issues/245)\n\t\tif (isRequest(input)) {\n\t\t\tparsedURL = new URL(input.url);\n\t\t} else {\n\t\t\tparsedURL = new URL(input);\n\t\t\tinput = {};\n\t\t}\n\n\t\tif (parsedURL.username !== '' || parsedURL.password !== '') {\n\t\t\tthrow new TypeError(`${parsedURL} is an url with embedded credentials.`);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tif (/^(delete|get|head|options|post|put)$/i.test(method)) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tif (!isRequest(init) && 'data' in init) {\n\t\t\tdoBadDataWarn();\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif ((init.body != null || (isRequest(input) && input.body !== null)) &&\n\t\t\t(method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tconst inputBody = init.body ?\n\t\t\tinit.body :\n\t\t\t(isRequest(input) && input.body !== null ?\n\t\t\t\tclone(input) :\n\t\t\t\tnull);\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.set('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ?\n\t\t\tinput.signal :\n\t\t\tnull;\n\t\tif ('signal' in init) {\n\t\t\tsignal = init.signal;\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal or EventTarget');\n\t\t}\n\n\t\t// §5.4, Request constructor steps, step 15.1\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tlet referrer = init.referrer == null ? input.referrer : init.referrer;\n\t\tif (referrer === '') {\n\t\t\t// §5.4, Request constructor steps, step 15.2\n\t\t\treferrer = 'no-referrer';\n\t\t} else if (referrer) {\n\t\t\t// §5.4, Request constructor steps, step 15.3.1, 15.3.2\n\t\t\tconst parsedReferrer = new URL(referrer);\n\t\t\t// §5.4, Request constructor steps, step 15.3.3, 15.3.4\n\t\t\treferrer = /^about:(\\/\\/)?client$/.test(parsedReferrer) ? 'client' : parsedReferrer;\n\t\t} else {\n\t\t\treferrer = undefined;\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal,\n\t\t\treferrer\n\t\t};\n\n\t\t// Node-fetch-only options\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\n\t\t// §5.4, Request constructor steps, step 16.\n\t\t// Default is empty string per https://fetch.spec.whatwg.org/#concept-request-referrer-policy\n\t\tthis.referrerPolicy = init.referrerPolicy || input.referrerPolicy || '';\n\t}\n\n\t/** @returns {string} */\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/** @returns {string} */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/** @returns {Headers} */\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS].redirect;\n\t}\n\n\t/** @returns {AbortSignal} */\n\tget signal() {\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t// https://fetch.spec.whatwg.org/#dom-request-referrer\n\tget referrer() {\n\t\tif (this[INTERNALS].referrer === 'no-referrer') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer === 'client') {\n\t\t\treturn 'about:client';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer) {\n\t\t\treturn this[INTERNALS].referrer.toString();\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget referrerPolicy() {\n\t\treturn this[INTERNALS].referrerPolicy;\n\t}\n\n\tset referrerPolicy(referrerPolicy) {\n\t\tthis[INTERNALS].referrerPolicy = validateReferrerPolicy(referrerPolicy);\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return  Request\n\t */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Request';\n\t}\n}\n\nObject.defineProperties(Request.prototype, {\n\tmethod: {enumerable: true},\n\turl: {enumerable: true},\n\theaders: {enumerable: true},\n\tredirect: {enumerable: true},\n\tclone: {enumerable: true},\n\tsignal: {enumerable: true},\n\treferrer: {enumerable: true},\n\treferrerPolicy: {enumerable: true}\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param {Request} request - A Request instance\n * @return The options object to be passed to http.request\n */\nexport const getNodeRequestOptions = request => {\n\tconst {parsedURL} = request[INTERNALS];\n\tconst headers = new Headers(request[INTERNALS].headers);\n\n\t// Fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body === null && /^(post|put)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\n\tif (request.body !== null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\t// Set Content-Length if totalBytes is a number (that is not NaN)\n\t\tif (typeof totalBytes === 'number' && !Number.isNaN(totalBytes)) {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// 4.1. Main fetch, step 2.6\n\t// > If request's referrer policy is the empty string, then set request's referrer policy to the\n\t// > default referrer policy.\n\tif (request.referrerPolicy === '') {\n\t\trequest.referrerPolicy = DEFAULT_REFERRER_POLICY;\n\t}\n\n\t// 4.1. Main fetch, step 2.7\n\t// > If request's referrer is not \"no-referrer\", set request's referrer to the result of invoking\n\t// > determine request's referrer.\n\tif (request.referrer && request.referrer !== 'no-referrer') {\n\t\trequest[INTERNALS].referrer = determineRequestsReferrer(request);\n\t} else {\n\t\trequest[INTERNALS].referrer = 'no-referrer';\n\t}\n\n\t// 4.5. HTTP-network-or-cache fetch, step 6.9\n\t// > If httpRequest's referrer is a URL, then append `Referer`/httpRequest's referrer, serialized\n\t// >  and isomorphic encoded, to httpRequest's header list.\n\tif (request[INTERNALS].referrer instanceof URL) {\n\t\theaders.set('Referer', request.referrer);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip, deflate, br');\n\t}\n\n\tlet {agent} = request;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\tconst search = getSearch(parsedURL);\n\n\t// Pass the full URL directly to request(), but overwrite the following\n\t// options:\n\tconst options = {\n\t\t// Overwrite search to retain trailing ? (issue #776)\n\t\tpath: parsedURL.pathname + search,\n\t\t// The following options are not expressed in the URL\n\t\tmethod: request.method,\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn {\n\t\t/** @type {URL} */\n\t\tparsedURL,\n\t\toptions\n\t};\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\n","/*! node-domexception. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */\n\nif (!globalThis.DOMException) {\n  try {\n    const { MessageChannel } = require('worker_threads'),\n    port = new MessageChannel().port1,\n    ab = new ArrayBuffer()\n    port.postMessage(ab, [ab, ab])\n  } catch (err) {\n    err.constructor.name === 'DOMException' && (\n      globalThis.DOMException = err.constructor\n    )\n  }\n}\n\nmodule.exports = globalThis.DOMException\n","import { statSync, createReadStream, promises as fs } from 'node:fs'\nimport { basename } from 'node:path'\nimport DOMException from 'node-domexception'\n\nimport File from './file.js'\nimport Blob from './index.js'\n\nconst { stat } = fs\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst blobFromSync = (path, type) => fromBlob(statSync(path), path, type)\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise<Blob>}\n */\nconst blobFrom = (path, type) => stat(path).then(stat => fromBlob(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n * @returns {Promise<File>}\n */\nconst fileFrom = (path, type) => stat(path).then(stat => fromFile(stat, path, type))\n\n/**\n * @param {string} path filepath on the disk\n * @param {string} [type] mimetype to use\n */\nconst fileFromSync = (path, type) => fromFile(statSync(path), path, type)\n\n// @ts-ignore\nconst fromBlob = (stat, path, type = '') => new Blob([new BlobDataItem({\n  path,\n  size: stat.size,\n  lastModified: stat.mtimeMs,\n  start: 0\n})], { type })\n\n// @ts-ignore\nconst fromFile = (stat, path, type = '') => new File([new BlobDataItem({\n  path,\n  size: stat.size,\n  lastModified: stat.mtimeMs,\n  start: 0\n})], basename(path), { type, lastModified: stat.mtimeMs })\n\n/**\n * This is a blob backed up by a file on the disk\n * with minium requirement. Its wrapped around a Blob as a blobPart\n * so you have no direct access to this.\n *\n * @private\n */\nclass BlobDataItem {\n  #path\n  #start\n\n  constructor (options) {\n    this.#path = options.path\n    this.#start = options.start\n    this.size = options.size\n    this.lastModified = options.lastModified\n  }\n\n  /**\n   * Slicing arguments is first validated and formatted\n   * to not be out of range by Blob.prototype.slice\n   */\n  slice (start, end) {\n    return new BlobDataItem({\n      path: this.#path,\n      lastModified: this.lastModified,\n      size: end - start,\n      start: this.#start + start\n    })\n  }\n\n  async * stream () {\n    const { mtimeMs } = await stat(this.#path)\n    if (mtimeMs > this.lastModified) {\n      throw new DOMException('The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.', 'NotReadableError')\n    }\n    yield * createReadStream(this.#path, {\n      start: this.#start,\n      end: this.#start + this.size - 1\n    })\n  }\n\n  get [Symbol.toStringTag] () {\n    return 'Blob'\n  }\n}\n\nexport default blobFromSync\nexport { File, Blob, blobFrom, blobFromSync, fileFrom, fileFromSync }\n","/**\n * Index.js\n *\n * a request API compatible with window.fetch\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport http from 'node:http';\nimport https from 'node:https';\nimport zlib from 'node:zlib';\nimport Stream, {PassThrough, pipeline as pump} from 'node:stream';\nimport {Buffer} from 'node:buffer';\n\nimport dataUriToBuffer from 'data-uri-to-buffer';\n\nimport {writeToStream, clone} from './body.js';\nimport Response from './response.js';\nimport Headers, {fromRawHeaders} from './headers.js';\nimport Request, {getNodeRequestOptions} from './request.js';\nimport {FetchError} from './errors/fetch-error.js';\nimport {AbortError} from './errors/abort-error.js';\nimport {isRedirect} from './utils/is-redirect.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\nimport {isDomainOrSubdomain, isSameProtocol} from './utils/is.js';\nimport {parseReferrerPolicyFromHeader} from './utils/referrer.js';\nimport {\n\tBlob,\n\tFile,\n\tfileFromSync,\n\tfileFrom,\n\tblobFromSync,\n\tblobFrom\n} from 'fetch-blob/from.js';\n\nexport {FormData, Headers, Request, Response, FetchError, AbortError, isRedirect};\nexport {Blob, File, fileFromSync, fileFrom, blobFromSync, blobFrom};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:']);\n\n/**\n * Fetch function\n *\n * @param   {string | URL | import('./request').default} url - Absolute url or Request instance\n * @param   {*} [options_] - Fetch options\n * @return  {Promise<import('./response').default>}\n */\nexport default async function fetch(url, options_) {\n\treturn new Promise((resolve, reject) => {\n\t\t// Build request object\n\t\tconst request = new Request(url, options_);\n\t\tconst {parsedURL, options} = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(parsedURL.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${parsedURL.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (parsedURL.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url);\n\t\t\tconst response = new Response(data, {headers: {'Content-Type': data.typeFull}});\n\t\t\tresolve(response);\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrap http.request into fetch\n\t\tconst send = (parsedURL.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\tlet response = null;\n\n\t\tconst abort = () => {\n\t\t\tconst error = new AbortError('The operation was aborted.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\n\t\t\tif (!response || !response.body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = () => {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// Send request\n\t\tconst request_ = send(parsedURL.toString(), options);\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\trequest_.abort();\n\t\t\tif (signal) {\n\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t}\n\t\t};\n\n\t\trequest_.on('error', error => {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, error => {\n\t\t\tif (response && response.body) {\n\t\t\t\tresponse.body.destroy(error);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (process.version < 'v14') {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\trequest_.on('socket', s => {\n\t\t\t\tlet endedWithEventsCount;\n\t\t\t\ts.prependListener('end', () => {\n\t\t\t\t\tendedWithEventsCount = s._eventsCount;\n\t\t\t\t});\n\t\t\t\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && endedWithEventsCount < s._eventsCount && !hadError) {\n\t\t\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', response_ => {\n\t\t\trequest_.setTimeout(0);\n\t\t\tconst headers = fromRawHeaders(response_.rawHeaders);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (isRedirect(response_.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL(location, request.url);\n\t\t\t\t} catch {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// Nothing to do\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow': {\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOptions = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: clone(request),\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\tsize: request.size,\n\t\t\t\t\t\t\treferrer: request.referrer,\n\t\t\t\t\t\t\treferrerPolicy: request.referrerPolicy\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// when forwarding sensitive headers like \"Authorization\",\n\t\t\t\t\t\t// \"WWW-Authenticate\", and \"Cookie\" to untrusted targets,\n\t\t\t\t\t\t// headers will be ignored when following a redirect to a domain\n\t\t\t\t\t\t// that is not a subdomain match or exact match of the initial domain.\n\t\t\t\t\t\t// For example, a redirect from \"foo.com\" to either \"foo.com\" or \"sub.foo.com\"\n\t\t\t\t\t\t// will forward the sensitive headers, but a redirect to \"bar.com\" will not.\n\t\t\t\t\t\t// headers will also be ignored when following a redirect to a domain using\n\t\t\t\t\t\t// a different protocol. For example, a redirect from \"https://foo.com\" to \"http://foo.com\"\n\t\t\t\t\t\t// will not forward the sensitive headers\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOptions.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (response_.statusCode === 303 || ((response_.statusCode === 301 || response_.statusCode === 302) && request.method === 'POST')) {\n\t\t\t\t\t\t\trequestOptions.method = 'GET';\n\t\t\t\t\t\t\trequestOptions.body = undefined;\n\t\t\t\t\t\t\trequestOptions.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 14\n\t\t\t\t\t\tconst responseReferrerPolicy = parseReferrerPolicyFromHeader(headers);\n\t\t\t\t\t\tif (responseReferrerPolicy) {\n\t\t\t\t\t\t\trequestOptions.referrerPolicy = responseReferrerPolicy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOptions)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare response\n\t\t\tif (signal) {\n\t\t\t\tresponse_.once('end', () => {\n\t\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet body = pump(response_, new PassThrough(), error => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// see https://github.com/nodejs/node/pull/29376\n\t\t\t/* c8 ignore next 3 */\n\t\t\tif (process.version < 'v12.10') {\n\t\t\t\tresponse_.on('aborted', abortAndFinalize);\n\t\t\t}\n\n\t\t\tconst responseOptions = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: response_.statusCode,\n\t\t\t\tstatusText: response_.statusMessage,\n\t\t\t\theaders,\n\t\t\t\tsize: request.size,\n\t\t\t\tcounter: request.counter,\n\t\t\t\thighWaterMark: request.highWaterMark\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// For gzip\n\t\t\tif (codings === 'gzip' || codings === 'x-gzip') {\n\t\t\t\tbody = pump(body, zlib.createGunzip(zlibOptions), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For deflate\n\t\t\tif (codings === 'deflate' || codings === 'x-deflate') {\n\t\t\t\t// Handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = pump(response_, new PassThrough(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\traw.once('data', chunk => {\n\t\t\t\t\t// See http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflate(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.once('end', () => {\n\t\t\t\t\t// Some old IIS servers return zero-length OK deflate responses, so\n\t\t\t\t\t// 'data' is never emitted. See https://github.com/node-fetch/node-fetch/pull/903\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For br\n\t\t\tif (codings === 'br') {\n\t\t\t\tbody = pump(body, zlib.createBrotliDecompress(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, use response as-is\n\t\t\tresponse = new Response(body, responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\twriteToStream(request_, request).catch(reject);\n\t});\n}\n\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tconst LAST_CHUNK = Buffer.from('0\\r\\n\\r\\n');\n\n\tlet isChunkedTransfer = false;\n\tlet properLastChunkReceived = false;\n\tlet previousChunk;\n\n\trequest.on('response', response => {\n\t\tconst {headers} = response;\n\t\tisChunkedTransfer = headers['transfer-encoding'] === 'chunked' && !headers['content-length'];\n\t});\n\n\trequest.on('socket', socket => {\n\t\tconst onSocketClose = () => {\n\t\t\tif (isChunkedTransfer && !properLastChunkReceived) {\n\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\tconst onData = buf => {\n\t\t\tproperLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0;\n\n\t\t\t// Sometimes final 0-length chunk and end of message code are in separate packets\n\t\t\tif (!properLastChunkReceived && previousChunk) {\n\t\t\t\tproperLastChunkReceived = (\n\t\t\t\t\tBuffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&\n\t\t\t\t\tBuffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpreviousChunk = buf;\n\t\t};\n\n\t\tsocket.prependListener('close', onSocketClose);\n\t\tsocket.on('data', onData);\n\n\t\trequest.on('close', () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t});\n\t});\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"mappings":"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"}