{"version":3,"file":"lib.node.cjs","sources":["../src/errors/base.js","../src/errors/fetch-error.js","../src/utils/is.js","../src/utils/form-data.js","../src/utils/utf8.js","../src/body.js","../src/headers.js","../src/utils/is-redirect.js","../src/response.js","../src/utils/get-search.js","../src/request.js","../src/errors/abort-error.js","../src/fetch.js","../src/lib.node.js"],"sourcesContent":["'use strict';\n\nexport class FetchBaseError extends Error {\n\t/**\n\t * @param {string} message \n\t * @param {string} type \n\t */\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\n","\nimport {FetchBaseError} from './base.js';\n\n/**\n * @typedef {{\n * address?: string\n * code: string\n * dest?: string\n * errno: number\n * info?: object\n * message: string\n * path?: string\n * port?: number\n * syscall: string\n * }} 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","import Stream from \"stream\";\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 *\n * @param  {any} object\n * @return {obj is URLSearchParams}\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 *\n * @param  {*} object\n * @return {object is Blob}\n */\nexport const isBlob = (object) => {\n\treturn (\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 a spec-compliant `FormData` object\n *\n * @param {*} object\n * @return {object is FormData}\n */\nexport function isFormData(object) {\n\treturn (\n\t\ttypeof object === \"object\" &&\n\t\ttypeof object.append === \"function\" &&\n\t\ttypeof object.set === \"function\" &&\n\t\ttypeof object.get === \"function\" &&\n\t\ttypeof object.getAll === \"function\" &&\n\t\ttypeof object.delete === \"function\" &&\n\t\ttypeof object.keys === \"function\" &&\n\t\ttypeof object.values === \"function\" &&\n\t\ttypeof object.entries === \"function\" &&\n\t\ttypeof object.constructor === \"function\" &&\n\t\tobject[NAME] === \"FormData\"\n\t);\n}\n\n/**\n * Detect form data input from form-data module\n *\n * @param {any} value\n * @returns {value is Stream & {getBoundary():string, hasKnownLength():boolean, getLengthSync():number|null}}\n */\nexport const isMultipartFormDataStream = (value) => {\n\treturn (\n\t\tvalue instanceof Stream === true &&\n\t\ttypeof value.getBoundary === \"function\" &&\n\t\ttypeof value.hasKnownLength === \"function\" &&\n\t\ttypeof value.getLengthSync === \"function\"\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n *\n * @param  {any} object\n * @return {obj is AbortSignal}\n */\nexport const isAbortSignal = (object) => {\n\treturn (\n\t\ttypeof object === \"object\" &&\n\t\t(object[NAME] === \"AbortSignal\" || object[NAME] === \"EventTarget\")\n\t);\n};\n\n/**\n * Check if `value` is a ReadableStream.\n *\n * @param {*} value\n * @returns {value is ReadableStream}\n */\nexport const isReadableStream = (value) => {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\ttypeof value.getReader === \"function\" &&\n\t\ttypeof value.cancel === \"function\" &&\n\t\ttypeof value.tee === \"function\"\n\t);\n};\n\n/**\n *\n * @param {any} value\n * @returns {value is Iterable<unknown>}\n */\nexport const isIterable = (value) => value && Symbol.iterator in value;\n","import {randomBytes} from 'crypto';\nimport { iterateMultipart } from '@web3-storage/multipart-parser';\nimport { FormData, File } from '../package.js';\nimport { isBlob } from './is.js';\n\nconst carriage = '\\r\\n';\nconst dashes = '-'.repeat(2);\nconst carriageLength = Buffer.byteLength(carriage);\n\n/**\n * @param {string} boundary\n */\nconst getFooter = boundary => `${dashes}${boundary}${dashes}${carriage.repeat(2)}`;\n\n/**\n * @param {string} boundary\n * @param {string} name\n * @param {*} field\n *\n * @return {string}\n */\nfunction getHeader(boundary, name, field) {\n\tlet header = '';\n\n\theader += `${dashes}${boundary}${carriage}`;\n\theader += `Content-Disposition: form-data; name=\"${name}\"`;\n\n\tif (isBlob(field)) {\n\t\tconst { name = 'blob', type } = /** @type {Blob & {name?:string}} */ (field);\n\t\theader += `; filename=\"${name}\"${carriage}`;\n\t\theader += `Content-Type: ${type || 'application/octet-stream'}`;\n\t}\n\n\treturn `${header}${carriage.repeat(2)}`;\n}\n\n/**\n * @return {string}\n */\nexport const getBoundary = () => randomBytes(8).toString('hex');\n\n/**\n * @param {FormData} form\n * @param {string} boundary\n */\nexport async function * formDataIterator(form, boundary) {\n\tconst encoder = new TextEncoder();\n\tfor (const [name, value] of form) {\n\t\tyield encoder.encode(getHeader(boundary, name, value));\n\n\t\tif (isBlob(value)) {\n\t\t\t// @ts-ignore - we know our streams implement aysnc iteration\n\t\t\tyield * value.stream();\n\t\t} else {\n\t\t\tyield encoder.encode(value);\n\t\t}\n\n\t\tyield encoder.encode(carriage);\n\t}\n\n\tyield encoder.encode(getFooter(boundary));\n}\n\n/**\n * @param {FormData} form\n * @param {string} boundary\n */\nexport function getFormDataLength(form, boundary) {\n\tlet length = 0;\n\n\tfor (const [name, value] of form) {\n\t\tlength += Buffer.byteLength(getHeader(boundary, name, value));\n\n\t\tif (isBlob(value)) {\n\t\t\tlength += value.size;\n\t\t} else {\n\t\t\tlength += Buffer.byteLength(String(value));\n\t\t}\n\n\t\tlength += carriageLength;\n\t}\n\n\tlength += Buffer.byteLength(getFooter(boundary));\n\n\treturn length;\n}\n\n/**\n * @param {Body & {headers?:Headers}} source\n */\nexport const toFormData = async (source) => {\n  let { body, headers } = source;\n  const contentType = headers?.get('Content-Type') || ''\n\n  if (contentType.startsWith('application/x-www-form-urlencoded') && body != null) {\n\tconst form = new FormData();\n\tlet bodyText = await source.text();\n\tnew URLSearchParams(bodyText).forEach((v, k) => form.append(k, v));\n\treturn form;\n  }\n\n  const [type, boundary] = contentType.split(/\\s*;\\s*boundary=/)\n  if (type === 'multipart/form-data' && boundary != null && body != null) {\n    const form = new FormData()\n    const parts = iterateMultipart(body, boundary)\n    for await (const { name, data, filename, contentType } of parts) {\n      if (typeof filename === 'string') {\n        form.append(name, new File([data], filename, { type: contentType }))\n      } else if (typeof filename !== 'undefined') {\n        form.append(name, new File([], '', { type: contentType }))\n      } else {\n        form.append(name, new TextDecoder().decode(data), filename)\n      }\n    }\n    return form\n  } else {\n    throw new TypeError('Could not parse content as FormData.')\n  }\n}\n","import {TextEncoder, TextDecoder} from 'util';\n\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\n\n/**\n * @param {string} text\n */\nexport const encode = text => encoder.encode(text);\n\n/**\n * @param {Uint8Array} bytes\n */\nexport const decode = bytes => decoder.decode(bytes);\n","// @ts-check\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream from 'stream';\nimport {types} from 'util';\n\nimport {Blob, ReadableStream} from './package.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {formDataIterator, getBoundary, getFormDataLength, toFormData} from './utils/form-data.js';\nimport {isBlob, isURLSearchParameters, isFormData, isMultipartFormDataStream, isReadableStream} from './utils/is.js';\nimport * as utf8 from './utils/utf8.js';\nconst {readableHighWaterMark} = new Stream.Readable();\n\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n * @implements {globalThis.Body}\n */\n\nexport default class Body {\n\t/**\n\t * @param {BodyInit|Stream|null} body\n\t * @param {{size?:number}} options\n\t */\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tconst state = {\n\t\t\t/** @type {null|ReadableStream<Uint8Array>} */\n\t\t\tbody: null,\n\t\t\t/** @type {string|null} */\n\t\t\ttype: null,\n\t\t\t/** @type {number|null} */\n\t\t\tsize: null,\n\t\t\t/** @type {null|string} */\n\t\t\tboundary: null,\n\t\t\tdisturbed: false,\n\t\t\t/** @type {null|Error} */\n\t\t\terror: null\n\t\t};\n\t\t/** @private */\n\t\tthis[INTERNALS] = state;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tstate.body = null;\n\t\t\tstate.size = 0;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t// Body is a URLSearchParams\n\t\t\tconst bytes = utf8.encode(body.toString());\n\t\t\tstate.body = fromBytes(bytes);\n\t\t\tstate.size = bytes.byteLength;\n\t\t\tstate.type = 'application/x-www-form-urlencoded;charset=UTF-8';\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t\tstate.size = body.size;\n\t\t\tstate.type = body.type || null;\n\t\t\tstate.body = body.stream();\n\t\t} else if (body instanceof Uint8Array) {\n\t\t\t// Body is Buffer\n\t\t\tstate.body = fromBytes(body);\n\t\t\tstate.size = body.byteLength;\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tconst bytes = new Uint8Array(body);\n\t\t\tstate.body = fromBytes(bytes);\n\t\t\tstate.size = bytes.byteLength;\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tconst bytes = new Uint8Array(body.buffer, body.byteOffset, body.byteLength);\n\t\t\tstate.body = fromBytes(bytes);\n\t\t\tstate.size = bytes.byteLength;\n\t\t} else if (isReadableStream(body)) {\n\t\t\t// Body is stream\n\t\t\tstate.body = body;\n\t\t} else if (isFormData(body)) {\n\t\t\t// Body is an instance of formdata-node\n\t\t\tconst boundary = `NodeFetchFormDataBoundary${getBoundary()}`;\n\t\t\tstate.type = `multipart/form-data; boundary=${boundary}`;\n\t\t\tstate.size = getFormDataLength(body, boundary);\n\t\t\tstate.body = fromAsyncIterable(formDataIterator(body, boundary));\n\t\t} else if (isMultipartFormDataStream(body)) {\n\t\t\tstate.type = `multipart/form-data; boundary=${body.getBoundary()}`;\n\t\t\tstate.size = body.hasKnownLength() ? body.getLengthSync() : null;\n\t\t\tstate.body = fromStream(body);\n\t\t} else if (body instanceof Stream) {\n\t\t\tstate.body = fromStream(body);\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tconst bytes = utf8.encode(String(body));\n\t\t\tstate.type = 'text/plain;charset=UTF-8';\n\t\t\tstate.size = bytes.byteLength;\n\t\t\tstate.body = fromBytes(bytes);\n\t\t}\n\n\t\tthis.size = size;\n\n\t\t// if (body instanceof Stream) {\n\t\t// \tbody.on('error', err => {\n\t\t// \t\tconst error = err instanceof FetchBaseError ?\n\t\t// \t\t\terr :\n\t\t// \t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${err.message}`, 'system', err);\n\t\t// \t\tthis[INTERNALS].error = error;\n\t\t// \t});\n\t\t// }\n\t}\n\n\t/** @type {Headers} */\n\t/* c8 ignore next 3 */\n\tget headers() {\n\t\tthrow new TypeError(`'get headers' called on an object that does not implements interface.`)\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].body;\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<ArrayBuffer>}\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\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].type) || '';\n\t\tconst buf = await consumeBody(this);\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\treturn JSON.parse(await this.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 utf8.decode(buffer);\n\t}\n\n\t/**\n\t * @returns {Promise<FormData>}\n\t */\n\n\tasync formData() {\n\t\treturn toFormData(this)\n\t}\n}\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\tformData: {enumerable: true}\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 * @param {Body & {url?:string}} data\n * @return {Promise<Uint8Array>}\n */\nasync function consumeBody(data) {\n\tconst state = data[INTERNALS];\n\tif (state.disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tstate.disturbed = true;\n\n\tif (state.error) {\n\t\tthrow state.error;\n\t}\n\n\tconst {body} = state;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn new Uint8Array(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\t/** @type {[Uint8Array|null, Uint8Array[], number]} */\n\tconst [buffer, chunks, limit] = data.size > 0 ?\n\t\t[new Uint8Array(data.size), [], data.size] :\n\t\t[null, [], Infinity];\n\tlet offset = 0;\n\n\tconst source = streamIterator(body);\n\ttry {\n\t\tfor await (const chunk of source) {\n\t\t\tconst bytes = chunk instanceof Uint8Array ?\n\t\t\t\tchunk :\n\t\t\t\tBuffer.from(chunk);\n\n\t\t\tif (offset + bytes.byteLength > limit) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${limit}`, 'max-size');\n\t\t\t\tsource.throw(error);\n\t\t\t\tthrow error;\n\t\t\t} else if (buffer) {\n\t\t\t\tbuffer.set(bytes, offset);\n\t\t\t} else {\n\t\t\t\tchunks.push(bytes);\n\t\t\t}\n\n\t\t\toffset += bytes.byteLength;\n\t\t}\n\n\t\tif (buffer) {\n\t\t\tif (offset < buffer.byteLength) {\n\t\t\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`, 'premature-close');\n\t\t\t} else {\n\t\t\t\treturn buffer;\n\t\t\t}\n\t\t} else {\n\t\t\treturn writeBytes(new Uint8Array(offset), chunks);\n\t\t}\n\t} catch (error) {\n\t\tif (error instanceof FetchBaseError) {\n\t\t\tthrow error;\n\t\t// @ts-expect-error - we know it will have a name\n\t\t} else if (error && error.name === 'AbortError') {\n\t\t\tthrow error;\n\t\t} else {\n\t\t\tconst e = /** @type {import('./errors/fetch-error').SystemError} */(error)\n\t\t\t// Other errors, such as incorrect content-encoding\n\t\t\tthrow new FetchError(`Invalid response body while trying to fetch ${data.url}: ${e.message}`, 'system', e);\n\t\t}\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param {Body} instance       Response or Request instance\n * @return {ReadableStream<Uint8Array> | null}\n */\nexport const clone = instance => {\n\tconst {body} = instance;\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\tif (!body) {\n\t\treturn null;\n\t}\n\n\tconst [left, right] = body.tee();\n\tinstance[INTERNALS].body = left;\n\treturn right;\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 {Body} source Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = source => source[INTERNALS].type;\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 {Body} source - Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = source => source[INTERNALS].size;\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 {Body} source - Body object from the Body instance.\n * @returns {void}\n */\nexport const writeToStream = (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\tStream.Readable.from(streamIterator(body)).pipe(dest);\n\t}\n};\n\n/**\n * @template T\n * @implements {AsyncGenerator<T, void, void>}\n */\nclass StreamIterableIterator {\n\t/**\n\t * @param {ReadableStream<T>} stream\n\t */\n\tconstructor(stream) {\n\t\tthis.stream = stream;\n\t\tthis.reader = null;\n\t}\n\n\t/**\n\t * @returns {AsyncGenerator<T, void, void>}\n\t */\n\t[Symbol.asyncIterator]() {\n\t\treturn this;\n\t}\n\n\tgetReader() {\n\t\tif (this.reader) {\n\t\t\treturn this.reader;\n\t\t}\n\n\t\tconst reader = this.stream.getReader();\n\t\tthis.reader = reader;\n\t\treturn reader;\n\t}\n\n\t/**\n\t * @returns {Promise<IteratorResult<T, void>>}\n\t */\n\tnext() {\n\t\treturn /** @type {Promise<IteratorResult<T, void>>} */ (this.getReader().read());\n\t}\n\n\t/**\n\t * @returns {Promise<IteratorResult<T, void>>}\n\t */\n\tasync return() {\n\t\tif (this.reader) {\n\t\t\tawait this.reader.cancel();\n\t\t}\n\n\t\treturn {done: true, value: undefined};\n\t}\n\n\t/**\n\t * \n\t * @param {any} error \n\t * @returns {Promise<IteratorResult<T, void>>}\n\t */\n\tasync throw(error) {\n\t\tawait this.getReader().cancel(error);\n\t\treturn {done: true, value: undefined};\n\t}\n}\n\n/**\n * @template T\n * @param {ReadableStream<T>} stream\n */\nexport const streamIterator = stream => new StreamIterableIterator(stream);\n\n/**\n * @param {Uint8Array} buffer\n * @param {Uint8Array[]} chunks\n */\nconst writeBytes = (buffer, chunks) => {\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tbuffer.set(chunk, offset);\n\t\toffset += chunk.byteLength;\n\t}\n\n\treturn buffer;\n};\n\n/**\n * @param {Uint8Array} bytes\n * @returns {ReadableStream<Uint8Array>}\n */\n// @ts-ignore\nconst fromBytes = bytes => new ReadableStream({\n\tstart(controller) {\n\t\tcontroller.enqueue(bytes);\n\t\tcontroller.close();\n\t}\n});\n\n/**\n * @param {AsyncIterable<Uint8Array>} content\n * @returns {ReadableStream<Uint8Array>}\n */\nexport const fromAsyncIterable = content =>\n\t// @ts-ignore\n\tnew ReadableStream(new AsyncIterablePump(content));\n\n/**\n * @implements {UnderlyingSource<Uint8Array>}\n */\nclass AsyncIterablePump {\n\t/**\n\t * @param {AsyncIterable<Uint8Array>} source\n\t */\n\tconstructor(source) {\n\t\tthis.source = source[Symbol.asyncIterator]();\n\t}\n\n\t/**\n\t * @param {ReadableStreamController<Uint8Array>} controller\n\t */\n\tasync pull(controller) {\n\t\ttry {\n\t\t\twhile (controller.desiredSize || 0 > 0) {\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tconst next = await this.source.next();\n\t\t\t\tif (next.done) {\n\t\t\t\t\tcontroller.close();\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tcontroller.enqueue(next.value);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tcontroller.error(error);\n\t\t}\n\t}\n\n\t/**\n\t * @param {any} [reason]\n\t */\n\tcancel(reason) {\n\t\tif (reason) {\n\t\t\tif (typeof this.source.throw === 'function') {\n\t\t\t\tthis.source.throw(reason);\n\t\t\t} else if (typeof this.source.return === 'function') {\n\t\t\t\tthis.source.return();\n\t\t\t}\n\t\t} else if (typeof this.source.return === 'function') {\n\t\t\tthis.source.return();\n\t\t}\n\t}\n}\n\n/**\n * @param {Stream & {readableHighWaterMark?:number}} source\n * @returns {ReadableStream<Uint8Array>}\n */\nexport const fromStream = source => {\n\tconst pump = new StreamPump(source);\n\tconst stream = new ReadableStream(pump, pump);\n\treturn stream;\n};\n\n/**\n * @implements {UnderlyingSource<Uint8Array>}\n * @implements {QueuingStrategy<Uint8Array>}\n */\nclass StreamPump {\n\t/**\n\t * @param {Stream & {\n\t * \treadableHighWaterMark?: number\n\t * \treadable?:boolean,\n\t * \tresume?: () => void,\n\t * \tpause?: () => void\n\t * \tdestroy?: (error?:Error) => void\n\t * }} stream\n\t */\n\tconstructor(stream) {\n\t\tthis.highWaterMark = stream.readableHighWaterMark || readableHighWaterMark;\n\t\tthis.accumalatedSize = 0;\n\t\tthis.stream = stream;\n\t\tthis.enqueue = this.enqueue.bind(this);\n\t\tthis.error = this.error.bind(this);\n\t\tthis.close = this.close.bind(this);\n\t}\n\n\t/**\n\t * @param {Uint8Array} [chunk]\n\t */\n\tsize(chunk) {\n\t\treturn chunk?.byteLength || 0;\n\t}\n\n\t/**\n\t * @param {ReadableStreamController<Uint8Array>} controller\n\t */\n\tstart(controller) {\n\t\tthis.controller = controller;\n\t\tthis.stream.on('data', this.enqueue);\n\t\tthis.stream.once('error', this.error);\n\t\tthis.stream.once('end', this.close);\n\t\tthis.stream.once('close', this.close);\n\t}\n\n\tpull() {\n\t\tthis.resume();\n\t}\n\n\t/**\n\t * @param {any} [reason]\n\t */\n\tcancel(reason) {\n\t\tif (this.stream.destroy) {\n\t\t\tthis.stream.destroy(reason);\n\t\t}\n\n\t\tthis.stream.off('data', this.enqueue);\n\t\tthis.stream.off('error', this.error);\n\t\tthis.stream.off('end', this.close);\n\t\tthis.stream.off('close', this.close);\n\t}\n\n\t/**\n\t * @param {Uint8Array|string} chunk\n\t */\n\tenqueue(chunk) {\n\t\tif (this.controller) {\n\t\t\ttry {\n\t\t\t\tconst bytes = chunk instanceof Uint8Array ?\n\t\t\t\t\tchunk :\n\t\t\t\t\tBuffer.from(chunk);\n\n\t\t\t\tconst available = (this.controller.desiredSize || 0) - bytes.byteLength;\n\t\t\t\tthis.controller.enqueue(bytes);\n\t\t\t\tif (available <= 0) {\n\t\t\t\t\tthis.pause();\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tthis.controller.error(new Error('Could not create Buffer, chunk must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object'));\n\t\t\t\tthis.cancel();\n\t\t\t}\n\t\t}\n\t}\n\n\tpause() {\n\t\tif (this.stream.pause) {\n\t\t\tthis.stream.pause();\n\t\t}\n\t}\n\n\tresume() {\n\t\tif (this.stream.readable && this.stream.resume) {\n\t\t\tthis.stream.resume();\n\t\t}\n\t}\n\n\tclose() {\n\t\tif (this.controller) {\n\t\t\tthis.controller.close();\n\t\t\tdelete this.controller;\n\t\t}\n\t}\n\n\t/**\n\t * @param {Error} error \n\t */\n\terror(error) {\n\t\tif (this.controller) {\n\t\t\tthis.controller.error(error);\n\t\t\tdelete this.controller;\n\t\t}\n\t}\n}\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'util';\nimport http from 'http';\nimport { isIterable } from './utils/is.js'\n\nconst validators = /** @type {{validateHeaderName?:(name:string) => any, validateHeaderValue?:(name:string, value:string) => any}} */\n(http)\n\nconst validateHeaderName = typeof validators.validateHeaderName === 'function' ?\n\tvalidators.validateHeaderName :\n\t/**\n\t * @param {string} name \n\t */\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst err = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(err, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow err;\n\t\t}\n\t};\n\nconst validateHeaderValue = typeof validators.validateHeaderValue === 'function' ?\n\tvalidators.validateHeaderValue :\n\t/**\n\t * @param {string} name \n\t * @param {string} value \n\t */\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst err = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(err, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow err;\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 * @implements {globalThis.Headers}\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 (isIterable(init)) {\n\t\t\t// Sequence<sequence<ByteString>>\n\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\tresult = [...init]\n\t\t\t\t.map(pair => {\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [...pair];\n\t\t\t\t}).map(pair => {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [...pair];\n\t\t\t\t});\n\t\t} else if (typeof init === \"object\" && init !== null) {\n\t\t\t// Record<ByteString, ByteString>\n\t\t\tresult.push(...Object.entries(init));\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\t[];\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\t/**\n\t\t\t\t\t\t * @param {string} name\n\t\t\t\t\t\t * @param {string} value\n\t\t\t\t\t\t */\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\treceiver,\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\t/**\n\t\t\t\t\t\t * @param {string} name\n\t\t\t\t\t\t */\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\treceiver,\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\t/* c8 ignore next */\n\t\t});\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\t/**\n\t * \n\t * @param {string} name \n\t */\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\t/**\n\t * @param {(value: string, key: string, parent: this) => void} callback \n\t * @param {any} thisArg \n\t * @returns {void}\n\t */\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tif (name.toLowerCase() === 'set-cookie') {\n\t\t\t\tlet cookies = this.getAll(name);\n\t\t\t\twhile (cookies.length > 0) {\n\t\t\t\t\tReflect.apply(callback, thisArg, [cookies.shift(), name, this])\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @returns {IterableIterator<string>}\n\t */\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tif (name.toLowerCase() === 'set-cookie') {\n\t\t\t\tlet cookies = this.getAll(name);\n\t\t\t\twhile (cookies.length > 0) {\n\t\t\t\t\tyield /** @type {string} */(cookies.shift());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tyield /** @type {string} */(this.get(name));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @returns {IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tif (name.toLowerCase() === 'set-cookie') {\n\t\t\t\tlet cookies = this.getAll(name);\n\t\t\t\twhile (cookies.length > 0) {\n\t\t\t\t\tyield [name, /** @type {string} */(cookies.shift())];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tyield [name, /** @type {string} */(this.get(name))];\n\t\t\t}\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}, /** @type {Record<string, string[]>} */({}));\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}, /** @type {Record<string, string|string[]>} */({}));\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}, /** @type {Record<string, {enumerable:true}>} */ ({}))\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}, /** @type {string[][]} */([]))\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 * @typedef {Object} Ext\n * @property {number} [size]\n * @property {string} [url]\n * @property {number} [counter]\n * @property {number} [highWaterMark]\n * \n * @implements {globalThis.Response}\n */\nexport default class Response extends Body {\n\t/**\n\t * @param {BodyInit|import('stream').Stream|null} [body] - Readable stream\n\t * @param {ResponseInit & Ext} [options] - Response options\n\t */\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\tconst status = options.status || 200;\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(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\t/**\n\t\t * @private\n\t\t*/\n\t\tthis[INTERNALS] = {\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 || 0,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\t/**\n\t * @type {ResponseType}\n\t */\n\tget type() {\n\t\treturn \"default\"\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\t/**\n\t * @type {Headers}\n\t */\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 * @returns {Response}\n\t */\n\tclone() {\n\t\treturn new Response(clone(this), {\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\tsize: this.size\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\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\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\n","/**\n * @param {URL} parsedURL \n * @returns {string}\n */\nexport 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","\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 'url';\nimport {AbortController as AbortControllerPolyfill} from 'abort-controller';\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';\n\nconst INTERNALS = Symbol('Request internals');\n\nconst forbiddenMethods = new Set([\"CONNECT\", \"TRACE\", \"TRACK\"]);\nconst normalizedMethods = new Set([\"DELETE\", \"GET\", \"HEAD\", \"OPTIONS\", \"POST\", \"PUT\"]);\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param  {any} object\n * @return {object is Request}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\n\n/**\n * Request class\n * @implements {globalThis.Request}\n *\n * @typedef {Object} RequestState\n * @property {string} method\n * @property {RequestRedirect} redirect\n * @property {globalThis.Headers} headers\n * @property {RequestCredentials} credentials\n * @property {URL} parsedURL\n * @property {AbortSignal|null} signal\n *\n * @typedef {Object} RequestExtraOptions\n * @property {number} [follow]\n * @property {boolean} [compress]\n * @property {number} [size]\n * @property {number} [counter]\n * @property {Agent} [agent]\n * @property {number} [highWaterMark]\n * @property {boolean} [insecureHTTPParser]\n *\n * @typedef {((url:URL) => import('http').Agent | import('https').Agent) | import('http').Agent | import('https').Agent} Agent\n *\n * @typedef {Object} RequestOptions\n * @property {string} [method]\n * @property {ReadableStream<Uint8Array>|null} [body]\n * @property {globalThis.Headers} [headers]\n * @property {RequestRedirect} [redirect]\n *\n */\nexport default class Request extends Body {\n\t/**\n\t * @param {string|Request|URL} info  Url or Request instance\n\t * @param {RequestInit & RequestExtraOptions} init   Custom options\n\t */\n\tconstructor(info, init = {}) {\n\t\tlet parsedURL;\n\t\t/** @type {RequestOptions & RequestExtraOptions} */\n\t\tlet settings\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(info)) {\n\t\t\tparsedURL = new URL(info.url);\n\t\t\tsettings = (info)\n\t\t} else {\n\t\t\tparsedURL = new URL(info);\n\t\t\tsettings = {};\n\t\t}\n\n\n\n\t\t// Normalize method: https://fetch.spec.whatwg.org/#methods\n\t\tlet method = init.method || settings.method || 'GET';\n\t\tif (forbiddenMethods.has(method.toUpperCase())) {\n\t\t\tthrow new TypeError(`Failed to construct 'Request': '${method}' HTTP method is unsupported.`)\n\t\t} else if (normalizedMethods.has(method.toUpperCase())) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tconst inputBody = init.body != null\n\t\t\t? init.body\n\t\t\t: (isRequest(info) && info.body !== null)\n\t\t\t? clone(info)\n\t\t\t: null;\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (inputBody != null && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || settings.size || 0\n\t\t});\n\t\tconst input = settings\n\n\n\t\tconst headers = /** @type {globalThis.Headers} */\n\t\t\t(new Headers(init.headers || input.headers || {}));\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(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\tlet signal = 'signal' in init\n\t\t\t? init.signal\n\t\t\t: isRequest(input)\n\t\t\t? input.signal\n\t\t\t: null;\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\t\t\n\t\tif (!signal) {\n\t\t\tlet AbortControllerConstructor = typeof AbortController != \"undefined\"\n\t\t\t? AbortController\n\t\t\t: AbortControllerPolyfill;\n\t\t\t/** @type {any} */\n\t\t\tlet newSignal = new AbortControllerConstructor().signal;\n\t\t\tsignal = newSignal;\n\t\t}\n\n\t\t/** @type {RequestState} */\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tcredentials: init.credentials || 'same-origin',\n\t\t\tparsedURL,\n\t\t\tsignal: signal || null\n\t\t};\n\n\t\t/** @type {boolean} */\n\t\tthis.keepalive\n\n\t\t// Node-fetch-only options\n\t\t/** @type {number} */\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\t/** @type {boolean} */\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\t/** @type {number} */\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\t/** @type {Agent|undefined} */\n\t\tthis.agent = init.agent || input.agent;\n\t\t/** @type {number} */\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\t/** @type {boolean} */\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\t}\n\n\t/**\n\t * @type {RequestCache}\n\t */\n\tget cache() {\n\t\treturn \"default\"\n\t}\n\n\t/**\n\t * @type {RequestCredentials}\n\t */\n\n\tget credentials() {\n\t\treturn this[INTERNALS].credentials\n\t}\n\n\t/**\n\t * @type {RequestDestination}\n\t */\n\tget destination() {\n\t\treturn \"\"\n\t}\n\n\tget integrity() {\n\t\treturn \"\"\n\t}\n\n\t/** @type {RequestMode} */\n\tget mode() {\n\t\treturn \"cors\"\n\t}\n\n\t/** @type {string} */\n\tget referrer() {\n\t\treturn  \"\"\n\t}\n\n\t/** @type {ReferrerPolicy} */\n\tget referrerPolicy() {\n\t\treturn \"\"\n\t}\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/**\n\t * @type {string}\n\t */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/**\n\t * @type {globalThis.Headers}\n\t */\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/**\n\t * @returns {AbortSignal}\n\t */\n\tget signal() {\n\t\t// @ts-ignore\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return  {globalThis.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});\n\n/**\n * Convert a Request to Node.js http request options.\n * The options object to be passed to http.request\n *\n * @param {Request & Record<INTERNALS, RequestState>} request -  A Request instance\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// 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\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\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// Manually spread the URL object instead of spread syntax\n\tconst requestOptions = {\n\t\tpath: parsedURL.pathname + search,\n\t\tpathname: parsedURL.pathname,\n\t\thostname: parsedURL.hostname,\n\t\tprotocol: parsedURL.protocol,\n\t\tport: parsedURL.port,\n\t\thash: parsedURL.hash,\n\t\tsearch: parsedURL.search,\n\t\t// @ts-ignore - it does not has a query\n\t\tquery: parsedURL.query,\n\t\thref: parsedURL.href,\n\t\tmethod: request.method,\n\t\t// @ts-ignore - not sure what this supposed to do\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn requestOptions;\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\t/**\n\t * @param {string} message \n\t * @param {string} [type]\n\t */\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\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 'http';\nimport https from 'https';\nimport zlib from 'zlib';\nimport fs from 'fs';\nimport * as mime from 'mrmime'\nimport dataUriToBuffer from 'data-uri-to-buffer';\nimport {Buffer} from 'buffer';\n\nimport {writeToStream, fromAsyncIterable} 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 {pipeline as pump, PassThrough} from 'stream';\nimport * as Stream from 'stream';\nimport { ReadableStream, Blob, FormData  } from './package.js';\n\n\nexport {Headers, Request, Response, ReadableStream, Blob, FormData};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:', 'file:']);\n\n/**\n * Fetch function\n *\n * @param   {string | URL | import('./request.js').default} url - Absolute url or Request instance\n * @param   {RequestInit & import('./request.js').RequestExtraOptions} [options_] - Fetch options\n * @return  {Promise<import('./response.js').default>}\n */\nasync 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 options = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(options.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${options.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (options.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url.toString());\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\tif (options.protocol === 'file:') {\n\t\t\tconst stream = fs.createReadStream(new URL(request.url))\n\t\t\tconst type = mime.lookup(request.url) || 'application/octet-stream'\n\t\t\tconst response = new Response(stream, {headers: {'Content-Type': type }});\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 = (options.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\t/** @type {Response|null} */\n\t\tlet response = null;\n\t\t/** @type {import('http').IncomingMessage|null} */\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) {\n\t\t\t\trequest.body.cancel(error);\n\t\t\t}\n\n\t\t\tif (!response_) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse_.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(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', err => {\n\t\t\t// @ts-expect-error - err may not be SystemError\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, err => {\n\t\t\tif (signal && signal.aborted) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tresponse_?.emit(\"error\", err);\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (parseInt(process.version.substring(1)) < 14) {\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\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if a data listener is still present we didn't end cleanly\n\t\t\t\t\tconst hasDataListener = s.listenerCount('data') > 0\n\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 && hasDataListener && !hadError && !(signal && signal.aborted)) {\n\t\t\t\t\t\tconst err = Object.assign(new Error('Premature close'), {\n\t\t\t\t\t\t\tcode: 'ERR_STREAM_PREMATURE_CLOSE'\n\t\t\t\t\t\t});\n\t\t\t\t\t\tresponse_?.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', incoming => {\n\t\t\tresponse_ = incoming;\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(Number(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\tconst locationURL = location === null ? null : new URL(location, request.url);\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// Node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\theaders.set('Location', locationURL.toString());\n\t\t\t\t\t\t}\n\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\t// Note: We can not use `request.body` because send would have\n\t\t\t\t\t\t\t// consumed it already.\n\t\t\t\t\t\t\tbody: options_.body,\n\t\t\t\t\t\t\tsignal: signal,\n\t\t\t\t\t\t\tsize: request.size\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\tconst isStreamBody =\n\t\t\t\t\t\t\trequestOptions.body instanceof ReadableStream ||\n\t\t\t\t\t\t\trequestOptions.body instanceof Stream.Readable;\n\t\t\t\t\t\tif (response_.statusCode !== 303 && isStreamBody) {\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 15\n\t\t\t\t\t\tfetch(new Request(locationURL.href, requestOptions)).then(resolve, reject);\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(), reject);\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), reject);\n\t\t\t\tresponse = new Response(fromAsyncIterable(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(), reject);\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(), reject);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), reject);\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(fromAsyncIterable(body), responseOptions);\n\t\t\t\t\tresolve(response);\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(), reject);\n\t\t\t\tresponse = new Response(fromAsyncIterable(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(fromAsyncIterable(body), responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(request_, request);\n\t});\n}\n\n/**\n *\n * @param {import('http').ClientRequest} request\n * @param {(error:Error) => void} errorCallback\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\t/** @type {Buffer | undefined} */\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 = Object.assign(new Error('Premature close'), {\n\t\t\t\t\tcode: 'ERR_STREAM_PREMATURE_CLOSE'\n\t\t\t\t});\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\t/** @param {Buffer} buf */\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\tconst removeSocketListeners = () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t}\n\n\t\trequest.on('close', removeSocketListeners);\n\t\trequest.on('abort', removeSocketListeners);\n\t});\n}\n\nexport default fetch\nexport { fetch }\n","import { fetch as webFetch, Headers as WebHeaders, Request as WebRequest, Response as WebResponse } from \"./fetch.js\"\n\nexport { ReadableStream, Blob, FormData, File  } from './package.js';\n// Electron-renderer should get the browser implementation instead of node\n// Browser configuration is not enough\n\n// Marking export as a DOM File object instead of custom class.\nexport const fetch = /** @type {typeof globalThis.fetch} */\n  (typeof globalThis.fetch === \"function\" ? globalThis.fetch.bind(globalThis) : webFetch)\n\nexport const Headers = globalThis.Headers || WebHeaders\nexport const Request = globalThis.Request || WebRequest\nexport const Response = globalThis.Response || WebResponse\n\nexport default fetch\n"],"names":["randomBytes","FormData","iterateMultipart","File","TextEncoder","TextDecoder","INTERNALS","utf8.encode","types","Blob","utf8.decode","ReadableStream","Headers","Response","Request","AbortControllerPolyfill","formatUrl","fetch","pump","PassThrough","Buffer","webFetch","WebHeaders","WebRequest","WebResponse"],"mappings":"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"}