construct-hub 0.4.406 → 0.4.407

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../node_modules/@sindresorhus/is/dist/index.js", "../../../node_modules/p-cancelable/index.js", "../../../node_modules/defer-to-connect/dist/source/index.js", "../../../node_modules/@szmarczak/http-timer/dist/source/index.js", "../../../node_modules/cacheable-lookup/source/index.js", "../../../node_modules/normalize-url/index.js", "../../../node_modules/wrappy/wrappy.js", "../../../node_modules/once/once.js", "../../../node_modules/end-of-stream/index.js", "../../../node_modules/pump/index.js", "../../../node_modules/get-stream/buffer-stream.js", "../../../node_modules/get-stream/index.js", "../../../node_modules/http-cache-semantics/index.js", "../../../node_modules/lowercase-keys/index.js", "../../../node_modules/responselike/src/index.js", "../../../node_modules/clone-response/node_modules/mimic-response/index.js", "../../../node_modules/clone-response/src/index.js", "../../../node_modules/json-buffer/index.js", "../../../node_modules/keyv/src/index.js", "../../../node_modules/cacheable-request/src/index.js", "../../../node_modules/mimic-response/index.js", "../../../node_modules/decompress-response/index.js", "../../../node_modules/quick-lru/index.js", "../../../node_modules/http2-wrapper/source/agent.js", "../../../node_modules/http2-wrapper/source/incoming-message.js", "../../../node_modules/http2-wrapper/source/utils/url-to-options.js", "../../../node_modules/http2-wrapper/source/utils/proxy-events.js", "../../../node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js", "../../../node_modules/http2-wrapper/source/utils/errors.js", "../../../node_modules/http2-wrapper/source/client-request.js", "../../../node_modules/resolve-alpn/index.js", "../../../node_modules/http2-wrapper/source/utils/calculate-server-name.js", "../../../node_modules/http2-wrapper/source/auto.js", "../../../node_modules/http2-wrapper/source/index.js", "../../../node_modules/got/dist/source/core/utils/is-form-data.js", "../../../node_modules/got/dist/source/core/utils/get-body-size.js", "../../../node_modules/got/dist/source/core/utils/proxy-events.js", "../../../node_modules/got/dist/source/core/utils/unhandle.js", "../../../node_modules/got/dist/source/core/utils/timed-out.js", "../../../node_modules/got/dist/source/core/utils/url-to-options.js", "../../../node_modules/got/dist/source/core/utils/options-to-url.js", "../../../node_modules/got/dist/source/core/utils/weakable-map.js", "../../../node_modules/got/dist/source/core/utils/get-buffer.js", "../../../node_modules/got/dist/source/core/utils/dns-ip-version.js", "../../../node_modules/got/dist/source/core/utils/is-response-ok.js", "../../../node_modules/got/dist/source/utils/deprecation-warning.js", "../../../node_modules/got/dist/source/as-promise/normalize-arguments.js", "../../../node_modules/got/dist/source/core/calculate-retry-delay.js", "../../../node_modules/got/dist/source/core/index.js", "../../../node_modules/got/dist/source/as-promise/types.js", "../../../node_modules/got/dist/source/as-promise/parse-body.js", "../../../node_modules/got/dist/source/as-promise/index.js", "../../../node_modules/got/dist/source/as-promise/create-rejection.js", "../../../node_modules/got/dist/source/utils/deep-freeze.js", "../../../node_modules/got/dist/source/types.js", "../../../node_modules/got/dist/source/create.js", "../../../node_modules/got/dist/source/index.js", "../../../src/monitoring/http-get-function.lambda.ts"],
4
- "sourcesContent": ["\"use strict\";\n/// <reference lib=\"es2018\"/>\n/// <reference lib=\"dom\"/>\n/// <reference types=\"node\"/>\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst typedArrayTypeNames = [\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n];\nfunction isTypedArrayName(name) {\n return typedArrayTypeNames.includes(name);\n}\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Blob',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'FormData',\n 'URLSearchParams',\n 'HTMLElement',\n ...typedArrayTypeNames\n];\nfunction isObjectTypeName(name) {\n return objectTypeNames.includes(name);\n}\nconst primitiveTypeNames = [\n 'null',\n 'undefined',\n 'string',\n 'number',\n 'bigint',\n 'boolean',\n 'symbol'\n];\nfunction isPrimitiveTypeName(name) {\n return primitiveTypeNames.includes(name);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isOfType(type) {\n return (value) => typeof value === type;\n}\nconst { toString } = Object.prototype;\nconst getObjectType = (value) => {\n const objectTypeName = toString.call(value).slice(8, -1);\n if (/HTML\\w+Element/.test(objectTypeName) && is.domElement(value)) {\n return 'HTMLElement';\n }\n if (isObjectTypeName(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n};\nconst isObjectOfType = (type) => (value) => getObjectType(value) === type;\nfunction is(value) {\n if (value === null) {\n return 'null';\n }\n switch (typeof value) {\n case 'undefined':\n return 'undefined';\n case 'string':\n return 'string';\n case 'number':\n return 'number';\n case 'boolean':\n return 'boolean';\n case 'function':\n return 'Function';\n case 'bigint':\n return 'bigint';\n case 'symbol':\n return 'symbol';\n default:\n }\n if (is.observable(value)) {\n return 'Observable';\n }\n if (is.array(value)) {\n return 'Array';\n }\n if (is.buffer(value)) {\n return 'Buffer';\n }\n const tagType = getObjectType(value);\n if (tagType) {\n return tagType;\n }\n if (value instanceof String || value instanceof Boolean || value instanceof Number) {\n throw new TypeError('Please don\\'t use object wrappers for primitive types');\n }\n return 'Object';\n}\nis.undefined = isOfType('undefined');\nis.string = isOfType('string');\nconst isNumberType = isOfType('number');\nis.number = (value) => isNumberType(value) && !is.nan(value);\nis.bigint = isOfType('bigint');\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.function_ = isOfType('function');\nis.null_ = (value) => value === null;\nis.class_ = (value) => is.function_(value) && value.toString().startsWith('class ');\nis.boolean = (value) => value === true || value === false;\nis.symbol = isOfType('symbol');\nis.numericString = (value) => is.string(value) && !is.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value));\nis.array = (value, assertion) => {\n if (!Array.isArray(value)) {\n return false;\n }\n if (!is.function_(assertion)) {\n return true;\n }\n return value.every(assertion);\n};\nis.buffer = (value) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = value) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.isBuffer) === null || _c === void 0 ? void 0 : _c.call(_b, value)) !== null && _d !== void 0 ? _d : false; };\nis.blob = (value) => isObjectOfType('Blob')(value);\nis.nullOrUndefined = (value) => is.null_(value) || is.undefined(value);\nis.object = (value) => !is.null_(value) && (typeof value === 'object' || is.function_(value));\nis.iterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.iterator]); };\nis.asyncIterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.asyncIterator]); };\nis.generator = (value) => { var _a, _b; return is.iterable(value) && is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.next) && is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.throw); };\nis.asyncGenerator = (value) => is.asyncIterable(value) && is.function_(value.next) && is.function_(value.throw);\nis.nativePromise = (value) => isObjectOfType('Promise')(value);\nconst hasPromiseAPI = (value) => {\n var _a, _b;\n return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.then) &&\n is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.catch);\n};\nis.promise = (value) => is.nativePromise(value) || hasPromiseAPI(value);\nis.generatorFunction = isObjectOfType('GeneratorFunction');\nis.asyncGeneratorFunction = (value) => getObjectType(value) === 'AsyncGeneratorFunction';\nis.asyncFunction = (value) => getObjectType(value) === 'AsyncFunction';\n// eslint-disable-next-line no-prototype-builtins, @typescript-eslint/ban-types\nis.boundFunction = (value) => is.function_(value) && !value.hasOwnProperty('prototype');\nis.regExp = isObjectOfType('RegExp');\nis.date = isObjectOfType('Date');\nis.error = isObjectOfType('Error');\nis.map = (value) => isObjectOfType('Map')(value);\nis.set = (value) => isObjectOfType('Set')(value);\nis.weakMap = (value) => isObjectOfType('WeakMap')(value);\nis.weakSet = (value) => isObjectOfType('WeakSet')(value);\nis.int8Array = isObjectOfType('Int8Array');\nis.uint8Array = isObjectOfType('Uint8Array');\nis.uint8ClampedArray = isObjectOfType('Uint8ClampedArray');\nis.int16Array = isObjectOfType('Int16Array');\nis.uint16Array = isObjectOfType('Uint16Array');\nis.int32Array = isObjectOfType('Int32Array');\nis.uint32Array = isObjectOfType('Uint32Array');\nis.float32Array = isObjectOfType('Float32Array');\nis.float64Array = isObjectOfType('Float64Array');\nis.bigInt64Array = isObjectOfType('BigInt64Array');\nis.bigUint64Array = isObjectOfType('BigUint64Array');\nis.arrayBuffer = isObjectOfType('ArrayBuffer');\nis.sharedArrayBuffer = isObjectOfType('SharedArrayBuffer');\nis.dataView = isObjectOfType('DataView');\nis.enumCase = (value, targetEnum) => Object.values(targetEnum).includes(value);\nis.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype;\nis.urlInstance = (value) => isObjectOfType('URL')(value);\nis.urlString = (value) => {\n if (!is.string(value)) {\n return false;\n }\n try {\n new URL(value); // eslint-disable-line no-new\n return true;\n }\n catch (_a) {\n return false;\n }\n};\n// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);`\nis.truthy = (value) => Boolean(value);\n// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);`\nis.falsy = (value) => !value;\nis.nan = (value) => Number.isNaN(value);\nis.primitive = (value) => is.null_(value) || isPrimitiveTypeName(typeof value);\nis.integer = (value) => Number.isInteger(value);\nis.safeInteger = (value) => Number.isSafeInteger(value);\nis.plainObject = (value) => {\n // From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\n if (toString.call(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.getPrototypeOf({});\n};\nis.typedArray = (value) => isTypedArrayName(getObjectType(value));\nconst isValidLength = (value) => is.safeInteger(value) && value >= 0;\nis.arrayLike = (value) => !is.nullOrUndefined(value) && !is.function_(value) && isValidLength(value.length);\nis.inRange = (value, range) => {\n if (is.number(range)) {\n return value >= Math.min(0, range) && value <= Math.max(range, 0);\n }\n if (is.array(range) && range.length === 2) {\n return value >= Math.min(...range) && value <= Math.max(...range);\n }\n throw new TypeError(`Invalid range: ${JSON.stringify(range)}`);\n};\nconst NODE_TYPE_ELEMENT = 1;\nconst DOM_PROPERTIES_TO_CHECK = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue'\n];\nis.domElement = (value) => {\n return is.object(value) &&\n value.nodeType === NODE_TYPE_ELEMENT &&\n is.string(value.nodeName) &&\n !is.plainObject(value) &&\n DOM_PROPERTIES_TO_CHECK.every(property => property in value);\n};\nis.observable = (value) => {\n var _a, _b, _c, _d;\n if (!value) {\n return false;\n }\n // eslint-disable-next-line no-use-extend-native/no-use-extend-native\n if (value === ((_b = (_a = value)[Symbol.observable]) === null || _b === void 0 ? void 0 : _b.call(_a))) {\n return true;\n }\n if (value === ((_d = (_c = value)['@@observable']) === null || _d === void 0 ? void 0 : _d.call(_c))) {\n return true;\n }\n return false;\n};\nis.nodeStream = (value) => is.object(value) && is.function_(value.pipe) && !is.observable(value);\nis.infinite = (value) => value === Infinity || value === -Infinity;\nconst isAbsoluteMod2 = (remainder) => (value) => is.integer(value) && Math.abs(value % 2) === remainder;\nis.evenInteger = isAbsoluteMod2(0);\nis.oddInteger = isAbsoluteMod2(1);\nis.emptyArray = (value) => is.array(value) && value.length === 0;\nis.nonEmptyArray = (value) => is.array(value) && value.length > 0;\nis.emptyString = (value) => is.string(value) && value.length === 0;\nconst isWhiteSpaceString = (value) => is.string(value) && !/\\S/.test(value);\nis.emptyStringOrWhitespace = (value) => is.emptyString(value) || isWhiteSpaceString(value);\n// TODO: Use `not ''` when the `not` operator is available.\nis.nonEmptyString = (value) => is.string(value) && value.length > 0;\n// TODO: Use `not ''` when the `not` operator is available.\nis.nonEmptyStringAndNotWhitespace = (value) => is.string(value) && !is.emptyStringOrWhitespace(value);\nis.emptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0;\n// TODO: Use `not` operator here to remove `Map` and `Set` from type guard:\n// - https://github.com/Microsoft/TypeScript/pull/29317\nis.nonEmptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0;\nis.emptySet = (value) => is.set(value) && value.size === 0;\nis.nonEmptySet = (value) => is.set(value) && value.size > 0;\nis.emptyMap = (value) => is.map(value) && value.size === 0;\nis.nonEmptyMap = (value) => is.map(value) && value.size > 0;\n// `PropertyKey` is any value that can be used as an object key (string, number, or symbol)\nis.propertyKey = (value) => is.any([is.string, is.number, is.symbol], value);\nis.formData = (value) => isObjectOfType('FormData')(value);\nis.urlSearchParams = (value) => isObjectOfType('URLSearchParams')(value);\nconst predicateOnArray = (method, predicate, values) => {\n if (!is.function_(predicate)) {\n throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);\n }\n if (values.length === 0) {\n throw new TypeError('Invalid number of values');\n }\n return method.call(values, predicate);\n};\nis.any = (predicate, ...values) => {\n const predicates = is.array(predicate) ? predicate : [predicate];\n return predicates.some(singlePredicate => predicateOnArray(Array.prototype.some, singlePredicate, values));\n};\nis.all = (predicate, ...values) => predicateOnArray(Array.prototype.every, predicate, values);\nconst assertType = (condition, description, value, options = {}) => {\n if (!condition) {\n const { multipleValues } = options;\n const valuesMessage = multipleValues ?\n `received values of types ${[\n ...new Set(value.map(singleValue => `\\`${is(singleValue)}\\``))\n ].join(', ')}` :\n `received value of type \\`${is(value)}\\``;\n throw new TypeError(`Expected value which is \\`${description}\\`, ${valuesMessage}.`);\n }\n};\nexports.assert = {\n // Unknowns.\n undefined: (value) => assertType(is.undefined(value), 'undefined', value),\n string: (value) => assertType(is.string(value), 'string', value),\n number: (value) => assertType(is.number(value), 'number', value),\n bigint: (value) => assertType(is.bigint(value), 'bigint', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n function_: (value) => assertType(is.function_(value), 'Function', value),\n null_: (value) => assertType(is.null_(value), 'null', value),\n class_: (value) => assertType(is.class_(value), \"Class\" /* class_ */, value),\n boolean: (value) => assertType(is.boolean(value), 'boolean', value),\n symbol: (value) => assertType(is.symbol(value), 'symbol', value),\n numericString: (value) => assertType(is.numericString(value), \"string with a number\" /* numericString */, value),\n array: (value, assertion) => {\n const assert = assertType;\n assert(is.array(value), 'Array', value);\n if (assertion) {\n value.forEach(assertion);\n }\n },\n buffer: (value) => assertType(is.buffer(value), 'Buffer', value),\n blob: (value) => assertType(is.blob(value), 'Blob', value),\n nullOrUndefined: (value) => assertType(is.nullOrUndefined(value), \"null or undefined\" /* nullOrUndefined */, value),\n object: (value) => assertType(is.object(value), 'Object', value),\n iterable: (value) => assertType(is.iterable(value), \"Iterable\" /* iterable */, value),\n asyncIterable: (value) => assertType(is.asyncIterable(value), \"AsyncIterable\" /* asyncIterable */, value),\n generator: (value) => assertType(is.generator(value), 'Generator', value),\n asyncGenerator: (value) => assertType(is.asyncGenerator(value), 'AsyncGenerator', value),\n nativePromise: (value) => assertType(is.nativePromise(value), \"native Promise\" /* nativePromise */, value),\n promise: (value) => assertType(is.promise(value), 'Promise', value),\n generatorFunction: (value) => assertType(is.generatorFunction(value), 'GeneratorFunction', value),\n asyncGeneratorFunction: (value) => assertType(is.asyncGeneratorFunction(value), 'AsyncGeneratorFunction', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n asyncFunction: (value) => assertType(is.asyncFunction(value), 'AsyncFunction', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n boundFunction: (value) => assertType(is.boundFunction(value), 'Function', value),\n regExp: (value) => assertType(is.regExp(value), 'RegExp', value),\n date: (value) => assertType(is.date(value), 'Date', value),\n error: (value) => assertType(is.error(value), 'Error', value),\n map: (value) => assertType(is.map(value), 'Map', value),\n set: (value) => assertType(is.set(value), 'Set', value),\n weakMap: (value) => assertType(is.weakMap(value), 'WeakMap', value),\n weakSet: (value) => assertType(is.weakSet(value), 'WeakSet', value),\n int8Array: (value) => assertType(is.int8Array(value), 'Int8Array', value),\n uint8Array: (value) => assertType(is.uint8Array(value), 'Uint8Array', value),\n uint8ClampedArray: (value) => assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value),\n int16Array: (value) => assertType(is.int16Array(value), 'Int16Array', value),\n uint16Array: (value) => assertType(is.uint16Array(value), 'Uint16Array', value),\n int32Array: (value) => assertType(is.int32Array(value), 'Int32Array', value),\n uint32Array: (value) => assertType(is.uint32Array(value), 'Uint32Array', value),\n float32Array: (value) => assertType(is.float32Array(value), 'Float32Array', value),\n float64Array: (value) => assertType(is.float64Array(value), 'Float64Array', value),\n bigInt64Array: (value) => assertType(is.bigInt64Array(value), 'BigInt64Array', value),\n bigUint64Array: (value) => assertType(is.bigUint64Array(value), 'BigUint64Array', value),\n arrayBuffer: (value) => assertType(is.arrayBuffer(value), 'ArrayBuffer', value),\n sharedArrayBuffer: (value) => assertType(is.sharedArrayBuffer(value), 'SharedArrayBuffer', value),\n dataView: (value) => assertType(is.dataView(value), 'DataView', value),\n enumCase: (value, targetEnum) => assertType(is.enumCase(value, targetEnum), 'EnumCase', value),\n urlInstance: (value) => assertType(is.urlInstance(value), 'URL', value),\n urlString: (value) => assertType(is.urlString(value), \"string with a URL\" /* urlString */, value),\n truthy: (value) => assertType(is.truthy(value), \"truthy\" /* truthy */, value),\n falsy: (value) => assertType(is.falsy(value), \"falsy\" /* falsy */, value),\n nan: (value) => assertType(is.nan(value), \"NaN\" /* nan */, value),\n primitive: (value) => assertType(is.primitive(value), \"primitive\" /* primitive */, value),\n integer: (value) => assertType(is.integer(value), \"integer\" /* integer */, value),\n safeInteger: (value) => assertType(is.safeInteger(value), \"integer\" /* safeInteger */, value),\n plainObject: (value) => assertType(is.plainObject(value), \"plain object\" /* plainObject */, value),\n typedArray: (value) => assertType(is.typedArray(value), \"TypedArray\" /* typedArray */, value),\n arrayLike: (value) => assertType(is.arrayLike(value), \"array-like\" /* arrayLike */, value),\n domElement: (value) => assertType(is.domElement(value), \"HTMLElement\" /* domElement */, value),\n observable: (value) => assertType(is.observable(value), 'Observable', value),\n nodeStream: (value) => assertType(is.nodeStream(value), \"Node.js Stream\" /* nodeStream */, value),\n infinite: (value) => assertType(is.infinite(value), \"infinite number\" /* infinite */, value),\n emptyArray: (value) => assertType(is.emptyArray(value), \"empty array\" /* emptyArray */, value),\n nonEmptyArray: (value) => assertType(is.nonEmptyArray(value), \"non-empty array\" /* nonEmptyArray */, value),\n emptyString: (value) => assertType(is.emptyString(value), \"empty string\" /* emptyString */, value),\n emptyStringOrWhitespace: (value) => assertType(is.emptyStringOrWhitespace(value), \"empty string or whitespace\" /* emptyStringOrWhitespace */, value),\n nonEmptyString: (value) => assertType(is.nonEmptyString(value), \"non-empty string\" /* nonEmptyString */, value),\n nonEmptyStringAndNotWhitespace: (value) => assertType(is.nonEmptyStringAndNotWhitespace(value), \"non-empty string and not whitespace\" /* nonEmptyStringAndNotWhitespace */, value),\n emptyObject: (value) => assertType(is.emptyObject(value), \"empty object\" /* emptyObject */, value),\n nonEmptyObject: (value) => assertType(is.nonEmptyObject(value), \"non-empty object\" /* nonEmptyObject */, value),\n emptySet: (value) => assertType(is.emptySet(value), \"empty set\" /* emptySet */, value),\n nonEmptySet: (value) => assertType(is.nonEmptySet(value), \"non-empty set\" /* nonEmptySet */, value),\n emptyMap: (value) => assertType(is.emptyMap(value), \"empty map\" /* emptyMap */, value),\n nonEmptyMap: (value) => assertType(is.nonEmptyMap(value), \"non-empty map\" /* nonEmptyMap */, value),\n propertyKey: (value) => assertType(is.propertyKey(value), 'PropertyKey', value),\n formData: (value) => assertType(is.formData(value), 'FormData', value),\n urlSearchParams: (value) => assertType(is.urlSearchParams(value), 'URLSearchParams', value),\n // Numbers.\n evenInteger: (value) => assertType(is.evenInteger(value), \"even integer\" /* evenInteger */, value),\n oddInteger: (value) => assertType(is.oddInteger(value), \"odd integer\" /* oddInteger */, value),\n // Two arguments.\n directInstanceOf: (instance, class_) => assertType(is.directInstanceOf(instance, class_), \"T\" /* directInstanceOf */, instance),\n inRange: (value, range) => assertType(is.inRange(value, range), \"in range\" /* inRange */, value),\n // Variadic functions.\n any: (predicate, ...values) => {\n return assertType(is.any(predicate, ...values), \"predicate returns truthy for any value\" /* any */, values, { multipleValues: true });\n },\n all: (predicate, ...values) => assertType(is.all(predicate, ...values), \"predicate returns truthy for all values\" /* all */, values, { multipleValues: true })\n};\n// Some few keywords are reserved, but we'll populate them for Node.js users\n// See https://github.com/Microsoft/TypeScript/issues/2536\nObject.defineProperties(is, {\n class: {\n value: is.class_\n },\n function: {\n value: is.function_\n },\n null: {\n value: is.null_\n }\n});\nObject.defineProperties(exports.assert, {\n class: {\n value: exports.assert.class_\n },\n function: {\n value: exports.assert.function_\n },\n null: {\n value: exports.assert.null_\n }\n});\nexports.default = is;\n// For CommonJS default export support\nmodule.exports = is;\nmodule.exports.default = is;\nmodule.exports.assert = exports.assert;\n", "'use strict';\n\nclass CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nclass PCancelable {\n\tstatic fn(userFn) {\n\t\treturn (...arguments_) => {\n\t\t\treturn new PCancelable((resolve, reject, onCancel) => {\n\t\t\t\targuments_.push(onCancel);\n\t\t\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\t\t\tuserFn(...arguments_).then(resolve, reject);\n\t\t\t});\n\t\t};\n\t}\n\n\tconstructor(executor) {\n\t\tthis._cancelHandlers = [];\n\t\tthis._isPending = true;\n\t\tthis._isCanceled = false;\n\t\tthis._rejectOnCancel = true;\n\n\t\tthis._promise = new Promise((resolve, reject) => {\n\t\t\tthis._reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (!this._isCanceled || !onCancel.shouldReject) {\n\t\t\t\t\tthis._isPending = false;\n\t\t\t\t\tresolve(value);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tthis._isPending = false;\n\t\t\t\treject(error);\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (!this._isPending) {\n\t\t\t\t\tthrow new Error('The `onCancel` handler was attached after the promise settled.');\n\t\t\t\t}\n\n\t\t\t\tthis._cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this._rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis._rejectOnCancel = boolean;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn executor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\tthen(onFulfilled, onRejected) {\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\treturn this._promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this._promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this._promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (!this._isPending || this._isCanceled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isCanceled = true;\n\n\t\tif (this._cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this._cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis._reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this._rejectOnCancel) {\n\t\t\tthis._reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this._isCanceled;\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n\nmodule.exports = PCancelable;\nmodule.exports.CancelError = CancelError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isTLSSocket(socket) {\n return socket.encrypted;\n}\nconst deferToConnect = (socket, fn) => {\n let listeners;\n if (typeof fn === 'function') {\n const connect = fn;\n listeners = { connect };\n }\n else {\n listeners = fn;\n }\n const hasConnectListener = typeof listeners.connect === 'function';\n const hasSecureConnectListener = typeof listeners.secureConnect === 'function';\n const hasCloseListener = typeof listeners.close === 'function';\n const onConnect = () => {\n if (hasConnectListener) {\n listeners.connect();\n }\n if (isTLSSocket(socket) && hasSecureConnectListener) {\n if (socket.authorized) {\n listeners.secureConnect();\n }\n else if (!socket.authorizationError) {\n socket.once('secureConnect', listeners.secureConnect);\n }\n }\n if (hasCloseListener) {\n socket.once('close', listeners.close);\n }\n };\n if (socket.writable && !socket.connecting) {\n onConnect();\n }\n else if (socket.connecting) {\n socket.once('connect', onConnect);\n }\n else if (socket.destroyed && hasCloseListener) {\n listeners.close(socket._hadError);\n }\n};\nexports.default = deferToConnect;\n// For CommonJS default export support\nmodule.exports = deferToConnect;\nmodule.exports.default = deferToConnect;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst defer_to_connect_1 = require(\"defer-to-connect\");\nconst util_1 = require(\"util\");\nconst nodejsMajorVersion = Number(process.versions.node.split('.')[0]);\nconst timer = (request) => {\n if (request.timings) {\n return request.timings;\n }\n const timings = {\n start: Date.now(),\n socket: undefined,\n lookup: undefined,\n connect: undefined,\n secureConnect: undefined,\n upload: undefined,\n response: undefined,\n end: undefined,\n error: undefined,\n abort: undefined,\n phases: {\n wait: undefined,\n dns: undefined,\n tcp: undefined,\n tls: undefined,\n request: undefined,\n firstByte: undefined,\n download: undefined,\n total: undefined\n }\n };\n request.timings = timings;\n const handleError = (origin) => {\n const emit = origin.emit.bind(origin);\n origin.emit = (event, ...args) => {\n // Catches the `error` event\n if (event === 'error') {\n timings.error = Date.now();\n timings.phases.total = timings.error - timings.start;\n origin.emit = emit;\n }\n // Saves the original behavior\n return emit(event, ...args);\n };\n };\n handleError(request);\n const onAbort = () => {\n timings.abort = Date.now();\n // Let the `end` response event be responsible for setting the total phase,\n // unless the Node.js major version is >= 13.\n if (!timings.response || nodejsMajorVersion >= 13) {\n timings.phases.total = Date.now() - timings.start;\n }\n };\n request.prependOnceListener('abort', onAbort);\n const onSocket = (socket) => {\n timings.socket = Date.now();\n timings.phases.wait = timings.socket - timings.start;\n if (util_1.types.isProxy(socket)) {\n return;\n }\n const lookupListener = () => {\n timings.lookup = Date.now();\n timings.phases.dns = timings.lookup - timings.socket;\n };\n socket.prependOnceListener('lookup', lookupListener);\n defer_to_connect_1.default(socket, {\n connect: () => {\n timings.connect = Date.now();\n if (timings.lookup === undefined) {\n socket.removeListener('lookup', lookupListener);\n timings.lookup = timings.connect;\n timings.phases.dns = timings.lookup - timings.socket;\n }\n timings.phases.tcp = timings.connect - timings.lookup;\n // This callback is called before flushing any data,\n // so we don't need to set `timings.phases.request` here.\n },\n secureConnect: () => {\n timings.secureConnect = Date.now();\n timings.phases.tls = timings.secureConnect - timings.connect;\n }\n });\n };\n if (request.socket) {\n onSocket(request.socket);\n }\n else {\n request.prependOnceListener('socket', onSocket);\n }\n const onUpload = () => {\n var _a;\n timings.upload = Date.now();\n timings.phases.request = timings.upload - ((_a = timings.secureConnect) !== null && _a !== void 0 ? _a : timings.connect);\n };\n const writableFinished = () => {\n if (typeof request.writableFinished === 'boolean') {\n return request.writableFinished;\n }\n // Node.js doesn't have `request.writableFinished` property\n return request.finished && request.outputSize === 0 && (!request.socket || request.socket.writableLength === 0);\n };\n if (writableFinished()) {\n onUpload();\n }\n else {\n request.prependOnceListener('finish', onUpload);\n }\n request.prependOnceListener('response', (response) => {\n timings.response = Date.now();\n timings.phases.firstByte = timings.response - timings.upload;\n response.timings = timings;\n handleError(response);\n response.prependOnceListener('end', () => {\n timings.end = Date.now();\n timings.phases.download = timings.end - timings.response;\n timings.phases.total = timings.end - timings.start;\n });\n response.prependOnceListener('aborted', onAbort);\n });\n return timings;\n};\nexports.default = timer;\n// For CommonJS default export support\nmodule.exports = timer;\nmodule.exports.default = timer;\n", "'use strict';\nconst {\n\tV4MAPPED,\n\tADDRCONFIG,\n\tALL,\n\tpromises: {\n\t\tResolver: AsyncResolver\n\t},\n\tlookup: dnsLookup\n} = require('dns');\nconst {promisify} = require('util');\nconst os = require('os');\n\nconst kCacheableLookupCreateConnection = Symbol('cacheableLookupCreateConnection');\nconst kCacheableLookupInstance = Symbol('cacheableLookupInstance');\nconst kExpires = Symbol('expires');\n\nconst supportsALL = typeof ALL === 'number';\n\nconst verifyAgent = agent => {\n\tif (!(agent && typeof agent.createConnection === 'function')) {\n\t\tthrow new Error('Expected an Agent instance as the first argument');\n\t}\n};\n\nconst map4to6 = entries => {\n\tfor (const entry of entries) {\n\t\tif (entry.family === 6) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tentry.address = `::ffff:${entry.address}`;\n\t\tentry.family = 6;\n\t}\n};\n\nconst getIfaceInfo = () => {\n\tlet has4 = false;\n\tlet has6 = false;\n\n\tfor (const device of Object.values(os.networkInterfaces())) {\n\t\tfor (const iface of device) {\n\t\t\tif (iface.internal) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (iface.family === 'IPv6') {\n\t\t\t\thas6 = true;\n\t\t\t} else {\n\t\t\t\thas4 = true;\n\t\t\t}\n\n\t\t\tif (has4 && has6) {\n\t\t\t\treturn {has4, has6};\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {has4, has6};\n};\n\nconst isIterable = map => {\n\treturn Symbol.iterator in map;\n};\n\nconst ttl = {ttl: true};\nconst all = {all: true};\n\nclass CacheableLookup {\n\tconstructor({\n\t\tcache = new Map(),\n\t\tmaxTtl = Infinity,\n\t\tfallbackDuration = 3600,\n\t\terrorTtl = 0.15,\n\t\tresolver = new AsyncResolver(),\n\t\tlookup = dnsLookup\n\t} = {}) {\n\t\tthis.maxTtl = maxTtl;\n\t\tthis.errorTtl = errorTtl;\n\n\t\tthis._cache = cache;\n\t\tthis._resolver = resolver;\n\t\tthis._dnsLookup = promisify(lookup);\n\n\t\tif (this._resolver instanceof AsyncResolver) {\n\t\t\tthis._resolve4 = this._resolver.resolve4.bind(this._resolver);\n\t\t\tthis._resolve6 = this._resolver.resolve6.bind(this._resolver);\n\t\t} else {\n\t\t\tthis._resolve4 = promisify(this._resolver.resolve4.bind(this._resolver));\n\t\t\tthis._resolve6 = promisify(this._resolver.resolve6.bind(this._resolver));\n\t\t}\n\n\t\tthis._iface = getIfaceInfo();\n\n\t\tthis._pending = {};\n\t\tthis._nextRemovalTime = false;\n\t\tthis._hostnamesToFallback = new Set();\n\n\t\tif (fallbackDuration < 1) {\n\t\t\tthis._fallback = false;\n\t\t} else {\n\t\t\tthis._fallback = true;\n\n\t\t\tconst interval = setInterval(() => {\n\t\t\t\tthis._hostnamesToFallback.clear();\n\t\t\t}, fallbackDuration * 1000);\n\n\t\t\t/* istanbul ignore next: There is no `interval.unref()` when running inside an Electron renderer */\n\t\t\tif (interval.unref) {\n\t\t\t\tinterval.unref();\n\t\t\t}\n\t\t}\n\n\t\tthis.lookup = this.lookup.bind(this);\n\t\tthis.lookupAsync = this.lookupAsync.bind(this);\n\t}\n\n\tset servers(servers) {\n\t\tthis.clear();\n\n\t\tthis._resolver.setServers(servers);\n\t}\n\n\tget servers() {\n\t\treturn this._resolver.getServers();\n\t}\n\n\tlookup(hostname, options, callback) {\n\t\tif (typeof options === 'function') {\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t} else if (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\tfamily: options\n\t\t\t};\n\t\t}\n\n\t\tif (!callback) {\n\t\t\tthrow new Error('Callback must be a function.');\n\t\t}\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\tthis.lookupAsync(hostname, options).then(result => {\n\t\t\tif (options.all) {\n\t\t\t\tcallback(null, result);\n\t\t\t} else {\n\t\t\t\tcallback(null, result.address, result.family, result.expires, result.ttl);\n\t\t\t}\n\t\t}, callback);\n\t}\n\n\tasync lookupAsync(hostname, options = {}) {\n\t\tif (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\tfamily: options\n\t\t\t};\n\t\t}\n\n\t\tlet cached = await this.query(hostname);\n\n\t\tif (options.family === 6) {\n\t\t\tconst filtered = cached.filter(entry => entry.family === 6);\n\n\t\t\tif (options.hints & V4MAPPED) {\n\t\t\t\tif ((supportsALL && options.hints & ALL) || filtered.length === 0) {\n\t\t\t\t\tmap4to6(cached);\n\t\t\t\t} else {\n\t\t\t\t\tcached = filtered;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcached = filtered;\n\t\t\t}\n\t\t} else if (options.family === 4) {\n\t\t\tcached = cached.filter(entry => entry.family === 4);\n\t\t}\n\n\t\tif (options.hints & ADDRCONFIG) {\n\t\t\tconst {_iface} = this;\n\t\t\tcached = cached.filter(entry => entry.family === 6 ? _iface.has6 : _iface.has4);\n\t\t}\n\n\t\tif (cached.length === 0) {\n\t\t\tconst error = new Error(`cacheableLookup ENOTFOUND ${hostname}`);\n\t\t\terror.code = 'ENOTFOUND';\n\t\t\terror.hostname = hostname;\n\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (options.all) {\n\t\t\treturn cached;\n\t\t}\n\n\t\treturn cached[0];\n\t}\n\n\tasync query(hostname) {\n\t\tlet cached = await this._cache.get(hostname);\n\n\t\tif (!cached) {\n\t\t\tconst pending = this._pending[hostname];\n\n\t\t\tif (pending) {\n\t\t\t\tcached = await pending;\n\t\t\t} else {\n\t\t\t\tconst newPromise = this.queryAndCache(hostname);\n\t\t\t\tthis._pending[hostname] = newPromise;\n\n\t\t\t\ttry {\n\t\t\t\t\tcached = await newPromise;\n\t\t\t\t} finally {\n\t\t\t\t\tdelete this._pending[hostname];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcached = cached.map(entry => {\n\t\t\treturn {...entry};\n\t\t});\n\n\t\treturn cached;\n\t}\n\n\tasync _resolve(hostname) {\n\t\tconst wrap = async promise => {\n\t\t\ttry {\n\t\t\t\treturn await promise;\n\t\t\t} catch (error) {\n\t\t\t\tif (error.code === 'ENODATA' || error.code === 'ENOTFOUND') {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t};\n\n\t\t// ANY is unsafe as it doesn't trigger new queries in the underlying server.\n\t\tconst [A, AAAA] = await Promise.all([\n\t\t\tthis._resolve4(hostname, ttl),\n\t\t\tthis._resolve6(hostname, ttl)\n\t\t].map(promise => wrap(promise)));\n\n\t\tlet aTtl = 0;\n\t\tlet aaaaTtl = 0;\n\t\tlet cacheTtl = 0;\n\n\t\tconst now = Date.now();\n\n\t\tfor (const entry of A) {\n\t\t\tentry.family = 4;\n\t\t\tentry.expires = now + (entry.ttl * 1000);\n\n\t\t\taTtl = Math.max(aTtl, entry.ttl);\n\t\t}\n\n\t\tfor (const entry of AAAA) {\n\t\t\tentry.family = 6;\n\t\t\tentry.expires = now + (entry.ttl * 1000);\n\n\t\t\taaaaTtl = Math.max(aaaaTtl, entry.ttl);\n\t\t}\n\n\t\tif (A.length > 0) {\n\t\t\tif (AAAA.length > 0) {\n\t\t\t\tcacheTtl = Math.min(aTtl, aaaaTtl);\n\t\t\t} else {\n\t\t\t\tcacheTtl = aTtl;\n\t\t\t}\n\t\t} else {\n\t\t\tcacheTtl = aaaaTtl;\n\t\t}\n\n\t\treturn {\n\t\t\tentries: [\n\t\t\t\t...A,\n\t\t\t\t...AAAA\n\t\t\t],\n\t\t\tcacheTtl\n\t\t};\n\t}\n\n\tasync _lookup(hostname) {\n\t\ttry {\n\t\t\tconst entries = await this._dnsLookup(hostname, {\n\t\t\t\tall: true\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tentries,\n\t\t\t\tcacheTtl: 0\n\t\t\t};\n\t\t} catch (_) {\n\t\t\treturn {\n\t\t\t\tentries: [],\n\t\t\t\tcacheTtl: 0\n\t\t\t};\n\t\t}\n\t}\n\n\tasync _set(hostname, data, cacheTtl) {\n\t\tif (this.maxTtl > 0 && cacheTtl > 0) {\n\t\t\tcacheTtl = Math.min(cacheTtl, this.maxTtl) * 1000;\n\t\t\tdata[kExpires] = Date.now() + cacheTtl;\n\n\t\t\ttry {\n\t\t\t\tawait this._cache.set(hostname, data, cacheTtl);\n\t\t\t} catch (error) {\n\t\t\t\tthis.lookupAsync = async () => {\n\t\t\t\t\tconst cacheError = new Error('Cache Error. Please recreate the CacheableLookup instance.');\n\t\t\t\t\tcacheError.cause = error;\n\n\t\t\t\t\tthrow cacheError;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (isIterable(this._cache)) {\n\t\t\t\tthis._tick(cacheTtl);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync queryAndCache(hostname) {\n\t\tif (this._hostnamesToFallback.has(hostname)) {\n\t\t\treturn this._dnsLookup(hostname, all);\n\t\t}\n\n\t\tlet query = await this._resolve(hostname);\n\n\t\tif (query.entries.length === 0 && this._fallback) {\n\t\t\tquery = await this._lookup(hostname);\n\n\t\t\tif (query.entries.length !== 0) {\n\t\t\t\t// Use `dns.lookup(...)` for that particular hostname\n\t\t\t\tthis._hostnamesToFallback.add(hostname);\n\t\t\t}\n\t\t}\n\n\t\tconst cacheTtl = query.entries.length === 0 ? this.errorTtl : query.cacheTtl;\n\t\tawait this._set(hostname, query.entries, cacheTtl);\n\n\t\treturn query.entries;\n\t}\n\n\t_tick(ms) {\n\t\tconst nextRemovalTime = this._nextRemovalTime;\n\n\t\tif (!nextRemovalTime || ms < nextRemovalTime) {\n\t\t\tclearTimeout(this._removalTimeout);\n\n\t\t\tthis._nextRemovalTime = ms;\n\n\t\t\tthis._removalTimeout = setTimeout(() => {\n\t\t\t\tthis._nextRemovalTime = false;\n\n\t\t\t\tlet nextExpiry = Infinity;\n\n\t\t\t\tconst now = Date.now();\n\n\t\t\t\tfor (const [hostname, entries] of this._cache) {\n\t\t\t\t\tconst expires = entries[kExpires];\n\n\t\t\t\t\tif (now >= expires) {\n\t\t\t\t\t\tthis._cache.delete(hostname);\n\t\t\t\t\t} else if (expires < nextExpiry) {\n\t\t\t\t\t\tnextExpiry = expires;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (nextExpiry !== Infinity) {\n\t\t\t\t\tthis._tick(nextExpiry - now);\n\t\t\t\t}\n\t\t\t}, ms);\n\n\t\t\t/* istanbul ignore next: There is no `timeout.unref()` when running inside an Electron renderer */\n\t\t\tif (this._removalTimeout.unref) {\n\t\t\t\tthis._removalTimeout.unref();\n\t\t\t}\n\t\t}\n\t}\n\n\tinstall(agent) {\n\t\tverifyAgent(agent);\n\n\t\tif (kCacheableLookupCreateConnection in agent) {\n\t\t\tthrow new Error('CacheableLookup has been already installed');\n\t\t}\n\n\t\tagent[kCacheableLookupCreateConnection] = agent.createConnection;\n\t\tagent[kCacheableLookupInstance] = this;\n\n\t\tagent.createConnection = (options, callback) => {\n\t\t\tif (!('lookup' in options)) {\n\t\t\t\toptions.lookup = this.lookup;\n\t\t\t}\n\n\t\t\treturn agent[kCacheableLookupCreateConnection](options, callback);\n\t\t};\n\t}\n\n\tuninstall(agent) {\n\t\tverifyAgent(agent);\n\n\t\tif (agent[kCacheableLookupCreateConnection]) {\n\t\t\tif (agent[kCacheableLookupInstance] !== this) {\n\t\t\t\tthrow new Error('The agent is not owned by this CacheableLookup instance');\n\t\t\t}\n\n\t\t\tagent.createConnection = agent[kCacheableLookupCreateConnection];\n\n\t\t\tdelete agent[kCacheableLookupCreateConnection];\n\t\t\tdelete agent[kCacheableLookupInstance];\n\t\t}\n\t}\n\n\tupdateInterfaceInfo() {\n\t\tconst {_iface} = this;\n\n\t\tthis._iface = getIfaceInfo();\n\n\t\tif ((_iface.has4 && !this._iface.has4) || (_iface.has6 && !this._iface.has6)) {\n\t\t\tthis._cache.clear();\n\t\t}\n\t}\n\n\tclear(hostname) {\n\t\tif (hostname) {\n\t\t\tthis._cache.delete(hostname);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._cache.clear();\n\t}\n}\n\nmodule.exports = CacheableLookup;\nmodule.exports.default = CacheableLookup;\n", "'use strict';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\nconst DATA_URL_DEFAULT_MIME_TYPE = 'text/plain';\nconst DATA_URL_DEFAULT_CHARSET = 'us-ascii';\n\nconst testParameter = (name, filters) => {\n\treturn filters.some(filter => filter instanceof RegExp ? filter.test(name) : filter === name);\n};\n\nconst normalizeDataURL = (urlString, {stripHash}) => {\n\tconst match = /^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(urlString);\n\n\tif (!match) {\n\t\tthrow new Error(`Invalid URL: ${urlString}`);\n\t}\n\n\tlet {type, data, hash} = match.groups;\n\tconst mediaType = type.split(';');\n\thash = stripHash ? '' : hash;\n\n\tlet isBase64 = false;\n\tif (mediaType[mediaType.length - 1] === 'base64') {\n\t\tmediaType.pop();\n\t\tisBase64 = true;\n\t}\n\n\t// Lowercase MIME type\n\tconst mimeType = (mediaType.shift() || '').toLowerCase();\n\tconst attributes = mediaType\n\t\t.map(attribute => {\n\t\t\tlet [key, value = ''] = attribute.split('=').map(string => string.trim());\n\n\t\t\t// Lowercase `charset`\n\t\t\tif (key === 'charset') {\n\t\t\t\tvalue = value.toLowerCase();\n\n\t\t\t\tif (value === DATA_URL_DEFAULT_CHARSET) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn `${key}${value ? `=${value}` : ''}`;\n\t\t})\n\t\t.filter(Boolean);\n\n\tconst normalizedMediaType = [\n\t\t...attributes\n\t];\n\n\tif (isBase64) {\n\t\tnormalizedMediaType.push('base64');\n\t}\n\n\tif (normalizedMediaType.length !== 0 || (mimeType && mimeType !== DATA_URL_DEFAULT_MIME_TYPE)) {\n\t\tnormalizedMediaType.unshift(mimeType);\n\t}\n\n\treturn `data:${normalizedMediaType.join(';')},${isBase64 ? data.trim() : data}${hash ? `#${hash}` : ''}`;\n};\n\nconst normalizeUrl = (urlString, options) => {\n\toptions = {\n\t\tdefaultProtocol: 'http:',\n\t\tnormalizeProtocol: true,\n\t\tforceHttp: false,\n\t\tforceHttps: false,\n\t\tstripAuthentication: true,\n\t\tstripHash: false,\n\t\tstripTextFragment: true,\n\t\tstripWWW: true,\n\t\tremoveQueryParameters: [/^utm_\\w+/i],\n\t\tremoveTrailingSlash: true,\n\t\tremoveSingleSlash: true,\n\t\tremoveDirectoryIndex: false,\n\t\tsortQueryParameters: true,\n\t\t...options\n\t};\n\n\turlString = urlString.trim();\n\n\t// Data URL\n\tif (/^data:/i.test(urlString)) {\n\t\treturn normalizeDataURL(urlString, options);\n\t}\n\n\tif (/^view-source:/i.test(urlString)) {\n\t\tthrow new Error('`view-source:` is not supported as it is a non-standard protocol');\n\t}\n\n\tconst hasRelativeProtocol = urlString.startsWith('//');\n\tconst isRelativeUrl = !hasRelativeProtocol && /^\\.*\\//.test(urlString);\n\n\t// Prepend protocol\n\tif (!isRelativeUrl) {\n\t\turlString = urlString.replace(/^(?!(?:\\w+:)?\\/\\/)|^\\/\\//, options.defaultProtocol);\n\t}\n\n\tconst urlObj = new URL(urlString);\n\n\tif (options.forceHttp && options.forceHttps) {\n\t\tthrow new Error('The `forceHttp` and `forceHttps` options cannot be used together');\n\t}\n\n\tif (options.forceHttp && urlObj.protocol === 'https:') {\n\t\turlObj.protocol = 'http:';\n\t}\n\n\tif (options.forceHttps && urlObj.protocol === 'http:') {\n\t\turlObj.protocol = 'https:';\n\t}\n\n\t// Remove auth\n\tif (options.stripAuthentication) {\n\t\turlObj.username = '';\n\t\turlObj.password = '';\n\t}\n\n\t// Remove hash\n\tif (options.stripHash) {\n\t\turlObj.hash = '';\n\t} else if (options.stripTextFragment) {\n\t\turlObj.hash = urlObj.hash.replace(/#?:~:text.*?$/i, '');\n\t}\n\n\t// Remove duplicate slashes if not preceded by a protocol\n\tif (urlObj.pathname) {\n\t\turlObj.pathname = urlObj.pathname.replace(/(?<!\\b(?:[a-z][a-z\\d+\\-.]{1,50}:))\\/{2,}/g, '/');\n\t}\n\n\t// Decode URI octets\n\tif (urlObj.pathname) {\n\t\ttry {\n\t\t\turlObj.pathname = decodeURI(urlObj.pathname);\n\t\t} catch (_) {}\n\t}\n\n\t// Remove directory index\n\tif (options.removeDirectoryIndex === true) {\n\t\toptions.removeDirectoryIndex = [/^index\\.[a-z]+$/];\n\t}\n\n\tif (Array.isArray(options.removeDirectoryIndex) && options.removeDirectoryIndex.length > 0) {\n\t\tlet pathComponents = urlObj.pathname.split('/');\n\t\tconst lastComponent = pathComponents[pathComponents.length - 1];\n\n\t\tif (testParameter(lastComponent, options.removeDirectoryIndex)) {\n\t\t\tpathComponents = pathComponents.slice(0, pathComponents.length - 1);\n\t\t\turlObj.pathname = pathComponents.slice(1).join('/') + '/';\n\t\t}\n\t}\n\n\tif (urlObj.hostname) {\n\t\t// Remove trailing dot\n\t\turlObj.hostname = urlObj.hostname.replace(/\\.$/, '');\n\n\t\t// Remove `www.`\n\t\tif (options.stripWWW && /^www\\.(?!www\\.)(?:[a-z\\-\\d]{1,63})\\.(?:[a-z.\\-\\d]{2,63})$/.test(urlObj.hostname)) {\n\t\t\t// Each label should be max 63 at length (min: 1).\n\t\t\t// Source: https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names\n\t\t\t// Each TLD should be up to 63 characters long (min: 2).\n\t\t\t// It is technically possible to have a single character TLD, but none currently exist.\n\t\t\turlObj.hostname = urlObj.hostname.replace(/^www\\./, '');\n\t\t}\n\t}\n\n\t// Remove query unwanted parameters\n\tif (Array.isArray(options.removeQueryParameters)) {\n\t\tfor (const key of [...urlObj.searchParams.keys()]) {\n\t\t\tif (testParameter(key, options.removeQueryParameters)) {\n\t\t\t\turlObj.searchParams.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (options.removeQueryParameters === true) {\n\t\turlObj.search = '';\n\t}\n\n\t// Sort query parameters\n\tif (options.sortQueryParameters) {\n\t\turlObj.searchParams.sort();\n\t}\n\n\tif (options.removeTrailingSlash) {\n\t\turlObj.pathname = urlObj.pathname.replace(/\\/$/, '');\n\t}\n\n\tconst oldUrlString = urlString;\n\n\t// Take advantage of many of the Node `url` normalizations\n\turlString = urlObj.toString();\n\n\tif (!options.removeSingleSlash && urlObj.pathname === '/' && !oldUrlString.endsWith('/') && urlObj.hash === '') {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Remove ending `/` unless removeSingleSlash is false\n\tif ((options.removeTrailingSlash || urlObj.pathname === '/') && urlObj.hash === '' && options.removeSingleSlash) {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Restore relative protocol, if applicable\n\tif (hasRelativeProtocol && !options.normalizeProtocol) {\n\t\turlString = urlString.replace(/^http:\\/\\//, '//');\n\t}\n\n\t// Remove http/https\n\tif (options.stripProtocol) {\n\t\turlString = urlString.replace(/^(?:https?:)?\\/\\//, '');\n\t}\n\n\treturn urlString;\n};\n\nmodule.exports = normalizeUrl;\n", "// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n", "var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n", "var once = require('once');\n\nvar noop = function() {};\n\nvar isRequest = function(stream) {\n\treturn stream.setHeader && typeof stream.abort === 'function';\n};\n\nvar isChildProcess = function(stream) {\n\treturn stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3\n};\n\nvar eos = function(stream, opts, callback) {\n\tif (typeof opts === 'function') return eos(stream, null, opts);\n\tif (!opts) opts = {};\n\n\tcallback = once(callback || noop);\n\n\tvar ws = stream._writableState;\n\tvar rs = stream._readableState;\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\n\tvar cancelled = false;\n\n\tvar onlegacyfinish = function() {\n\t\tif (!stream.writable) onfinish();\n\t};\n\n\tvar onfinish = function() {\n\t\twritable = false;\n\t\tif (!readable) callback.call(stream);\n\t};\n\n\tvar onend = function() {\n\t\treadable = false;\n\t\tif (!writable) callback.call(stream);\n\t};\n\n\tvar onexit = function(exitCode) {\n\t\tcallback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);\n\t};\n\n\tvar onerror = function(err) {\n\t\tcallback.call(stream, err);\n\t};\n\n\tvar onclose = function() {\n\t\tprocess.nextTick(onclosenexttick);\n\t};\n\n\tvar onclosenexttick = function() {\n\t\tif (cancelled) return;\n\t\tif (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));\n\t\tif (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));\n\t};\n\n\tvar onrequest = function() {\n\t\tstream.req.on('finish', onfinish);\n\t};\n\n\tif (isRequest(stream)) {\n\t\tstream.on('complete', onfinish);\n\t\tstream.on('abort', onclose);\n\t\tif (stream.req) onrequest();\n\t\telse stream.on('request', onrequest);\n\t} else if (writable && !ws) { // legacy streams\n\t\tstream.on('end', onlegacyfinish);\n\t\tstream.on('close', onlegacyfinish);\n\t}\n\n\tif (isChildProcess(stream)) stream.on('exit', onexit);\n\n\tstream.on('end', onend);\n\tstream.on('finish', onfinish);\n\tif (opts.error !== false) stream.on('error', onerror);\n\tstream.on('close', onclose);\n\n\treturn function() {\n\t\tcancelled = true;\n\t\tstream.removeListener('complete', onfinish);\n\t\tstream.removeListener('abort', onclose);\n\t\tstream.removeListener('request', onrequest);\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onlegacyfinish);\n\t\tstream.removeListener('close', onlegacyfinish);\n\t\tstream.removeListener('finish', onfinish);\n\t\tstream.removeListener('exit', onexit);\n\t\tstream.removeListener('end', onend);\n\t\tstream.removeListener('error', onerror);\n\t\tstream.removeListener('close', onclose);\n\t};\n};\n\nmodule.exports = eos;\n", "var once = require('once')\nvar eos = require('end-of-stream')\nvar fs\n\ntry {\n fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes\n} catch (e) {}\n\nvar noop = function () {}\nvar ancient = /^v?\\.0/.test(process.version)\n\nvar isFn = function (fn) {\n return typeof fn === 'function'\n}\n\nvar isFS = function (stream) {\n if (!ancient) return false // newer node version do not need to care about fs is a special way\n if (!fs) return false // browser\n return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)\n}\n\nvar isRequest = function (stream) {\n return stream.setHeader && isFn(stream.abort)\n}\n\nvar destroyer = function (stream, reading, writing, callback) {\n callback = once(callback)\n\n var closed = false\n stream.on('close', function () {\n closed = true\n })\n\n eos(stream, {readable: reading, writable: writing}, function (err) {\n if (err) return callback(err)\n closed = true\n callback()\n })\n\n var destroyed = false\n return function (err) {\n if (closed) return\n if (destroyed) return\n destroyed = true\n\n if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks\n if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want\n\n if (isFn(stream.destroy)) return stream.destroy()\n\n callback(err || new Error('stream was destroyed'))\n }\n}\n\nvar call = function (fn) {\n fn()\n}\n\nvar pipe = function (from, to) {\n return from.pipe(to)\n}\n\nvar pump = function () {\n var streams = Array.prototype.slice.call(arguments)\n var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop\n\n if (Array.isArray(streams[0])) streams = streams[0]\n if (streams.length < 2) throw new Error('pump requires two streams per minimum')\n\n var error\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1\n var writing = i > 0\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err\n if (err) destroys.forEach(call)\n if (reading) return\n destroys.forEach(call)\n callback(error)\n })\n })\n\n return streams.reduce(pipe)\n}\n\nmodule.exports = pump\n", "'use strict';\nconst {PassThrough: PassThroughStream} = require('stream');\n\nmodule.exports = options => {\n\toptions = {...options};\n\n\tconst {array} = options;\n\tlet {encoding} = options;\n\tconst isBuffer = encoding === 'buffer';\n\tlet objectMode = false;\n\n\tif (array) {\n\t\tobjectMode = !(encoding || isBuffer);\n\t} else {\n\t\tencoding = encoding || 'utf8';\n\t}\n\n\tif (isBuffer) {\n\t\tencoding = null;\n\t}\n\n\tconst stream = new PassThroughStream({objectMode});\n\n\tif (encoding) {\n\t\tstream.setEncoding(encoding);\n\t}\n\n\tlet length = 0;\n\tconst chunks = [];\n\n\tstream.on('data', chunk => {\n\t\tchunks.push(chunk);\n\n\t\tif (objectMode) {\n\t\t\tlength = chunks.length;\n\t\t} else {\n\t\t\tlength += chunk.length;\n\t\t}\n\t});\n\n\tstream.getBufferedValue = () => {\n\t\tif (array) {\n\t\t\treturn chunks;\n\t\t}\n\n\t\treturn isBuffer ? Buffer.concat(chunks, length) : chunks.join('');\n\t};\n\n\tstream.getBufferedLength = () => length;\n\n\treturn stream;\n};\n", "'use strict';\nconst {constants: BufferConstants} = require('buffer');\nconst pump = require('pump');\nconst bufferStream = require('./buffer-stream');\n\nclass MaxBufferError extends Error {\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t\tthis.name = 'MaxBufferError';\n\t}\n}\n\nasync function getStream(inputStream, options) {\n\tif (!inputStream) {\n\t\treturn Promise.reject(new Error('Expected a stream'));\n\t}\n\n\toptions = {\n\t\tmaxBuffer: Infinity,\n\t\t...options\n\t};\n\n\tconst {maxBuffer} = options;\n\n\tlet stream;\n\tawait new Promise((resolve, reject) => {\n\t\tconst rejectPromise = error => {\n\t\t\t// Don't retrieve an oversized buffer.\n\t\t\tif (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {\n\t\t\t\terror.bufferedData = stream.getBufferedValue();\n\t\t\t}\n\n\t\t\treject(error);\n\t\t};\n\n\t\tstream = pump(inputStream, bufferStream(options), error => {\n\t\t\tif (error) {\n\t\t\t\trejectPromise(error);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresolve();\n\t\t});\n\n\t\tstream.on('data', () => {\n\t\t\tif (stream.getBufferedLength() > maxBuffer) {\n\t\t\t\trejectPromise(new MaxBufferError());\n\t\t\t}\n\t\t});\n\t});\n\n\treturn stream.getBufferedValue();\n}\n\nmodule.exports = getStream;\n// TODO: Remove this for the next major release\nmodule.exports.default = getStream;\nmodule.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});\nmodule.exports.array = (stream, options) => getStream(stream, {...options, array: true});\nmodule.exports.MaxBufferError = MaxBufferError;\n", "'use strict';\n// rfc7231 6.1\nconst statusCodeCacheableByDefault = new Set([\n 200,\n 203,\n 204,\n 206,\n 300,\n 301,\n 308,\n 404,\n 405,\n 410,\n 414,\n 501,\n]);\n\n// This implementation does not understand partial responses (206)\nconst understoodStatuses = new Set([\n 200,\n 203,\n 204,\n 300,\n 301,\n 302,\n 303,\n 307,\n 308,\n 404,\n 405,\n 410,\n 414,\n 501,\n]);\n\nconst errorStatusCodes = new Set([\n 500,\n 502,\n 503, \n 504,\n]);\n\nconst hopByHopHeaders = {\n date: true, // included, because we add Age update Date\n connection: true,\n 'keep-alive': true,\n 'proxy-authenticate': true,\n 'proxy-authorization': true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n};\n\nconst excludedFromRevalidationUpdate = {\n // Since the old body is reused, it doesn't make sense to change properties of the body\n 'content-length': true,\n 'content-encoding': true,\n 'transfer-encoding': true,\n 'content-range': true,\n};\n\nfunction toNumberOrZero(s) {\n const n = parseInt(s, 10);\n return isFinite(n) ? n : 0;\n}\n\n// RFC 5861\nfunction isErrorResponse(response) {\n // consider undefined response as faulty\n if(!response) {\n return true\n }\n return errorStatusCodes.has(response.status);\n}\n\nfunction parseCacheControl(header) {\n const cc = {};\n if (!header) return cc;\n\n // TODO: When there is more than one value present for a given directive (e.g., two Expires header fields, multiple Cache-Control: max-age directives),\n // the directive's value is considered invalid. Caches are encouraged to consider responses that have invalid freshness information to be stale\n const parts = header.trim().split(/,/);\n for (const part of parts) {\n const [k, v] = part.split(/=/, 2);\n cc[k.trim()] = v === undefined ? true : v.trim().replace(/^\"|\"$/g, '');\n }\n\n return cc;\n}\n\nfunction formatCacheControl(cc) {\n let parts = [];\n for (const k in cc) {\n const v = cc[k];\n parts.push(v === true ? k : k + '=' + v);\n }\n if (!parts.length) {\n return undefined;\n }\n return parts.join(', ');\n}\n\nmodule.exports = class CachePolicy {\n constructor(\n req,\n res,\n {\n shared,\n cacheHeuristic,\n immutableMinTimeToLive,\n ignoreCargoCult,\n _fromObject,\n } = {}\n ) {\n if (_fromObject) {\n this._fromObject(_fromObject);\n return;\n }\n\n if (!res || !res.headers) {\n throw Error('Response headers missing');\n }\n this._assertRequestHasHeaders(req);\n\n this._responseTime = this.now();\n this._isShared = shared !== false;\n this._cacheHeuristic =\n undefined !== cacheHeuristic ? cacheHeuristic : 0.1; // 10% matches IE\n this._immutableMinTtl =\n undefined !== immutableMinTimeToLive\n ? immutableMinTimeToLive\n : 24 * 3600 * 1000;\n\n this._status = 'status' in res ? res.status : 200;\n this._resHeaders = res.headers;\n this._rescc = parseCacheControl(res.headers['cache-control']);\n this._method = 'method' in req ? req.method : 'GET';\n this._url = req.url;\n this._host = req.headers.host;\n this._noAuthorization = !req.headers.authorization;\n this._reqHeaders = res.headers.vary ? req.headers : null; // Don't keep all request headers if they won't be used\n this._reqcc = parseCacheControl(req.headers['cache-control']);\n\n // Assume that if someone uses legacy, non-standard uncecessary options they don't understand caching,\n // so there's no point stricly adhering to the blindly copy&pasted directives.\n if (\n ignoreCargoCult &&\n 'pre-check' in this._rescc &&\n 'post-check' in this._rescc\n ) {\n delete this._rescc['pre-check'];\n delete this._rescc['post-check'];\n delete this._rescc['no-cache'];\n delete this._rescc['no-store'];\n delete this._rescc['must-revalidate'];\n this._resHeaders = Object.assign({}, this._resHeaders, {\n 'cache-control': formatCacheControl(this._rescc),\n });\n delete this._resHeaders.expires;\n delete this._resHeaders.pragma;\n }\n\n // When the Cache-Control header field is not present in a request, caches MUST consider the no-cache request pragma-directive\n // as having the same effect as if \"Cache-Control: no-cache\" were present (see Section 5.2.1).\n if (\n res.headers['cache-control'] == null &&\n /no-cache/.test(res.headers.pragma)\n ) {\n this._rescc['no-cache'] = true;\n }\n }\n\n now() {\n return Date.now();\n }\n\n storable() {\n // The \"no-store\" request directive indicates that a cache MUST NOT store any part of either this request or any response to it.\n return !!(\n !this._reqcc['no-store'] &&\n // A cache MUST NOT store a response to any request, unless:\n // The request method is understood by the cache and defined as being cacheable, and\n ('GET' === this._method ||\n 'HEAD' === this._method ||\n ('POST' === this._method && this._hasExplicitExpiration())) &&\n // the response status code is understood by the cache, and\n understoodStatuses.has(this._status) &&\n // the \"no-store\" cache directive does not appear in request or response header fields, and\n !this._rescc['no-store'] &&\n // the \"private\" response directive does not appear in the response, if the cache is shared, and\n (!this._isShared || !this._rescc.private) &&\n // the Authorization header field does not appear in the request, if the cache is shared,\n (!this._isShared ||\n this._noAuthorization ||\n this._allowsStoringAuthenticated()) &&\n // the response either:\n // contains an Expires header field, or\n (this._resHeaders.expires ||\n // contains a max-age response directive, or\n // contains a s-maxage response directive and the cache is shared, or\n // contains a public response directive.\n this._rescc['max-age'] ||\n (this._isShared && this._rescc['s-maxage']) ||\n this._rescc.public ||\n // has a status code that is defined as cacheable by default\n statusCodeCacheableByDefault.has(this._status))\n );\n }\n\n _hasExplicitExpiration() {\n // 4.2.1 Calculating Freshness Lifetime\n return (\n (this._isShared && this._rescc['s-maxage']) ||\n this._rescc['max-age'] ||\n this._resHeaders.expires\n );\n }\n\n _assertRequestHasHeaders(req) {\n if (!req || !req.headers) {\n throw Error('Request headers missing');\n }\n }\n\n satisfiesWithoutRevalidation(req) {\n this._assertRequestHasHeaders(req);\n\n // When presented with a request, a cache MUST NOT reuse a stored response, unless:\n // the presented request does not contain the no-cache pragma (Section 5.4), nor the no-cache cache directive,\n // unless the stored response is successfully validated (Section 4.3), and\n const requestCC = parseCacheControl(req.headers['cache-control']);\n if (requestCC['no-cache'] || /no-cache/.test(req.headers.pragma)) {\n return false;\n }\n\n if (requestCC['max-age'] && this.age() > requestCC['max-age']) {\n return false;\n }\n\n if (\n requestCC['min-fresh'] &&\n this.timeToLive() < 1000 * requestCC['min-fresh']\n ) {\n return false;\n }\n\n // the stored response is either:\n // fresh, or allowed to be served stale\n if (this.stale()) {\n const allowsStale =\n requestCC['max-stale'] &&\n !this._rescc['must-revalidate'] &&\n (true === requestCC['max-stale'] ||\n requestCC['max-stale'] > this.age() - this.maxAge());\n if (!allowsStale) {\n return false;\n }\n }\n\n return this._requestMatches(req, false);\n }\n\n _requestMatches(req, allowHeadMethod) {\n // The presented effective request URI and that of the stored response match, and\n return (\n (!this._url || this._url === req.url) &&\n this._host === req.headers.host &&\n // the request method associated with the stored response allows it to be used for the presented request, and\n (!req.method ||\n this._method === req.method ||\n (allowHeadMethod && 'HEAD' === req.method)) &&\n // selecting header fields nominated by the stored response (if any) match those presented, and\n this._varyMatches(req)\n );\n }\n\n _allowsStoringAuthenticated() {\n // following Cache-Control response directives (Section 5.2.2) have such an effect: must-revalidate, public, and s-maxage.\n return (\n this._rescc['must-revalidate'] ||\n this._rescc.public ||\n this._rescc['s-maxage']\n );\n }\n\n _varyMatches(req) {\n if (!this._resHeaders.vary) {\n return true;\n }\n\n // A Vary header field-value of \"*\" always fails to match\n if (this._resHeaders.vary === '*') {\n return false;\n }\n\n const fields = this._resHeaders.vary\n .trim()\n .toLowerCase()\n .split(/\\s*,\\s*/);\n for (const name of fields) {\n if (req.headers[name] !== this._reqHeaders[name]) return false;\n }\n return true;\n }\n\n _copyWithoutHopByHopHeaders(inHeaders) {\n const headers = {};\n for (const name in inHeaders) {\n if (hopByHopHeaders[name]) continue;\n headers[name] = inHeaders[name];\n }\n // 9.1. Connection\n if (inHeaders.connection) {\n const tokens = inHeaders.connection.trim().split(/\\s*,\\s*/);\n for (const name of tokens) {\n delete headers[name];\n }\n }\n if (headers.warning) {\n const warnings = headers.warning.split(/,/).filter(warning => {\n return !/^\\s*1[0-9][0-9]/.test(warning);\n });\n if (!warnings.length) {\n delete headers.warning;\n } else {\n headers.warning = warnings.join(',').trim();\n }\n }\n return headers;\n }\n\n responseHeaders() {\n const headers = this._copyWithoutHopByHopHeaders(this._resHeaders);\n const age = this.age();\n\n // A cache SHOULD generate 113 warning if it heuristically chose a freshness\n // lifetime greater than 24 hours and the response's age is greater than 24 hours.\n if (\n age > 3600 * 24 &&\n !this._hasExplicitExpiration() &&\n this.maxAge() > 3600 * 24\n ) {\n headers.warning =\n (headers.warning ? `${headers.warning}, ` : '') +\n '113 - \"rfc7234 5.5.4\"';\n }\n headers.age = `${Math.round(age)}`;\n headers.date = new Date(this.now()).toUTCString();\n return headers;\n }\n\n /**\n * Value of the Date response header or current time if Date was invalid\n * @return timestamp\n */\n date() {\n const serverDate = Date.parse(this._resHeaders.date);\n if (isFinite(serverDate)) {\n return serverDate;\n }\n return this._responseTime;\n }\n\n /**\n * Value of the Age header, in seconds, updated for the current time.\n * May be fractional.\n *\n * @return Number\n */\n age() {\n let age = this._ageValue();\n\n const residentTime = (this.now() - this._responseTime) / 1000;\n return age + residentTime;\n }\n\n _ageValue() {\n return toNumberOrZero(this._resHeaders.age);\n }\n\n /**\n * Value of applicable max-age (or heuristic equivalent) in seconds. This counts since response's `Date`.\n *\n * For an up-to-date value, see `timeToLive()`.\n *\n * @return Number\n */\n maxAge() {\n if (!this.storable() || this._rescc['no-cache']) {\n return 0;\n }\n\n // Shared responses with cookies are cacheable according to the RFC, but IMHO it'd be unwise to do so by default\n // so this implementation requires explicit opt-in via public header\n if (\n this._isShared &&\n (this._resHeaders['set-cookie'] &&\n !this._rescc.public &&\n !this._rescc.immutable)\n ) {\n return 0;\n }\n\n if (this._resHeaders.vary === '*') {\n return 0;\n }\n\n if (this._isShared) {\n if (this._rescc['proxy-revalidate']) {\n return 0;\n }\n // if a response includes the s-maxage directive, a shared cache recipient MUST ignore the Expires field.\n if (this._rescc['s-maxage']) {\n return toNumberOrZero(this._rescc['s-maxage']);\n }\n }\n\n // If a response includes a Cache-Control field with the max-age directive, a recipient MUST ignore the Expires field.\n if (this._rescc['max-age']) {\n return toNumberOrZero(this._rescc['max-age']);\n }\n\n const defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0;\n\n const serverDate = this.date();\n if (this._resHeaders.expires) {\n const expires = Date.parse(this._resHeaders.expires);\n // A cache recipient MUST interpret invalid date formats, especially the value \"0\", as representing a time in the past (i.e., \"already expired\").\n if (Number.isNaN(expires) || expires < serverDate) {\n return 0;\n }\n return Math.max(defaultMinTtl, (expires - serverDate) / 1000);\n }\n\n if (this._resHeaders['last-modified']) {\n const lastModified = Date.parse(this._resHeaders['last-modified']);\n if (isFinite(lastModified) && serverDate > lastModified) {\n return Math.max(\n defaultMinTtl,\n ((serverDate - lastModified) / 1000) * this._cacheHeuristic\n );\n }\n }\n\n return defaultMinTtl;\n }\n\n timeToLive() {\n const age = this.maxAge() - this.age();\n const staleIfErrorAge = age + toNumberOrZero(this._rescc['stale-if-error']);\n const staleWhileRevalidateAge = age + toNumberOrZero(this._rescc['stale-while-revalidate']);\n return Math.max(0, age, staleIfErrorAge, staleWhileRevalidateAge) * 1000;\n }\n\n stale() {\n return this.maxAge() <= this.age();\n }\n\n _useStaleIfError() {\n return this.maxAge() + toNumberOrZero(this._rescc['stale-if-error']) > this.age();\n }\n\n useStaleWhileRevalidate() {\n return this.maxAge() + toNumberOrZero(this._rescc['stale-while-revalidate']) > this.age();\n }\n\n static fromObject(obj) {\n return new this(undefined, undefined, { _fromObject: obj });\n }\n\n _fromObject(obj) {\n if (this._responseTime) throw Error('Reinitialized');\n if (!obj || obj.v !== 1) throw Error('Invalid serialization');\n\n this._responseTime = obj.t;\n this._isShared = obj.sh;\n this._cacheHeuristic = obj.ch;\n this._immutableMinTtl =\n obj.imm !== undefined ? obj.imm : 24 * 3600 * 1000;\n this._status = obj.st;\n this._resHeaders = obj.resh;\n this._rescc = obj.rescc;\n this._method = obj.m;\n this._url = obj.u;\n this._host = obj.h;\n this._noAuthorization = obj.a;\n this._reqHeaders = obj.reqh;\n this._reqcc = obj.reqcc;\n }\n\n toObject() {\n return {\n v: 1,\n t: this._responseTime,\n sh: this._isShared,\n ch: this._cacheHeuristic,\n imm: this._immutableMinTtl,\n st: this._status,\n resh: this._resHeaders,\n rescc: this._rescc,\n m: this._method,\n u: this._url,\n h: this._host,\n a: this._noAuthorization,\n reqh: this._reqHeaders,\n reqcc: this._reqcc,\n };\n }\n\n /**\n * Headers for sending to the origin server to revalidate stale response.\n * Allows server to return 304 to allow reuse of the previous response.\n *\n * Hop by hop headers are always stripped.\n * Revalidation headers may be added or removed, depending on request.\n */\n revalidationHeaders(incomingReq) {\n this._assertRequestHasHeaders(incomingReq);\n const headers = this._copyWithoutHopByHopHeaders(incomingReq.headers);\n\n // This implementation does not understand range requests\n delete headers['if-range'];\n\n if (!this._requestMatches(incomingReq, true) || !this.storable()) {\n // revalidation allowed via HEAD\n // not for the same resource, or wasn't allowed to be cached anyway\n delete headers['if-none-match'];\n delete headers['if-modified-since'];\n return headers;\n }\n\n /* MUST send that entity-tag in any cache validation request (using If-Match or If-None-Match) if an entity-tag has been provided by the origin server. */\n if (this._resHeaders.etag) {\n headers['if-none-match'] = headers['if-none-match']\n ? `${headers['if-none-match']}, ${this._resHeaders.etag}`\n : this._resHeaders.etag;\n }\n\n // Clients MAY issue simple (non-subrange) GET requests with either weak validators or strong validators. Clients MUST NOT use weak validators in other forms of request.\n const forbidsWeakValidators =\n headers['accept-ranges'] ||\n headers['if-match'] ||\n headers['if-unmodified-since'] ||\n (this._method && this._method != 'GET');\n\n /* SHOULD send the Last-Modified value in non-subrange cache validation requests (using If-Modified-Since) if only a Last-Modified value has been provided by the origin server.\n Note: This implementation does not understand partial responses (206) */\n if (forbidsWeakValidators) {\n delete headers['if-modified-since'];\n\n if (headers['if-none-match']) {\n const etags = headers['if-none-match']\n .split(/,/)\n .filter(etag => {\n return !/^\\s*W\\//.test(etag);\n });\n if (!etags.length) {\n delete headers['if-none-match'];\n } else {\n headers['if-none-match'] = etags.join(',').trim();\n }\n }\n } else if (\n this._resHeaders['last-modified'] &&\n !headers['if-modified-since']\n ) {\n headers['if-modified-since'] = this._resHeaders['last-modified'];\n }\n\n return headers;\n }\n\n /**\n * Creates new CachePolicy with information combined from the previews response,\n * and the new revalidation response.\n *\n * Returns {policy, modified} where modified is a boolean indicating\n * whether the response body has been modified, and old cached body can't be used.\n *\n * @return {Object} {policy: CachePolicy, modified: Boolean}\n */\n revalidatedPolicy(request, response) {\n this._assertRequestHasHeaders(request);\n if(this._useStaleIfError() && isErrorResponse(response)) { // I consider the revalidation request unsuccessful\n return {\n modified: false,\n matches: false,\n policy: this,\n };\n }\n if (!response || !response.headers) {\n throw Error('Response headers missing');\n }\n\n // These aren't going to be supported exactly, since one CachePolicy object\n // doesn't know about all the other cached objects.\n let matches = false;\n if (response.status !== undefined && response.status != 304) {\n matches = false;\n } else if (\n response.headers.etag &&\n !/^\\s*W\\//.test(response.headers.etag)\n ) {\n // \"All of the stored responses with the same strong validator are selected.\n // If none of the stored responses contain the same strong validator,\n // then the cache MUST NOT use the new response to update any stored responses.\"\n matches =\n this._resHeaders.etag &&\n this._resHeaders.etag.replace(/^\\s*W\\//, '') ===\n response.headers.etag;\n } else if (this._resHeaders.etag && response.headers.etag) {\n // \"If the new response contains a weak validator and that validator corresponds\n // to one of the cache's stored responses,\n // then the most recent of those matching stored responses is selected for update.\"\n matches =\n this._resHeaders.etag.replace(/^\\s*W\\//, '') ===\n response.headers.etag.replace(/^\\s*W\\//, '');\n } else if (this._resHeaders['last-modified']) {\n matches =\n this._resHeaders['last-modified'] ===\n response.headers['last-modified'];\n } else {\n // If the new response does not include any form of validator (such as in the case where\n // a client generates an If-Modified-Since request from a source other than the Last-Modified\n // response header field), and there is only one stored response, and that stored response also\n // lacks a validator, then that stored response is selected for update.\n if (\n !this._resHeaders.etag &&\n !this._resHeaders['last-modified'] &&\n !response.headers.etag &&\n !response.headers['last-modified']\n ) {\n matches = true;\n }\n }\n\n if (!matches) {\n return {\n policy: new this.constructor(request, response),\n // Client receiving 304 without body, even if it's invalid/mismatched has no option\n // but to reuse a cached body. We don't have a good way to tell clients to do\n // error recovery in such case.\n modified: response.status != 304,\n matches: false,\n };\n }\n\n // use other header fields provided in the 304 (Not Modified) response to replace all instances\n // of the corresponding header fields in the stored response.\n const headers = {};\n for (const k in this._resHeaders) {\n headers[k] =\n k in response.headers && !excludedFromRevalidationUpdate[k]\n ? response.headers[k]\n : this._resHeaders[k];\n }\n\n const newResponse = Object.assign({}, response, {\n status: this._status,\n method: this._method,\n headers,\n });\n return {\n policy: new this.constructor(request, newResponse, {\n shared: this._isShared,\n cacheHeuristic: this._cacheHeuristic,\n immutableMinTimeToLive: this._immutableMinTtl,\n }),\n modified: false,\n matches: true,\n };\n }\n};\n", "'use strict';\nmodule.exports = object => {\n\tconst result = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tresult[key.toLowerCase()] = value;\n\t}\n\n\treturn result;\n};\n", "'use strict';\n\nconst Readable = require('stream').Readable;\nconst lowercaseKeys = require('lowercase-keys');\n\nclass Response extends Readable {\n\tconstructor(statusCode, headers, body, url) {\n\t\tif (typeof statusCode !== 'number') {\n\t\t\tthrow new TypeError('Argument `statusCode` should be a number');\n\t\t}\n\t\tif (typeof headers !== 'object') {\n\t\t\tthrow new TypeError('Argument `headers` should be an object');\n\t\t}\n\t\tif (!(body instanceof Buffer)) {\n\t\t\tthrow new TypeError('Argument `body` should be a buffer');\n\t\t}\n\t\tif (typeof url !== 'string') {\n\t\t\tthrow new TypeError('Argument `url` should be a string');\n\t\t}\n\n\t\tsuper();\n\t\tthis.statusCode = statusCode;\n\t\tthis.headers = lowercaseKeys(headers);\n\t\tthis.body = body;\n\t\tthis.url = url;\n\t}\n\n\t_read() {\n\t\tthis.push(this.body);\n\t\tthis.push(null);\n\t}\n}\n\nmodule.exports = Response;\n", "'use strict';\n\n// We define these manually to ensure they're always copied\n// even if they would move up the prototype chain\n// https://nodejs.org/api/http.html#http_class_http_incomingmessage\nconst knownProps = [\n\t'destroy',\n\t'setTimeout',\n\t'socket',\n\t'headers',\n\t'trailers',\n\t'rawHeaders',\n\t'statusCode',\n\t'httpVersion',\n\t'httpVersionMinor',\n\t'httpVersionMajor',\n\t'rawTrailers',\n\t'statusMessage'\n];\n\nmodule.exports = (fromStream, toStream) => {\n\tconst fromProps = new Set(Object.keys(fromStream).concat(knownProps));\n\n\tfor (const prop of fromProps) {\n\t\t// Don't overwrite existing properties\n\t\tif (prop in toStream) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttoStream[prop] = typeof fromStream[prop] === 'function' ? fromStream[prop].bind(fromStream) : fromStream[prop];\n\t}\n};\n", "'use strict';\n\nconst PassThrough = require('stream').PassThrough;\nconst mimicResponse = require('mimic-response');\n\nconst cloneResponse = response => {\n\tif (!(response && response.pipe)) {\n\t\tthrow new TypeError('Parameter `response` must be a response stream.');\n\t}\n\n\tconst clone = new PassThrough();\n\tmimicResponse(response, clone);\n\n\treturn response.pipe(clone);\n};\n\nmodule.exports = cloneResponse;\n", "//TODO: handle reviver/dehydrate function like normal\n//and handle indentation, like normal.\n//if anyone needs this... please send pull request.\n\nexports.stringify = function stringify (o) {\n if('undefined' == typeof o) return o\n\n if(o && Buffer.isBuffer(o))\n return JSON.stringify(':base64:' + o.toString('base64'))\n\n if(o && o.toJSON)\n o = o.toJSON()\n\n if(o && 'object' === typeof o) {\n var s = ''\n var array = Array.isArray(o)\n s = array ? '[' : '{'\n var first = true\n\n for(var k in o) {\n var ignore = 'function' == typeof o[k] || (!array && 'undefined' === typeof o[k])\n if(Object.hasOwnProperty.call(o, k) && !ignore) {\n if(!first)\n s += ','\n first = false\n if (array) {\n if(o[k] == undefined)\n s += 'null'\n else\n s += stringify(o[k])\n } else if (o[k] !== void(0)) {\n s += stringify(k) + ':' + stringify(o[k])\n }\n }\n }\n\n s += array ? ']' : '}'\n\n return s\n } else if ('string' === typeof o) {\n return JSON.stringify(/^:/.test(o) ? ':' + o : o)\n } else if ('undefined' === typeof o) {\n return 'null';\n } else\n return JSON.stringify(o)\n}\n\nexports.parse = function (s) {\n return JSON.parse(s, function (key, value) {\n if('string' === typeof value) {\n if(/^:base64:/.test(value))\n return Buffer.from(value.substring(8), 'base64')\n else\n return /^:/.test(value) ? value.substring(1) : value \n }\n return value\n })\n}\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst JSONB = require('json-buffer');\n\nconst loadStore = options => {\n\tconst adapters = {\n\t\tredis: '@keyv/redis',\n\t\trediss: '@keyv/redis',\n\t\tmongodb: '@keyv/mongo',\n\t\tmongo: '@keyv/mongo',\n\t\tsqlite: '@keyv/sqlite',\n\t\tpostgresql: '@keyv/postgres',\n\t\tpostgres: '@keyv/postgres',\n\t\tmysql: '@keyv/mysql',\n\t\tetcd: '@keyv/etcd',\n\t\toffline: '@keyv/offline',\n\t\ttiered: '@keyv/tiered',\n\t};\n\tif (options.adapter || options.uri) {\n\t\tconst adapter = options.adapter || /^[^:+]*/.exec(options.uri)[0];\n\t\treturn new (require(adapters[adapter]))(options);\n\t}\n\n\treturn new Map();\n};\n\nconst iterableAdapters = [\n\t'sqlite',\n\t'postgres',\n\t'mysql',\n\t'mongo',\n\t'redis',\n\t'tiered',\n];\n\nclass Keyv extends EventEmitter {\n\tconstructor(uri, {emitErrors = true, ...options} = {}) {\n\t\tsuper();\n\t\tthis.opts = {\n\t\t\tnamespace: 'keyv',\n\t\t\tserialize: JSONB.stringify,\n\t\t\tdeserialize: JSONB.parse,\n\t\t\t...((typeof uri === 'string') ? {uri} : uri),\n\t\t\t...options,\n\t\t};\n\n\t\tif (!this.opts.store) {\n\t\t\tconst adapterOptions = {...this.opts};\n\t\t\tthis.opts.store = loadStore(adapterOptions);\n\t\t}\n\n\t\tif (this.opts.compression) {\n\t\t\tconst compression = this.opts.compression;\n\t\t\tthis.opts.serialize = compression.serialize.bind(compression);\n\t\t\tthis.opts.deserialize = compression.deserialize.bind(compression);\n\t\t}\n\n\t\tif (typeof this.opts.store.on === 'function' && emitErrors) {\n\t\t\tthis.opts.store.on('error', error => this.emit('error', error));\n\t\t}\n\n\t\tthis.opts.store.namespace = this.opts.namespace;\n\n\t\tconst generateIterator = iterator => async function * () {\n\t\t\tfor await (const [key, raw] of typeof iterator === 'function'\n\t\t\t\t? iterator(this.opts.store.namespace)\n\t\t\t\t: iterator) {\n\t\t\t\tconst data = await this.opts.deserialize(raw);\n\t\t\t\tif (this.opts.store.namespace && !key.includes(this.opts.store.namespace)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (typeof data.expires === 'number' && Date.now() > data.expires) {\n\t\t\t\t\tthis.delete(key);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tyield [this._getKeyUnprefix(key), data.value];\n\t\t\t}\n\t\t};\n\n\t\t// Attach iterators\n\t\tif (typeof this.opts.store[Symbol.iterator] === 'function' && this.opts.store instanceof Map) {\n\t\t\tthis.iterator = generateIterator(this.opts.store);\n\t\t} else if (typeof this.opts.store.iterator === 'function' && this.opts.store.opts\n\t\t\t&& this._checkIterableAdaptar()) {\n\t\t\tthis.iterator = generateIterator(this.opts.store.iterator.bind(this.opts.store));\n\t\t}\n\t}\n\n\t_checkIterableAdaptar() {\n\t\treturn iterableAdapters.includes(this.opts.store.opts.dialect)\n\t\t\t|| iterableAdapters.findIndex(element => this.opts.store.opts.url.includes(element)) >= 0;\n\t}\n\n\t_getKeyPrefix(key) {\n\t\treturn `${this.opts.namespace}:${key}`;\n\t}\n\n\t_getKeyPrefixArray(keys) {\n\t\treturn keys.map(key => `${this.opts.namespace}:${key}`);\n\t}\n\n\t_getKeyUnprefix(key) {\n\t\treturn key\n\t\t\t.split(':')\n\t\t\t.splice(1)\n\t\t\t.join(':');\n\t}\n\n\tget(key, options) {\n\t\tconst {store} = this.opts;\n\t\tconst isArray = Array.isArray(key);\n\t\tconst keyPrefixed = isArray ? this._getKeyPrefixArray(key) : this._getKeyPrefix(key);\n\t\tif (isArray && store.getMany === undefined) {\n\t\t\tconst promises = [];\n\t\t\tfor (const key of keyPrefixed) {\n\t\t\t\tpromises.push(Promise.resolve()\n\t\t\t\t\t.then(() => store.get(key))\n\t\t\t\t\t.then(data => (typeof data === 'string') ? this.opts.deserialize(data) : (this.opts.compression ? this.opts.deserialize(data) : data))\n\t\t\t\t\t.then(data => {\n\t\t\t\t\t\tif (data === undefined || data === null) {\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof data.expires === 'number' && Date.now() > data.expires) {\n\t\t\t\t\t\t\treturn this.delete(key).then(() => undefined);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (options && options.raw) ? data : data.value;\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn Promise.allSettled(promises)\n\t\t\t\t.then(values => {\n\t\t\t\t\tconst data = [];\n\t\t\t\t\tfor (const value of values) {\n\t\t\t\t\t\tdata.push(value.value);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve()\n\t\t\t.then(() => isArray ? store.getMany(keyPrefixed) : store.get(keyPrefixed))\n\t\t\t.then(data => (typeof data === 'string') ? this.opts.deserialize(data) : (this.opts.compression ? this.opts.deserialize(data) : data))\n\t\t\t.then(data => {\n\t\t\t\tif (data === undefined || data === null) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\treturn data.map((row, index) => {\n\t\t\t\t\t\tif ((typeof row === 'string')) {\n\t\t\t\t\t\t\trow = this.opts.deserialize(row);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (row === undefined || row === null) {\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof row.expires === 'number' && Date.now() > row.expires) {\n\t\t\t\t\t\t\tthis.delete(key[index]).then(() => undefined);\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (options && options.raw) ? row : row.value;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (typeof data.expires === 'number' && Date.now() > data.expires) {\n\t\t\t\t\treturn this.delete(key).then(() => undefined);\n\t\t\t\t}\n\n\t\t\t\treturn (options && options.raw) ? data : data.value;\n\t\t\t});\n\t}\n\n\tset(key, value, ttl) {\n\t\tconst keyPrefixed = this._getKeyPrefix(key);\n\t\tif (typeof ttl === 'undefined') {\n\t\t\tttl = this.opts.ttl;\n\t\t}\n\n\t\tif (ttl === 0) {\n\t\t\tttl = undefined;\n\t\t}\n\n\t\tconst {store} = this.opts;\n\n\t\treturn Promise.resolve()\n\t\t\t.then(() => {\n\t\t\t\tconst expires = (typeof ttl === 'number') ? (Date.now() + ttl) : null;\n\t\t\t\tif (typeof value === 'symbol') {\n\t\t\t\t\tthis.emit('error', 'symbol cannot be serialized');\n\t\t\t\t}\n\n\t\t\t\tvalue = {value, expires};\n\t\t\t\treturn this.opts.serialize(value);\n\t\t\t})\n\t\t\t.then(value => store.set(keyPrefixed, value, ttl))\n\t\t\t.then(() => true);\n\t}\n\n\tdelete(key) {\n\t\tconst {store} = this.opts;\n\t\tif (Array.isArray(key)) {\n\t\t\tconst keyPrefixed = this._getKeyPrefixArray(key);\n\t\t\tif (store.deleteMany === undefined) {\n\t\t\t\tconst promises = [];\n\t\t\t\tfor (const key of keyPrefixed) {\n\t\t\t\t\tpromises.push(store.delete(key));\n\t\t\t\t}\n\n\t\t\t\treturn Promise.allSettled(promises)\n\t\t\t\t\t.then(values => values.every(x => x.value === true));\n\t\t\t}\n\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(() => store.deleteMany(keyPrefixed));\n\t\t}\n\n\t\tconst keyPrefixed = this._getKeyPrefix(key);\n\t\treturn Promise.resolve()\n\t\t\t.then(() => store.delete(keyPrefixed));\n\t}\n\n\tclear() {\n\t\tconst {store} = this.opts;\n\t\treturn Promise.resolve()\n\t\t\t.then(() => store.clear());\n\t}\n\n\thas(key) {\n\t\tconst keyPrefixed = this._getKeyPrefix(key);\n\t\tconst {store} = this.opts;\n\t\treturn Promise.resolve()\n\t\t\t.then(async () => {\n\t\t\t\tif (typeof store.has === 'function') {\n\t\t\t\t\treturn store.has(keyPrefixed);\n\t\t\t\t}\n\n\t\t\t\tconst value = await store.get(keyPrefixed);\n\t\t\t\treturn value !== undefined;\n\t\t\t});\n\t}\n\n\tdisconnect() {\n\t\tconst {store} = this.opts;\n\t\tif (typeof store.disconnect === 'function') {\n\t\t\treturn store.disconnect();\n\t\t}\n\t}\n}\n\nmodule.exports = Keyv;\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst urlLib = require('url');\nconst normalizeUrl = require('normalize-url');\nconst getStream = require('get-stream');\nconst CachePolicy = require('http-cache-semantics');\nconst Response = require('responselike');\nconst lowercaseKeys = require('lowercase-keys');\nconst cloneResponse = require('clone-response');\nconst Keyv = require('keyv');\n\nclass CacheableRequest {\n\tconstructor(request, cacheAdapter) {\n\t\tif (typeof request !== 'function') {\n\t\t\tthrow new TypeError('Parameter `request` must be a function');\n\t\t}\n\n\t\tthis.cache = new Keyv({\n\t\t\turi: typeof cacheAdapter === 'string' && cacheAdapter,\n\t\t\tstore: typeof cacheAdapter !== 'string' && cacheAdapter,\n\t\t\tnamespace: 'cacheable-request'\n\t\t});\n\n\t\treturn this.createCacheableRequest(request);\n\t}\n\n\tcreateCacheableRequest(request) {\n\t\treturn (opts, cb) => {\n\t\t\tlet url;\n\t\t\tif (typeof opts === 'string') {\n\t\t\t\turl = normalizeUrlObject(urlLib.parse(opts));\n\t\t\t\topts = {};\n\t\t\t} else if (opts instanceof urlLib.URL) {\n\t\t\t\turl = normalizeUrlObject(urlLib.parse(opts.toString()));\n\t\t\t\topts = {};\n\t\t\t} else {\n\t\t\t\tconst [pathname, ...searchParts] = (opts.path || '').split('?');\n\t\t\t\tconst search = searchParts.length > 0 ?\n\t\t\t\t\t`?${searchParts.join('?')}` :\n\t\t\t\t\t'';\n\t\t\t\turl = normalizeUrlObject({ ...opts, pathname, search });\n\t\t\t}\n\n\t\t\topts = {\n\t\t\t\theaders: {},\n\t\t\t\tmethod: 'GET',\n\t\t\t\tcache: true,\n\t\t\t\tstrictTtl: false,\n\t\t\t\tautomaticFailover: false,\n\t\t\t\t...opts,\n\t\t\t\t...urlObjectToRequestOptions(url)\n\t\t\t};\n\t\t\topts.headers = lowercaseKeys(opts.headers);\n\n\t\t\tconst ee = new EventEmitter();\n\t\t\tconst normalizedUrlString = normalizeUrl(\n\t\t\t\turlLib.format(url),\n\t\t\t\t{\n\t\t\t\t\tstripWWW: false,\n\t\t\t\t\tremoveTrailingSlash: false,\n\t\t\t\t\tstripAuthentication: false\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst key = `${opts.method}:${normalizedUrlString}`;\n\t\t\tlet revalidate = false;\n\t\t\tlet madeRequest = false;\n\n\t\t\tconst makeRequest = opts => {\n\t\t\t\tmadeRequest = true;\n\t\t\t\tlet requestErrored = false;\n\t\t\t\tlet requestErrorCallback;\n\n\t\t\t\tconst requestErrorPromise = new Promise(resolve => {\n\t\t\t\t\trequestErrorCallback = () => {\n\t\t\t\t\t\tif (!requestErrored) {\n\t\t\t\t\t\t\trequestErrored = true;\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\tconst handler = response => {\n\t\t\t\t\tif (revalidate && !opts.forceRefresh) {\n\t\t\t\t\t\tresponse.status = response.statusCode;\n\t\t\t\t\t\tconst revalidatedPolicy = CachePolicy.fromObject(revalidate.cachePolicy).revalidatedPolicy(opts, response);\n\t\t\t\t\t\tif (!revalidatedPolicy.modified) {\n\t\t\t\t\t\t\tconst headers = revalidatedPolicy.policy.responseHeaders();\n\t\t\t\t\t\t\tresponse = new Response(revalidate.statusCode, headers, revalidate.body, revalidate.url);\n\t\t\t\t\t\t\tresponse.cachePolicy = revalidatedPolicy.policy;\n\t\t\t\t\t\t\tresponse.fromCache = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!response.fromCache) {\n\t\t\t\t\t\tresponse.cachePolicy = new CachePolicy(opts, response, opts);\n\t\t\t\t\t\tresponse.fromCache = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet clonedResponse;\n\t\t\t\t\tif (opts.cache && response.cachePolicy.storable()) {\n\t\t\t\t\t\tclonedResponse = cloneResponse(response);\n\n\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst bodyPromise = getStream.buffer(response);\n\n\t\t\t\t\t\t\t\tawait Promise.race([\n\t\t\t\t\t\t\t\t\trequestErrorPromise,\n\t\t\t\t\t\t\t\t\tnew Promise(resolve => response.once('end', resolve))\n\t\t\t\t\t\t\t\t]);\n\n\t\t\t\t\t\t\t\tif (requestErrored) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst body = await bodyPromise;\n\n\t\t\t\t\t\t\t\tconst value = {\n\t\t\t\t\t\t\t\t\tcachePolicy: response.cachePolicy.toObject(),\n\t\t\t\t\t\t\t\t\turl: response.url,\n\t\t\t\t\t\t\t\t\tstatusCode: response.fromCache ? revalidate.statusCode : response.statusCode,\n\t\t\t\t\t\t\t\t\tbody\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlet ttl = opts.strictTtl ? response.cachePolicy.timeToLive() : undefined;\n\t\t\t\t\t\t\t\tif (opts.maxTtl) {\n\t\t\t\t\t\t\t\t\tttl = ttl ? Math.min(ttl, opts.maxTtl) : opts.maxTtl;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tawait this.cache.set(key, value, ttl);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})();\n\t\t\t\t\t} else if (opts.cache && revalidate) {\n\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait this.cache.delete(key);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tee.emit('error', new CacheableRequest.CacheError(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\tee.emit('response', clonedResponse || response);\n\t\t\t\t\tif (typeof cb === 'function') {\n\t\t\t\t\t\tcb(clonedResponse || response);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\ttry {\n\t\t\t\t\tconst req = request(opts, handler);\n\t\t\t\t\treq.once('error', requestErrorCallback);\n\t\t\t\t\treq.once('abort', requestErrorCallback);\n\t\t\t\t\tee.emit('request', req);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tee.emit('error', new CacheableRequest.RequestError(error));\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t(async () => {\n\t\t\t\tconst get = async opts => {\n\t\t\t\t\tawait Promise.resolve();\n\n\t\t\t\t\tconst cacheEntry = opts.cache ? await this.cache.get(key) : undefined;\n\t\t\t\t\tif (typeof cacheEntry === 'undefined') {\n\t\t\t\t\t\treturn makeRequest(opts);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst policy = CachePolicy.fromObject(cacheEntry.cachePolicy);\n\t\t\t\t\tif (policy.satisfiesWithoutRevalidation(opts) && !opts.forceRefresh) {\n\t\t\t\t\t\tconst headers = policy.responseHeaders();\n\t\t\t\t\t\tconst response = new Response(cacheEntry.statusCode, headers, cacheEntry.body, cacheEntry.url);\n\t\t\t\t\t\tresponse.cachePolicy = policy;\n\t\t\t\t\t\tresponse.fromCache = true;\n\n\t\t\t\t\t\tee.emit('response', response);\n\t\t\t\t\t\tif (typeof cb === 'function') {\n\t\t\t\t\t\t\tcb(response);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trevalidate = cacheEntry;\n\t\t\t\t\t\topts.headers = policy.revalidationHeaders(opts);\n\t\t\t\t\t\tmakeRequest(opts);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst errorHandler = error => ee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\tthis.cache.once('error', errorHandler);\n\t\t\t\tee.on('response', () => this.cache.removeListener('error', errorHandler));\n\n\t\t\t\ttry {\n\t\t\t\t\tawait get(opts);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (opts.automaticFailover && !madeRequest) {\n\t\t\t\t\t\tmakeRequest(opts);\n\t\t\t\t\t}\n\n\t\t\t\t\tee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\t}\n\t\t\t})();\n\n\t\t\treturn ee;\n\t\t};\n\t}\n}\n\nfunction urlObjectToRequestOptions(url) {\n\tconst options = { ...url };\n\toptions.path = `${url.pathname || '/'}${url.search || ''}`;\n\tdelete options.pathname;\n\tdelete options.search;\n\treturn options;\n}\n\nfunction normalizeUrlObject(url) {\n\t// If url was parsed by url.parse or new URL:\n\t// - hostname will be set\n\t// - host will be hostname[:port]\n\t// - port will be set if it was explicit in the parsed string\n\t// Otherwise, url was from request options:\n\t// - hostname or host may be set\n\t// - host shall not have port encoded\n\treturn {\n\t\tprotocol: url.protocol,\n\t\tauth: url.auth,\n\t\thostname: url.hostname || url.host || 'localhost',\n\t\tport: url.port,\n\t\tpathname: url.pathname,\n\t\tsearch: url.search\n\t};\n}\n\nCacheableRequest.RequestError = class extends Error {\n\tconstructor(error) {\n\t\tsuper(error.message);\n\t\tthis.name = 'RequestError';\n\t\tObject.assign(this, error);\n\t}\n};\n\nCacheableRequest.CacheError = class extends Error {\n\tconstructor(error) {\n\t\tsuper(error.message);\n\t\tthis.name = 'CacheError';\n\t\tObject.assign(this, error);\n\t}\n};\n\nmodule.exports = CacheableRequest;\n", "'use strict';\n\n// We define these manually to ensure they're always copied\n// even if they would move up the prototype chain\n// https://nodejs.org/api/http.html#http_class_http_incomingmessage\nconst knownProperties = [\n\t'aborted',\n\t'complete',\n\t'headers',\n\t'httpVersion',\n\t'httpVersionMinor',\n\t'httpVersionMajor',\n\t'method',\n\t'rawHeaders',\n\t'rawTrailers',\n\t'setTimeout',\n\t'socket',\n\t'statusCode',\n\t'statusMessage',\n\t'trailers',\n\t'url'\n];\n\nmodule.exports = (fromStream, toStream) => {\n\tif (toStream._readableState.autoDestroy) {\n\t\tthrow new Error('The second stream must have the `autoDestroy` option set to `false`');\n\t}\n\n\tconst fromProperties = new Set(Object.keys(fromStream).concat(knownProperties));\n\n\tconst properties = {};\n\n\tfor (const property of fromProperties) {\n\t\t// Don't overwrite existing properties.\n\t\tif (property in toStream) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tproperties[property] = {\n\t\t\tget() {\n\t\t\t\tconst value = fromStream[property];\n\t\t\t\tconst isFunction = typeof value === 'function';\n\n\t\t\t\treturn isFunction ? value.bind(fromStream) : value;\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tfromStream[property] = value;\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false\n\t\t};\n\t}\n\n\tObject.defineProperties(toStream, properties);\n\n\tfromStream.once('aborted', () => {\n\t\ttoStream.destroy();\n\n\t\ttoStream.emit('aborted');\n\t});\n\n\tfromStream.once('close', () => {\n\t\tif (fromStream.complete) {\n\t\t\tif (toStream.readable) {\n\t\t\t\ttoStream.once('end', () => {\n\t\t\t\t\ttoStream.emit('close');\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttoStream.emit('close');\n\t\t\t}\n\t\t} else {\n\t\t\ttoStream.emit('close');\n\t\t}\n\t});\n\n\treturn toStream;\n};\n", "'use strict';\nconst {Transform, PassThrough} = require('stream');\nconst zlib = require('zlib');\nconst mimicResponse = require('mimic-response');\n\nmodule.exports = response => {\n\tconst contentEncoding = (response.headers['content-encoding'] || '').toLowerCase();\n\n\tif (!['gzip', 'deflate', 'br'].includes(contentEncoding)) {\n\t\treturn response;\n\t}\n\n\t// TODO: Remove this when targeting Node.js 12.\n\tconst isBrotli = contentEncoding === 'br';\n\tif (isBrotli && typeof zlib.createBrotliDecompress !== 'function') {\n\t\tresponse.destroy(new Error('Brotli is not supported on Node.js < 12'));\n\t\treturn response;\n\t}\n\n\tlet isEmpty = true;\n\n\tconst checker = new Transform({\n\t\ttransform(data, _encoding, callback) {\n\t\t\tisEmpty = false;\n\n\t\t\tcallback(null, data);\n\t\t},\n\n\t\tflush(callback) {\n\t\t\tcallback();\n\t\t}\n\t});\n\n\tconst finalStream = new PassThrough({\n\t\tautoDestroy: false,\n\t\tdestroy(error, callback) {\n\t\t\tresponse.destroy();\n\n\t\t\tcallback(error);\n\t\t}\n\t});\n\n\tconst decompressStream = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip();\n\n\tdecompressStream.once('error', error => {\n\t\tif (isEmpty && !response.readable) {\n\t\t\tfinalStream.end();\n\t\t\treturn;\n\t\t}\n\n\t\tfinalStream.destroy(error);\n\t});\n\n\tmimicResponse(response, finalStream);\n\tresponse.pipe(checker).pipe(decompressStream).pipe(finalStream);\n\n\treturn finalStream;\n};\n", "'use strict';\n\nclass QuickLRU {\n\tconstructor(options = {}) {\n\t\tif (!(options.maxSize && options.maxSize > 0)) {\n\t\t\tthrow new TypeError('`maxSize` must be a number greater than 0');\n\t\t}\n\n\t\tthis.maxSize = options.maxSize;\n\t\tthis.onEviction = options.onEviction;\n\t\tthis.cache = new Map();\n\t\tthis.oldCache = new Map();\n\t\tthis._size = 0;\n\t}\n\n\t_set(key, value) {\n\t\tthis.cache.set(key, value);\n\t\tthis._size++;\n\n\t\tif (this._size >= this.maxSize) {\n\t\t\tthis._size = 0;\n\n\t\t\tif (typeof this.onEviction === 'function') {\n\t\t\t\tfor (const [key, value] of this.oldCache.entries()) {\n\t\t\t\t\tthis.onEviction(key, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.oldCache = this.cache;\n\t\t\tthis.cache = new Map();\n\t\t}\n\t}\n\n\tget(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\tconst value = this.oldCache.get(key);\n\t\t\tthis.oldCache.delete(key);\n\t\t\tthis._set(key, value);\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tset(key, value) {\n\t\tif (this.cache.has(key)) {\n\t\t\tthis.cache.set(key, value);\n\t\t} else {\n\t\t\tthis._set(key, value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\thas(key) {\n\t\treturn this.cache.has(key) || this.oldCache.has(key);\n\t}\n\n\tpeek(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\treturn this.oldCache.get(key);\n\t\t}\n\t}\n\n\tdelete(key) {\n\t\tconst deleted = this.cache.delete(key);\n\t\tif (deleted) {\n\t\t\tthis._size--;\n\t\t}\n\n\t\treturn this.oldCache.delete(key) || deleted;\n\t}\n\n\tclear() {\n\t\tthis.cache.clear();\n\t\tthis.oldCache.clear();\n\t\tthis._size = 0;\n\t}\n\n\t* keys() {\n\t\tfor (const [key] of this) {\n\t\t\tyield key;\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const [, value] of this) {\n\t\t\tyield value;\n\t\t}\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tfor (const item of this.cache) {\n\t\t\tyield item;\n\t\t}\n\n\t\tfor (const item of this.oldCache) {\n\t\t\tconst [key] = item;\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t}\n\t}\n\n\tget size() {\n\t\tlet oldCacheSize = 0;\n\t\tfor (const key of this.oldCache.keys()) {\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\toldCacheSize++;\n\t\t\t}\n\t\t}\n\n\t\treturn Math.min(this._size + oldCacheSize, this.maxSize);\n\t}\n}\n\nmodule.exports = QuickLRU;\n", "'use strict';\nconst EventEmitter = require('events');\nconst tls = require('tls');\nconst http2 = require('http2');\nconst QuickLRU = require('quick-lru');\n\nconst kCurrentStreamsCount = Symbol('currentStreamsCount');\nconst kRequest = Symbol('request');\nconst kOriginSet = Symbol('cachedOriginSet');\nconst kGracefullyClosing = Symbol('gracefullyClosing');\n\nconst nameKeys = [\n\t// `http2.connect()` options\n\t'maxDeflateDynamicTableSize',\n\t'maxSessionMemory',\n\t'maxHeaderListPairs',\n\t'maxOutstandingPings',\n\t'maxReservedRemoteStreams',\n\t'maxSendHeaderBlockLength',\n\t'paddingStrategy',\n\n\t// `tls.connect()` options\n\t'localAddress',\n\t'path',\n\t'rejectUnauthorized',\n\t'minDHSize',\n\n\t// `tls.createSecureContext()` options\n\t'ca',\n\t'cert',\n\t'clientCertEngine',\n\t'ciphers',\n\t'key',\n\t'pfx',\n\t'servername',\n\t'minVersion',\n\t'maxVersion',\n\t'secureProtocol',\n\t'crl',\n\t'honorCipherOrder',\n\t'ecdhCurve',\n\t'dhparam',\n\t'secureOptions',\n\t'sessionIdContext'\n];\n\nconst getSortedIndex = (array, value, compare) => {\n\tlet low = 0;\n\tlet high = array.length;\n\n\twhile (low < high) {\n\t\tconst mid = (low + high) >>> 1;\n\n\t\t/* istanbul ignore next */\n\t\tif (compare(array[mid], value)) {\n\t\t\t// This never gets called because we use descending sort. Better to have this anyway.\n\t\t\tlow = mid + 1;\n\t\t} else {\n\t\t\thigh = mid;\n\t\t}\n\t}\n\n\treturn low;\n};\n\nconst compareSessions = (a, b) => {\n\treturn a.remoteSettings.maxConcurrentStreams > b.remoteSettings.maxConcurrentStreams;\n};\n\n// See https://tools.ietf.org/html/rfc8336\nconst closeCoveredSessions = (where, session) => {\n\t// Clients SHOULD NOT emit new requests on any connection whose Origin\n\t// Set is a proper subset of another connection's Origin Set, and they\n\t// SHOULD close it once all outstanding requests are satisfied.\n\tfor (const coveredSession of where) {\n\t\tif (\n\t\t\t// The set is a proper subset when its length is less than the other set.\n\t\t\tcoveredSession[kOriginSet].length < session[kOriginSet].length &&\n\n\t\t\t// And the other set includes all elements of the subset.\n\t\t\tcoveredSession[kOriginSet].every(origin => session[kOriginSet].includes(origin)) &&\n\n\t\t\t// Makes sure that the session can handle all requests from the covered session.\n\t\t\tcoveredSession[kCurrentStreamsCount] + session[kCurrentStreamsCount] <= session.remoteSettings.maxConcurrentStreams\n\t\t) {\n\t\t\t// This allows pending requests to finish and prevents making new requests.\n\t\t\tgracefullyClose(coveredSession);\n\t\t}\n\t}\n};\n\n// This is basically inverted `closeCoveredSessions(...)`.\nconst closeSessionIfCovered = (where, coveredSession) => {\n\tfor (const session of where) {\n\t\tif (\n\t\t\tcoveredSession[kOriginSet].length < session[kOriginSet].length &&\n\t\t\tcoveredSession[kOriginSet].every(origin => session[kOriginSet].includes(origin)) &&\n\t\t\tcoveredSession[kCurrentStreamsCount] + session[kCurrentStreamsCount] <= session.remoteSettings.maxConcurrentStreams\n\t\t) {\n\t\t\tgracefullyClose(coveredSession);\n\t\t}\n\t}\n};\n\nconst getSessions = ({agent, isFree}) => {\n\tconst result = {};\n\n\t// eslint-disable-next-line guard-for-in\n\tfor (const normalizedOptions in agent.sessions) {\n\t\tconst sessions = agent.sessions[normalizedOptions];\n\n\t\tconst filtered = sessions.filter(session => {\n\t\t\tconst result = session[Agent.kCurrentStreamsCount] < session.remoteSettings.maxConcurrentStreams;\n\n\t\t\treturn isFree ? result : !result;\n\t\t});\n\n\t\tif (filtered.length !== 0) {\n\t\t\tresult[normalizedOptions] = filtered;\n\t\t}\n\t}\n\n\treturn result;\n};\n\nconst gracefullyClose = session => {\n\tsession[kGracefullyClosing] = true;\n\n\tif (session[kCurrentStreamsCount] === 0) {\n\t\tsession.close();\n\t}\n};\n\nclass Agent extends EventEmitter {\n\tconstructor({timeout = 60000, maxSessions = Infinity, maxFreeSessions = 10, maxCachedTlsSessions = 100} = {}) {\n\t\tsuper();\n\n\t\t// A session is considered busy when its current streams count\n\t\t// is equal to or greater than the `maxConcurrentStreams` value.\n\n\t\t// A session is considered free when its current streams count\n\t\t// is less than the `maxConcurrentStreams` value.\n\n\t\t// SESSIONS[NORMALIZED_OPTIONS] = [];\n\t\tthis.sessions = {};\n\n\t\t// The queue for creating new sessions. It looks like this:\n\t\t// QUEUE[NORMALIZED_OPTIONS][NORMALIZED_ORIGIN] = ENTRY_FUNCTION\n\t\t//\n\t\t// The entry function has `listeners`, `completed` and `destroyed` properties.\n\t\t// `listeners` is an array of objects containing `resolve` and `reject` functions.\n\t\t// `completed` is a boolean. It's set to true after ENTRY_FUNCTION is executed.\n\t\t// `destroyed` is a boolean. If it's set to true, the session will be destroyed if hasn't connected yet.\n\t\tthis.queue = {};\n\n\t\t// Each session will use this timeout value.\n\t\tthis.timeout = timeout;\n\n\t\t// Max sessions in total\n\t\tthis.maxSessions = maxSessions;\n\n\t\t// Max free sessions in total\n\t\t// TODO: decreasing `maxFreeSessions` should close some sessions\n\t\tthis.maxFreeSessions = maxFreeSessions;\n\n\t\tthis._freeSessionsCount = 0;\n\t\tthis._sessionsCount = 0;\n\n\t\t// We don't support push streams by default.\n\t\tthis.settings = {\n\t\t\tenablePush: false\n\t\t};\n\n\t\t// Reusing TLS sessions increases performance.\n\t\tthis.tlsSessionCache = new QuickLRU({maxSize: maxCachedTlsSessions});\n\t}\n\n\tstatic normalizeOrigin(url, servername) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = new URL(url);\n\t\t}\n\n\t\tif (servername && url.hostname !== servername) {\n\t\t\turl.hostname = servername;\n\t\t}\n\n\t\treturn url.origin;\n\t}\n\n\tnormalizeOptions(options) {\n\t\tlet normalized = '';\n\n\t\tif (options) {\n\t\t\tfor (const key of nameKeys) {\n\t\t\t\tif (options[key]) {\n\t\t\t\t\tnormalized += `:${options[key]}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn normalized;\n\t}\n\n\t_tryToCreateNewSession(normalizedOptions, normalizedOrigin) {\n\t\tif (!(normalizedOptions in this.queue) || !(normalizedOrigin in this.queue[normalizedOptions])) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = this.queue[normalizedOptions][normalizedOrigin];\n\n\t\t// The entry function can be run only once.\n\t\t// BUG: The session may be never created when:\n\t\t// - the first condition is false AND\n\t\t// - this function is never called with the same arguments in the future.\n\t\tif (this._sessionsCount < this.maxSessions && !item.completed) {\n\t\t\titem.completed = true;\n\n\t\t\titem();\n\t\t}\n\t}\n\n\tgetSession(origin, options, listeners) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (Array.isArray(listeners)) {\n\t\t\t\tlisteners = [...listeners];\n\n\t\t\t\t// Resolve the current promise ASAP, we're just moving the listeners.\n\t\t\t\t// They will be executed at a different time.\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\tlisteners = [{resolve, reject}];\n\t\t\t}\n\n\t\t\tconst normalizedOptions = this.normalizeOptions(options);\n\t\t\tconst normalizedOrigin = Agent.normalizeOrigin(origin, options && options.servername);\n\n\t\t\tif (normalizedOrigin === undefined) {\n\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\treject(new TypeError('The `origin` argument needs to be a string or an URL object'));\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (normalizedOptions in this.sessions) {\n\t\t\t\tconst sessions = this.sessions[normalizedOptions];\n\n\t\t\t\tlet maxConcurrentStreams = -1;\n\t\t\t\tlet currentStreamsCount = -1;\n\t\t\t\tlet optimalSession;\n\n\t\t\t\t// We could just do this.sessions[normalizedOptions].find(...) but that isn't optimal.\n\t\t\t\t// Additionally, we are looking for session which has biggest current pending streams count.\n\t\t\t\tfor (const session of sessions) {\n\t\t\t\t\tconst sessionMaxConcurrentStreams = session.remoteSettings.maxConcurrentStreams;\n\n\t\t\t\t\tif (sessionMaxConcurrentStreams < maxConcurrentStreams) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (session[kOriginSet].includes(normalizedOrigin)) {\n\t\t\t\t\t\tconst sessionCurrentStreamsCount = session[kCurrentStreamsCount];\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tsessionCurrentStreamsCount >= sessionMaxConcurrentStreams ||\n\t\t\t\t\t\t\tsession[kGracefullyClosing] ||\n\t\t\t\t\t\t\t// Unfortunately the `close` event isn't called immediately,\n\t\t\t\t\t\t\t// so `session.destroyed` is `true`, but `session.closed` is `false`.\n\t\t\t\t\t\t\tsession.destroyed\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// We only need set this once.\n\t\t\t\t\t\tif (!optimalSession) {\n\t\t\t\t\t\t\tmaxConcurrentStreams = sessionMaxConcurrentStreams;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// We're looking for the session which has biggest current pending stream count,\n\t\t\t\t\t\t// in order to minimalize the amount of active sessions.\n\t\t\t\t\t\tif (sessionCurrentStreamsCount > currentStreamsCount) {\n\t\t\t\t\t\t\toptimalSession = session;\n\t\t\t\t\t\t\tcurrentStreamsCount = sessionCurrentStreamsCount;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (optimalSession) {\n\t\t\t\t\t/* istanbul ignore next: safety check */\n\t\t\t\t\tif (listeners.length !== 1) {\n\t\t\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\t\t\tconst error = new Error(\n\t\t\t\t\t\t\t\t`Expected the length of listeners to be 1, got ${listeners.length}.\\n` +\n\t\t\t\t\t\t\t\t'Please report this to https://github.com/szmarczak/http2-wrapper/'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlisteners[0].resolve(optimalSession);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (normalizedOptions in this.queue) {\n\t\t\t\tif (normalizedOrigin in this.queue[normalizedOptions]) {\n\t\t\t\t\t// There's already an item in the queue, just attach ourselves to it.\n\t\t\t\t\tthis.queue[normalizedOptions][normalizedOrigin].listeners.push(...listeners);\n\n\t\t\t\t\t// This shouldn't be executed here.\n\t\t\t\t\t// See the comment inside _tryToCreateNewSession.\n\t\t\t\t\tthis._tryToCreateNewSession(normalizedOptions, normalizedOrigin);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.queue[normalizedOptions] = {};\n\t\t\t}\n\n\t\t\t// The entry must be removed from the queue IMMEDIATELY when:\n\t\t\t// 1. the session connects successfully,\n\t\t\t// 2. an error occurs.\n\t\t\tconst removeFromQueue = () => {\n\t\t\t\t// Our entry can be replaced. We cannot remove the new one.\n\t\t\t\tif (normalizedOptions in this.queue && this.queue[normalizedOptions][normalizedOrigin] === entry) {\n\t\t\t\t\tdelete this.queue[normalizedOptions][normalizedOrigin];\n\n\t\t\t\t\tif (Object.keys(this.queue[normalizedOptions]).length === 0) {\n\t\t\t\t\t\tdelete this.queue[normalizedOptions];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// The main logic is here\n\t\t\tconst entry = () => {\n\t\t\t\tconst name = `${normalizedOrigin}:${normalizedOptions}`;\n\t\t\t\tlet receivedSettings = false;\n\n\t\t\t\ttry {\n\t\t\t\t\tconst session = http2.connect(origin, {\n\t\t\t\t\t\tcreateConnection: this.createConnection,\n\t\t\t\t\t\tsettings: this.settings,\n\t\t\t\t\t\tsession: this.tlsSessionCache.get(name),\n\t\t\t\t\t\t...options\n\t\t\t\t\t});\n\t\t\t\t\tsession[kCurrentStreamsCount] = 0;\n\t\t\t\t\tsession[kGracefullyClosing] = false;\n\n\t\t\t\t\tconst isFree = () => session[kCurrentStreamsCount] < session.remoteSettings.maxConcurrentStreams;\n\t\t\t\t\tlet wasFree = true;\n\n\t\t\t\t\tsession.socket.once('session', tlsSession => {\n\t\t\t\t\t\tthis.tlsSessionCache.set(name, tlsSession);\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.once('error', error => {\n\t\t\t\t\t\t// Listeners are empty when the session successfully connected.\n\t\t\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// The connection got broken, purge the cache.\n\t\t\t\t\t\tthis.tlsSessionCache.delete(name);\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.setTimeout(this.timeout, () => {\n\t\t\t\t\t\t// Terminates all streams owned by this session.\n\t\t\t\t\t\t// TODO: Maybe the streams should have a \"Session timed out\" error?\n\t\t\t\t\t\tsession.destroy();\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.once('close', () => {\n\t\t\t\t\t\tif (receivedSettings) {\n\t\t\t\t\t\t\t// 1. If it wasn't free then no need to decrease because\n\t\t\t\t\t\t\t// it has been decreased already in session.request().\n\t\t\t\t\t\t\t// 2. `stream.once('close')` won't increment the count\n\t\t\t\t\t\t\t// because the session is already closed.\n\t\t\t\t\t\t\tif (wasFree) {\n\t\t\t\t\t\t\t\tthis._freeSessionsCount--;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis._sessionsCount--;\n\n\t\t\t\t\t\t\t// This cannot be moved to the stream logic,\n\t\t\t\t\t\t\t// because there may be a session that hadn't made a single request.\n\t\t\t\t\t\t\tconst where = this.sessions[normalizedOptions];\n\t\t\t\t\t\t\twhere.splice(where.indexOf(session), 1);\n\n\t\t\t\t\t\t\tif (where.length === 0) {\n\t\t\t\t\t\t\t\tdelete this.sessions[normalizedOptions];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Broken connection\n\t\t\t\t\t\t\tconst error = new Error('Session closed without receiving a SETTINGS frame');\n\t\t\t\t\t\t\terror.code = 'HTTP2WRAPPER_NOSETTINGS';\n\n\t\t\t\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tremoveFromQueue();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// There may be another session awaiting.\n\t\t\t\t\t\tthis._tryToCreateNewSession(normalizedOptions, normalizedOrigin);\n\t\t\t\t\t});\n\n\t\t\t\t\t// Iterates over the queue and processes listeners.\n\t\t\t\t\tconst processListeners = () => {\n\t\t\t\t\t\tif (!(normalizedOptions in this.queue) || !isFree()) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (const origin of session[kOriginSet]) {\n\t\t\t\t\t\t\tif (origin in this.queue[normalizedOptions]) {\n\t\t\t\t\t\t\t\tconst {listeners} = this.queue[normalizedOptions][origin];\n\n\t\t\t\t\t\t\t\t// Prevents session overloading.\n\t\t\t\t\t\t\t\twhile (listeners.length !== 0 && isFree()) {\n\t\t\t\t\t\t\t\t\t// We assume `resolve(...)` calls `request(...)` *directly*,\n\t\t\t\t\t\t\t\t\t// otherwise the session will get overloaded.\n\t\t\t\t\t\t\t\t\tlisteners.shift().resolve(session);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst where = this.queue[normalizedOptions];\n\t\t\t\t\t\t\t\tif (where[origin].listeners.length === 0) {\n\t\t\t\t\t\t\t\t\tdelete where[origin];\n\n\t\t\t\t\t\t\t\t\tif (Object.keys(where).length === 0) {\n\t\t\t\t\t\t\t\t\t\tdelete this.queue[normalizedOptions];\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// We're no longer free, no point in continuing.\n\t\t\t\t\t\t\t\tif (!isFree()) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\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\t// The Origin Set cannot shrink. No need to check if it suddenly became covered by another one.\n\t\t\t\t\tsession.on('origin', () => {\n\t\t\t\t\t\tsession[kOriginSet] = session.originSet;\n\n\t\t\t\t\t\tif (!isFree()) {\n\t\t\t\t\t\t\t// The session is full.\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tprocessListeners();\n\n\t\t\t\t\t\t// Close covered sessions (if possible).\n\t\t\t\t\t\tcloseCoveredSessions(this.sessions[normalizedOptions], session);\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.once('remoteSettings', () => {\n\t\t\t\t\t\t// Fix Node.js bug preventing the process from exiting\n\t\t\t\t\t\tsession.ref();\n\t\t\t\t\t\tsession.unref();\n\n\t\t\t\t\t\tthis._sessionsCount++;\n\n\t\t\t\t\t\t// The Agent could have been destroyed already.\n\t\t\t\t\t\tif (entry.destroyed) {\n\t\t\t\t\t\t\tconst error = new Error('Agent has been destroyed');\n\n\t\t\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\t\t\tlistener.reject(error);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsession.destroy();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsession[kOriginSet] = session.originSet;\n\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst where = this.sessions;\n\n\t\t\t\t\t\t\tif (normalizedOptions in where) {\n\t\t\t\t\t\t\t\tconst sessions = where[normalizedOptions];\n\t\t\t\t\t\t\t\tsessions.splice(getSortedIndex(sessions, session, compareSessions), 0, session);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twhere[normalizedOptions] = [session];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._freeSessionsCount += 1;\n\t\t\t\t\t\treceivedSettings = true;\n\n\t\t\t\t\t\tthis.emit('session', session);\n\n\t\t\t\t\t\tprocessListeners();\n\t\t\t\t\t\tremoveFromQueue();\n\n\t\t\t\t\t\t// TODO: Close last recently used (or least used?) session\n\t\t\t\t\t\tif (session[kCurrentStreamsCount] === 0 && this._freeSessionsCount > this.maxFreeSessions) {\n\t\t\t\t\t\t\tsession.close();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check if we haven't managed to execute all listeners.\n\t\t\t\t\t\tif (listeners.length !== 0) {\n\t\t\t\t\t\t\t// Request for a new session with predefined listeners.\n\t\t\t\t\t\t\tthis.getSession(normalizedOrigin, options, listeners);\n\t\t\t\t\t\t\tlisteners.length = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// `session.remoteSettings.maxConcurrentStreams` might get increased\n\t\t\t\t\t\tsession.on('remoteSettings', () => {\n\t\t\t\t\t\t\tprocessListeners();\n\n\t\t\t\t\t\t\t// In case the Origin Set changes\n\t\t\t\t\t\t\tcloseCoveredSessions(this.sessions[normalizedOptions], session);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\t// Shim `session.request()` in order to catch all streams\n\t\t\t\t\tsession[kRequest] = session.request;\n\t\t\t\t\tsession.request = (headers, streamOptions) => {\n\t\t\t\t\t\tif (session[kGracefullyClosing]) {\n\t\t\t\t\t\t\tthrow new Error('The session is gracefully closing. No new streams are allowed.');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst stream = session[kRequest](headers, streamOptions);\n\n\t\t\t\t\t\t// The process won't exit until the session is closed or all requests are gone.\n\t\t\t\t\t\tsession.ref();\n\n\t\t\t\t\t\t++session[kCurrentStreamsCount];\n\n\t\t\t\t\t\tif (session[kCurrentStreamsCount] === session.remoteSettings.maxConcurrentStreams) {\n\t\t\t\t\t\t\tthis._freeSessionsCount--;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstream.once('close', () => {\n\t\t\t\t\t\t\twasFree = isFree();\n\n\t\t\t\t\t\t\t--session[kCurrentStreamsCount];\n\n\t\t\t\t\t\t\tif (!session.destroyed && !session.closed) {\n\t\t\t\t\t\t\t\tcloseSessionIfCovered(this.sessions[normalizedOptions], session);\n\n\t\t\t\t\t\t\t\tif (isFree() && !session.closed) {\n\t\t\t\t\t\t\t\t\tif (!wasFree) {\n\t\t\t\t\t\t\t\t\t\tthis._freeSessionsCount++;\n\n\t\t\t\t\t\t\t\t\t\twasFree = true;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst isEmpty = session[kCurrentStreamsCount] === 0;\n\n\t\t\t\t\t\t\t\t\tif (isEmpty) {\n\t\t\t\t\t\t\t\t\t\tsession.unref();\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tisEmpty &&\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tthis._freeSessionsCount > this.maxFreeSessions ||\n\t\t\t\t\t\t\t\t\t\t\tsession[kGracefullyClosing]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tsession.close();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tcloseCoveredSessions(this.sessions[normalizedOptions], session);\n\t\t\t\t\t\t\t\t\t\tprocessListeners();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn stream;\n\t\t\t\t\t};\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\tlistener.reject(error);\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveFromQueue();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tentry.listeners = listeners;\n\t\t\tentry.completed = false;\n\t\t\tentry.destroyed = false;\n\n\t\t\tthis.queue[normalizedOptions][normalizedOrigin] = entry;\n\t\t\tthis._tryToCreateNewSession(normalizedOptions, normalizedOrigin);\n\t\t});\n\t}\n\n\trequest(origin, options, headers, streamOptions) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.getSession(origin, options, [{\n\t\t\t\treject,\n\t\t\t\tresolve: session => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresolve(session.request(headers, streamOptions));\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}]);\n\t\t});\n\t}\n\n\tcreateConnection(origin, options) {\n\t\treturn Agent.connect(origin, options);\n\t}\n\n\tstatic connect(origin, options) {\n\t\toptions.ALPNProtocols = ['h2'];\n\n\t\tconst port = origin.port || 443;\n\t\tconst host = origin.hostname || origin.host;\n\n\t\tif (typeof options.servername === 'undefined') {\n\t\t\toptions.servername = host;\n\t\t}\n\n\t\treturn tls.connect(port, host, options);\n\t}\n\n\tcloseFreeSessions() {\n\t\tfor (const sessions of Object.values(this.sessions)) {\n\t\t\tfor (const session of sessions) {\n\t\t\t\tif (session[kCurrentStreamsCount] === 0) {\n\t\t\t\t\tsession.close();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdestroy(reason) {\n\t\tfor (const sessions of Object.values(this.sessions)) {\n\t\t\tfor (const session of sessions) {\n\t\t\t\tsession.destroy(reason);\n\t\t\t}\n\t\t}\n\n\t\tfor (const entriesOfAuthority of Object.values(this.queue)) {\n\t\t\tfor (const entry of Object.values(entriesOfAuthority)) {\n\t\t\t\tentry.destroyed = true;\n\t\t\t}\n\t\t}\n\n\t\t// New requests should NOT attach to destroyed sessions\n\t\tthis.queue = {};\n\t}\n\n\tget freeSessions() {\n\t\treturn getSessions({agent: this, isFree: true});\n\t}\n\n\tget busySessions() {\n\t\treturn getSessions({agent: this, isFree: false});\n\t}\n}\n\nAgent.kCurrentStreamsCount = kCurrentStreamsCount;\nAgent.kGracefullyClosing = kGracefullyClosing;\n\nmodule.exports = {\n\tAgent,\n\tglobalAgent: new Agent()\n};\n", "'use strict';\nconst {Readable} = require('stream');\n\nclass IncomingMessage extends Readable {\n\tconstructor(socket, highWaterMark) {\n\t\tsuper({\n\t\t\thighWaterMark,\n\t\t\tautoDestroy: false\n\t\t});\n\n\t\tthis.statusCode = null;\n\t\tthis.statusMessage = '';\n\t\tthis.httpVersion = '2.0';\n\t\tthis.httpVersionMajor = 2;\n\t\tthis.httpVersionMinor = 0;\n\t\tthis.headers = {};\n\t\tthis.trailers = {};\n\t\tthis.req = null;\n\n\t\tthis.aborted = false;\n\t\tthis.complete = false;\n\t\tthis.upgrade = null;\n\n\t\tthis.rawHeaders = [];\n\t\tthis.rawTrailers = [];\n\n\t\tthis.socket = socket;\n\t\tthis.connection = socket;\n\n\t\tthis._dumped = false;\n\t}\n\n\t_destroy(error) {\n\t\tthis.req._request.destroy(error);\n\t}\n\n\tsetTimeout(ms, callback) {\n\t\tthis.req.setTimeout(ms, callback);\n\t\treturn this;\n\t}\n\n\t_dump() {\n\t\tif (!this._dumped) {\n\t\t\tthis._dumped = true;\n\n\t\t\tthis.removeAllListeners('data');\n\t\t\tthis.resume();\n\t\t}\n\t}\n\n\t_read() {\n\t\tif (this.req) {\n\t\t\tthis.req._request.resume();\n\t\t}\n\t}\n}\n\nmodule.exports = IncomingMessage;\n", "'use strict';\n/* istanbul ignore file: https://github.com/nodejs/node/blob/a91293d4d9ab403046ab5eb022332e4e3d249bd3/lib/internal/url.js#L1257 */\n\nmodule.exports = url => {\n\tconst options = {\n\t\tprotocol: url.protocol,\n\t\thostname: typeof url.hostname === 'string' && url.hostname.startsWith('[') ? url.hostname.slice(1, -1) : url.hostname,\n\t\thost: url.host,\n\t\thash: url.hash,\n\t\tsearch: url.search,\n\t\tpathname: url.pathname,\n\t\thref: url.href,\n\t\tpath: `${url.pathname || ''}${url.search || ''}`\n\t};\n\n\tif (typeof url.port === 'string' && url.port.length !== 0) {\n\t\toptions.port = Number(url.port);\n\t}\n\n\tif (url.username || url.password) {\n\t\toptions.auth = `${url.username || ''}:${url.password || ''}`;\n\t}\n\n\treturn options;\n};\n", "'use strict';\n\nmodule.exports = (from, to, events) => {\n\tfor (const event of events) {\n\t\tfrom.on(event, (...args) => to.emit(event, ...args));\n\t}\n};\n", "'use strict';\n\nmodule.exports = header => {\n\tswitch (header) {\n\t\tcase ':method':\n\t\tcase ':scheme':\n\t\tcase ':authority':\n\t\tcase ':path':\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n", "'use strict';\n/* istanbul ignore file: https://github.com/nodejs/node/blob/master/lib/internal/errors.js */\n\nconst makeError = (Base, key, getMessage) => {\n\tmodule.exports[key] = class NodeError extends Base {\n\t\tconstructor(...args) {\n\t\t\tsuper(typeof getMessage === 'string' ? getMessage : getMessage(args));\n\t\t\tthis.name = `${super.name} [${key}]`;\n\t\t\tthis.code = key;\n\t\t}\n\t};\n};\n\nmakeError(TypeError, 'ERR_INVALID_ARG_TYPE', args => {\n\tconst type = args[0].includes('.') ? 'property' : 'argument';\n\n\tlet valid = args[1];\n\tconst isManyTypes = Array.isArray(valid);\n\n\tif (isManyTypes) {\n\t\tvalid = `${valid.slice(0, -1).join(', ')} or ${valid.slice(-1)}`;\n\t}\n\n\treturn `The \"${args[0]}\" ${type} must be ${isManyTypes ? 'one of' : 'of'} type ${valid}. Received ${typeof args[2]}`;\n});\n\nmakeError(TypeError, 'ERR_INVALID_PROTOCOL', args => {\n\treturn `Protocol \"${args[0]}\" not supported. Expected \"${args[1]}\"`;\n});\n\nmakeError(Error, 'ERR_HTTP_HEADERS_SENT', args => {\n\treturn `Cannot ${args[0]} headers after they are sent to the client`;\n});\n\nmakeError(TypeError, 'ERR_INVALID_HTTP_TOKEN', args => {\n\treturn `${args[0]} must be a valid HTTP token [${args[1]}]`;\n});\n\nmakeError(TypeError, 'ERR_HTTP_INVALID_HEADER_VALUE', args => {\n\treturn `Invalid value \"${args[0]} for header \"${args[1]}\"`;\n});\n\nmakeError(TypeError, 'ERR_INVALID_CHAR', args => {\n\treturn `Invalid character in ${args[0]} [${args[1]}]`;\n});\n", "'use strict';\nconst http2 = require('http2');\nconst {Writable} = require('stream');\nconst {Agent, globalAgent} = require('./agent');\nconst IncomingMessage = require('./incoming-message');\nconst urlToOptions = require('./utils/url-to-options');\nconst proxyEvents = require('./utils/proxy-events');\nconst isRequestPseudoHeader = require('./utils/is-request-pseudo-header');\nconst {\n\tERR_INVALID_ARG_TYPE,\n\tERR_INVALID_PROTOCOL,\n\tERR_HTTP_HEADERS_SENT,\n\tERR_INVALID_HTTP_TOKEN,\n\tERR_HTTP_INVALID_HEADER_VALUE,\n\tERR_INVALID_CHAR\n} = require('./utils/errors');\n\nconst {\n\tHTTP2_HEADER_STATUS,\n\tHTTP2_HEADER_METHOD,\n\tHTTP2_HEADER_PATH,\n\tHTTP2_METHOD_CONNECT\n} = http2.constants;\n\nconst kHeaders = Symbol('headers');\nconst kOrigin = Symbol('origin');\nconst kSession = Symbol('session');\nconst kOptions = Symbol('options');\nconst kFlushedHeaders = Symbol('flushedHeaders');\nconst kJobs = Symbol('jobs');\n\nconst isValidHttpToken = /^[\\^`\\-\\w!#$%&*+.|~]+$/;\nconst isInvalidHeaderValue = /[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/;\n\nclass ClientRequest extends Writable {\n\tconstructor(input, options, callback) {\n\t\tsuper({\n\t\t\tautoDestroy: false\n\t\t});\n\n\t\tconst hasInput = typeof input === 'string' || input instanceof URL;\n\t\tif (hasInput) {\n\t\t\tinput = urlToOptions(input instanceof URL ? input : new URL(input));\n\t\t}\n\n\t\tif (typeof options === 'function' || options === undefined) {\n\t\t\t// (options, callback)\n\t\t\tcallback = options;\n\t\t\toptions = hasInput ? input : {...input};\n\t\t} else {\n\t\t\t// (input, options, callback)\n\t\t\toptions = {...input, ...options};\n\t\t}\n\n\t\tif (options.h2session) {\n\t\t\tthis[kSession] = options.h2session;\n\t\t} else if (options.agent === false) {\n\t\t\tthis.agent = new Agent({maxFreeSessions: 0});\n\t\t} else if (typeof options.agent === 'undefined' || options.agent === null) {\n\t\t\tif (typeof options.createConnection === 'function') {\n\t\t\t\t// This is a workaround - we don't have to create the session on our own.\n\t\t\t\tthis.agent = new Agent({maxFreeSessions: 0});\n\t\t\t\tthis.agent.createConnection = options.createConnection;\n\t\t\t} else {\n\t\t\t\tthis.agent = globalAgent;\n\t\t\t}\n\t\t} else if (typeof options.agent.request === 'function') {\n\t\t\tthis.agent = options.agent;\n\t\t} else {\n\t\t\tthrow new ERR_INVALID_ARG_TYPE('options.agent', ['Agent-like Object', 'undefined', 'false'], options.agent);\n\t\t}\n\n\t\tif (options.protocol && options.protocol !== 'https:') {\n\t\t\tthrow new ERR_INVALID_PROTOCOL(options.protocol, 'https:');\n\t\t}\n\n\t\tconst port = options.port || options.defaultPort || (this.agent && this.agent.defaultPort) || 443;\n\t\tconst host = options.hostname || options.host || 'localhost';\n\n\t\t// Don't enforce the origin via options. It may be changed in an Agent.\n\t\tdelete options.hostname;\n\t\tdelete options.host;\n\t\tdelete options.port;\n\n\t\tconst {timeout} = options;\n\t\toptions.timeout = undefined;\n\n\t\tthis[kHeaders] = Object.create(null);\n\t\tthis[kJobs] = [];\n\n\t\tthis.socket = null;\n\t\tthis.connection = null;\n\n\t\tthis.method = options.method || 'GET';\n\t\tthis.path = options.path;\n\n\t\tthis.res = null;\n\t\tthis.aborted = false;\n\t\tthis.reusedSocket = false;\n\n\t\tif (options.headers) {\n\t\t\tfor (const [header, value] of Object.entries(options.headers)) {\n\t\t\t\tthis.setHeader(header, value);\n\t\t\t}\n\t\t}\n\n\t\tif (options.auth && !('authorization' in this[kHeaders])) {\n\t\t\tthis[kHeaders].authorization = 'Basic ' + Buffer.from(options.auth).toString('base64');\n\t\t}\n\n\t\toptions.session = options.tlsSession;\n\t\toptions.path = options.socketPath;\n\n\t\tthis[kOptions] = options;\n\n\t\t// Clients that generate HTTP/2 requests directly SHOULD use the :authority pseudo-header field instead of the Host header field.\n\t\tif (port === 443) {\n\t\t\tthis[kOrigin] = `https://${host}`;\n\n\t\t\tif (!(':authority' in this[kHeaders])) {\n\t\t\t\tthis[kHeaders][':authority'] = host;\n\t\t\t}\n\t\t} else {\n\t\t\tthis[kOrigin] = `https://${host}:${port}`;\n\n\t\t\tif (!(':authority' in this[kHeaders])) {\n\t\t\t\tthis[kHeaders][':authority'] = `${host}:${port}`;\n\t\t\t}\n\t\t}\n\n\t\tif (timeout) {\n\t\t\tthis.setTimeout(timeout);\n\t\t}\n\n\t\tif (callback) {\n\t\t\tthis.once('response', callback);\n\t\t}\n\n\t\tthis[kFlushedHeaders] = false;\n\t}\n\n\tget method() {\n\t\treturn this[kHeaders][HTTP2_HEADER_METHOD];\n\t}\n\n\tset method(value) {\n\t\tif (value) {\n\t\t\tthis[kHeaders][HTTP2_HEADER_METHOD] = value.toUpperCase();\n\t\t}\n\t}\n\n\tget path() {\n\t\treturn this[kHeaders][HTTP2_HEADER_PATH];\n\t}\n\n\tset path(value) {\n\t\tif (value) {\n\t\t\tthis[kHeaders][HTTP2_HEADER_PATH] = value;\n\t\t}\n\t}\n\n\tget _mustNotHaveABody() {\n\t\treturn this.method === 'GET' || this.method === 'HEAD' || this.method === 'DELETE';\n\t}\n\n\t_write(chunk, encoding, callback) {\n\t\t// https://github.com/nodejs/node/blob/654df09ae0c5e17d1b52a900a545f0664d8c7627/lib/internal/http2/util.js#L148-L156\n\t\tif (this._mustNotHaveABody) {\n\t\t\tcallback(new Error('The GET, HEAD and DELETE methods must NOT have a body'));\n\t\t\t/* istanbul ignore next: Node.js 12 throws directly */\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flushHeaders();\n\n\t\tconst callWrite = () => this._request.write(chunk, encoding, callback);\n\t\tif (this._request) {\n\t\t\tcallWrite();\n\t\t} else {\n\t\t\tthis[kJobs].push(callWrite);\n\t\t}\n\t}\n\n\t_final(callback) {\n\t\tif (this.destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flushHeaders();\n\n\t\tconst callEnd = () => {\n\t\t\t// For GET, HEAD and DELETE\n\t\t\tif (this._mustNotHaveABody) {\n\t\t\t\tcallback();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._request.end(callback);\n\t\t};\n\n\t\tif (this._request) {\n\t\t\tcallEnd();\n\t\t} else {\n\t\t\tthis[kJobs].push(callEnd);\n\t\t}\n\t}\n\n\tabort() {\n\t\tif (this.res && this.res.complete) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.aborted) {\n\t\t\tprocess.nextTick(() => this.emit('abort'));\n\t\t}\n\n\t\tthis.aborted = true;\n\n\t\tthis.destroy();\n\t}\n\n\t_destroy(error, callback) {\n\t\tif (this.res) {\n\t\t\tthis.res._dump();\n\t\t}\n\n\t\tif (this._request) {\n\t\t\tthis._request.destroy();\n\t\t}\n\n\t\tcallback(error);\n\t}\n\n\tasync flushHeaders() {\n\t\tif (this[kFlushedHeaders] || this.destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis[kFlushedHeaders] = true;\n\n\t\tconst isConnectMethod = this.method === HTTP2_METHOD_CONNECT;\n\n\t\t// The real magic is here\n\t\tconst onStream = stream => {\n\t\t\tthis._request = stream;\n\n\t\t\tif (this.destroyed) {\n\t\t\t\tstream.destroy();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Forwards `timeout`, `continue`, `close` and `error` events to this instance.\n\t\t\tif (!isConnectMethod) {\n\t\t\t\tproxyEvents(stream, this, ['timeout', 'continue', 'close', 'error']);\n\t\t\t}\n\n\t\t\t// Wait for the `finish` event. We don't want to emit the `response` event\n\t\t\t// before `request.end()` is called.\n\t\t\tconst waitForEnd = fn => {\n\t\t\t\treturn (...args) => {\n\t\t\t\t\tif (!this.writable && !this.destroyed) {\n\t\t\t\t\t\tfn(...args);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.once('finish', () => {\n\t\t\t\t\t\t\tfn(...args);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\t// This event tells we are ready to listen for the data.\n\t\t\tstream.once('response', waitForEnd((headers, flags, rawHeaders) => {\n\t\t\t\t// If we were to emit raw request stream, it would be as fast as the native approach.\n\t\t\t\t// Note that wrapping the raw stream in a Proxy instance won't improve the performance (already tested it).\n\t\t\t\tconst response = new IncomingMessage(this.socket, stream.readableHighWaterMark);\n\t\t\t\tthis.res = response;\n\n\t\t\t\tresponse.req = this;\n\t\t\t\tresponse.statusCode = headers[HTTP2_HEADER_STATUS];\n\t\t\t\tresponse.headers = headers;\n\t\t\t\tresponse.rawHeaders = rawHeaders;\n\n\t\t\t\tresponse.once('end', () => {\n\t\t\t\t\tif (this.aborted) {\n\t\t\t\t\t\tresponse.aborted = true;\n\t\t\t\t\t\tresponse.emit('aborted');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresponse.complete = true;\n\n\t\t\t\t\t\t// Has no effect, just be consistent with the Node.js behavior\n\t\t\t\t\t\tresponse.socket = null;\n\t\t\t\t\t\tresponse.connection = null;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (isConnectMethod) {\n\t\t\t\t\tresponse.upgrade = true;\n\n\t\t\t\t\t// The HTTP1 API says the socket is detached here,\n\t\t\t\t\t// but we can't do that so we pass the original HTTP2 request.\n\t\t\t\t\tif (this.emit('connect', response, stream, Buffer.alloc(0))) {\n\t\t\t\t\t\tthis.emit('close');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No listeners attached, destroy the original request.\n\t\t\t\t\t\tstream.destroy();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Forwards data\n\t\t\t\t\tstream.on('data', chunk => {\n\t\t\t\t\t\tif (!response._dumped && !response.push(chunk)) {\n\t\t\t\t\t\t\tstream.pause();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tstream.once('end', () => {\n\t\t\t\t\t\tresponse.push(null);\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!this.emit('response', response)) {\n\t\t\t\t\t\t// No listeners attached, dump the response.\n\t\t\t\t\t\tresponse._dump();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\t// Emits `information` event\n\t\t\tstream.once('headers', waitForEnd(\n\t\t\t\theaders => this.emit('information', {statusCode: headers[HTTP2_HEADER_STATUS]})\n\t\t\t));\n\n\t\t\tstream.once('trailers', waitForEnd((trailers, flags, rawTrailers) => {\n\t\t\t\tconst {res} = this;\n\n\t\t\t\t// Assigns trailers to the response object.\n\t\t\t\tres.trailers = trailers;\n\t\t\t\tres.rawTrailers = rawTrailers;\n\t\t\t}));\n\n\t\t\tconst {socket} = stream.session;\n\t\t\tthis.socket = socket;\n\t\t\tthis.connection = socket;\n\n\t\t\tfor (const job of this[kJobs]) {\n\t\t\t\tjob();\n\t\t\t}\n\n\t\t\tthis.emit('socket', this.socket);\n\t\t};\n\n\t\t// Makes a HTTP2 request\n\t\tif (this[kSession]) {\n\t\t\ttry {\n\t\t\t\tonStream(this[kSession].request(this[kHeaders]));\n\t\t\t} catch (error) {\n\t\t\t\tthis.emit('error', error);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.reusedSocket = true;\n\n\t\t\ttry {\n\t\t\t\tonStream(await this.agent.request(this[kOrigin], this[kOptions], this[kHeaders]));\n\t\t\t} catch (error) {\n\t\t\t\tthis.emit('error', error);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetHeader(name) {\n\t\tif (typeof name !== 'string') {\n\t\t\tthrow new ERR_INVALID_ARG_TYPE('name', 'string', name);\n\t\t}\n\n\t\treturn this[kHeaders][name.toLowerCase()];\n\t}\n\n\tget headersSent() {\n\t\treturn this[kFlushedHeaders];\n\t}\n\n\tremoveHeader(name) {\n\t\tif (typeof name !== 'string') {\n\t\t\tthrow new ERR_INVALID_ARG_TYPE('name', 'string', name);\n\t\t}\n\n\t\tif (this.headersSent) {\n\t\t\tthrow new ERR_HTTP_HEADERS_SENT('remove');\n\t\t}\n\n\t\tdelete this[kHeaders][name.toLowerCase()];\n\t}\n\n\tsetHeader(name, value) {\n\t\tif (this.headersSent) {\n\t\t\tthrow new ERR_HTTP_HEADERS_SENT('set');\n\t\t}\n\n\t\tif (typeof name !== 'string' || (!isValidHttpToken.test(name) && !isRequestPseudoHeader(name))) {\n\t\t\tthrow new ERR_INVALID_HTTP_TOKEN('Header name', name);\n\t\t}\n\n\t\tif (typeof value === 'undefined') {\n\t\t\tthrow new ERR_HTTP_INVALID_HEADER_VALUE(value, name);\n\t\t}\n\n\t\tif (isInvalidHeaderValue.test(value)) {\n\t\t\tthrow new ERR_INVALID_CHAR('header content', name);\n\t\t}\n\n\t\tthis[kHeaders][name.toLowerCase()] = value;\n\t}\n\n\tsetNoDelay() {\n\t\t// HTTP2 sockets cannot be malformed, do nothing.\n\t}\n\n\tsetSocketKeepAlive() {\n\t\t// HTTP2 sockets cannot be malformed, do nothing.\n\t}\n\n\tsetTimeout(ms, callback) {\n\t\tconst applyTimeout = () => this._request.setTimeout(ms, callback);\n\n\t\tif (this._request) {\n\t\t\tapplyTimeout();\n\t\t} else {\n\t\t\tthis[kJobs].push(applyTimeout);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tget maxHeadersCount() {\n\t\tif (!this.destroyed && this._request) {\n\t\t\treturn this._request.session.localSettings.maxHeaderListSize;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tset maxHeadersCount(_value) {\n\t\t// Updating HTTP2 settings would affect all requests, do nothing.\n\t}\n}\n\nmodule.exports = ClientRequest;\n", "'use strict';\nconst tls = require('tls');\n\nmodule.exports = (options = {}, connect = tls.connect) => new Promise((resolve, reject) => {\n\tlet timeout = false;\n\n\tlet socket;\n\n\tconst callback = async () => {\n\t\tawait socketPromise;\n\n\t\tsocket.off('timeout', onTimeout);\n\t\tsocket.off('error', reject);\n\n\t\tif (options.resolveSocket) {\n\t\t\tresolve({alpnProtocol: socket.alpnProtocol, socket, timeout});\n\n\t\t\tif (timeout) {\n\t\t\t\tawait Promise.resolve();\n\t\t\t\tsocket.emit('timeout');\n\t\t\t}\n\t\t} else {\n\t\t\tsocket.destroy();\n\t\t\tresolve({alpnProtocol: socket.alpnProtocol, timeout});\n\t\t}\n\t};\n\n\tconst onTimeout = async () => {\n\t\ttimeout = true;\n\t\tcallback();\n\t};\n\n\tconst socketPromise = (async () => {\n\t\ttry {\n\t\t\tsocket = await connect(options, callback);\n\n\t\t\tsocket.on('error', reject);\n\t\t\tsocket.once('timeout', onTimeout);\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t})();\n});\n", "'use strict';\nconst net = require('net');\n/* istanbul ignore file: https://github.com/nodejs/node/blob/v13.0.1/lib/_http_agent.js */\n\nmodule.exports = options => {\n\tlet servername = options.host;\n\tconst hostHeader = options.headers && options.headers.host;\n\n\tif (hostHeader) {\n\t\tif (hostHeader.startsWith('[')) {\n\t\t\tconst index = hostHeader.indexOf(']');\n\t\t\tif (index === -1) {\n\t\t\t\tservername = hostHeader;\n\t\t\t} else {\n\t\t\t\tservername = hostHeader.slice(1, -1);\n\t\t\t}\n\t\t} else {\n\t\t\tservername = hostHeader.split(':', 1)[0];\n\t\t}\n\t}\n\n\tif (net.isIP(servername)) {\n\t\treturn '';\n\t}\n\n\treturn servername;\n};\n", "'use strict';\nconst http = require('http');\nconst https = require('https');\nconst resolveALPN = require('resolve-alpn');\nconst QuickLRU = require('quick-lru');\nconst Http2ClientRequest = require('./client-request');\nconst calculateServerName = require('./utils/calculate-server-name');\nconst urlToOptions = require('./utils/url-to-options');\n\nconst cache = new QuickLRU({maxSize: 100});\nconst queue = new Map();\n\nconst installSocket = (agent, socket, options) => {\n\tsocket._httpMessage = {shouldKeepAlive: true};\n\n\tconst onFree = () => {\n\t\tagent.emit('free', socket, options);\n\t};\n\n\tsocket.on('free', onFree);\n\n\tconst onClose = () => {\n\t\tagent.removeSocket(socket, options);\n\t};\n\n\tsocket.on('close', onClose);\n\n\tconst onRemove = () => {\n\t\tagent.removeSocket(socket, options);\n\t\tsocket.off('close', onClose);\n\t\tsocket.off('free', onFree);\n\t\tsocket.off('agentRemove', onRemove);\n\t};\n\n\tsocket.on('agentRemove', onRemove);\n\n\tagent.emit('free', socket, options);\n};\n\nconst resolveProtocol = async options => {\n\tconst name = `${options.host}:${options.port}:${options.ALPNProtocols.sort()}`;\n\n\tif (!cache.has(name)) {\n\t\tif (queue.has(name)) {\n\t\t\tconst result = await queue.get(name);\n\t\t\treturn result.alpnProtocol;\n\t\t}\n\n\t\tconst {path, agent} = options;\n\t\toptions.path = options.socketPath;\n\n\t\tconst resultPromise = resolveALPN(options);\n\t\tqueue.set(name, resultPromise);\n\n\t\ttry {\n\t\t\tconst {socket, alpnProtocol} = await resultPromise;\n\t\t\tcache.set(name, alpnProtocol);\n\n\t\t\toptions.path = path;\n\n\t\t\tif (alpnProtocol === 'h2') {\n\t\t\t\t// https://github.com/nodejs/node/issues/33343\n\t\t\t\tsocket.destroy();\n\t\t\t} else {\n\t\t\t\tconst {globalAgent} = https;\n\t\t\t\tconst defaultCreateConnection = https.Agent.prototype.createConnection;\n\n\t\t\t\tif (agent) {\n\t\t\t\t\tif (agent.createConnection === defaultCreateConnection) {\n\t\t\t\t\t\tinstallSocket(agent, socket, options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsocket.destroy();\n\t\t\t\t\t}\n\t\t\t\t} else if (globalAgent.createConnection === defaultCreateConnection) {\n\t\t\t\t\tinstallSocket(globalAgent, socket, options);\n\t\t\t\t} else {\n\t\t\t\t\tsocket.destroy();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tqueue.delete(name);\n\n\t\t\treturn alpnProtocol;\n\t\t} catch (error) {\n\t\t\tqueue.delete(name);\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\treturn cache.get(name);\n};\n\nmodule.exports = async (input, options, callback) => {\n\tif (typeof input === 'string' || input instanceof URL) {\n\t\tinput = urlToOptions(new URL(input));\n\t}\n\n\tif (typeof options === 'function') {\n\t\tcallback = options;\n\t\toptions = undefined;\n\t}\n\n\toptions = {\n\t\tALPNProtocols: ['h2', 'http/1.1'],\n\t\t...input,\n\t\t...options,\n\t\tresolveSocket: true\n\t};\n\n\tif (!Array.isArray(options.ALPNProtocols) || options.ALPNProtocols.length === 0) {\n\t\tthrow new Error('The `ALPNProtocols` option must be an Array with at least one entry');\n\t}\n\n\toptions.protocol = options.protocol || 'https:';\n\tconst isHttps = options.protocol === 'https:';\n\n\toptions.host = options.hostname || options.host || 'localhost';\n\toptions.session = options.tlsSession;\n\toptions.servername = options.servername || calculateServerName(options);\n\toptions.port = options.port || (isHttps ? 443 : 80);\n\toptions._defaultAgent = isHttps ? https.globalAgent : http.globalAgent;\n\n\tconst agents = options.agent;\n\n\tif (agents) {\n\t\tif (agents.addRequest) {\n\t\t\tthrow new Error('The `options.agent` object can contain only `http`, `https` or `http2` properties');\n\t\t}\n\n\t\toptions.agent = agents[isHttps ? 'https' : 'http'];\n\t}\n\n\tif (isHttps) {\n\t\tconst protocol = await resolveProtocol(options);\n\n\t\tif (protocol === 'h2') {\n\t\t\tif (agents) {\n\t\t\t\toptions.agent = agents.http2;\n\t\t\t}\n\n\t\t\treturn new Http2ClientRequest(options, callback);\n\t\t}\n\t}\n\n\treturn http.request(options, callback);\n};\n\nmodule.exports.protocolCache = cache;\n", "'use strict';\nconst http2 = require('http2');\nconst agent = require('./agent');\nconst ClientRequest = require('./client-request');\nconst IncomingMessage = require('./incoming-message');\nconst auto = require('./auto');\n\nconst request = (url, options, callback) => {\n\treturn new ClientRequest(url, options, callback);\n};\n\nconst get = (url, options, callback) => {\n\t// eslint-disable-next-line unicorn/prevent-abbreviations\n\tconst req = new ClientRequest(url, options, callback);\n\treq.end();\n\n\treturn req;\n};\n\nmodule.exports = {\n\t...http2,\n\tClientRequest,\n\tIncomingMessage,\n\t...agent,\n\trequest,\n\tget,\n\tauto\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nexports.default = (body) => is_1.default.nodeStream(body) && is_1.default.function_(body.getBoundary);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs_1 = require(\"fs\");\nconst util_1 = require(\"util\");\nconst is_1 = require(\"@sindresorhus/is\");\nconst is_form_data_1 = require(\"./is-form-data\");\nconst statAsync = util_1.promisify(fs_1.stat);\nexports.default = async (body, headers) => {\n if (headers && 'content-length' in headers) {\n return Number(headers['content-length']);\n }\n if (!body) {\n return 0;\n }\n if (is_1.default.string(body)) {\n return Buffer.byteLength(body);\n }\n if (is_1.default.buffer(body)) {\n return body.length;\n }\n if (is_form_data_1.default(body)) {\n return util_1.promisify(body.getLength.bind(body))();\n }\n if (body instanceof fs_1.ReadStream) {\n const { size } = await statAsync(body.path);\n if (size === 0) {\n return undefined;\n }\n return size;\n }\n return undefined;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction default_1(from, to, events) {\n const fns = {};\n for (const event of events) {\n fns[event] = (...args) => {\n to.emit(event, ...args);\n };\n from.on(event, fns[event]);\n }\n return () => {\n for (const event of events) {\n from.off(event, fns[event]);\n }\n };\n}\nexports.default = default_1;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// When attaching listeners, it's very easy to forget about them.\n// Especially if you do error handling and set timeouts.\n// So instead of checking if it's proper to throw an error on every timeout ever,\n// use this simple tool which will remove all listeners you have attached.\nexports.default = () => {\n const handlers = [];\n return {\n once(origin, event, fn) {\n origin.once(event, fn);\n handlers.push({ origin, event, fn });\n },\n unhandleAll() {\n for (const handler of handlers) {\n const { origin, event, fn } = handler;\n origin.removeListener(event, fn);\n }\n handlers.length = 0;\n }\n };\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeoutError = void 0;\nconst net = require(\"net\");\nconst unhandle_1 = require(\"./unhandle\");\nconst reentry = Symbol('reentry');\nconst noop = () => { };\nclass TimeoutError extends Error {\n constructor(threshold, event) {\n super(`Timeout awaiting '${event}' for ${threshold}ms`);\n this.event = event;\n this.name = 'TimeoutError';\n this.code = 'ETIMEDOUT';\n }\n}\nexports.TimeoutError = TimeoutError;\nexports.default = (request, delays, options) => {\n if (reentry in request) {\n return noop;\n }\n request[reentry] = true;\n const cancelers = [];\n const { once, unhandleAll } = unhandle_1.default();\n const addTimeout = (delay, callback, event) => {\n var _a;\n const timeout = setTimeout(callback, delay, delay, event);\n (_a = timeout.unref) === null || _a === void 0 ? void 0 : _a.call(timeout);\n const cancel = () => {\n clearTimeout(timeout);\n };\n cancelers.push(cancel);\n return cancel;\n };\n const { host, hostname } = options;\n const timeoutHandler = (delay, event) => {\n request.destroy(new TimeoutError(delay, event));\n };\n const cancelTimeouts = () => {\n for (const cancel of cancelers) {\n cancel();\n }\n unhandleAll();\n };\n request.once('error', error => {\n cancelTimeouts();\n // Save original behavior\n /* istanbul ignore next */\n if (request.listenerCount('error') === 0) {\n throw error;\n }\n });\n request.once('close', cancelTimeouts);\n once(request, 'response', (response) => {\n once(response, 'end', cancelTimeouts);\n });\n if (typeof delays.request !== 'undefined') {\n addTimeout(delays.request, timeoutHandler, 'request');\n }\n if (typeof delays.socket !== 'undefined') {\n const socketTimeoutHandler = () => {\n timeoutHandler(delays.socket, 'socket');\n };\n request.setTimeout(delays.socket, socketTimeoutHandler);\n // `request.setTimeout(0)` causes a memory leak.\n // We can just remove the listener and forget about the timer - it's unreffed.\n // See https://github.com/sindresorhus/got/issues/690\n cancelers.push(() => {\n request.removeListener('timeout', socketTimeoutHandler);\n });\n }\n once(request, 'socket', (socket) => {\n var _a;\n const { socketPath } = request;\n /* istanbul ignore next: hard to test */\n if (socket.connecting) {\n const hasPath = Boolean(socketPath !== null && socketPath !== void 0 ? socketPath : net.isIP((_a = hostname !== null && hostname !== void 0 ? hostname : host) !== null && _a !== void 0 ? _a : '') !== 0);\n if (typeof delays.lookup !== 'undefined' && !hasPath && typeof socket.address().address === 'undefined') {\n const cancelTimeout = addTimeout(delays.lookup, timeoutHandler, 'lookup');\n once(socket, 'lookup', cancelTimeout);\n }\n if (typeof delays.connect !== 'undefined') {\n const timeConnect = () => addTimeout(delays.connect, timeoutHandler, 'connect');\n if (hasPath) {\n once(socket, 'connect', timeConnect());\n }\n else {\n once(socket, 'lookup', (error) => {\n if (error === null) {\n once(socket, 'connect', timeConnect());\n }\n });\n }\n }\n if (typeof delays.secureConnect !== 'undefined' && options.protocol === 'https:') {\n once(socket, 'connect', () => {\n const cancelTimeout = addTimeout(delays.secureConnect, timeoutHandler, 'secureConnect');\n once(socket, 'secureConnect', cancelTimeout);\n });\n }\n }\n if (typeof delays.send !== 'undefined') {\n const timeRequest = () => addTimeout(delays.send, timeoutHandler, 'send');\n /* istanbul ignore next: hard to test */\n if (socket.connecting) {\n once(socket, 'connect', () => {\n once(request, 'upload-complete', timeRequest());\n });\n }\n else {\n once(request, 'upload-complete', timeRequest());\n }\n }\n });\n if (typeof delays.response !== 'undefined') {\n once(request, 'upload-complete', () => {\n const cancelTimeout = addTimeout(delays.response, timeoutHandler, 'response');\n once(request, 'response', cancelTimeout);\n });\n }\n return cancelTimeouts;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nexports.default = (url) => {\n // Cast to URL\n url = url;\n const options = {\n protocol: url.protocol,\n hostname: is_1.default.string(url.hostname) && url.hostname.startsWith('[') ? url.hostname.slice(1, -1) : url.hostname,\n host: url.host,\n hash: url.hash,\n search: url.search,\n pathname: url.pathname,\n href: url.href,\n path: `${url.pathname || ''}${url.search || ''}`\n };\n if (is_1.default.string(url.port) && url.port.length > 0) {\n options.port = Number(url.port);\n }\n if (url.username || url.password) {\n options.auth = `${url.username || ''}:${url.password || ''}`;\n }\n return options;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* istanbul ignore file: deprecated */\nconst url_1 = require(\"url\");\nconst keys = [\n 'protocol',\n 'host',\n 'hostname',\n 'port',\n 'pathname',\n 'search'\n];\nexports.default = (origin, options) => {\n var _a, _b;\n if (options.path) {\n if (options.pathname) {\n throw new TypeError('Parameters `path` and `pathname` are mutually exclusive.');\n }\n if (options.search) {\n throw new TypeError('Parameters `path` and `search` are mutually exclusive.');\n }\n if (options.searchParams) {\n throw new TypeError('Parameters `path` and `searchParams` are mutually exclusive.');\n }\n }\n if (options.search && options.searchParams) {\n throw new TypeError('Parameters `search` and `searchParams` are mutually exclusive.');\n }\n if (!origin) {\n if (!options.protocol) {\n throw new TypeError('No URL protocol specified');\n }\n origin = `${options.protocol}//${(_b = (_a = options.hostname) !== null && _a !== void 0 ? _a : options.host) !== null && _b !== void 0 ? _b : ''}`;\n }\n const url = new url_1.URL(origin);\n if (options.path) {\n const searchIndex = options.path.indexOf('?');\n if (searchIndex === -1) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.slice(0, searchIndex);\n options.search = options.path.slice(searchIndex + 1);\n }\n delete options.path;\n }\n for (const key of keys) {\n if (options[key]) {\n url[key] = options[key].toString();\n }\n }\n return url;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass WeakableMap {\n constructor() {\n this.weakMap = new WeakMap();\n this.map = new Map();\n }\n set(key, value) {\n if (typeof key === 'object') {\n this.weakMap.set(key, value);\n }\n else {\n this.map.set(key, value);\n }\n }\n get(key) {\n if (typeof key === 'object') {\n return this.weakMap.get(key);\n }\n return this.map.get(key);\n }\n has(key) {\n if (typeof key === 'object') {\n return this.weakMap.has(key);\n }\n return this.map.has(key);\n }\n}\nexports.default = WeakableMap;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// TODO: Update https://github.com/sindresorhus/get-stream\nconst getBuffer = async (stream) => {\n const chunks = [];\n let length = 0;\n for await (const chunk of stream) {\n chunks.push(chunk);\n length += Buffer.byteLength(chunk);\n }\n if (Buffer.isBuffer(chunks[0])) {\n return Buffer.concat(chunks, length);\n }\n return Buffer.from(chunks.join(''));\n};\nexports.default = getBuffer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dnsLookupIpVersionToFamily = exports.isDnsLookupIpVersion = void 0;\nconst conversionTable = {\n auto: 0,\n ipv4: 4,\n ipv6: 6\n};\nexports.isDnsLookupIpVersion = (value) => {\n return value in conversionTable;\n};\nexports.dnsLookupIpVersionToFamily = (dnsLookupIpVersion) => {\n if (exports.isDnsLookupIpVersion(dnsLookupIpVersion)) {\n return conversionTable[dnsLookupIpVersion];\n }\n throw new Error('Invalid DNS lookup IP version');\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isResponseOk = void 0;\nexports.isResponseOk = (response) => {\n const { statusCode } = response;\n const limitStatusCode = response.request.options.followRedirect ? 299 : 399;\n return (statusCode >= 200 && statusCode <= limitStatusCode) || statusCode === 304;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst alreadyWarned = new Set();\nexports.default = (message) => {\n if (alreadyWarned.has(message)) {\n return;\n }\n alreadyWarned.add(message);\n // @ts-expect-error Missing types.\n process.emitWarning(`Got: ${message}`, {\n type: 'DeprecationWarning'\n });\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nconst normalizeArguments = (options, defaults) => {\n if (is_1.default.null_(options.encoding)) {\n throw new TypeError('To get a Buffer, set `options.responseType` to `buffer` instead');\n }\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.encoding);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.resolveBodyOnly);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.methodRewriting);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.isStream);\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.responseType);\n // `options.responseType`\n if (options.responseType === undefined) {\n options.responseType = 'text';\n }\n // `options.retry`\n const { retry } = options;\n if (defaults) {\n options.retry = { ...defaults.retry };\n }\n else {\n options.retry = {\n calculateDelay: retryObject => retryObject.computedValue,\n limit: 0,\n methods: [],\n statusCodes: [],\n errorCodes: [],\n maxRetryAfter: undefined\n };\n }\n if (is_1.default.object(retry)) {\n options.retry = {\n ...options.retry,\n ...retry\n };\n options.retry.methods = [...new Set(options.retry.methods.map(method => method.toUpperCase()))];\n options.retry.statusCodes = [...new Set(options.retry.statusCodes)];\n options.retry.errorCodes = [...new Set(options.retry.errorCodes)];\n }\n else if (is_1.default.number(retry)) {\n options.retry.limit = retry;\n }\n if (is_1.default.undefined(options.retry.maxRetryAfter)) {\n options.retry.maxRetryAfter = Math.min(\n // TypeScript is not smart enough to handle `.filter(x => is.number(x))`.\n // eslint-disable-next-line unicorn/no-fn-reference-in-iterator\n ...[options.timeout.request, options.timeout.connect].filter(is_1.default.number));\n }\n // `options.pagination`\n if (is_1.default.object(options.pagination)) {\n if (defaults) {\n options.pagination = {\n ...defaults.pagination,\n ...options.pagination\n };\n }\n const { pagination } = options;\n if (!is_1.default.function_(pagination.transform)) {\n throw new Error('`options.pagination.transform` must be implemented');\n }\n if (!is_1.default.function_(pagination.shouldContinue)) {\n throw new Error('`options.pagination.shouldContinue` must be implemented');\n }\n if (!is_1.default.function_(pagination.filter)) {\n throw new TypeError('`options.pagination.filter` must be implemented');\n }\n if (!is_1.default.function_(pagination.paginate)) {\n throw new Error('`options.pagination.paginate` must be implemented');\n }\n }\n // JSON mode\n if (options.responseType === 'json' && options.headers.accept === undefined) {\n options.headers.accept = 'application/json';\n }\n return options;\n};\nexports.default = normalizeArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryAfterStatusCodes = void 0;\nexports.retryAfterStatusCodes = new Set([413, 429, 503]);\nconst calculateRetryDelay = ({ attemptCount, retryOptions, error, retryAfter }) => {\n if (attemptCount > retryOptions.limit) {\n return 0;\n }\n const hasMethod = retryOptions.methods.includes(error.options.method);\n const hasErrorCode = retryOptions.errorCodes.includes(error.code);\n const hasStatusCode = error.response && retryOptions.statusCodes.includes(error.response.statusCode);\n if (!hasMethod || (!hasErrorCode && !hasStatusCode)) {\n return 0;\n }\n if (error.response) {\n if (retryAfter) {\n if (retryOptions.maxRetryAfter === undefined || retryAfter > retryOptions.maxRetryAfter) {\n return 0;\n }\n return retryAfter;\n }\n if (error.response.statusCode === 413) {\n return 0;\n }\n }\n const noise = Math.random() * 100;\n return ((2 ** (attemptCount - 1)) * 1000) + noise;\n};\nexports.default = calculateRetryDelay;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnsupportedProtocolError = exports.ReadError = exports.TimeoutError = exports.UploadError = exports.CacheError = exports.HTTPError = exports.MaxRedirectsError = exports.RequestError = exports.setNonEnumerableProperties = exports.knownHookEvents = exports.withoutBody = exports.kIsNormalizedAlready = void 0;\nconst util_1 = require(\"util\");\nconst stream_1 = require(\"stream\");\nconst fs_1 = require(\"fs\");\nconst url_1 = require(\"url\");\nconst http = require(\"http\");\nconst http_1 = require(\"http\");\nconst https = require(\"https\");\nconst http_timer_1 = require(\"@szmarczak/http-timer\");\nconst cacheable_lookup_1 = require(\"cacheable-lookup\");\nconst CacheableRequest = require(\"cacheable-request\");\nconst decompressResponse = require(\"decompress-response\");\n// @ts-expect-error Missing types\nconst http2wrapper = require(\"http2-wrapper\");\nconst lowercaseKeys = require(\"lowercase-keys\");\nconst is_1 = require(\"@sindresorhus/is\");\nconst get_body_size_1 = require(\"./utils/get-body-size\");\nconst is_form_data_1 = require(\"./utils/is-form-data\");\nconst proxy_events_1 = require(\"./utils/proxy-events\");\nconst timed_out_1 = require(\"./utils/timed-out\");\nconst url_to_options_1 = require(\"./utils/url-to-options\");\nconst options_to_url_1 = require(\"./utils/options-to-url\");\nconst weakable_map_1 = require(\"./utils/weakable-map\");\nconst get_buffer_1 = require(\"./utils/get-buffer\");\nconst dns_ip_version_1 = require(\"./utils/dns-ip-version\");\nconst is_response_ok_1 = require(\"./utils/is-response-ok\");\nconst deprecation_warning_1 = require(\"../utils/deprecation-warning\");\nconst normalize_arguments_1 = require(\"../as-promise/normalize-arguments\");\nconst calculate_retry_delay_1 = require(\"./calculate-retry-delay\");\nlet globalDnsCache;\nconst kRequest = Symbol('request');\nconst kResponse = Symbol('response');\nconst kResponseSize = Symbol('responseSize');\nconst kDownloadedSize = Symbol('downloadedSize');\nconst kBodySize = Symbol('bodySize');\nconst kUploadedSize = Symbol('uploadedSize');\nconst kServerResponsesPiped = Symbol('serverResponsesPiped');\nconst kUnproxyEvents = Symbol('unproxyEvents');\nconst kIsFromCache = Symbol('isFromCache');\nconst kCancelTimeouts = Symbol('cancelTimeouts');\nconst kStartedReading = Symbol('startedReading');\nconst kStopReading = Symbol('stopReading');\nconst kTriggerRead = Symbol('triggerRead');\nconst kBody = Symbol('body');\nconst kJobs = Symbol('jobs');\nconst kOriginalResponse = Symbol('originalResponse');\nconst kRetryTimeout = Symbol('retryTimeout');\nexports.kIsNormalizedAlready = Symbol('isNormalizedAlready');\nconst supportsBrotli = is_1.default.string(process.versions.brotli);\nexports.withoutBody = new Set(['GET', 'HEAD']);\nexports.knownHookEvents = [\n 'init',\n 'beforeRequest',\n 'beforeRedirect',\n 'beforeError',\n 'beforeRetry',\n // Promise-Only\n 'afterResponse'\n];\nfunction validateSearchParameters(searchParameters) {\n // eslint-disable-next-line guard-for-in\n for (const key in searchParameters) {\n const value = searchParameters[key];\n if (!is_1.default.string(value) && !is_1.default.number(value) && !is_1.default.boolean(value) && !is_1.default.null_(value) && !is_1.default.undefined(value)) {\n throw new TypeError(`The \\`searchParams\\` value '${String(value)}' must be a string, number, boolean or null`);\n }\n }\n}\nfunction isClientRequest(clientRequest) {\n return is_1.default.object(clientRequest) && !('statusCode' in clientRequest);\n}\nconst cacheableStore = new weakable_map_1.default();\nconst waitForOpenFile = async (file) => new Promise((resolve, reject) => {\n const onError = (error) => {\n reject(error);\n };\n // Node.js 12 has incomplete types\n if (!file.pending) {\n resolve();\n }\n file.once('error', onError);\n file.once('ready', () => {\n file.off('error', onError);\n resolve();\n });\n});\nconst redirectCodes = new Set([300, 301, 302, 303, 304, 307, 308]);\nconst nonEnumerableProperties = [\n 'context',\n 'body',\n 'json',\n 'form'\n];\nexports.setNonEnumerableProperties = (sources, to) => {\n // Non enumerable properties shall not be merged\n const properties = {};\n for (const source of sources) {\n if (!source) {\n continue;\n }\n for (const name of nonEnumerableProperties) {\n if (!(name in source)) {\n continue;\n }\n properties[name] = {\n writable: true,\n configurable: true,\n enumerable: false,\n // @ts-expect-error TS doesn't see the check above\n value: source[name]\n };\n }\n }\n Object.defineProperties(to, properties);\n};\n/**\nAn error to be thrown when a request fails.\nContains a `code` property with error class code, like `ECONNREFUSED`.\n*/\nclass RequestError extends Error {\n constructor(message, error, self) {\n var _a, _b;\n super(message);\n Error.captureStackTrace(this, this.constructor);\n this.name = 'RequestError';\n this.code = (_a = error.code) !== null && _a !== void 0 ? _a : 'ERR_GOT_REQUEST_ERROR';\n if (self instanceof Request) {\n Object.defineProperty(this, 'request', {\n enumerable: false,\n value: self\n });\n Object.defineProperty(this, 'response', {\n enumerable: false,\n value: self[kResponse]\n });\n Object.defineProperty(this, 'options', {\n // This fails because of TS 3.7.2 useDefineForClassFields\n // Ref: https://github.com/microsoft/TypeScript/issues/34972\n enumerable: false,\n value: self.options\n });\n }\n else {\n Object.defineProperty(this, 'options', {\n // This fails because of TS 3.7.2 useDefineForClassFields\n // Ref: https://github.com/microsoft/TypeScript/issues/34972\n enumerable: false,\n value: self\n });\n }\n this.timings = (_b = this.request) === null || _b === void 0 ? void 0 : _b.timings;\n // Recover the original stacktrace\n if (is_1.default.string(error.stack) && is_1.default.string(this.stack)) {\n const indexOfMessage = this.stack.indexOf(this.message) + this.message.length;\n const thisStackTrace = this.stack.slice(indexOfMessage).split('\\n').reverse();\n const errorStackTrace = error.stack.slice(error.stack.indexOf(error.message) + error.message.length).split('\\n').reverse();\n // Remove duplicated traces\n while (errorStackTrace.length !== 0 && errorStackTrace[0] === thisStackTrace[0]) {\n thisStackTrace.shift();\n }\n this.stack = `${this.stack.slice(0, indexOfMessage)}${thisStackTrace.reverse().join('\\n')}${errorStackTrace.reverse().join('\\n')}`;\n }\n }\n}\nexports.RequestError = RequestError;\n/**\nAn error to be thrown when the server redirects you more than ten times.\nIncludes a `response` property.\n*/\nclass MaxRedirectsError extends RequestError {\n constructor(request) {\n super(`Redirected ${request.options.maxRedirects} times. Aborting.`, {}, request);\n this.name = 'MaxRedirectsError';\n this.code = 'ERR_TOO_MANY_REDIRECTS';\n }\n}\nexports.MaxRedirectsError = MaxRedirectsError;\n/**\nAn error to be thrown when the server response code is not 2xx nor 3xx if `options.followRedirect` is `true`, but always except for 304.\nIncludes a `response` property.\n*/\nclass HTTPError extends RequestError {\n constructor(response) {\n super(`Response code ${response.statusCode} (${response.statusMessage})`, {}, response.request);\n this.name = 'HTTPError';\n this.code = 'ERR_NON_2XX_3XX_RESPONSE';\n }\n}\nexports.HTTPError = HTTPError;\n/**\nAn error to be thrown when a cache method fails.\nFor example, if the database goes down or there's a filesystem error.\n*/\nclass CacheError extends RequestError {\n constructor(error, request) {\n super(error.message, error, request);\n this.name = 'CacheError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_CACHE_ACCESS' : this.code;\n }\n}\nexports.CacheError = CacheError;\n/**\nAn error to be thrown when the request body is a stream and an error occurs while reading from that stream.\n*/\nclass UploadError extends RequestError {\n constructor(error, request) {\n super(error.message, error, request);\n this.name = 'UploadError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_UPLOAD' : this.code;\n }\n}\nexports.UploadError = UploadError;\n/**\nAn error to be thrown when the request is aborted due to a timeout.\nIncludes an `event` and `timings` property.\n*/\nclass TimeoutError extends RequestError {\n constructor(error, timings, request) {\n super(error.message, error, request);\n this.name = 'TimeoutError';\n this.event = error.event;\n this.timings = timings;\n }\n}\nexports.TimeoutError = TimeoutError;\n/**\nAn error to be thrown when reading from response stream fails.\n*/\nclass ReadError extends RequestError {\n constructor(error, request) {\n super(error.message, error, request);\n this.name = 'ReadError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_READING_RESPONSE_STREAM' : this.code;\n }\n}\nexports.ReadError = ReadError;\n/**\nAn error to be thrown when given an unsupported protocol.\n*/\nclass UnsupportedProtocolError extends RequestError {\n constructor(options) {\n super(`Unsupported protocol \"${options.url.protocol}\"`, {}, options);\n this.name = 'UnsupportedProtocolError';\n this.code = 'ERR_UNSUPPORTED_PROTOCOL';\n }\n}\nexports.UnsupportedProtocolError = UnsupportedProtocolError;\nconst proxiedRequestEvents = [\n 'socket',\n 'connect',\n 'continue',\n 'information',\n 'upgrade',\n 'timeout'\n];\nclass Request extends stream_1.Duplex {\n constructor(url, options = {}, defaults) {\n super({\n // This must be false, to enable throwing after destroy\n // It is used for retry logic in Promise API\n autoDestroy: false,\n // It needs to be zero because we're just proxying the data to another stream\n highWaterMark: 0\n });\n this[kDownloadedSize] = 0;\n this[kUploadedSize] = 0;\n this.requestInitialized = false;\n this[kServerResponsesPiped] = new Set();\n this.redirects = [];\n this[kStopReading] = false;\n this[kTriggerRead] = false;\n this[kJobs] = [];\n this.retryCount = 0;\n // TODO: Remove this when targeting Node.js >= 12\n this._progressCallbacks = [];\n const unlockWrite = () => this._unlockWrite();\n const lockWrite = () => this._lockWrite();\n this.on('pipe', (source) => {\n source.prependListener('data', unlockWrite);\n source.on('data', lockWrite);\n source.prependListener('end', unlockWrite);\n source.on('end', lockWrite);\n });\n this.on('unpipe', (source) => {\n source.off('data', unlockWrite);\n source.off('data', lockWrite);\n source.off('end', unlockWrite);\n source.off('end', lockWrite);\n });\n this.on('pipe', source => {\n if (source instanceof http_1.IncomingMessage) {\n this.options.headers = {\n ...source.headers,\n ...this.options.headers\n };\n }\n });\n const { json, body, form } = options;\n if (json || body || form) {\n this._lockWrite();\n }\n if (exports.kIsNormalizedAlready in options) {\n this.options = options;\n }\n else {\n try {\n // @ts-expect-error Common TypeScript bug saying that `this.constructor` is not accessible\n this.options = this.constructor.normalizeArguments(url, options, defaults);\n }\n catch (error) {\n // TODO: Move this to `_destroy()`\n if (is_1.default.nodeStream(options.body)) {\n options.body.destroy();\n }\n this.destroy(error);\n return;\n }\n }\n (async () => {\n var _a;\n try {\n if (this.options.body instanceof fs_1.ReadStream) {\n await waitForOpenFile(this.options.body);\n }\n const { url: normalizedURL } = this.options;\n if (!normalizedURL) {\n throw new TypeError('Missing `url` property');\n }\n this.requestUrl = normalizedURL.toString();\n decodeURI(this.requestUrl);\n await this._finalizeBody();\n await this._makeRequest();\n if (this.destroyed) {\n (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.destroy();\n return;\n }\n // Queued writes etc.\n for (const job of this[kJobs]) {\n job();\n }\n // Prevent memory leak\n this[kJobs].length = 0;\n this.requestInitialized = true;\n }\n catch (error) {\n if (error instanceof RequestError) {\n this._beforeError(error);\n return;\n }\n // This is a workaround for https://github.com/nodejs/node/issues/33335\n if (!this.destroyed) {\n this.destroy(error);\n }\n }\n })();\n }\n static normalizeArguments(url, options, defaults) {\n var _a, _b, _c, _d, _e;\n const rawOptions = options;\n if (is_1.default.object(url) && !is_1.default.urlInstance(url)) {\n options = { ...defaults, ...url, ...options };\n }\n else {\n if (url && options && options.url !== undefined) {\n throw new TypeError('The `url` option is mutually exclusive with the `input` argument');\n }\n options = { ...defaults, ...options };\n if (url !== undefined) {\n options.url = url;\n }\n if (is_1.default.urlInstance(options.url)) {\n options.url = new url_1.URL(options.url.toString());\n }\n }\n // TODO: Deprecate URL options in Got 12.\n // Support extend-specific options\n if (options.cache === false) {\n options.cache = undefined;\n }\n if (options.dnsCache === false) {\n options.dnsCache = undefined;\n }\n // Nice type assertions\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.method);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.headers);\n is_1.assert.any([is_1.default.string, is_1.default.urlInstance, is_1.default.undefined], options.prefixUrl);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.cookieJar);\n is_1.assert.any([is_1.default.object, is_1.default.string, is_1.default.undefined], options.searchParams);\n is_1.assert.any([is_1.default.object, is_1.default.string, is_1.default.undefined], options.cache);\n is_1.assert.any([is_1.default.object, is_1.default.number, is_1.default.undefined], options.timeout);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.context);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.hooks);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.decompress);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.ignoreInvalidCookies);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.followRedirect);\n is_1.assert.any([is_1.default.number, is_1.default.undefined], options.maxRedirects);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.throwHttpErrors);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.http2);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.allowGetBody);\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.localAddress);\n is_1.assert.any([dns_ip_version_1.isDnsLookupIpVersion, is_1.default.undefined], options.dnsLookupIpVersion);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.https);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.rejectUnauthorized);\n if (options.https) {\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.https.rejectUnauthorized);\n is_1.assert.any([is_1.default.function_, is_1.default.undefined], options.https.checkServerIdentity);\n is_1.assert.any([is_1.default.string, is_1.default.object, is_1.default.array, is_1.default.undefined], options.https.certificateAuthority);\n is_1.assert.any([is_1.default.string, is_1.default.object, is_1.default.array, is_1.default.undefined], options.https.key);\n is_1.assert.any([is_1.default.string, is_1.default.object, is_1.default.array, is_1.default.undefined], options.https.certificate);\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.https.passphrase);\n is_1.assert.any([is_1.default.string, is_1.default.buffer, is_1.default.array, is_1.default.undefined], options.https.pfx);\n }\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.cacheOptions);\n // `options.method`\n if (is_1.default.string(options.method)) {\n options.method = options.method.toUpperCase();\n }\n else {\n options.method = 'GET';\n }\n // `options.headers`\n if (options.headers === (defaults === null || defaults === void 0 ? void 0 : defaults.headers)) {\n options.headers = { ...options.headers };\n }\n else {\n options.headers = lowercaseKeys({ ...(defaults === null || defaults === void 0 ? void 0 : defaults.headers), ...options.headers });\n }\n // Disallow legacy `url.Url`\n if ('slashes' in options) {\n throw new TypeError('The legacy `url.Url` has been deprecated. Use `URL` instead.');\n }\n // `options.auth`\n if ('auth' in options) {\n throw new TypeError('Parameter `auth` is deprecated. Use `username` / `password` instead.');\n }\n // `options.searchParams`\n if ('searchParams' in options) {\n if (options.searchParams && options.searchParams !== (defaults === null || defaults === void 0 ? void 0 : defaults.searchParams)) {\n let searchParameters;\n if (is_1.default.string(options.searchParams) || (options.searchParams instanceof url_1.URLSearchParams)) {\n searchParameters = new url_1.URLSearchParams(options.searchParams);\n }\n else {\n validateSearchParameters(options.searchParams);\n searchParameters = new url_1.URLSearchParams();\n // eslint-disable-next-line guard-for-in\n for (const key in options.searchParams) {\n const value = options.searchParams[key];\n if (value === null) {\n searchParameters.append(key, '');\n }\n else if (value !== undefined) {\n searchParameters.append(key, value);\n }\n }\n }\n // `normalizeArguments()` is also used to merge options\n (_a = defaults === null || defaults === void 0 ? void 0 : defaults.searchParams) === null || _a === void 0 ? void 0 : _a.forEach((value, key) => {\n // Only use default if one isn't already defined\n if (!searchParameters.has(key)) {\n searchParameters.append(key, value);\n }\n });\n options.searchParams = searchParameters;\n }\n }\n // `options.username` & `options.password`\n options.username = (_b = options.username) !== null && _b !== void 0 ? _b : '';\n options.password = (_c = options.password) !== null && _c !== void 0 ? _c : '';\n // `options.prefixUrl` & `options.url`\n if (is_1.default.undefined(options.prefixUrl)) {\n options.prefixUrl = (_d = defaults === null || defaults === void 0 ? void 0 : defaults.prefixUrl) !== null && _d !== void 0 ? _d : '';\n }\n else {\n options.prefixUrl = options.prefixUrl.toString();\n if (options.prefixUrl !== '' && !options.prefixUrl.endsWith('/')) {\n options.prefixUrl += '/';\n }\n }\n if (is_1.default.string(options.url)) {\n if (options.url.startsWith('/')) {\n throw new Error('`input` must not start with a slash when using `prefixUrl`');\n }\n options.url = options_to_url_1.default(options.prefixUrl + options.url, options);\n }\n else if ((is_1.default.undefined(options.url) && options.prefixUrl !== '') || options.protocol) {\n options.url = options_to_url_1.default(options.prefixUrl, options);\n }\n if (options.url) {\n if ('port' in options) {\n delete options.port;\n }\n // Make it possible to change `options.prefixUrl`\n let { prefixUrl } = options;\n Object.defineProperty(options, 'prefixUrl', {\n set: (value) => {\n const url = options.url;\n if (!url.href.startsWith(value)) {\n throw new Error(`Cannot change \\`prefixUrl\\` from ${prefixUrl} to ${value}: ${url.href}`);\n }\n options.url = new url_1.URL(value + url.href.slice(prefixUrl.length));\n prefixUrl = value;\n },\n get: () => prefixUrl\n });\n // Support UNIX sockets\n let { protocol } = options.url;\n if (protocol === 'unix:') {\n protocol = 'http:';\n options.url = new url_1.URL(`http://unix${options.url.pathname}${options.url.search}`);\n }\n // Set search params\n if (options.searchParams) {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n options.url.search = options.searchParams.toString();\n }\n // Protocol check\n if (protocol !== 'http:' && protocol !== 'https:') {\n throw new UnsupportedProtocolError(options);\n }\n // Update `username`\n if (options.username === '') {\n options.username = options.url.username;\n }\n else {\n options.url.username = options.username;\n }\n // Update `password`\n if (options.password === '') {\n options.password = options.url.password;\n }\n else {\n options.url.password = options.password;\n }\n }\n // `options.cookieJar`\n const { cookieJar } = options;\n if (cookieJar) {\n let { setCookie, getCookieString } = cookieJar;\n is_1.assert.function_(setCookie);\n is_1.assert.function_(getCookieString);\n /* istanbul ignore next: Horrible `tough-cookie` v3 check */\n if (setCookie.length === 4 && getCookieString.length === 0) {\n setCookie = util_1.promisify(setCookie.bind(options.cookieJar));\n getCookieString = util_1.promisify(getCookieString.bind(options.cookieJar));\n options.cookieJar = {\n setCookie,\n getCookieString: getCookieString\n };\n }\n }\n // `options.cache`\n const { cache } = options;\n if (cache) {\n if (!cacheableStore.has(cache)) {\n cacheableStore.set(cache, new CacheableRequest(((requestOptions, handler) => {\n const result = requestOptions[kRequest](requestOptions, handler);\n // TODO: remove this when `cacheable-request` supports async request functions.\n if (is_1.default.promise(result)) {\n // @ts-expect-error\n // We only need to implement the error handler in order to support HTTP2 caching.\n // The result will be a promise anyway.\n result.once = (event, handler) => {\n if (event === 'error') {\n result.catch(handler);\n }\n else if (event === 'abort') {\n // The empty catch is needed here in case when\n // it rejects before it's `await`ed in `_makeRequest`.\n (async () => {\n try {\n const request = (await result);\n request.once('abort', handler);\n }\n catch (_a) { }\n })();\n }\n else {\n /* istanbul ignore next: safety check */\n throw new Error(`Unknown HTTP2 promise event: ${event}`);\n }\n return result;\n };\n }\n return result;\n }), cache));\n }\n }\n // `options.cacheOptions`\n options.cacheOptions = { ...options.cacheOptions };\n // `options.dnsCache`\n if (options.dnsCache === true) {\n if (!globalDnsCache) {\n globalDnsCache = new cacheable_lookup_1.default();\n }\n options.dnsCache = globalDnsCache;\n }\n else if (!is_1.default.undefined(options.dnsCache) && !options.dnsCache.lookup) {\n throw new TypeError(`Parameter \\`dnsCache\\` must be a CacheableLookup instance or a boolean, got ${is_1.default(options.dnsCache)}`);\n }\n // `options.timeout`\n if (is_1.default.number(options.timeout)) {\n options.timeout = { request: options.timeout };\n }\n else if (defaults && options.timeout !== defaults.timeout) {\n options.timeout = {\n ...defaults.timeout,\n ...options.timeout\n };\n }\n else {\n options.timeout = { ...options.timeout };\n }\n // `options.context`\n if (!options.context) {\n options.context = {};\n }\n // `options.hooks`\n const areHooksDefault = options.hooks === (defaults === null || defaults === void 0 ? void 0 : defaults.hooks);\n options.hooks = { ...options.hooks };\n for (const event of exports.knownHookEvents) {\n if (event in options.hooks) {\n if (is_1.default.array(options.hooks[event])) {\n // See https://github.com/microsoft/TypeScript/issues/31445#issuecomment-576929044\n options.hooks[event] = [...options.hooks[event]];\n }\n else {\n throw new TypeError(`Parameter \\`${event}\\` must be an Array, got ${is_1.default(options.hooks[event])}`);\n }\n }\n else {\n options.hooks[event] = [];\n }\n }\n if (defaults && !areHooksDefault) {\n for (const event of exports.knownHookEvents) {\n const defaultHooks = defaults.hooks[event];\n if (defaultHooks.length > 0) {\n // See https://github.com/microsoft/TypeScript/issues/31445#issuecomment-576929044\n options.hooks[event] = [\n ...defaults.hooks[event],\n ...options.hooks[event]\n ];\n }\n }\n }\n // DNS options\n if ('family' in options) {\n deprecation_warning_1.default('\"options.family\" was never documented, please use \"options.dnsLookupIpVersion\"');\n }\n // HTTPS options\n if (defaults === null || defaults === void 0 ? void 0 : defaults.https) {\n options.https = { ...defaults.https, ...options.https };\n }\n if ('rejectUnauthorized' in options) {\n deprecation_warning_1.default('\"options.rejectUnauthorized\" is now deprecated, please use \"options.https.rejectUnauthorized\"');\n }\n if ('checkServerIdentity' in options) {\n deprecation_warning_1.default('\"options.checkServerIdentity\" was never documented, please use \"options.https.checkServerIdentity\"');\n }\n if ('ca' in options) {\n deprecation_warning_1.default('\"options.ca\" was never documented, please use \"options.https.certificateAuthority\"');\n }\n if ('key' in options) {\n deprecation_warning_1.default('\"options.key\" was never documented, please use \"options.https.key\"');\n }\n if ('cert' in options) {\n deprecation_warning_1.default('\"options.cert\" was never documented, please use \"options.https.certificate\"');\n }\n if ('passphrase' in options) {\n deprecation_warning_1.default('\"options.passphrase\" was never documented, please use \"options.https.passphrase\"');\n }\n if ('pfx' in options) {\n deprecation_warning_1.default('\"options.pfx\" was never documented, please use \"options.https.pfx\"');\n }\n // Other options\n if ('followRedirects' in options) {\n throw new TypeError('The `followRedirects` option does not exist. Use `followRedirect` instead.');\n }\n if (options.agent) {\n for (const key in options.agent) {\n if (key !== 'http' && key !== 'https' && key !== 'http2') {\n throw new TypeError(`Expected the \\`options.agent\\` properties to be \\`http\\`, \\`https\\` or \\`http2\\`, got \\`${key}\\``);\n }\n }\n }\n options.maxRedirects = (_e = options.maxRedirects) !== null && _e !== void 0 ? _e : 0;\n // Set non-enumerable properties\n exports.setNonEnumerableProperties([defaults, rawOptions], options);\n return normalize_arguments_1.default(options, defaults);\n }\n _lockWrite() {\n const onLockedWrite = () => {\n throw new TypeError('The payload has been already provided');\n };\n this.write = onLockedWrite;\n this.end = onLockedWrite;\n }\n _unlockWrite() {\n this.write = super.write;\n this.end = super.end;\n }\n async _finalizeBody() {\n const { options } = this;\n const { headers } = options;\n const isForm = !is_1.default.undefined(options.form);\n const isJSON = !is_1.default.undefined(options.json);\n const isBody = !is_1.default.undefined(options.body);\n const hasPayload = isForm || isJSON || isBody;\n const cannotHaveBody = exports.withoutBody.has(options.method) && !(options.method === 'GET' && options.allowGetBody);\n this._cannotHaveBody = cannotHaveBody;\n if (hasPayload) {\n if (cannotHaveBody) {\n throw new TypeError(`The \\`${options.method}\\` method cannot be used with a body`);\n }\n if ([isBody, isForm, isJSON].filter(isTrue => isTrue).length > 1) {\n throw new TypeError('The `body`, `json` and `form` options are mutually exclusive');\n }\n if (isBody &&\n !(options.body instanceof stream_1.Readable) &&\n !is_1.default.string(options.body) &&\n !is_1.default.buffer(options.body) &&\n !is_form_data_1.default(options.body)) {\n throw new TypeError('The `body` option must be a stream.Readable, string or Buffer');\n }\n if (isForm && !is_1.default.object(options.form)) {\n throw new TypeError('The `form` option must be an Object');\n }\n {\n // Serialize body\n const noContentType = !is_1.default.string(headers['content-type']);\n if (isBody) {\n // Special case for https://github.com/form-data/form-data\n if (is_form_data_1.default(options.body) && noContentType) {\n headers['content-type'] = `multipart/form-data; boundary=${options.body.getBoundary()}`;\n }\n this[kBody] = options.body;\n }\n else if (isForm) {\n if (noContentType) {\n headers['content-type'] = 'application/x-www-form-urlencoded';\n }\n this[kBody] = (new url_1.URLSearchParams(options.form)).toString();\n }\n else {\n if (noContentType) {\n headers['content-type'] = 'application/json';\n }\n this[kBody] = options.stringifyJson(options.json);\n }\n const uploadBodySize = await get_body_size_1.default(this[kBody], options.headers);\n // See https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body. For example, a Content-Length header\n // field is normally sent in a POST request even when the value is 0\n // (indicating an empty payload body). A user agent SHOULD NOT send a\n // Content-Length header field when the request message does not contain\n // a payload body and the method semantics do not anticipate such a\n // body.\n if (is_1.default.undefined(headers['content-length']) && is_1.default.undefined(headers['transfer-encoding'])) {\n if (!cannotHaveBody && !is_1.default.undefined(uploadBodySize)) {\n headers['content-length'] = String(uploadBodySize);\n }\n }\n }\n }\n else if (cannotHaveBody) {\n this._lockWrite();\n }\n else {\n this._unlockWrite();\n }\n this[kBodySize] = Number(headers['content-length']) || undefined;\n }\n async _onResponseBase(response) {\n const { options } = this;\n const { url } = options;\n this[kOriginalResponse] = response;\n if (options.decompress) {\n response = decompressResponse(response);\n }\n const statusCode = response.statusCode;\n const typedResponse = response;\n typedResponse.statusMessage = typedResponse.statusMessage ? typedResponse.statusMessage : http.STATUS_CODES[statusCode];\n typedResponse.url = options.url.toString();\n typedResponse.requestUrl = this.requestUrl;\n typedResponse.redirectUrls = this.redirects;\n typedResponse.request = this;\n typedResponse.isFromCache = response.fromCache || false;\n typedResponse.ip = this.ip;\n typedResponse.retryCount = this.retryCount;\n this[kIsFromCache] = typedResponse.isFromCache;\n this[kResponseSize] = Number(response.headers['content-length']) || undefined;\n this[kResponse] = response;\n response.once('end', () => {\n this[kResponseSize] = this[kDownloadedSize];\n this.emit('downloadProgress', this.downloadProgress);\n });\n response.once('error', (error) => {\n // Force clean-up, because some packages don't do this.\n // TODO: Fix decompress-response\n response.destroy();\n this._beforeError(new ReadError(error, this));\n });\n response.once('aborted', () => {\n this._beforeError(new ReadError({\n name: 'Error',\n message: 'The server aborted pending request',\n code: 'ECONNRESET'\n }, this));\n });\n this.emit('downloadProgress', this.downloadProgress);\n const rawCookies = response.headers['set-cookie'];\n if (is_1.default.object(options.cookieJar) && rawCookies) {\n let promises = rawCookies.map(async (rawCookie) => options.cookieJar.setCookie(rawCookie, url.toString()));\n if (options.ignoreInvalidCookies) {\n promises = promises.map(async (p) => p.catch(() => { }));\n }\n try {\n await Promise.all(promises);\n }\n catch (error) {\n this._beforeError(error);\n return;\n }\n }\n if (options.followRedirect && response.headers.location && redirectCodes.has(statusCode)) {\n // We're being redirected, we don't care about the response.\n // It'd be best to abort the request, but we can't because\n // we would have to sacrifice the TCP connection. We don't want that.\n response.resume();\n if (this[kRequest]) {\n this[kCancelTimeouts]();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this[kRequest];\n this[kUnproxyEvents]();\n }\n const shouldBeGet = statusCode === 303 && options.method !== 'GET' && options.method !== 'HEAD';\n if (shouldBeGet || !options.methodRewriting) {\n // Server responded with \"see other\", indicating that the resource exists at another location,\n // and the client should request it from that location via GET or HEAD.\n options.method = 'GET';\n if ('body' in options) {\n delete options.body;\n }\n if ('json' in options) {\n delete options.json;\n }\n if ('form' in options) {\n delete options.form;\n }\n this[kBody] = undefined;\n delete options.headers['content-length'];\n }\n if (this.redirects.length >= options.maxRedirects) {\n this._beforeError(new MaxRedirectsError(this));\n return;\n }\n try {\n // Do not remove. See https://github.com/sindresorhus/got/pull/214\n const redirectBuffer = Buffer.from(response.headers.location, 'binary').toString();\n // Handles invalid URLs. See https://github.com/sindresorhus/got/issues/604\n const redirectUrl = new url_1.URL(redirectBuffer, url);\n const redirectString = redirectUrl.toString();\n decodeURI(redirectString);\n // eslint-disable-next-line no-inner-declarations\n function isUnixSocketURL(url) {\n return url.protocol === 'unix:' || url.hostname === 'unix';\n }\n if (!isUnixSocketURL(url) && isUnixSocketURL(redirectUrl)) {\n this._beforeError(new RequestError('Cannot redirect to UNIX socket', {}, this));\n return;\n }\n // Redirecting to a different site, clear sensitive data.\n if (redirectUrl.hostname !== url.hostname || redirectUrl.port !== url.port) {\n if ('host' in options.headers) {\n delete options.headers.host;\n }\n if ('cookie' in options.headers) {\n delete options.headers.cookie;\n }\n if ('authorization' in options.headers) {\n delete options.headers.authorization;\n }\n if (options.username || options.password) {\n options.username = '';\n options.password = '';\n }\n }\n else {\n redirectUrl.username = options.username;\n redirectUrl.password = options.password;\n }\n this.redirects.push(redirectString);\n options.url = redirectUrl;\n for (const hook of options.hooks.beforeRedirect) {\n // eslint-disable-next-line no-await-in-loop\n await hook(options, typedResponse);\n }\n this.emit('redirect', typedResponse, options);\n await this._makeRequest();\n }\n catch (error) {\n this._beforeError(error);\n return;\n }\n return;\n }\n if (options.isStream && options.throwHttpErrors && !is_response_ok_1.isResponseOk(typedResponse)) {\n this._beforeError(new HTTPError(typedResponse));\n return;\n }\n response.on('readable', () => {\n if (this[kTriggerRead]) {\n this._read();\n }\n });\n this.on('resume', () => {\n response.resume();\n });\n this.on('pause', () => {\n response.pause();\n });\n response.once('end', () => {\n this.push(null);\n });\n this.emit('response', response);\n for (const destination of this[kServerResponsesPiped]) {\n if (destination.headersSent) {\n continue;\n }\n // eslint-disable-next-line guard-for-in\n for (const key in response.headers) {\n const isAllowed = options.decompress ? key !== 'content-encoding' : true;\n const value = response.headers[key];\n if (isAllowed) {\n destination.setHeader(key, value);\n }\n }\n destination.statusCode = statusCode;\n }\n }\n async _onResponse(response) {\n try {\n await this._onResponseBase(response);\n }\n catch (error) {\n /* istanbul ignore next: better safe than sorry */\n this._beforeError(error);\n }\n }\n _onRequest(request) {\n const { options } = this;\n const { timeout, url } = options;\n http_timer_1.default(request);\n this[kCancelTimeouts] = timed_out_1.default(request, timeout, url);\n const responseEventName = options.cache ? 'cacheableResponse' : 'response';\n request.once(responseEventName, (response) => {\n void this._onResponse(response);\n });\n request.once('error', (error) => {\n var _a;\n // Force clean-up, because some packages (e.g. nock) don't do this.\n request.destroy();\n // Node.js <= 12.18.2 mistakenly emits the response `end` first.\n (_a = request.res) === null || _a === void 0 ? void 0 : _a.removeAllListeners('end');\n error = error instanceof timed_out_1.TimeoutError ? new TimeoutError(error, this.timings, this) : new RequestError(error.message, error, this);\n this._beforeError(error);\n });\n this[kUnproxyEvents] = proxy_events_1.default(request, this, proxiedRequestEvents);\n this[kRequest] = request;\n this.emit('uploadProgress', this.uploadProgress);\n // Send body\n const body = this[kBody];\n const currentRequest = this.redirects.length === 0 ? this : request;\n if (is_1.default.nodeStream(body)) {\n body.pipe(currentRequest);\n body.once('error', (error) => {\n this._beforeError(new UploadError(error, this));\n });\n }\n else {\n this._unlockWrite();\n if (!is_1.default.undefined(body)) {\n this._writeRequest(body, undefined, () => { });\n currentRequest.end();\n this._lockWrite();\n }\n else if (this._cannotHaveBody || this._noPipe) {\n currentRequest.end();\n this._lockWrite();\n }\n }\n this.emit('request', request);\n }\n async _createCacheableRequest(url, options) {\n return new Promise((resolve, reject) => {\n // TODO: Remove `utils/url-to-options.ts` when `cacheable-request` is fixed\n Object.assign(options, url_to_options_1.default(url));\n // `http-cache-semantics` checks this\n // TODO: Fix this ignore.\n // @ts-expect-error\n delete options.url;\n let request;\n // This is ugly\n const cacheRequest = cacheableStore.get(options.cache)(options, async (response) => {\n // TODO: Fix `cacheable-response`\n response._readableState.autoDestroy = false;\n if (request) {\n (await request).emit('cacheableResponse', response);\n }\n resolve(response);\n });\n // Restore options\n options.url = url;\n cacheRequest.once('error', reject);\n cacheRequest.once('request', async (requestOrPromise) => {\n request = requestOrPromise;\n resolve(request);\n });\n });\n }\n async _makeRequest() {\n var _a, _b, _c, _d, _e;\n const { options } = this;\n const { headers } = options;\n for (const key in headers) {\n if (is_1.default.undefined(headers[key])) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete headers[key];\n }\n else if (is_1.default.null_(headers[key])) {\n throw new TypeError(`Use \\`undefined\\` instead of \\`null\\` to delete the \\`${key}\\` header`);\n }\n }\n if (options.decompress && is_1.default.undefined(headers['accept-encoding'])) {\n headers['accept-encoding'] = supportsBrotli ? 'gzip, deflate, br' : 'gzip, deflate';\n }\n // Set cookies\n if (options.cookieJar) {\n const cookieString = await options.cookieJar.getCookieString(options.url.toString());\n if (is_1.default.nonEmptyString(cookieString)) {\n options.headers.cookie = cookieString;\n }\n }\n for (const hook of options.hooks.beforeRequest) {\n // eslint-disable-next-line no-await-in-loop\n const result = await hook(options);\n if (!is_1.default.undefined(result)) {\n // @ts-expect-error Skip the type mismatch to support abstract responses\n options.request = () => result;\n break;\n }\n }\n if (options.body && this[kBody] !== options.body) {\n this[kBody] = options.body;\n }\n const { agent, request, timeout, url } = options;\n if (options.dnsCache && !('lookup' in options)) {\n options.lookup = options.dnsCache.lookup;\n }\n // UNIX sockets\n if (url.hostname === 'unix') {\n const matches = /(?<socketPath>.+?):(?<path>.+)/.exec(`${url.pathname}${url.search}`);\n if (matches === null || matches === void 0 ? void 0 : matches.groups) {\n const { socketPath, path } = matches.groups;\n Object.assign(options, {\n socketPath,\n path,\n host: ''\n });\n }\n }\n const isHttps = url.protocol === 'https:';\n // Fallback function\n let fallbackFn;\n if (options.http2) {\n fallbackFn = http2wrapper.auto;\n }\n else {\n fallbackFn = isHttps ? https.request : http.request;\n }\n const realFn = (_a = options.request) !== null && _a !== void 0 ? _a : fallbackFn;\n // Cache support\n const fn = options.cache ? this._createCacheableRequest : realFn;\n // Pass an agent directly when HTTP2 is disabled\n if (agent && !options.http2) {\n options.agent = agent[isHttps ? 'https' : 'http'];\n }\n // Prepare plain HTTP request options\n options[kRequest] = realFn;\n delete options.request;\n // TODO: Fix this ignore.\n // @ts-expect-error\n delete options.timeout;\n const requestOptions = options;\n requestOptions.shared = (_b = options.cacheOptions) === null || _b === void 0 ? void 0 : _b.shared;\n requestOptions.cacheHeuristic = (_c = options.cacheOptions) === null || _c === void 0 ? void 0 : _c.cacheHeuristic;\n requestOptions.immutableMinTimeToLive = (_d = options.cacheOptions) === null || _d === void 0 ? void 0 : _d.immutableMinTimeToLive;\n requestOptions.ignoreCargoCult = (_e = options.cacheOptions) === null || _e === void 0 ? void 0 : _e.ignoreCargoCult;\n // If `dnsLookupIpVersion` is not present do not override `family`\n if (options.dnsLookupIpVersion !== undefined) {\n try {\n requestOptions.family = dns_ip_version_1.dnsLookupIpVersionToFamily(options.dnsLookupIpVersion);\n }\n catch (_f) {\n throw new Error('Invalid `dnsLookupIpVersion` option value');\n }\n }\n // HTTPS options remapping\n if (options.https) {\n if ('rejectUnauthorized' in options.https) {\n requestOptions.rejectUnauthorized = options.https.rejectUnauthorized;\n }\n if (options.https.checkServerIdentity) {\n requestOptions.checkServerIdentity = options.https.checkServerIdentity;\n }\n if (options.https.certificateAuthority) {\n requestOptions.ca = options.https.certificateAuthority;\n }\n if (options.https.certificate) {\n requestOptions.cert = options.https.certificate;\n }\n if (options.https.key) {\n requestOptions.key = options.https.key;\n }\n if (options.https.passphrase) {\n requestOptions.passphrase = options.https.passphrase;\n }\n if (options.https.pfx) {\n requestOptions.pfx = options.https.pfx;\n }\n }\n try {\n let requestOrResponse = await fn(url, requestOptions);\n if (is_1.default.undefined(requestOrResponse)) {\n requestOrResponse = fallbackFn(url, requestOptions);\n }\n // Restore options\n options.request = request;\n options.timeout = timeout;\n options.agent = agent;\n // HTTPS options restore\n if (options.https) {\n if ('rejectUnauthorized' in options.https) {\n delete requestOptions.rejectUnauthorized;\n }\n if (options.https.checkServerIdentity) {\n // @ts-expect-error - This one will be removed when we remove the alias.\n delete requestOptions.checkServerIdentity;\n }\n if (options.https.certificateAuthority) {\n delete requestOptions.ca;\n }\n if (options.https.certificate) {\n delete requestOptions.cert;\n }\n if (options.https.key) {\n delete requestOptions.key;\n }\n if (options.https.passphrase) {\n delete requestOptions.passphrase;\n }\n if (options.https.pfx) {\n delete requestOptions.pfx;\n }\n }\n if (isClientRequest(requestOrResponse)) {\n this._onRequest(requestOrResponse);\n // Emit the response after the stream has been ended\n }\n else if (this.writable) {\n this.once('finish', () => {\n void this._onResponse(requestOrResponse);\n });\n this._unlockWrite();\n this.end();\n this._lockWrite();\n }\n else {\n void this._onResponse(requestOrResponse);\n }\n }\n catch (error) {\n if (error instanceof CacheableRequest.CacheError) {\n throw new CacheError(error, this);\n }\n throw new RequestError(error.message, error, this);\n }\n }\n async _error(error) {\n try {\n for (const hook of this.options.hooks.beforeError) {\n // eslint-disable-next-line no-await-in-loop\n error = await hook(error);\n }\n }\n catch (error_) {\n error = new RequestError(error_.message, error_, this);\n }\n this.destroy(error);\n }\n _beforeError(error) {\n if (this[kStopReading]) {\n return;\n }\n const { options } = this;\n const retryCount = this.retryCount + 1;\n this[kStopReading] = true;\n if (!(error instanceof RequestError)) {\n error = new RequestError(error.message, error, this);\n }\n const typedError = error;\n const { response } = typedError;\n void (async () => {\n if (response && !response.body) {\n response.setEncoding(this._readableState.encoding);\n try {\n response.rawBody = await get_buffer_1.default(response);\n response.body = response.rawBody.toString();\n }\n catch (_a) { }\n }\n if (this.listenerCount('retry') !== 0) {\n let backoff;\n try {\n let retryAfter;\n if (response && 'retry-after' in response.headers) {\n retryAfter = Number(response.headers['retry-after']);\n if (Number.isNaN(retryAfter)) {\n retryAfter = Date.parse(response.headers['retry-after']) - Date.now();\n if (retryAfter <= 0) {\n retryAfter = 1;\n }\n }\n else {\n retryAfter *= 1000;\n }\n }\n backoff = await options.retry.calculateDelay({\n attemptCount: retryCount,\n retryOptions: options.retry,\n error: typedError,\n retryAfter,\n computedValue: calculate_retry_delay_1.default({\n attemptCount: retryCount,\n retryOptions: options.retry,\n error: typedError,\n retryAfter,\n computedValue: 0\n })\n });\n }\n catch (error_) {\n void this._error(new RequestError(error_.message, error_, this));\n return;\n }\n if (backoff) {\n const retry = async () => {\n try {\n for (const hook of this.options.hooks.beforeRetry) {\n // eslint-disable-next-line no-await-in-loop\n await hook(this.options, typedError, retryCount);\n }\n }\n catch (error_) {\n void this._error(new RequestError(error_.message, error, this));\n return;\n }\n // Something forced us to abort the retry\n if (this.destroyed) {\n return;\n }\n this.destroy();\n this.emit('retry', retryCount, error);\n };\n this[kRetryTimeout] = setTimeout(retry, backoff);\n return;\n }\n }\n void this._error(typedError);\n })();\n }\n _read() {\n this[kTriggerRead] = true;\n const response = this[kResponse];\n if (response && !this[kStopReading]) {\n // We cannot put this in the `if` above\n // because `.read()` also triggers the `end` event\n if (response.readableLength) {\n this[kTriggerRead] = false;\n }\n let data;\n while ((data = response.read()) !== null) {\n this[kDownloadedSize] += data.length;\n this[kStartedReading] = true;\n const progress = this.downloadProgress;\n if (progress.percent < 1) {\n this.emit('downloadProgress', progress);\n }\n this.push(data);\n }\n }\n }\n // Node.js 12 has incorrect types, so the encoding must be a string\n _write(chunk, encoding, callback) {\n const write = () => {\n this._writeRequest(chunk, encoding, callback);\n };\n if (this.requestInitialized) {\n write();\n }\n else {\n this[kJobs].push(write);\n }\n }\n _writeRequest(chunk, encoding, callback) {\n if (this[kRequest].destroyed) {\n // Probably the `ClientRequest` instance will throw\n return;\n }\n this._progressCallbacks.push(() => {\n this[kUploadedSize] += Buffer.byteLength(chunk, encoding);\n const progress = this.uploadProgress;\n if (progress.percent < 1) {\n this.emit('uploadProgress', progress);\n }\n });\n // TODO: What happens if it's from cache? Then this[kRequest] won't be defined.\n this[kRequest].write(chunk, encoding, (error) => {\n if (!error && this._progressCallbacks.length > 0) {\n this._progressCallbacks.shift()();\n }\n callback(error);\n });\n }\n _final(callback) {\n const endRequest = () => {\n // FIX: Node.js 10 calls the write callback AFTER the end callback!\n while (this._progressCallbacks.length !== 0) {\n this._progressCallbacks.shift()();\n }\n // We need to check if `this[kRequest]` is present,\n // because it isn't when we use cache.\n if (!(kRequest in this)) {\n callback();\n return;\n }\n if (this[kRequest].destroyed) {\n callback();\n return;\n }\n this[kRequest].end((error) => {\n if (!error) {\n this[kBodySize] = this[kUploadedSize];\n this.emit('uploadProgress', this.uploadProgress);\n this[kRequest].emit('upload-complete');\n }\n callback(error);\n });\n };\n if (this.requestInitialized) {\n endRequest();\n }\n else {\n this[kJobs].push(endRequest);\n }\n }\n _destroy(error, callback) {\n var _a;\n this[kStopReading] = true;\n // Prevent further retries\n clearTimeout(this[kRetryTimeout]);\n if (kRequest in this) {\n this[kCancelTimeouts]();\n // TODO: Remove the next `if` when these get fixed:\n // - https://github.com/nodejs/node/issues/32851\n if (!((_a = this[kResponse]) === null || _a === void 0 ? void 0 : _a.complete)) {\n this[kRequest].destroy();\n }\n }\n if (error !== null && !is_1.default.undefined(error) && !(error instanceof RequestError)) {\n error = new RequestError(error.message, error, this);\n }\n callback(error);\n }\n get _isAboutToError() {\n return this[kStopReading];\n }\n /**\n The remote IP address.\n */\n get ip() {\n var _a;\n return (_a = this.socket) === null || _a === void 0 ? void 0 : _a.remoteAddress;\n }\n /**\n Indicates whether the request has been aborted or not.\n */\n get aborted() {\n var _a, _b, _c;\n return ((_b = (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.destroyed) !== null && _b !== void 0 ? _b : this.destroyed) && !((_c = this[kOriginalResponse]) === null || _c === void 0 ? void 0 : _c.complete);\n }\n get socket() {\n var _a, _b;\n return (_b = (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.socket) !== null && _b !== void 0 ? _b : undefined;\n }\n /**\n Progress event for downloading (receiving a response).\n */\n get downloadProgress() {\n let percent;\n if (this[kResponseSize]) {\n percent = this[kDownloadedSize] / this[kResponseSize];\n }\n else if (this[kResponseSize] === this[kDownloadedSize]) {\n percent = 1;\n }\n else {\n percent = 0;\n }\n return {\n percent,\n transferred: this[kDownloadedSize],\n total: this[kResponseSize]\n };\n }\n /**\n Progress event for uploading (sending a request).\n */\n get uploadProgress() {\n let percent;\n if (this[kBodySize]) {\n percent = this[kUploadedSize] / this[kBodySize];\n }\n else if (this[kBodySize] === this[kUploadedSize]) {\n percent = 1;\n }\n else {\n percent = 0;\n }\n return {\n percent,\n transferred: this[kUploadedSize],\n total: this[kBodySize]\n };\n }\n /**\n The object contains the following properties:\n\n - `start` - Time when the request started.\n - `socket` - Time when a socket was assigned to the request.\n - `lookup` - Time when the DNS lookup finished.\n - `connect` - Time when the socket successfully connected.\n - `secureConnect` - Time when the socket securely connected.\n - `upload` - Time when the request finished uploading.\n - `response` - Time when the request fired `response` event.\n - `end` - Time when the response fired `end` event.\n - `error` - Time when the request fired `error` event.\n - `abort` - Time when the request fired `abort` event.\n - `phases`\n - `wait` - `timings.socket - timings.start`\n - `dns` - `timings.lookup - timings.socket`\n - `tcp` - `timings.connect - timings.lookup`\n - `tls` - `timings.secureConnect - timings.connect`\n - `request` - `timings.upload - (timings.secureConnect || timings.connect)`\n - `firstByte` - `timings.response - timings.upload`\n - `download` - `timings.end - timings.response`\n - `total` - `(timings.end || timings.error || timings.abort) - timings.start`\n\n If something has not been measured yet, it will be `undefined`.\n\n __Note__: The time is a `number` representing the milliseconds elapsed since the UNIX epoch.\n */\n get timings() {\n var _a;\n return (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.timings;\n }\n /**\n Whether the response was retrieved from the cache.\n */\n get isFromCache() {\n return this[kIsFromCache];\n }\n pipe(destination, options) {\n if (this[kStartedReading]) {\n throw new Error('Failed to pipe. The response has been emitted already.');\n }\n if (destination instanceof http_1.ServerResponse) {\n this[kServerResponsesPiped].add(destination);\n }\n return super.pipe(destination, options);\n }\n unpipe(destination) {\n if (destination instanceof http_1.ServerResponse) {\n this[kServerResponsesPiped].delete(destination);\n }\n super.unpipe(destination);\n return this;\n }\n}\nexports.default = Request;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancelError = exports.ParseError = void 0;\nconst core_1 = require(\"../core\");\n/**\nAn error to be thrown when server response code is 2xx, and parsing body fails.\nIncludes a `response` property.\n*/\nclass ParseError extends core_1.RequestError {\n constructor(error, response) {\n const { options } = response.request;\n super(`${error.message} in \"${options.url.toString()}\"`, error, response.request);\n this.name = 'ParseError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_BODY_PARSE_FAILURE' : this.code;\n }\n}\nexports.ParseError = ParseError;\n/**\nAn error to be thrown when the request is aborted with `.cancel()`.\n*/\nclass CancelError extends core_1.RequestError {\n constructor(request) {\n super('Promise was canceled', {}, request);\n this.name = 'CancelError';\n this.code = 'ERR_CANCELED';\n }\n get isCanceled() {\n return true;\n }\n}\nexports.CancelError = CancelError;\n__exportStar(require(\"../core\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst types_1 = require(\"./types\");\nconst parseBody = (response, responseType, parseJson, encoding) => {\n const { rawBody } = response;\n try {\n if (responseType === 'text') {\n return rawBody.toString(encoding);\n }\n if (responseType === 'json') {\n return rawBody.length === 0 ? '' : parseJson(rawBody.toString());\n }\n if (responseType === 'buffer') {\n return rawBody;\n }\n throw new types_1.ParseError({\n message: `Unknown body type '${responseType}'`,\n name: 'Error'\n }, response);\n }\n catch (error) {\n throw new types_1.ParseError(error, response);\n }\n};\nexports.default = parseBody;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst is_1 = require(\"@sindresorhus/is\");\nconst PCancelable = require(\"p-cancelable\");\nconst types_1 = require(\"./types\");\nconst parse_body_1 = require(\"./parse-body\");\nconst core_1 = require(\"../core\");\nconst proxy_events_1 = require(\"../core/utils/proxy-events\");\nconst get_buffer_1 = require(\"../core/utils/get-buffer\");\nconst is_response_ok_1 = require(\"../core/utils/is-response-ok\");\nconst proxiedRequestEvents = [\n 'request',\n 'response',\n 'redirect',\n 'uploadProgress',\n 'downloadProgress'\n];\nfunction asPromise(normalizedOptions) {\n let globalRequest;\n let globalResponse;\n const emitter = new events_1.EventEmitter();\n const promise = new PCancelable((resolve, reject, onCancel) => {\n const makeRequest = (retryCount) => {\n const request = new core_1.default(undefined, normalizedOptions);\n request.retryCount = retryCount;\n request._noPipe = true;\n onCancel(() => request.destroy());\n onCancel.shouldReject = false;\n onCancel(() => reject(new types_1.CancelError(request)));\n globalRequest = request;\n request.once('response', async (response) => {\n var _a;\n response.retryCount = retryCount;\n if (response.request.aborted) {\n // Canceled while downloading - will throw a `CancelError` or `TimeoutError` error\n return;\n }\n // Download body\n let rawBody;\n try {\n rawBody = await get_buffer_1.default(request);\n response.rawBody = rawBody;\n }\n catch (_b) {\n // The same error is caught below.\n // See request.once('error')\n return;\n }\n if (request._isAboutToError) {\n return;\n }\n // Parse body\n const contentEncoding = ((_a = response.headers['content-encoding']) !== null && _a !== void 0 ? _a : '').toLowerCase();\n const isCompressed = ['gzip', 'deflate', 'br'].includes(contentEncoding);\n const { options } = request;\n if (isCompressed && !options.decompress) {\n response.body = rawBody;\n }\n else {\n try {\n response.body = parse_body_1.default(response, options.responseType, options.parseJson, options.encoding);\n }\n catch (error) {\n // Fallback to `utf8`\n response.body = rawBody.toString();\n if (is_response_ok_1.isResponseOk(response)) {\n request._beforeError(error);\n return;\n }\n }\n }\n try {\n for (const [index, hook] of options.hooks.afterResponse.entries()) {\n // @ts-expect-error TS doesn't notice that CancelableRequest is a Promise\n // eslint-disable-next-line no-await-in-loop\n response = await hook(response, async (updatedOptions) => {\n const typedOptions = core_1.default.normalizeArguments(undefined, {\n ...updatedOptions,\n retry: {\n calculateDelay: () => 0\n },\n throwHttpErrors: false,\n resolveBodyOnly: false\n }, options);\n // Remove any further hooks for that request, because we'll call them anyway.\n // The loop continues. We don't want duplicates (asPromise recursion).\n typedOptions.hooks.afterResponse = typedOptions.hooks.afterResponse.slice(0, index);\n for (const hook of typedOptions.hooks.beforeRetry) {\n // eslint-disable-next-line no-await-in-loop\n await hook(typedOptions);\n }\n const promise = asPromise(typedOptions);\n onCancel(() => {\n promise.catch(() => { });\n promise.cancel();\n });\n return promise;\n });\n }\n }\n catch (error) {\n request._beforeError(new types_1.RequestError(error.message, error, request));\n return;\n }\n globalResponse = response;\n if (!is_response_ok_1.isResponseOk(response)) {\n request._beforeError(new types_1.HTTPError(response));\n return;\n }\n request.destroy();\n resolve(request.options.resolveBodyOnly ? response.body : response);\n });\n const onError = (error) => {\n if (promise.isCanceled) {\n return;\n }\n const { options } = request;\n if (error instanceof types_1.HTTPError && !options.throwHttpErrors) {\n const { response } = error;\n resolve(request.options.resolveBodyOnly ? response.body : response);\n return;\n }\n reject(error);\n };\n request.once('error', onError);\n const previousBody = request.options.body;\n request.once('retry', (newRetryCount, error) => {\n var _a, _b;\n if (previousBody === ((_a = error.request) === null || _a === void 0 ? void 0 : _a.options.body) && is_1.default.nodeStream((_b = error.request) === null || _b === void 0 ? void 0 : _b.options.body)) {\n onError(error);\n return;\n }\n makeRequest(newRetryCount);\n });\n proxy_events_1.default(request, emitter, proxiedRequestEvents);\n };\n makeRequest(0);\n });\n promise.on = (event, fn) => {\n emitter.on(event, fn);\n return promise;\n };\n const shortcut = (responseType) => {\n const newPromise = (async () => {\n // Wait until downloading has ended\n await promise;\n const { options } = globalResponse.request;\n return parse_body_1.default(globalResponse, responseType, options.parseJson, options.encoding);\n })();\n Object.defineProperties(newPromise, Object.getOwnPropertyDescriptors(promise));\n return newPromise;\n };\n promise.json = () => {\n const { headers } = globalRequest.options;\n if (!globalRequest.writableFinished && headers.accept === undefined) {\n headers.accept = 'application/json';\n }\n return shortcut('json');\n };\n promise.buffer = () => shortcut('buffer');\n promise.text = () => shortcut('text');\n return promise;\n}\nexports.default = asPromise;\n__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst types_1 = require(\"./types\");\nfunction createRejection(error, ...beforeErrorGroups) {\n const promise = (async () => {\n if (error instanceof types_1.RequestError) {\n try {\n for (const hooks of beforeErrorGroups) {\n if (hooks) {\n for (const hook of hooks) {\n // eslint-disable-next-line no-await-in-loop\n error = await hook(error);\n }\n }\n }\n }\n catch (error_) {\n error = error_;\n }\n }\n throw error;\n })();\n const returnPromise = () => promise;\n promise.json = returnPromise;\n promise.text = returnPromise;\n promise.buffer = returnPromise;\n promise.on = returnPromise;\n return promise;\n}\nexports.default = createRejection;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nfunction deepFreeze(object) {\n for (const value of Object.values(object)) {\n if (is_1.default.plainObject(value) || is_1.default.array(value)) {\n deepFreeze(value);\n }\n }\n return Object.freeze(object);\n}\nexports.default = deepFreeze;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultHandler = void 0;\nconst is_1 = require(\"@sindresorhus/is\");\nconst as_promise_1 = require(\"./as-promise\");\nconst create_rejection_1 = require(\"./as-promise/create-rejection\");\nconst core_1 = require(\"./core\");\nconst deep_freeze_1 = require(\"./utils/deep-freeze\");\nconst errors = {\n RequestError: as_promise_1.RequestError,\n CacheError: as_promise_1.CacheError,\n ReadError: as_promise_1.ReadError,\n HTTPError: as_promise_1.HTTPError,\n MaxRedirectsError: as_promise_1.MaxRedirectsError,\n TimeoutError: as_promise_1.TimeoutError,\n ParseError: as_promise_1.ParseError,\n CancelError: as_promise_1.CancelError,\n UnsupportedProtocolError: as_promise_1.UnsupportedProtocolError,\n UploadError: as_promise_1.UploadError\n};\n// The `delay` package weighs 10KB (!)\nconst delay = async (ms) => new Promise(resolve => {\n setTimeout(resolve, ms);\n});\nconst { normalizeArguments } = core_1.default;\nconst mergeOptions = (...sources) => {\n let mergedOptions;\n for (const source of sources) {\n mergedOptions = normalizeArguments(undefined, source, mergedOptions);\n }\n return mergedOptions;\n};\nconst getPromiseOrStream = (options) => options.isStream ? new core_1.default(undefined, options) : as_promise_1.default(options);\nconst isGotInstance = (value) => ('defaults' in value && 'options' in value.defaults);\nconst aliases = [\n 'get',\n 'post',\n 'put',\n 'patch',\n 'head',\n 'delete'\n];\nexports.defaultHandler = (options, next) => next(options);\nconst callInitHooks = (hooks, options) => {\n if (hooks) {\n for (const hook of hooks) {\n hook(options);\n }\n }\n};\nconst create = (defaults) => {\n // Proxy properties from next handlers\n defaults._rawHandlers = defaults.handlers;\n defaults.handlers = defaults.handlers.map(fn => ((options, next) => {\n // This will be assigned by assigning result\n let root;\n const result = fn(options, newOptions => {\n root = next(newOptions);\n return root;\n });\n if (result !== root && !options.isStream && root) {\n const typedResult = result;\n const { then: promiseThen, catch: promiseCatch, finally: promiseFianlly } = typedResult;\n Object.setPrototypeOf(typedResult, Object.getPrototypeOf(root));\n Object.defineProperties(typedResult, Object.getOwnPropertyDescriptors(root));\n // These should point to the new promise\n // eslint-disable-next-line promise/prefer-await-to-then\n typedResult.then = promiseThen;\n typedResult.catch = promiseCatch;\n typedResult.finally = promiseFianlly;\n }\n return result;\n }));\n // Got interface\n const got = ((url, options = {}, _defaults) => {\n var _a, _b;\n let iteration = 0;\n const iterateHandlers = (newOptions) => {\n return defaults.handlers[iteration++](newOptions, iteration === defaults.handlers.length ? getPromiseOrStream : iterateHandlers);\n };\n // TODO: Remove this in Got 12.\n if (is_1.default.plainObject(url)) {\n const mergedOptions = {\n ...url,\n ...options\n };\n core_1.setNonEnumerableProperties([url, options], mergedOptions);\n options = mergedOptions;\n url = undefined;\n }\n try {\n // Call `init` hooks\n let initHookError;\n try {\n callInitHooks(defaults.options.hooks.init, options);\n callInitHooks((_a = options.hooks) === null || _a === void 0 ? void 0 : _a.init, options);\n }\n catch (error) {\n initHookError = error;\n }\n // Normalize options & call handlers\n const normalizedOptions = normalizeArguments(url, options, _defaults !== null && _defaults !== void 0 ? _defaults : defaults.options);\n normalizedOptions[core_1.kIsNormalizedAlready] = true;\n if (initHookError) {\n throw new as_promise_1.RequestError(initHookError.message, initHookError, normalizedOptions);\n }\n return iterateHandlers(normalizedOptions);\n }\n catch (error) {\n if (options.isStream) {\n throw error;\n }\n else {\n return create_rejection_1.default(error, defaults.options.hooks.beforeError, (_b = options.hooks) === null || _b === void 0 ? void 0 : _b.beforeError);\n }\n }\n });\n got.extend = (...instancesOrOptions) => {\n const optionsArray = [defaults.options];\n let handlers = [...defaults._rawHandlers];\n let isMutableDefaults;\n for (const value of instancesOrOptions) {\n if (isGotInstance(value)) {\n optionsArray.push(value.defaults.options);\n handlers.push(...value.defaults._rawHandlers);\n isMutableDefaults = value.defaults.mutableDefaults;\n }\n else {\n optionsArray.push(value);\n if ('handlers' in value) {\n handlers.push(...value.handlers);\n }\n isMutableDefaults = value.mutableDefaults;\n }\n }\n handlers = handlers.filter(handler => handler !== exports.defaultHandler);\n if (handlers.length === 0) {\n handlers.push(exports.defaultHandler);\n }\n return create({\n options: mergeOptions(...optionsArray),\n handlers,\n mutableDefaults: Boolean(isMutableDefaults)\n });\n };\n // Pagination\n const paginateEach = (async function* (url, options) {\n // TODO: Remove this `@ts-expect-error` when upgrading to TypeScript 4.\n // Error: Argument of type 'Merge<Options, PaginationOptions<T, R>> | undefined' is not assignable to parameter of type 'Options | undefined'.\n // @ts-expect-error\n let normalizedOptions = normalizeArguments(url, options, defaults.options);\n normalizedOptions.resolveBodyOnly = false;\n const pagination = normalizedOptions.pagination;\n if (!is_1.default.object(pagination)) {\n throw new TypeError('`options.pagination` must be implemented');\n }\n const all = [];\n let { countLimit } = pagination;\n let numberOfRequests = 0;\n while (numberOfRequests < pagination.requestLimit) {\n if (numberOfRequests !== 0) {\n // eslint-disable-next-line no-await-in-loop\n await delay(pagination.backoff);\n }\n // @ts-expect-error FIXME!\n // TODO: Throw when result is not an instance of Response\n // eslint-disable-next-line no-await-in-loop\n const result = (await got(undefined, undefined, normalizedOptions));\n // eslint-disable-next-line no-await-in-loop\n const parsed = await pagination.transform(result);\n const current = [];\n for (const item of parsed) {\n if (pagination.filter(item, all, current)) {\n if (!pagination.shouldContinue(item, all, current)) {\n return;\n }\n yield item;\n if (pagination.stackAllItems) {\n all.push(item);\n }\n current.push(item);\n if (--countLimit <= 0) {\n return;\n }\n }\n }\n const optionsToMerge = pagination.paginate(result, all, current);\n if (optionsToMerge === false) {\n return;\n }\n if (optionsToMerge === result.request.options) {\n normalizedOptions = result.request.options;\n }\n else if (optionsToMerge !== undefined) {\n normalizedOptions = normalizeArguments(undefined, optionsToMerge, normalizedOptions);\n }\n numberOfRequests++;\n }\n });\n got.paginate = paginateEach;\n got.paginate.all = (async (url, options) => {\n const results = [];\n for await (const item of paginateEach(url, options)) {\n results.push(item);\n }\n return results;\n });\n // For those who like very descriptive names\n got.paginate.each = paginateEach;\n // Stream API\n got.stream = ((url, options) => got(url, { ...options, isStream: true }));\n // Shortcuts\n for (const method of aliases) {\n got[method] = ((url, options) => got(url, { ...options, method }));\n got.stream[method] = ((url, options) => {\n return got(url, { ...options, method, isStream: true });\n });\n }\n Object.assign(got, errors);\n Object.defineProperty(got, 'defaults', {\n value: defaults.mutableDefaults ? defaults : deep_freeze_1.default(defaults),\n writable: defaults.mutableDefaults,\n configurable: defaults.mutableDefaults,\n enumerable: true\n });\n got.mergeOptions = mergeOptions;\n return got;\n};\nexports.default = create;\n__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst url_1 = require(\"url\");\nconst create_1 = require(\"./create\");\nconst defaults = {\n options: {\n method: 'GET',\n retry: {\n limit: 2,\n methods: [\n 'GET',\n 'PUT',\n 'HEAD',\n 'DELETE',\n 'OPTIONS',\n 'TRACE'\n ],\n statusCodes: [\n 408,\n 413,\n 429,\n 500,\n 502,\n 503,\n 504,\n 521,\n 522,\n 524\n ],\n errorCodes: [\n 'ETIMEDOUT',\n 'ECONNRESET',\n 'EADDRINUSE',\n 'ECONNREFUSED',\n 'EPIPE',\n 'ENOTFOUND',\n 'ENETUNREACH',\n 'EAI_AGAIN'\n ],\n maxRetryAfter: undefined,\n calculateDelay: ({ computedValue }) => computedValue\n },\n timeout: {},\n headers: {\n 'user-agent': 'got (https://github.com/sindresorhus/got)'\n },\n hooks: {\n init: [],\n beforeRequest: [],\n beforeRedirect: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n },\n cache: undefined,\n dnsCache: undefined,\n decompress: true,\n throwHttpErrors: true,\n followRedirect: true,\n isStream: false,\n responseType: 'text',\n resolveBodyOnly: false,\n maxRedirects: 10,\n prefixUrl: '',\n methodRewriting: true,\n ignoreInvalidCookies: false,\n context: {},\n // TODO: Set this to `true` when Got 12 gets released\n http2: false,\n allowGetBody: false,\n https: undefined,\n pagination: {\n transform: (response) => {\n if (response.request.options.responseType === 'json') {\n return response.body;\n }\n return JSON.parse(response.body);\n },\n paginate: response => {\n if (!Reflect.has(response.headers, 'link')) {\n return false;\n }\n const items = response.headers.link.split(',');\n let next;\n for (const item of items) {\n const parsed = item.split(';');\n if (parsed[1].includes('next')) {\n next = parsed[0].trimStart().trim();\n next = next.slice(1, -1);\n break;\n }\n }\n if (next) {\n const options = {\n url: new url_1.URL(next)\n };\n return options;\n }\n return false;\n },\n filter: () => true,\n shouldContinue: () => true,\n countLimit: Infinity,\n backoff: 0,\n requestLimit: 10000,\n stackAllItems: true\n },\n parseJson: (text) => JSON.parse(text),\n stringifyJson: (object) => JSON.stringify(object),\n cacheOptions: {}\n },\n handlers: [create_1.defaultHandler],\n mutableDefaults: false\n};\nconst got = create_1.default(defaults);\nexports.default = got;\n// For CommonJS default export support\nmodule.exports = got;\nmodule.exports.default = got;\nmodule.exports.__esModule = true; // Workaround for TS issue: https://github.com/sindresorhus/got/pull/1267\n__exportStar(require(\"./create\"), exports);\n__exportStar(require(\"./as-promise\"), exports);\n", "import got from 'got';\n\nexport async function handler(_: any) {\n const url = process.env.URL;\n if (!url) {\n throw new Error('URL is required');\n }\n\n // by default `got` will throw if there is an HTTP error\n await got(url);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["\"use strict\";\n/// <reference lib=\"es2018\"/>\n/// <reference lib=\"dom\"/>\n/// <reference types=\"node\"/>\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst typedArrayTypeNames = [\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n];\nfunction isTypedArrayName(name) {\n return typedArrayTypeNames.includes(name);\n}\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Blob',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'FormData',\n 'URLSearchParams',\n 'HTMLElement',\n ...typedArrayTypeNames\n];\nfunction isObjectTypeName(name) {\n return objectTypeNames.includes(name);\n}\nconst primitiveTypeNames = [\n 'null',\n 'undefined',\n 'string',\n 'number',\n 'bigint',\n 'boolean',\n 'symbol'\n];\nfunction isPrimitiveTypeName(name) {\n return primitiveTypeNames.includes(name);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isOfType(type) {\n return (value) => typeof value === type;\n}\nconst { toString } = Object.prototype;\nconst getObjectType = (value) => {\n const objectTypeName = toString.call(value).slice(8, -1);\n if (/HTML\\w+Element/.test(objectTypeName) && is.domElement(value)) {\n return 'HTMLElement';\n }\n if (isObjectTypeName(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n};\nconst isObjectOfType = (type) => (value) => getObjectType(value) === type;\nfunction is(value) {\n if (value === null) {\n return 'null';\n }\n switch (typeof value) {\n case 'undefined':\n return 'undefined';\n case 'string':\n return 'string';\n case 'number':\n return 'number';\n case 'boolean':\n return 'boolean';\n case 'function':\n return 'Function';\n case 'bigint':\n return 'bigint';\n case 'symbol':\n return 'symbol';\n default:\n }\n if (is.observable(value)) {\n return 'Observable';\n }\n if (is.array(value)) {\n return 'Array';\n }\n if (is.buffer(value)) {\n return 'Buffer';\n }\n const tagType = getObjectType(value);\n if (tagType) {\n return tagType;\n }\n if (value instanceof String || value instanceof Boolean || value instanceof Number) {\n throw new TypeError('Please don\\'t use object wrappers for primitive types');\n }\n return 'Object';\n}\nis.undefined = isOfType('undefined');\nis.string = isOfType('string');\nconst isNumberType = isOfType('number');\nis.number = (value) => isNumberType(value) && !is.nan(value);\nis.bigint = isOfType('bigint');\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.function_ = isOfType('function');\nis.null_ = (value) => value === null;\nis.class_ = (value) => is.function_(value) && value.toString().startsWith('class ');\nis.boolean = (value) => value === true || value === false;\nis.symbol = isOfType('symbol');\nis.numericString = (value) => is.string(value) && !is.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value));\nis.array = (value, assertion) => {\n if (!Array.isArray(value)) {\n return false;\n }\n if (!is.function_(assertion)) {\n return true;\n }\n return value.every(assertion);\n};\nis.buffer = (value) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = value) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.isBuffer) === null || _c === void 0 ? void 0 : _c.call(_b, value)) !== null && _d !== void 0 ? _d : false; };\nis.blob = (value) => isObjectOfType('Blob')(value);\nis.nullOrUndefined = (value) => is.null_(value) || is.undefined(value);\nis.object = (value) => !is.null_(value) && (typeof value === 'object' || is.function_(value));\nis.iterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.iterator]); };\nis.asyncIterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.asyncIterator]); };\nis.generator = (value) => { var _a, _b; return is.iterable(value) && is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.next) && is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.throw); };\nis.asyncGenerator = (value) => is.asyncIterable(value) && is.function_(value.next) && is.function_(value.throw);\nis.nativePromise = (value) => isObjectOfType('Promise')(value);\nconst hasPromiseAPI = (value) => {\n var _a, _b;\n return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.then) &&\n is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.catch);\n};\nis.promise = (value) => is.nativePromise(value) || hasPromiseAPI(value);\nis.generatorFunction = isObjectOfType('GeneratorFunction');\nis.asyncGeneratorFunction = (value) => getObjectType(value) === 'AsyncGeneratorFunction';\nis.asyncFunction = (value) => getObjectType(value) === 'AsyncFunction';\n// eslint-disable-next-line no-prototype-builtins, @typescript-eslint/ban-types\nis.boundFunction = (value) => is.function_(value) && !value.hasOwnProperty('prototype');\nis.regExp = isObjectOfType('RegExp');\nis.date = isObjectOfType('Date');\nis.error = isObjectOfType('Error');\nis.map = (value) => isObjectOfType('Map')(value);\nis.set = (value) => isObjectOfType('Set')(value);\nis.weakMap = (value) => isObjectOfType('WeakMap')(value);\nis.weakSet = (value) => isObjectOfType('WeakSet')(value);\nis.int8Array = isObjectOfType('Int8Array');\nis.uint8Array = isObjectOfType('Uint8Array');\nis.uint8ClampedArray = isObjectOfType('Uint8ClampedArray');\nis.int16Array = isObjectOfType('Int16Array');\nis.uint16Array = isObjectOfType('Uint16Array');\nis.int32Array = isObjectOfType('Int32Array');\nis.uint32Array = isObjectOfType('Uint32Array');\nis.float32Array = isObjectOfType('Float32Array');\nis.float64Array = isObjectOfType('Float64Array');\nis.bigInt64Array = isObjectOfType('BigInt64Array');\nis.bigUint64Array = isObjectOfType('BigUint64Array');\nis.arrayBuffer = isObjectOfType('ArrayBuffer');\nis.sharedArrayBuffer = isObjectOfType('SharedArrayBuffer');\nis.dataView = isObjectOfType('DataView');\nis.enumCase = (value, targetEnum) => Object.values(targetEnum).includes(value);\nis.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype;\nis.urlInstance = (value) => isObjectOfType('URL')(value);\nis.urlString = (value) => {\n if (!is.string(value)) {\n return false;\n }\n try {\n new URL(value); // eslint-disable-line no-new\n return true;\n }\n catch (_a) {\n return false;\n }\n};\n// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);`\nis.truthy = (value) => Boolean(value);\n// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);`\nis.falsy = (value) => !value;\nis.nan = (value) => Number.isNaN(value);\nis.primitive = (value) => is.null_(value) || isPrimitiveTypeName(typeof value);\nis.integer = (value) => Number.isInteger(value);\nis.safeInteger = (value) => Number.isSafeInteger(value);\nis.plainObject = (value) => {\n // From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\n if (toString.call(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.getPrototypeOf({});\n};\nis.typedArray = (value) => isTypedArrayName(getObjectType(value));\nconst isValidLength = (value) => is.safeInteger(value) && value >= 0;\nis.arrayLike = (value) => !is.nullOrUndefined(value) && !is.function_(value) && isValidLength(value.length);\nis.inRange = (value, range) => {\n if (is.number(range)) {\n return value >= Math.min(0, range) && value <= Math.max(range, 0);\n }\n if (is.array(range) && range.length === 2) {\n return value >= Math.min(...range) && value <= Math.max(...range);\n }\n throw new TypeError(`Invalid range: ${JSON.stringify(range)}`);\n};\nconst NODE_TYPE_ELEMENT = 1;\nconst DOM_PROPERTIES_TO_CHECK = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue'\n];\nis.domElement = (value) => {\n return is.object(value) &&\n value.nodeType === NODE_TYPE_ELEMENT &&\n is.string(value.nodeName) &&\n !is.plainObject(value) &&\n DOM_PROPERTIES_TO_CHECK.every(property => property in value);\n};\nis.observable = (value) => {\n var _a, _b, _c, _d;\n if (!value) {\n return false;\n }\n // eslint-disable-next-line no-use-extend-native/no-use-extend-native\n if (value === ((_b = (_a = value)[Symbol.observable]) === null || _b === void 0 ? void 0 : _b.call(_a))) {\n return true;\n }\n if (value === ((_d = (_c = value)['@@observable']) === null || _d === void 0 ? void 0 : _d.call(_c))) {\n return true;\n }\n return false;\n};\nis.nodeStream = (value) => is.object(value) && is.function_(value.pipe) && !is.observable(value);\nis.infinite = (value) => value === Infinity || value === -Infinity;\nconst isAbsoluteMod2 = (remainder) => (value) => is.integer(value) && Math.abs(value % 2) === remainder;\nis.evenInteger = isAbsoluteMod2(0);\nis.oddInteger = isAbsoluteMod2(1);\nis.emptyArray = (value) => is.array(value) && value.length === 0;\nis.nonEmptyArray = (value) => is.array(value) && value.length > 0;\nis.emptyString = (value) => is.string(value) && value.length === 0;\nconst isWhiteSpaceString = (value) => is.string(value) && !/\\S/.test(value);\nis.emptyStringOrWhitespace = (value) => is.emptyString(value) || isWhiteSpaceString(value);\n// TODO: Use `not ''` when the `not` operator is available.\nis.nonEmptyString = (value) => is.string(value) && value.length > 0;\n// TODO: Use `not ''` when the `not` operator is available.\nis.nonEmptyStringAndNotWhitespace = (value) => is.string(value) && !is.emptyStringOrWhitespace(value);\nis.emptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0;\n// TODO: Use `not` operator here to remove `Map` and `Set` from type guard:\n// - https://github.com/Microsoft/TypeScript/pull/29317\nis.nonEmptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0;\nis.emptySet = (value) => is.set(value) && value.size === 0;\nis.nonEmptySet = (value) => is.set(value) && value.size > 0;\nis.emptyMap = (value) => is.map(value) && value.size === 0;\nis.nonEmptyMap = (value) => is.map(value) && value.size > 0;\n// `PropertyKey` is any value that can be used as an object key (string, number, or symbol)\nis.propertyKey = (value) => is.any([is.string, is.number, is.symbol], value);\nis.formData = (value) => isObjectOfType('FormData')(value);\nis.urlSearchParams = (value) => isObjectOfType('URLSearchParams')(value);\nconst predicateOnArray = (method, predicate, values) => {\n if (!is.function_(predicate)) {\n throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);\n }\n if (values.length === 0) {\n throw new TypeError('Invalid number of values');\n }\n return method.call(values, predicate);\n};\nis.any = (predicate, ...values) => {\n const predicates = is.array(predicate) ? predicate : [predicate];\n return predicates.some(singlePredicate => predicateOnArray(Array.prototype.some, singlePredicate, values));\n};\nis.all = (predicate, ...values) => predicateOnArray(Array.prototype.every, predicate, values);\nconst assertType = (condition, description, value, options = {}) => {\n if (!condition) {\n const { multipleValues } = options;\n const valuesMessage = multipleValues ?\n `received values of types ${[\n ...new Set(value.map(singleValue => `\\`${is(singleValue)}\\``))\n ].join(', ')}` :\n `received value of type \\`${is(value)}\\``;\n throw new TypeError(`Expected value which is \\`${description}\\`, ${valuesMessage}.`);\n }\n};\nexports.assert = {\n // Unknowns.\n undefined: (value) => assertType(is.undefined(value), 'undefined', value),\n string: (value) => assertType(is.string(value), 'string', value),\n number: (value) => assertType(is.number(value), 'number', value),\n bigint: (value) => assertType(is.bigint(value), 'bigint', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n function_: (value) => assertType(is.function_(value), 'Function', value),\n null_: (value) => assertType(is.null_(value), 'null', value),\n class_: (value) => assertType(is.class_(value), \"Class\" /* class_ */, value),\n boolean: (value) => assertType(is.boolean(value), 'boolean', value),\n symbol: (value) => assertType(is.symbol(value), 'symbol', value),\n numericString: (value) => assertType(is.numericString(value), \"string with a number\" /* numericString */, value),\n array: (value, assertion) => {\n const assert = assertType;\n assert(is.array(value), 'Array', value);\n if (assertion) {\n value.forEach(assertion);\n }\n },\n buffer: (value) => assertType(is.buffer(value), 'Buffer', value),\n blob: (value) => assertType(is.blob(value), 'Blob', value),\n nullOrUndefined: (value) => assertType(is.nullOrUndefined(value), \"null or undefined\" /* nullOrUndefined */, value),\n object: (value) => assertType(is.object(value), 'Object', value),\n iterable: (value) => assertType(is.iterable(value), \"Iterable\" /* iterable */, value),\n asyncIterable: (value) => assertType(is.asyncIterable(value), \"AsyncIterable\" /* asyncIterable */, value),\n generator: (value) => assertType(is.generator(value), 'Generator', value),\n asyncGenerator: (value) => assertType(is.asyncGenerator(value), 'AsyncGenerator', value),\n nativePromise: (value) => assertType(is.nativePromise(value), \"native Promise\" /* nativePromise */, value),\n promise: (value) => assertType(is.promise(value), 'Promise', value),\n generatorFunction: (value) => assertType(is.generatorFunction(value), 'GeneratorFunction', value),\n asyncGeneratorFunction: (value) => assertType(is.asyncGeneratorFunction(value), 'AsyncGeneratorFunction', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n asyncFunction: (value) => assertType(is.asyncFunction(value), 'AsyncFunction', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n boundFunction: (value) => assertType(is.boundFunction(value), 'Function', value),\n regExp: (value) => assertType(is.regExp(value), 'RegExp', value),\n date: (value) => assertType(is.date(value), 'Date', value),\n error: (value) => assertType(is.error(value), 'Error', value),\n map: (value) => assertType(is.map(value), 'Map', value),\n set: (value) => assertType(is.set(value), 'Set', value),\n weakMap: (value) => assertType(is.weakMap(value), 'WeakMap', value),\n weakSet: (value) => assertType(is.weakSet(value), 'WeakSet', value),\n int8Array: (value) => assertType(is.int8Array(value), 'Int8Array', value),\n uint8Array: (value) => assertType(is.uint8Array(value), 'Uint8Array', value),\n uint8ClampedArray: (value) => assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value),\n int16Array: (value) => assertType(is.int16Array(value), 'Int16Array', value),\n uint16Array: (value) => assertType(is.uint16Array(value), 'Uint16Array', value),\n int32Array: (value) => assertType(is.int32Array(value), 'Int32Array', value),\n uint32Array: (value) => assertType(is.uint32Array(value), 'Uint32Array', value),\n float32Array: (value) => assertType(is.float32Array(value), 'Float32Array', value),\n float64Array: (value) => assertType(is.float64Array(value), 'Float64Array', value),\n bigInt64Array: (value) => assertType(is.bigInt64Array(value), 'BigInt64Array', value),\n bigUint64Array: (value) => assertType(is.bigUint64Array(value), 'BigUint64Array', value),\n arrayBuffer: (value) => assertType(is.arrayBuffer(value), 'ArrayBuffer', value),\n sharedArrayBuffer: (value) => assertType(is.sharedArrayBuffer(value), 'SharedArrayBuffer', value),\n dataView: (value) => assertType(is.dataView(value), 'DataView', value),\n enumCase: (value, targetEnum) => assertType(is.enumCase(value, targetEnum), 'EnumCase', value),\n urlInstance: (value) => assertType(is.urlInstance(value), 'URL', value),\n urlString: (value) => assertType(is.urlString(value), \"string with a URL\" /* urlString */, value),\n truthy: (value) => assertType(is.truthy(value), \"truthy\" /* truthy */, value),\n falsy: (value) => assertType(is.falsy(value), \"falsy\" /* falsy */, value),\n nan: (value) => assertType(is.nan(value), \"NaN\" /* nan */, value),\n primitive: (value) => assertType(is.primitive(value), \"primitive\" /* primitive */, value),\n integer: (value) => assertType(is.integer(value), \"integer\" /* integer */, value),\n safeInteger: (value) => assertType(is.safeInteger(value), \"integer\" /* safeInteger */, value),\n plainObject: (value) => assertType(is.plainObject(value), \"plain object\" /* plainObject */, value),\n typedArray: (value) => assertType(is.typedArray(value), \"TypedArray\" /* typedArray */, value),\n arrayLike: (value) => assertType(is.arrayLike(value), \"array-like\" /* arrayLike */, value),\n domElement: (value) => assertType(is.domElement(value), \"HTMLElement\" /* domElement */, value),\n observable: (value) => assertType(is.observable(value), 'Observable', value),\n nodeStream: (value) => assertType(is.nodeStream(value), \"Node.js Stream\" /* nodeStream */, value),\n infinite: (value) => assertType(is.infinite(value), \"infinite number\" /* infinite */, value),\n emptyArray: (value) => assertType(is.emptyArray(value), \"empty array\" /* emptyArray */, value),\n nonEmptyArray: (value) => assertType(is.nonEmptyArray(value), \"non-empty array\" /* nonEmptyArray */, value),\n emptyString: (value) => assertType(is.emptyString(value), \"empty string\" /* emptyString */, value),\n emptyStringOrWhitespace: (value) => assertType(is.emptyStringOrWhitespace(value), \"empty string or whitespace\" /* emptyStringOrWhitespace */, value),\n nonEmptyString: (value) => assertType(is.nonEmptyString(value), \"non-empty string\" /* nonEmptyString */, value),\n nonEmptyStringAndNotWhitespace: (value) => assertType(is.nonEmptyStringAndNotWhitespace(value), \"non-empty string and not whitespace\" /* nonEmptyStringAndNotWhitespace */, value),\n emptyObject: (value) => assertType(is.emptyObject(value), \"empty object\" /* emptyObject */, value),\n nonEmptyObject: (value) => assertType(is.nonEmptyObject(value), \"non-empty object\" /* nonEmptyObject */, value),\n emptySet: (value) => assertType(is.emptySet(value), \"empty set\" /* emptySet */, value),\n nonEmptySet: (value) => assertType(is.nonEmptySet(value), \"non-empty set\" /* nonEmptySet */, value),\n emptyMap: (value) => assertType(is.emptyMap(value), \"empty map\" /* emptyMap */, value),\n nonEmptyMap: (value) => assertType(is.nonEmptyMap(value), \"non-empty map\" /* nonEmptyMap */, value),\n propertyKey: (value) => assertType(is.propertyKey(value), 'PropertyKey', value),\n formData: (value) => assertType(is.formData(value), 'FormData', value),\n urlSearchParams: (value) => assertType(is.urlSearchParams(value), 'URLSearchParams', value),\n // Numbers.\n evenInteger: (value) => assertType(is.evenInteger(value), \"even integer\" /* evenInteger */, value),\n oddInteger: (value) => assertType(is.oddInteger(value), \"odd integer\" /* oddInteger */, value),\n // Two arguments.\n directInstanceOf: (instance, class_) => assertType(is.directInstanceOf(instance, class_), \"T\" /* directInstanceOf */, instance),\n inRange: (value, range) => assertType(is.inRange(value, range), \"in range\" /* inRange */, value),\n // Variadic functions.\n any: (predicate, ...values) => {\n return assertType(is.any(predicate, ...values), \"predicate returns truthy for any value\" /* any */, values, { multipleValues: true });\n },\n all: (predicate, ...values) => assertType(is.all(predicate, ...values), \"predicate returns truthy for all values\" /* all */, values, { multipleValues: true })\n};\n// Some few keywords are reserved, but we'll populate them for Node.js users\n// See https://github.com/Microsoft/TypeScript/issues/2536\nObject.defineProperties(is, {\n class: {\n value: is.class_\n },\n function: {\n value: is.function_\n },\n null: {\n value: is.null_\n }\n});\nObject.defineProperties(exports.assert, {\n class: {\n value: exports.assert.class_\n },\n function: {\n value: exports.assert.function_\n },\n null: {\n value: exports.assert.null_\n }\n});\nexports.default = is;\n// For CommonJS default export support\nmodule.exports = is;\nmodule.exports.default = is;\nmodule.exports.assert = exports.assert;\n", "'use strict';\n\nclass CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nclass PCancelable {\n\tstatic fn(userFn) {\n\t\treturn (...arguments_) => {\n\t\t\treturn new PCancelable((resolve, reject, onCancel) => {\n\t\t\t\targuments_.push(onCancel);\n\t\t\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\t\t\tuserFn(...arguments_).then(resolve, reject);\n\t\t\t});\n\t\t};\n\t}\n\n\tconstructor(executor) {\n\t\tthis._cancelHandlers = [];\n\t\tthis._isPending = true;\n\t\tthis._isCanceled = false;\n\t\tthis._rejectOnCancel = true;\n\n\t\tthis._promise = new Promise((resolve, reject) => {\n\t\t\tthis._reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (!this._isCanceled || !onCancel.shouldReject) {\n\t\t\t\t\tthis._isPending = false;\n\t\t\t\t\tresolve(value);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tthis._isPending = false;\n\t\t\t\treject(error);\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (!this._isPending) {\n\t\t\t\t\tthrow new Error('The `onCancel` handler was attached after the promise settled.');\n\t\t\t\t}\n\n\t\t\t\tthis._cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this._rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis._rejectOnCancel = boolean;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn executor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\tthen(onFulfilled, onRejected) {\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\treturn this._promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this._promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this._promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (!this._isPending || this._isCanceled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isCanceled = true;\n\n\t\tif (this._cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this._cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis._reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this._rejectOnCancel) {\n\t\t\tthis._reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this._isCanceled;\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n\nmodule.exports = PCancelable;\nmodule.exports.CancelError = CancelError;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isTLSSocket(socket) {\n return socket.encrypted;\n}\nconst deferToConnect = (socket, fn) => {\n let listeners;\n if (typeof fn === 'function') {\n const connect = fn;\n listeners = { connect };\n }\n else {\n listeners = fn;\n }\n const hasConnectListener = typeof listeners.connect === 'function';\n const hasSecureConnectListener = typeof listeners.secureConnect === 'function';\n const hasCloseListener = typeof listeners.close === 'function';\n const onConnect = () => {\n if (hasConnectListener) {\n listeners.connect();\n }\n if (isTLSSocket(socket) && hasSecureConnectListener) {\n if (socket.authorized) {\n listeners.secureConnect();\n }\n else if (!socket.authorizationError) {\n socket.once('secureConnect', listeners.secureConnect);\n }\n }\n if (hasCloseListener) {\n socket.once('close', listeners.close);\n }\n };\n if (socket.writable && !socket.connecting) {\n onConnect();\n }\n else if (socket.connecting) {\n socket.once('connect', onConnect);\n }\n else if (socket.destroyed && hasCloseListener) {\n listeners.close(socket._hadError);\n }\n};\nexports.default = deferToConnect;\n// For CommonJS default export support\nmodule.exports = deferToConnect;\nmodule.exports.default = deferToConnect;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst defer_to_connect_1 = require(\"defer-to-connect\");\nconst util_1 = require(\"util\");\nconst nodejsMajorVersion = Number(process.versions.node.split('.')[0]);\nconst timer = (request) => {\n if (request.timings) {\n return request.timings;\n }\n const timings = {\n start: Date.now(),\n socket: undefined,\n lookup: undefined,\n connect: undefined,\n secureConnect: undefined,\n upload: undefined,\n response: undefined,\n end: undefined,\n error: undefined,\n abort: undefined,\n phases: {\n wait: undefined,\n dns: undefined,\n tcp: undefined,\n tls: undefined,\n request: undefined,\n firstByte: undefined,\n download: undefined,\n total: undefined\n }\n };\n request.timings = timings;\n const handleError = (origin) => {\n const emit = origin.emit.bind(origin);\n origin.emit = (event, ...args) => {\n // Catches the `error` event\n if (event === 'error') {\n timings.error = Date.now();\n timings.phases.total = timings.error - timings.start;\n origin.emit = emit;\n }\n // Saves the original behavior\n return emit(event, ...args);\n };\n };\n handleError(request);\n const onAbort = () => {\n timings.abort = Date.now();\n // Let the `end` response event be responsible for setting the total phase,\n // unless the Node.js major version is >= 13.\n if (!timings.response || nodejsMajorVersion >= 13) {\n timings.phases.total = Date.now() - timings.start;\n }\n };\n request.prependOnceListener('abort', onAbort);\n const onSocket = (socket) => {\n timings.socket = Date.now();\n timings.phases.wait = timings.socket - timings.start;\n if (util_1.types.isProxy(socket)) {\n return;\n }\n const lookupListener = () => {\n timings.lookup = Date.now();\n timings.phases.dns = timings.lookup - timings.socket;\n };\n socket.prependOnceListener('lookup', lookupListener);\n defer_to_connect_1.default(socket, {\n connect: () => {\n timings.connect = Date.now();\n if (timings.lookup === undefined) {\n socket.removeListener('lookup', lookupListener);\n timings.lookup = timings.connect;\n timings.phases.dns = timings.lookup - timings.socket;\n }\n timings.phases.tcp = timings.connect - timings.lookup;\n // This callback is called before flushing any data,\n // so we don't need to set `timings.phases.request` here.\n },\n secureConnect: () => {\n timings.secureConnect = Date.now();\n timings.phases.tls = timings.secureConnect - timings.connect;\n }\n });\n };\n if (request.socket) {\n onSocket(request.socket);\n }\n else {\n request.prependOnceListener('socket', onSocket);\n }\n const onUpload = () => {\n var _a;\n timings.upload = Date.now();\n timings.phases.request = timings.upload - ((_a = timings.secureConnect) !== null && _a !== void 0 ? _a : timings.connect);\n };\n const writableFinished = () => {\n if (typeof request.writableFinished === 'boolean') {\n return request.writableFinished;\n }\n // Node.js doesn't have `request.writableFinished` property\n return request.finished && request.outputSize === 0 && (!request.socket || request.socket.writableLength === 0);\n };\n if (writableFinished()) {\n onUpload();\n }\n else {\n request.prependOnceListener('finish', onUpload);\n }\n request.prependOnceListener('response', (response) => {\n timings.response = Date.now();\n timings.phases.firstByte = timings.response - timings.upload;\n response.timings = timings;\n handleError(response);\n response.prependOnceListener('end', () => {\n timings.end = Date.now();\n timings.phases.download = timings.end - timings.response;\n timings.phases.total = timings.end - timings.start;\n });\n response.prependOnceListener('aborted', onAbort);\n });\n return timings;\n};\nexports.default = timer;\n// For CommonJS default export support\nmodule.exports = timer;\nmodule.exports.default = timer;\n", "'use strict';\nconst {\n\tV4MAPPED,\n\tADDRCONFIG,\n\tALL,\n\tpromises: {\n\t\tResolver: AsyncResolver\n\t},\n\tlookup: dnsLookup\n} = require('dns');\nconst {promisify} = require('util');\nconst os = require('os');\n\nconst kCacheableLookupCreateConnection = Symbol('cacheableLookupCreateConnection');\nconst kCacheableLookupInstance = Symbol('cacheableLookupInstance');\nconst kExpires = Symbol('expires');\n\nconst supportsALL = typeof ALL === 'number';\n\nconst verifyAgent = agent => {\n\tif (!(agent && typeof agent.createConnection === 'function')) {\n\t\tthrow new Error('Expected an Agent instance as the first argument');\n\t}\n};\n\nconst map4to6 = entries => {\n\tfor (const entry of entries) {\n\t\tif (entry.family === 6) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tentry.address = `::ffff:${entry.address}`;\n\t\tentry.family = 6;\n\t}\n};\n\nconst getIfaceInfo = () => {\n\tlet has4 = false;\n\tlet has6 = false;\n\n\tfor (const device of Object.values(os.networkInterfaces())) {\n\t\tfor (const iface of device) {\n\t\t\tif (iface.internal) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (iface.family === 'IPv6') {\n\t\t\t\thas6 = true;\n\t\t\t} else {\n\t\t\t\thas4 = true;\n\t\t\t}\n\n\t\t\tif (has4 && has6) {\n\t\t\t\treturn {has4, has6};\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {has4, has6};\n};\n\nconst isIterable = map => {\n\treturn Symbol.iterator in map;\n};\n\nconst ttl = {ttl: true};\nconst all = {all: true};\n\nclass CacheableLookup {\n\tconstructor({\n\t\tcache = new Map(),\n\t\tmaxTtl = Infinity,\n\t\tfallbackDuration = 3600,\n\t\terrorTtl = 0.15,\n\t\tresolver = new AsyncResolver(),\n\t\tlookup = dnsLookup\n\t} = {}) {\n\t\tthis.maxTtl = maxTtl;\n\t\tthis.errorTtl = errorTtl;\n\n\t\tthis._cache = cache;\n\t\tthis._resolver = resolver;\n\t\tthis._dnsLookup = promisify(lookup);\n\n\t\tif (this._resolver instanceof AsyncResolver) {\n\t\t\tthis._resolve4 = this._resolver.resolve4.bind(this._resolver);\n\t\t\tthis._resolve6 = this._resolver.resolve6.bind(this._resolver);\n\t\t} else {\n\t\t\tthis._resolve4 = promisify(this._resolver.resolve4.bind(this._resolver));\n\t\t\tthis._resolve6 = promisify(this._resolver.resolve6.bind(this._resolver));\n\t\t}\n\n\t\tthis._iface = getIfaceInfo();\n\n\t\tthis._pending = {};\n\t\tthis._nextRemovalTime = false;\n\t\tthis._hostnamesToFallback = new Set();\n\n\t\tif (fallbackDuration < 1) {\n\t\t\tthis._fallback = false;\n\t\t} else {\n\t\t\tthis._fallback = true;\n\n\t\t\tconst interval = setInterval(() => {\n\t\t\t\tthis._hostnamesToFallback.clear();\n\t\t\t}, fallbackDuration * 1000);\n\n\t\t\t/* istanbul ignore next: There is no `interval.unref()` when running inside an Electron renderer */\n\t\t\tif (interval.unref) {\n\t\t\t\tinterval.unref();\n\t\t\t}\n\t\t}\n\n\t\tthis.lookup = this.lookup.bind(this);\n\t\tthis.lookupAsync = this.lookupAsync.bind(this);\n\t}\n\n\tset servers(servers) {\n\t\tthis.clear();\n\n\t\tthis._resolver.setServers(servers);\n\t}\n\n\tget servers() {\n\t\treturn this._resolver.getServers();\n\t}\n\n\tlookup(hostname, options, callback) {\n\t\tif (typeof options === 'function') {\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t} else if (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\tfamily: options\n\t\t\t};\n\t\t}\n\n\t\tif (!callback) {\n\t\t\tthrow new Error('Callback must be a function.');\n\t\t}\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\tthis.lookupAsync(hostname, options).then(result => {\n\t\t\tif (options.all) {\n\t\t\t\tcallback(null, result);\n\t\t\t} else {\n\t\t\t\tcallback(null, result.address, result.family, result.expires, result.ttl);\n\t\t\t}\n\t\t}, callback);\n\t}\n\n\tasync lookupAsync(hostname, options = {}) {\n\t\tif (typeof options === 'number') {\n\t\t\toptions = {\n\t\t\t\tfamily: options\n\t\t\t};\n\t\t}\n\n\t\tlet cached = await this.query(hostname);\n\n\t\tif (options.family === 6) {\n\t\t\tconst filtered = cached.filter(entry => entry.family === 6);\n\n\t\t\tif (options.hints & V4MAPPED) {\n\t\t\t\tif ((supportsALL && options.hints & ALL) || filtered.length === 0) {\n\t\t\t\t\tmap4to6(cached);\n\t\t\t\t} else {\n\t\t\t\t\tcached = filtered;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcached = filtered;\n\t\t\t}\n\t\t} else if (options.family === 4) {\n\t\t\tcached = cached.filter(entry => entry.family === 4);\n\t\t}\n\n\t\tif (options.hints & ADDRCONFIG) {\n\t\t\tconst {_iface} = this;\n\t\t\tcached = cached.filter(entry => entry.family === 6 ? _iface.has6 : _iface.has4);\n\t\t}\n\n\t\tif (cached.length === 0) {\n\t\t\tconst error = new Error(`cacheableLookup ENOTFOUND ${hostname}`);\n\t\t\terror.code = 'ENOTFOUND';\n\t\t\terror.hostname = hostname;\n\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (options.all) {\n\t\t\treturn cached;\n\t\t}\n\n\t\treturn cached[0];\n\t}\n\n\tasync query(hostname) {\n\t\tlet cached = await this._cache.get(hostname);\n\n\t\tif (!cached) {\n\t\t\tconst pending = this._pending[hostname];\n\n\t\t\tif (pending) {\n\t\t\t\tcached = await pending;\n\t\t\t} else {\n\t\t\t\tconst newPromise = this.queryAndCache(hostname);\n\t\t\t\tthis._pending[hostname] = newPromise;\n\n\t\t\t\ttry {\n\t\t\t\t\tcached = await newPromise;\n\t\t\t\t} finally {\n\t\t\t\t\tdelete this._pending[hostname];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tcached = cached.map(entry => {\n\t\t\treturn {...entry};\n\t\t});\n\n\t\treturn cached;\n\t}\n\n\tasync _resolve(hostname) {\n\t\tconst wrap = async promise => {\n\t\t\ttry {\n\t\t\t\treturn await promise;\n\t\t\t} catch (error) {\n\t\t\t\tif (error.code === 'ENODATA' || error.code === 'ENOTFOUND') {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t};\n\n\t\t// ANY is unsafe as it doesn't trigger new queries in the underlying server.\n\t\tconst [A, AAAA] = await Promise.all([\n\t\t\tthis._resolve4(hostname, ttl),\n\t\t\tthis._resolve6(hostname, ttl)\n\t\t].map(promise => wrap(promise)));\n\n\t\tlet aTtl = 0;\n\t\tlet aaaaTtl = 0;\n\t\tlet cacheTtl = 0;\n\n\t\tconst now = Date.now();\n\n\t\tfor (const entry of A) {\n\t\t\tentry.family = 4;\n\t\t\tentry.expires = now + (entry.ttl * 1000);\n\n\t\t\taTtl = Math.max(aTtl, entry.ttl);\n\t\t}\n\n\t\tfor (const entry of AAAA) {\n\t\t\tentry.family = 6;\n\t\t\tentry.expires = now + (entry.ttl * 1000);\n\n\t\t\taaaaTtl = Math.max(aaaaTtl, entry.ttl);\n\t\t}\n\n\t\tif (A.length > 0) {\n\t\t\tif (AAAA.length > 0) {\n\t\t\t\tcacheTtl = Math.min(aTtl, aaaaTtl);\n\t\t\t} else {\n\t\t\t\tcacheTtl = aTtl;\n\t\t\t}\n\t\t} else {\n\t\t\tcacheTtl = aaaaTtl;\n\t\t}\n\n\t\treturn {\n\t\t\tentries: [\n\t\t\t\t...A,\n\t\t\t\t...AAAA\n\t\t\t],\n\t\t\tcacheTtl\n\t\t};\n\t}\n\n\tasync _lookup(hostname) {\n\t\ttry {\n\t\t\tconst entries = await this._dnsLookup(hostname, {\n\t\t\t\tall: true\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tentries,\n\t\t\t\tcacheTtl: 0\n\t\t\t};\n\t\t} catch (_) {\n\t\t\treturn {\n\t\t\t\tentries: [],\n\t\t\t\tcacheTtl: 0\n\t\t\t};\n\t\t}\n\t}\n\n\tasync _set(hostname, data, cacheTtl) {\n\t\tif (this.maxTtl > 0 && cacheTtl > 0) {\n\t\t\tcacheTtl = Math.min(cacheTtl, this.maxTtl) * 1000;\n\t\t\tdata[kExpires] = Date.now() + cacheTtl;\n\n\t\t\ttry {\n\t\t\t\tawait this._cache.set(hostname, data, cacheTtl);\n\t\t\t} catch (error) {\n\t\t\t\tthis.lookupAsync = async () => {\n\t\t\t\t\tconst cacheError = new Error('Cache Error. Please recreate the CacheableLookup instance.');\n\t\t\t\t\tcacheError.cause = error;\n\n\t\t\t\t\tthrow cacheError;\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (isIterable(this._cache)) {\n\t\t\t\tthis._tick(cacheTtl);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync queryAndCache(hostname) {\n\t\tif (this._hostnamesToFallback.has(hostname)) {\n\t\t\treturn this._dnsLookup(hostname, all);\n\t\t}\n\n\t\tlet query = await this._resolve(hostname);\n\n\t\tif (query.entries.length === 0 && this._fallback) {\n\t\t\tquery = await this._lookup(hostname);\n\n\t\t\tif (query.entries.length !== 0) {\n\t\t\t\t// Use `dns.lookup(...)` for that particular hostname\n\t\t\t\tthis._hostnamesToFallback.add(hostname);\n\t\t\t}\n\t\t}\n\n\t\tconst cacheTtl = query.entries.length === 0 ? this.errorTtl : query.cacheTtl;\n\t\tawait this._set(hostname, query.entries, cacheTtl);\n\n\t\treturn query.entries;\n\t}\n\n\t_tick(ms) {\n\t\tconst nextRemovalTime = this._nextRemovalTime;\n\n\t\tif (!nextRemovalTime || ms < nextRemovalTime) {\n\t\t\tclearTimeout(this._removalTimeout);\n\n\t\t\tthis._nextRemovalTime = ms;\n\n\t\t\tthis._removalTimeout = setTimeout(() => {\n\t\t\t\tthis._nextRemovalTime = false;\n\n\t\t\t\tlet nextExpiry = Infinity;\n\n\t\t\t\tconst now = Date.now();\n\n\t\t\t\tfor (const [hostname, entries] of this._cache) {\n\t\t\t\t\tconst expires = entries[kExpires];\n\n\t\t\t\t\tif (now >= expires) {\n\t\t\t\t\t\tthis._cache.delete(hostname);\n\t\t\t\t\t} else if (expires < nextExpiry) {\n\t\t\t\t\t\tnextExpiry = expires;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (nextExpiry !== Infinity) {\n\t\t\t\t\tthis._tick(nextExpiry - now);\n\t\t\t\t}\n\t\t\t}, ms);\n\n\t\t\t/* istanbul ignore next: There is no `timeout.unref()` when running inside an Electron renderer */\n\t\t\tif (this._removalTimeout.unref) {\n\t\t\t\tthis._removalTimeout.unref();\n\t\t\t}\n\t\t}\n\t}\n\n\tinstall(agent) {\n\t\tverifyAgent(agent);\n\n\t\tif (kCacheableLookupCreateConnection in agent) {\n\t\t\tthrow new Error('CacheableLookup has been already installed');\n\t\t}\n\n\t\tagent[kCacheableLookupCreateConnection] = agent.createConnection;\n\t\tagent[kCacheableLookupInstance] = this;\n\n\t\tagent.createConnection = (options, callback) => {\n\t\t\tif (!('lookup' in options)) {\n\t\t\t\toptions.lookup = this.lookup;\n\t\t\t}\n\n\t\t\treturn agent[kCacheableLookupCreateConnection](options, callback);\n\t\t};\n\t}\n\n\tuninstall(agent) {\n\t\tverifyAgent(agent);\n\n\t\tif (agent[kCacheableLookupCreateConnection]) {\n\t\t\tif (agent[kCacheableLookupInstance] !== this) {\n\t\t\t\tthrow new Error('The agent is not owned by this CacheableLookup instance');\n\t\t\t}\n\n\t\t\tagent.createConnection = agent[kCacheableLookupCreateConnection];\n\n\t\t\tdelete agent[kCacheableLookupCreateConnection];\n\t\t\tdelete agent[kCacheableLookupInstance];\n\t\t}\n\t}\n\n\tupdateInterfaceInfo() {\n\t\tconst {_iface} = this;\n\n\t\tthis._iface = getIfaceInfo();\n\n\t\tif ((_iface.has4 && !this._iface.has4) || (_iface.has6 && !this._iface.has6)) {\n\t\t\tthis._cache.clear();\n\t\t}\n\t}\n\n\tclear(hostname) {\n\t\tif (hostname) {\n\t\t\tthis._cache.delete(hostname);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._cache.clear();\n\t}\n}\n\nmodule.exports = CacheableLookup;\nmodule.exports.default = CacheableLookup;\n", "'use strict';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\nconst DATA_URL_DEFAULT_MIME_TYPE = 'text/plain';\nconst DATA_URL_DEFAULT_CHARSET = 'us-ascii';\n\nconst testParameter = (name, filters) => {\n\treturn filters.some(filter => filter instanceof RegExp ? filter.test(name) : filter === name);\n};\n\nconst normalizeDataURL = (urlString, {stripHash}) => {\n\tconst match = /^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(urlString);\n\n\tif (!match) {\n\t\tthrow new Error(`Invalid URL: ${urlString}`);\n\t}\n\n\tlet {type, data, hash} = match.groups;\n\tconst mediaType = type.split(';');\n\thash = stripHash ? '' : hash;\n\n\tlet isBase64 = false;\n\tif (mediaType[mediaType.length - 1] === 'base64') {\n\t\tmediaType.pop();\n\t\tisBase64 = true;\n\t}\n\n\t// Lowercase MIME type\n\tconst mimeType = (mediaType.shift() || '').toLowerCase();\n\tconst attributes = mediaType\n\t\t.map(attribute => {\n\t\t\tlet [key, value = ''] = attribute.split('=').map(string => string.trim());\n\n\t\t\t// Lowercase `charset`\n\t\t\tif (key === 'charset') {\n\t\t\t\tvalue = value.toLowerCase();\n\n\t\t\t\tif (value === DATA_URL_DEFAULT_CHARSET) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn `${key}${value ? `=${value}` : ''}`;\n\t\t})\n\t\t.filter(Boolean);\n\n\tconst normalizedMediaType = [\n\t\t...attributes\n\t];\n\n\tif (isBase64) {\n\t\tnormalizedMediaType.push('base64');\n\t}\n\n\tif (normalizedMediaType.length !== 0 || (mimeType && mimeType !== DATA_URL_DEFAULT_MIME_TYPE)) {\n\t\tnormalizedMediaType.unshift(mimeType);\n\t}\n\n\treturn `data:${normalizedMediaType.join(';')},${isBase64 ? data.trim() : data}${hash ? `#${hash}` : ''}`;\n};\n\nconst normalizeUrl = (urlString, options) => {\n\toptions = {\n\t\tdefaultProtocol: 'http:',\n\t\tnormalizeProtocol: true,\n\t\tforceHttp: false,\n\t\tforceHttps: false,\n\t\tstripAuthentication: true,\n\t\tstripHash: false,\n\t\tstripTextFragment: true,\n\t\tstripWWW: true,\n\t\tremoveQueryParameters: [/^utm_\\w+/i],\n\t\tremoveTrailingSlash: true,\n\t\tremoveSingleSlash: true,\n\t\tremoveDirectoryIndex: false,\n\t\tsortQueryParameters: true,\n\t\t...options\n\t};\n\n\turlString = urlString.trim();\n\n\t// Data URL\n\tif (/^data:/i.test(urlString)) {\n\t\treturn normalizeDataURL(urlString, options);\n\t}\n\n\tif (/^view-source:/i.test(urlString)) {\n\t\tthrow new Error('`view-source:` is not supported as it is a non-standard protocol');\n\t}\n\n\tconst hasRelativeProtocol = urlString.startsWith('//');\n\tconst isRelativeUrl = !hasRelativeProtocol && /^\\.*\\//.test(urlString);\n\n\t// Prepend protocol\n\tif (!isRelativeUrl) {\n\t\turlString = urlString.replace(/^(?!(?:\\w+:)?\\/\\/)|^\\/\\//, options.defaultProtocol);\n\t}\n\n\tconst urlObj = new URL(urlString);\n\n\tif (options.forceHttp && options.forceHttps) {\n\t\tthrow new Error('The `forceHttp` and `forceHttps` options cannot be used together');\n\t}\n\n\tif (options.forceHttp && urlObj.protocol === 'https:') {\n\t\turlObj.protocol = 'http:';\n\t}\n\n\tif (options.forceHttps && urlObj.protocol === 'http:') {\n\t\turlObj.protocol = 'https:';\n\t}\n\n\t// Remove auth\n\tif (options.stripAuthentication) {\n\t\turlObj.username = '';\n\t\turlObj.password = '';\n\t}\n\n\t// Remove hash\n\tif (options.stripHash) {\n\t\turlObj.hash = '';\n\t} else if (options.stripTextFragment) {\n\t\turlObj.hash = urlObj.hash.replace(/#?:~:text.*?$/i, '');\n\t}\n\n\t// Remove duplicate slashes if not preceded by a protocol\n\tif (urlObj.pathname) {\n\t\turlObj.pathname = urlObj.pathname.replace(/(?<!\\b(?:[a-z][a-z\\d+\\-.]{1,50}:))\\/{2,}/g, '/');\n\t}\n\n\t// Decode URI octets\n\tif (urlObj.pathname) {\n\t\ttry {\n\t\t\turlObj.pathname = decodeURI(urlObj.pathname);\n\t\t} catch (_) {}\n\t}\n\n\t// Remove directory index\n\tif (options.removeDirectoryIndex === true) {\n\t\toptions.removeDirectoryIndex = [/^index\\.[a-z]+$/];\n\t}\n\n\tif (Array.isArray(options.removeDirectoryIndex) && options.removeDirectoryIndex.length > 0) {\n\t\tlet pathComponents = urlObj.pathname.split('/');\n\t\tconst lastComponent = pathComponents[pathComponents.length - 1];\n\n\t\tif (testParameter(lastComponent, options.removeDirectoryIndex)) {\n\t\t\tpathComponents = pathComponents.slice(0, pathComponents.length - 1);\n\t\t\turlObj.pathname = pathComponents.slice(1).join('/') + '/';\n\t\t}\n\t}\n\n\tif (urlObj.hostname) {\n\t\t// Remove trailing dot\n\t\turlObj.hostname = urlObj.hostname.replace(/\\.$/, '');\n\n\t\t// Remove `www.`\n\t\tif (options.stripWWW && /^www\\.(?!www\\.)(?:[a-z\\-\\d]{1,63})\\.(?:[a-z.\\-\\d]{2,63})$/.test(urlObj.hostname)) {\n\t\t\t// Each label should be max 63 at length (min: 1).\n\t\t\t// Source: https://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names\n\t\t\t// Each TLD should be up to 63 characters long (min: 2).\n\t\t\t// It is technically possible to have a single character TLD, but none currently exist.\n\t\t\turlObj.hostname = urlObj.hostname.replace(/^www\\./, '');\n\t\t}\n\t}\n\n\t// Remove query unwanted parameters\n\tif (Array.isArray(options.removeQueryParameters)) {\n\t\tfor (const key of [...urlObj.searchParams.keys()]) {\n\t\t\tif (testParameter(key, options.removeQueryParameters)) {\n\t\t\t\turlObj.searchParams.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (options.removeQueryParameters === true) {\n\t\turlObj.search = '';\n\t}\n\n\t// Sort query parameters\n\tif (options.sortQueryParameters) {\n\t\turlObj.searchParams.sort();\n\t}\n\n\tif (options.removeTrailingSlash) {\n\t\turlObj.pathname = urlObj.pathname.replace(/\\/$/, '');\n\t}\n\n\tconst oldUrlString = urlString;\n\n\t// Take advantage of many of the Node `url` normalizations\n\turlString = urlObj.toString();\n\n\tif (!options.removeSingleSlash && urlObj.pathname === '/' && !oldUrlString.endsWith('/') && urlObj.hash === '') {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Remove ending `/` unless removeSingleSlash is false\n\tif ((options.removeTrailingSlash || urlObj.pathname === '/') && urlObj.hash === '' && options.removeSingleSlash) {\n\t\turlString = urlString.replace(/\\/$/, '');\n\t}\n\n\t// Restore relative protocol, if applicable\n\tif (hasRelativeProtocol && !options.normalizeProtocol) {\n\t\turlString = urlString.replace(/^http:\\/\\//, '//');\n\t}\n\n\t// Remove http/https\n\tif (options.stripProtocol) {\n\t\turlString = urlString.replace(/^(?:https?:)?\\/\\//, '');\n\t}\n\n\treturn urlString;\n};\n\nmodule.exports = normalizeUrl;\n", "// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n", "var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n", "var once = require('once');\n\nvar noop = function() {};\n\nvar isRequest = function(stream) {\n\treturn stream.setHeader && typeof stream.abort === 'function';\n};\n\nvar isChildProcess = function(stream) {\n\treturn stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3\n};\n\nvar eos = function(stream, opts, callback) {\n\tif (typeof opts === 'function') return eos(stream, null, opts);\n\tif (!opts) opts = {};\n\n\tcallback = once(callback || noop);\n\n\tvar ws = stream._writableState;\n\tvar rs = stream._readableState;\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\n\tvar cancelled = false;\n\n\tvar onlegacyfinish = function() {\n\t\tif (!stream.writable) onfinish();\n\t};\n\n\tvar onfinish = function() {\n\t\twritable = false;\n\t\tif (!readable) callback.call(stream);\n\t};\n\n\tvar onend = function() {\n\t\treadable = false;\n\t\tif (!writable) callback.call(stream);\n\t};\n\n\tvar onexit = function(exitCode) {\n\t\tcallback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);\n\t};\n\n\tvar onerror = function(err) {\n\t\tcallback.call(stream, err);\n\t};\n\n\tvar onclose = function() {\n\t\tprocess.nextTick(onclosenexttick);\n\t};\n\n\tvar onclosenexttick = function() {\n\t\tif (cancelled) return;\n\t\tif (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close'));\n\t\tif (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close'));\n\t};\n\n\tvar onrequest = function() {\n\t\tstream.req.on('finish', onfinish);\n\t};\n\n\tif (isRequest(stream)) {\n\t\tstream.on('complete', onfinish);\n\t\tstream.on('abort', onclose);\n\t\tif (stream.req) onrequest();\n\t\telse stream.on('request', onrequest);\n\t} else if (writable && !ws) { // legacy streams\n\t\tstream.on('end', onlegacyfinish);\n\t\tstream.on('close', onlegacyfinish);\n\t}\n\n\tif (isChildProcess(stream)) stream.on('exit', onexit);\n\n\tstream.on('end', onend);\n\tstream.on('finish', onfinish);\n\tif (opts.error !== false) stream.on('error', onerror);\n\tstream.on('close', onclose);\n\n\treturn function() {\n\t\tcancelled = true;\n\t\tstream.removeListener('complete', onfinish);\n\t\tstream.removeListener('abort', onclose);\n\t\tstream.removeListener('request', onrequest);\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onlegacyfinish);\n\t\tstream.removeListener('close', onlegacyfinish);\n\t\tstream.removeListener('finish', onfinish);\n\t\tstream.removeListener('exit', onexit);\n\t\tstream.removeListener('end', onend);\n\t\tstream.removeListener('error', onerror);\n\t\tstream.removeListener('close', onclose);\n\t};\n};\n\nmodule.exports = eos;\n", "var once = require('once')\nvar eos = require('end-of-stream')\nvar fs\n\ntry {\n fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes\n} catch (e) {}\n\nvar noop = function () {}\nvar ancient = /^v?\\.0/.test(process.version)\n\nvar isFn = function (fn) {\n return typeof fn === 'function'\n}\n\nvar isFS = function (stream) {\n if (!ancient) return false // newer node version do not need to care about fs is a special way\n if (!fs) return false // browser\n return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)\n}\n\nvar isRequest = function (stream) {\n return stream.setHeader && isFn(stream.abort)\n}\n\nvar destroyer = function (stream, reading, writing, callback) {\n callback = once(callback)\n\n var closed = false\n stream.on('close', function () {\n closed = true\n })\n\n eos(stream, {readable: reading, writable: writing}, function (err) {\n if (err) return callback(err)\n closed = true\n callback()\n })\n\n var destroyed = false\n return function (err) {\n if (closed) return\n if (destroyed) return\n destroyed = true\n\n if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks\n if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want\n\n if (isFn(stream.destroy)) return stream.destroy()\n\n callback(err || new Error('stream was destroyed'))\n }\n}\n\nvar call = function (fn) {\n fn()\n}\n\nvar pipe = function (from, to) {\n return from.pipe(to)\n}\n\nvar pump = function () {\n var streams = Array.prototype.slice.call(arguments)\n var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop\n\n if (Array.isArray(streams[0])) streams = streams[0]\n if (streams.length < 2) throw new Error('pump requires two streams per minimum')\n\n var error\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1\n var writing = i > 0\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err\n if (err) destroys.forEach(call)\n if (reading) return\n destroys.forEach(call)\n callback(error)\n })\n })\n\n return streams.reduce(pipe)\n}\n\nmodule.exports = pump\n", "'use strict';\nconst {PassThrough: PassThroughStream} = require('stream');\n\nmodule.exports = options => {\n\toptions = {...options};\n\n\tconst {array} = options;\n\tlet {encoding} = options;\n\tconst isBuffer = encoding === 'buffer';\n\tlet objectMode = false;\n\n\tif (array) {\n\t\tobjectMode = !(encoding || isBuffer);\n\t} else {\n\t\tencoding = encoding || 'utf8';\n\t}\n\n\tif (isBuffer) {\n\t\tencoding = null;\n\t}\n\n\tconst stream = new PassThroughStream({objectMode});\n\n\tif (encoding) {\n\t\tstream.setEncoding(encoding);\n\t}\n\n\tlet length = 0;\n\tconst chunks = [];\n\n\tstream.on('data', chunk => {\n\t\tchunks.push(chunk);\n\n\t\tif (objectMode) {\n\t\t\tlength = chunks.length;\n\t\t} else {\n\t\t\tlength += chunk.length;\n\t\t}\n\t});\n\n\tstream.getBufferedValue = () => {\n\t\tif (array) {\n\t\t\treturn chunks;\n\t\t}\n\n\t\treturn isBuffer ? Buffer.concat(chunks, length) : chunks.join('');\n\t};\n\n\tstream.getBufferedLength = () => length;\n\n\treturn stream;\n};\n", "'use strict';\nconst {constants: BufferConstants} = require('buffer');\nconst pump = require('pump');\nconst bufferStream = require('./buffer-stream');\n\nclass MaxBufferError extends Error {\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t\tthis.name = 'MaxBufferError';\n\t}\n}\n\nasync function getStream(inputStream, options) {\n\tif (!inputStream) {\n\t\treturn Promise.reject(new Error('Expected a stream'));\n\t}\n\n\toptions = {\n\t\tmaxBuffer: Infinity,\n\t\t...options\n\t};\n\n\tconst {maxBuffer} = options;\n\n\tlet stream;\n\tawait new Promise((resolve, reject) => {\n\t\tconst rejectPromise = error => {\n\t\t\t// Don't retrieve an oversized buffer.\n\t\t\tif (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) {\n\t\t\t\terror.bufferedData = stream.getBufferedValue();\n\t\t\t}\n\n\t\t\treject(error);\n\t\t};\n\n\t\tstream = pump(inputStream, bufferStream(options), error => {\n\t\t\tif (error) {\n\t\t\t\trejectPromise(error);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresolve();\n\t\t});\n\n\t\tstream.on('data', () => {\n\t\t\tif (stream.getBufferedLength() > maxBuffer) {\n\t\t\t\trejectPromise(new MaxBufferError());\n\t\t\t}\n\t\t});\n\t});\n\n\treturn stream.getBufferedValue();\n}\n\nmodule.exports = getStream;\n// TODO: Remove this for the next major release\nmodule.exports.default = getStream;\nmodule.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'});\nmodule.exports.array = (stream, options) => getStream(stream, {...options, array: true});\nmodule.exports.MaxBufferError = MaxBufferError;\n", "'use strict';\n\n/**\n * @typedef {Object} HttpRequest\n * @property {Record<string, string>} headers - Request headers\n * @property {string} [method] - HTTP method\n * @property {string} [url] - Request URL\n */\n\n/**\n * @typedef {Object} HttpResponse\n * @property {Record<string, string>} headers - Response headers\n * @property {number} [status] - HTTP status code\n */\n\n/**\n * Set of default cacheable status codes per RFC 7231 section 6.1.\n * @type {Set<number>}\n */\nconst statusCodeCacheableByDefault = new Set([\n 200,\n 203,\n 204,\n 206,\n 300,\n 301,\n 308,\n 404,\n 405,\n 410,\n 414,\n 501,\n]);\n\n/**\n * Set of HTTP status codes that the cache implementation understands.\n * Note: This implementation does not understand partial responses (206).\n * @type {Set<number>}\n */\nconst understoodStatuses = new Set([\n 200,\n 203,\n 204,\n 300,\n 301,\n 302,\n 303,\n 307,\n 308,\n 404,\n 405,\n 410,\n 414,\n 501,\n]);\n\n/**\n * Set of HTTP error status codes.\n * @type {Set<number>}\n */\nconst errorStatusCodes = new Set([\n 500,\n 502,\n 503,\n 504,\n]);\n\n/**\n * Object representing hop-by-hop headers that should be removed.\n * @type {Record<string, boolean>}\n */\nconst hopByHopHeaders = {\n date: true, // included, because we add Age update Date\n connection: true,\n 'keep-alive': true,\n 'proxy-authenticate': true,\n 'proxy-authorization': true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n};\n\n/**\n * Headers that are excluded from revalidation update.\n * @type {Record<string, boolean>}\n */\nconst excludedFromRevalidationUpdate = {\n // Since the old body is reused, it doesn't make sense to change properties of the body\n 'content-length': true,\n 'content-encoding': true,\n 'transfer-encoding': true,\n 'content-range': true,\n};\n\n/**\n * Converts a string to a number or returns zero if the conversion fails.\n * @param {string} s - The string to convert.\n * @returns {number} The parsed number or 0.\n */\nfunction toNumberOrZero(s) {\n const n = parseInt(s, 10);\n return isFinite(n) ? n : 0;\n}\n\n/**\n * Determines if the given response is an error response.\n * Implements RFC 5861 behavior.\n * @param {HttpResponse|undefined} response - The HTTP response object.\n * @returns {boolean} true if the response is an error or undefined, false otherwise.\n */\nfunction isErrorResponse(response) {\n // consider undefined response as faulty\n if (!response) {\n return true;\n }\n return errorStatusCodes.has(response.status);\n}\n\n/**\n * Parses a Cache-Control header string into an object.\n * @param {string} [header] - The Cache-Control header value.\n * @returns {Record<string, string|boolean>} An object representing Cache-Control directives.\n */\nfunction parseCacheControl(header) {\n /** @type {Record<string, string|boolean>} */\n const cc = {};\n if (!header) return cc;\n\n // TODO: When there is more than one value present for a given directive (e.g., two Expires header fields, multiple Cache-Control: max-age directives),\n // the directive's value is considered invalid. Caches are encouraged to consider responses that have invalid freshness information to be stale\n const parts = header.trim().split(/,/);\n for (const part of parts) {\n const [k, v] = part.split(/=/, 2);\n cc[k.trim()] = v === undefined ? true : v.trim().replace(/^\"|\"$/g, '');\n }\n\n return cc;\n}\n\n/**\n * Formats a Cache-Control directives object into a header string.\n * @param {Record<string, string|boolean>} cc - The Cache-Control directives.\n * @returns {string|undefined} A formatted Cache-Control header string or undefined if empty.\n */\nfunction formatCacheControl(cc) {\n let parts = [];\n for (const k in cc) {\n const v = cc[k];\n parts.push(v === true ? k : k + '=' + v);\n }\n if (!parts.length) {\n return undefined;\n }\n return parts.join(', ');\n}\n\nmodule.exports = class CachePolicy {\n /**\n * Creates a new CachePolicy instance.\n * @param {HttpRequest} req - Incoming client request.\n * @param {HttpResponse} res - Received server response.\n * @param {Object} [options={}] - Configuration options.\n * @param {boolean} [options.shared=true] - Is the cache shared (a public proxy)? `false` for personal browser caches.\n * @param {number} [options.cacheHeuristic=0.1] - Fallback heuristic (age fraction) for cache duration.\n * @param {number} [options.immutableMinTimeToLive=86400000] - Minimum TTL for immutable responses in milliseconds.\n * @param {boolean} [options.ignoreCargoCult=false] - Detect nonsense cache headers, and override them.\n * @param {any} [options._fromObject] - Internal parameter for deserialization. Do not use.\n */\n constructor(\n req,\n res,\n {\n shared,\n cacheHeuristic,\n immutableMinTimeToLive,\n ignoreCargoCult,\n _fromObject,\n } = {}\n ) {\n if (_fromObject) {\n this._fromObject(_fromObject);\n return;\n }\n\n if (!res || !res.headers) {\n throw Error('Response headers missing');\n }\n this._assertRequestHasHeaders(req);\n\n /** @type {number} Timestamp when the response was received */\n this._responseTime = this.now();\n /** @type {boolean} Indicates if the cache is shared */\n this._isShared = shared !== false;\n /** @type {boolean} Indicates if legacy cargo cult directives should be ignored */\n this._ignoreCargoCult = !!ignoreCargoCult;\n /** @type {number} Heuristic cache fraction */\n this._cacheHeuristic =\n undefined !== cacheHeuristic ? cacheHeuristic : 0.1; // 10% matches IE\n /** @type {number} Minimum TTL for immutable responses in ms */\n this._immutableMinTtl =\n undefined !== immutableMinTimeToLive\n ? immutableMinTimeToLive\n : 24 * 3600 * 1000;\n\n /** @type {number} HTTP status code */\n this._status = 'status' in res ? res.status : 200;\n /** @type {Record<string, string>} Response headers */\n this._resHeaders = res.headers;\n /** @type {Record<string, string|boolean>} Parsed Cache-Control directives from response */\n this._rescc = parseCacheControl(res.headers['cache-control']);\n /** @type {string} HTTP method (e.g., GET, POST) */\n this._method = 'method' in req ? req.method : 'GET';\n /** @type {string} Request URL */\n this._url = req.url;\n /** @type {string} Host header from the request */\n this._host = req.headers.host;\n /** @type {boolean} Whether the request does not include an Authorization header */\n this._noAuthorization = !req.headers.authorization;\n /** @type {Record<string, string>|null} Request headers used for Vary matching */\n this._reqHeaders = res.headers.vary ? req.headers : null; // Don't keep all request headers if they won't be used\n /** @type {Record<string, string|boolean>} Parsed Cache-Control directives from request */\n this._reqcc = parseCacheControl(req.headers['cache-control']);\n\n // Assume that if someone uses legacy, non-standard uncecessary options they don't understand caching,\n // so there's no point stricly adhering to the blindly copy&pasted directives.\n if (\n this._ignoreCargoCult &&\n 'pre-check' in this._rescc &&\n 'post-check' in this._rescc\n ) {\n delete this._rescc['pre-check'];\n delete this._rescc['post-check'];\n delete this._rescc['no-cache'];\n delete this._rescc['no-store'];\n delete this._rescc['must-revalidate'];\n this._resHeaders = Object.assign({}, this._resHeaders, {\n 'cache-control': formatCacheControl(this._rescc),\n });\n delete this._resHeaders.expires;\n delete this._resHeaders.pragma;\n }\n\n // When the Cache-Control header field is not present in a request, caches MUST consider the no-cache request pragma-directive\n // as having the same effect as if \"Cache-Control: no-cache\" were present (see Section 5.2.1).\n if (\n res.headers['cache-control'] == null &&\n /no-cache/.test(res.headers.pragma)\n ) {\n this._rescc['no-cache'] = true;\n }\n }\n\n /**\n * You can monkey-patch it for testing.\n * @returns {number} Current time in milliseconds.\n */\n now() {\n return Date.now();\n }\n\n /**\n * Determines if the response is storable in a cache.\n * @returns {boolean} `false` if can never be cached.\n */\n storable() {\n // The \"no-store\" request directive indicates that a cache MUST NOT store any part of either this request or any response to it.\n return !!(\n !this._reqcc['no-store'] &&\n // A cache MUST NOT store a response to any request, unless:\n // The request method is understood by the cache and defined as being cacheable, and\n ('GET' === this._method ||\n 'HEAD' === this._method ||\n ('POST' === this._method && this._hasExplicitExpiration())) &&\n // the response status code is understood by the cache, and\n understoodStatuses.has(this._status) &&\n // the \"no-store\" cache directive does not appear in request or response header fields, and\n !this._rescc['no-store'] &&\n // the \"private\" response directive does not appear in the response, if the cache is shared, and\n (!this._isShared || !this._rescc.private) &&\n // the Authorization header field does not appear in the request, if the cache is shared,\n (!this._isShared ||\n this._noAuthorization ||\n this._allowsStoringAuthenticated()) &&\n // the response either:\n // contains an Expires header field, or\n (this._resHeaders.expires ||\n // contains a max-age response directive, or\n // contains a s-maxage response directive and the cache is shared, or\n // contains a public response directive.\n this._rescc['max-age'] ||\n (this._isShared && this._rescc['s-maxage']) ||\n this._rescc.public ||\n // has a status code that is defined as cacheable by default\n statusCodeCacheableByDefault.has(this._status))\n );\n }\n\n /**\n * @returns {boolean} true if expiration is explicitly defined.\n */\n _hasExplicitExpiration() {\n // 4.2.1 Calculating Freshness Lifetime\n return !!(\n (this._isShared && this._rescc['s-maxage']) ||\n this._rescc['max-age'] ||\n this._resHeaders.expires\n );\n }\n\n /**\n * @param {HttpRequest} req - a request\n * @throws {Error} if the headers are missing.\n */\n _assertRequestHasHeaders(req) {\n if (!req || !req.headers) {\n throw Error('Request headers missing');\n }\n }\n\n /**\n * Checks if the request matches the cache and can be satisfied from the cache immediately,\n * without having to make a request to the server.\n *\n * This doesn't support `stale-while-revalidate`. See `evaluateRequest()` for a more complete solution.\n *\n * @param {HttpRequest} req - The new incoming HTTP request.\n * @returns {boolean} `true`` if the cached response used to construct this cache policy satisfies the request without revalidation.\n */\n satisfiesWithoutRevalidation(req) {\n const result = this.evaluateRequest(req);\n return !result.revalidation;\n }\n\n /**\n * @param {{headers: Record<string, string>, synchronous: boolean}|undefined} revalidation - Revalidation information, if any.\n * @returns {{response: {headers: Record<string, string>}, revalidation: {headers: Record<string, string>, synchronous: boolean}|undefined}} An object with a cached response headers and revalidation info.\n */\n _evaluateRequestHitResult(revalidation) {\n return {\n response: {\n headers: this.responseHeaders(),\n },\n revalidation,\n };\n }\n\n /**\n * @param {HttpRequest} request - new incoming\n * @param {boolean} synchronous - whether revalidation must be synchronous (not s-w-r).\n * @returns {{headers: Record<string, string>, synchronous: boolean}} An object with revalidation headers and a synchronous flag.\n */\n _evaluateRequestRevalidation(request, synchronous) {\n return {\n synchronous,\n headers: this.revalidationHeaders(request),\n };\n }\n\n /**\n * @param {HttpRequest} request - new incoming\n * @returns {{response: undefined, revalidation: {headers: Record<string, string>, synchronous: boolean}}} An object indicating no cached response and revalidation details.\n */\n _evaluateRequestMissResult(request) {\n return {\n response: undefined,\n revalidation: this._evaluateRequestRevalidation(request, true),\n };\n }\n\n /**\n * Checks if the given request matches this cache entry, and how the cache can be used to satisfy it. Returns an object with:\n *\n * ```\n * {\n * // If defined, you must send a request to the server.\n * revalidation: {\n * headers: {}, // HTTP headers to use when sending the revalidation response\n * // If true, you MUST wait for a response from the server before using the cache\n * // If false, this is stale-while-revalidate. The cache is stale, but you can use it while you update it asynchronously.\n * synchronous: bool,\n * },\n * // If defined, you can use this cached response.\n * response: {\n * headers: {}, // Updated cached HTTP headers you must use when responding to the client\n * },\n * }\n * ```\n * @param {HttpRequest} req - new incoming HTTP request\n * @returns {{response: {headers: Record<string, string>}|undefined, revalidation: {headers: Record<string, string>, synchronous: boolean}|undefined}} An object containing keys:\n * - revalidation: { headers: Record<string, string>, synchronous: boolean } Set if you should send this to the origin server\n * - response: { headers: Record<string, string> } Set if you can respond to the client with these cached headers\n */\n evaluateRequest(req) {\n this._assertRequestHasHeaders(req);\n\n // In all circumstances, a cache MUST NOT ignore the must-revalidate directive\n if (this._rescc['must-revalidate']) {\n return this._evaluateRequestMissResult(req);\n }\n\n if (!this._requestMatches(req, false)) {\n return this._evaluateRequestMissResult(req);\n }\n\n // When presented with a request, a cache MUST NOT reuse a stored response, unless:\n // the presented request does not contain the no-cache pragma (Section 5.4), nor the no-cache cache directive,\n // unless the stored response is successfully validated (Section 4.3), and\n const requestCC = parseCacheControl(req.headers['cache-control']);\n\n if (requestCC['no-cache'] || /no-cache/.test(req.headers.pragma)) {\n return this._evaluateRequestMissResult(req);\n }\n\n if (requestCC['max-age'] && this.age() > toNumberOrZero(requestCC['max-age'])) {\n return this._evaluateRequestMissResult(req);\n }\n\n if (requestCC['min-fresh'] && this.maxAge() - this.age() < toNumberOrZero(requestCC['min-fresh'])) {\n return this._evaluateRequestMissResult(req);\n }\n\n // the stored response is either:\n // fresh, or allowed to be served stale\n if (this.stale()) {\n // If a value is present, then the client is willing to accept a response that has\n // exceeded its freshness lifetime by no more than the specified number of seconds\n const allowsStaleWithoutRevalidation = 'max-stale' in requestCC &&\n (true === requestCC['max-stale'] || requestCC['max-stale'] > this.age() - this.maxAge());\n\n if (allowsStaleWithoutRevalidation) {\n return this._evaluateRequestHitResult(undefined);\n }\n\n if (this.useStaleWhileRevalidate()) {\n return this._evaluateRequestHitResult(this._evaluateRequestRevalidation(req, false));\n }\n\n return this._evaluateRequestMissResult(req);\n }\n\n return this._evaluateRequestHitResult(undefined);\n }\n\n /**\n * @param {HttpRequest} req - check if this is for the same cache entry\n * @param {boolean} allowHeadMethod - allow a HEAD method to match.\n * @returns {boolean} `true` if the request matches.\n */\n _requestMatches(req, allowHeadMethod) {\n // The presented effective request URI and that of the stored response match, and\n return !!(\n (!this._url || this._url === req.url) &&\n this._host === req.headers.host &&\n // the request method associated with the stored response allows it to be used for the presented request, and\n (!req.method ||\n this._method === req.method ||\n (allowHeadMethod && 'HEAD' === req.method)) &&\n // selecting header fields nominated by the stored response (if any) match those presented, and\n this._varyMatches(req)\n );\n }\n\n /**\n * Determines whether storing authenticated responses is allowed.\n * @returns {boolean} `true` if allowed.\n */\n _allowsStoringAuthenticated() {\n // following Cache-Control response directives (Section 5.2.2) have such an effect: must-revalidate, public, and s-maxage.\n return !!(\n this._rescc['must-revalidate'] ||\n this._rescc.public ||\n this._rescc['s-maxage']\n );\n }\n\n /**\n * Checks whether the Vary header in the response matches the new request.\n * @param {HttpRequest} req - incoming HTTP request\n * @returns {boolean} `true` if the vary headers match.\n */\n _varyMatches(req) {\n if (!this._resHeaders.vary) {\n return true;\n }\n\n // A Vary header field-value of \"*\" always fails to match\n if (this._resHeaders.vary === '*') {\n return false;\n }\n\n const fields = this._resHeaders.vary\n .trim()\n .toLowerCase()\n .split(/\\s*,\\s*/);\n for (const name of fields) {\n if (req.headers[name] !== this._reqHeaders[name]) return false;\n }\n return true;\n }\n\n /**\n * Creates a copy of the given headers without any hop-by-hop headers.\n * @param {Record<string, string>} inHeaders - old headers from the cached response\n * @returns {Record<string, string>} A new headers object without hop-by-hop headers.\n */\n _copyWithoutHopByHopHeaders(inHeaders) {\n /** @type {Record<string, string>} */\n const headers = {};\n for (const name in inHeaders) {\n if (hopByHopHeaders[name]) continue;\n headers[name] = inHeaders[name];\n }\n // 9.1. Connection\n if (inHeaders.connection) {\n const tokens = inHeaders.connection.trim().split(/\\s*,\\s*/);\n for (const name of tokens) {\n delete headers[name];\n }\n }\n if (headers.warning) {\n const warnings = headers.warning.split(/,/).filter(warning => {\n return !/^\\s*1[0-9][0-9]/.test(warning);\n });\n if (!warnings.length) {\n delete headers.warning;\n } else {\n headers.warning = warnings.join(',').trim();\n }\n }\n return headers;\n }\n\n /**\n * Returns the response headers adjusted for serving the cached response.\n * Removes hop-by-hop headers and updates the Age and Date headers.\n * @returns {Record<string, string>} The adjusted response headers.\n */\n responseHeaders() {\n const headers = this._copyWithoutHopByHopHeaders(this._resHeaders);\n const age = this.age();\n\n // A cache SHOULD generate 113 warning if it heuristically chose a freshness\n // lifetime greater than 24 hours and the response's age is greater than 24 hours.\n if (\n age > 3600 * 24 &&\n !this._hasExplicitExpiration() &&\n this.maxAge() > 3600 * 24\n ) {\n headers.warning =\n (headers.warning ? `${headers.warning}, ` : '') +\n '113 - \"rfc7234 5.5.4\"';\n }\n headers.age = `${Math.round(age)}`;\n headers.date = new Date(this.now()).toUTCString();\n return headers;\n }\n\n /**\n * Returns the Date header value from the response or the current time if invalid.\n * @returns {number} Timestamp (in milliseconds) representing the Date header or response time.\n */\n date() {\n const serverDate = Date.parse(this._resHeaders.date);\n if (isFinite(serverDate)) {\n return serverDate;\n }\n return this._responseTime;\n }\n\n /**\n * Value of the Age header, in seconds, updated for the current time.\n * May be fractional.\n * @returns {number} The age in seconds.\n */\n age() {\n let age = this._ageValue();\n\n const residentTime = (this.now() - this._responseTime) / 1000;\n return age + residentTime;\n }\n\n /**\n * @returns {number} The Age header value as a number.\n */\n _ageValue() {\n return toNumberOrZero(this._resHeaders.age);\n }\n\n /**\n * Possibly outdated value of applicable max-age (or heuristic equivalent) in seconds.\n * This counts since response's `Date`.\n *\n * For an up-to-date value, see `timeToLive()`.\n *\n * Returns the maximum age (freshness lifetime) of the response in seconds.\n * @returns {number} The max-age value in seconds.\n */\n maxAge() {\n if (!this.storable() || this._rescc['no-cache']) {\n return 0;\n }\n\n // Shared responses with cookies are cacheable according to the RFC, but IMHO it'd be unwise to do so by default\n // so this implementation requires explicit opt-in via public header\n if (\n this._isShared &&\n (this._resHeaders['set-cookie'] &&\n !this._rescc.public &&\n !this._rescc.immutable)\n ) {\n return 0;\n }\n\n if (this._resHeaders.vary === '*') {\n return 0;\n }\n\n if (this._isShared) {\n if (this._rescc['proxy-revalidate']) {\n return 0;\n }\n // if a response includes the s-maxage directive, a shared cache recipient MUST ignore the Expires field.\n if (this._rescc['s-maxage']) {\n return toNumberOrZero(this._rescc['s-maxage']);\n }\n }\n\n // If a response includes a Cache-Control field with the max-age directive, a recipient MUST ignore the Expires field.\n if (this._rescc['max-age']) {\n return toNumberOrZero(this._rescc['max-age']);\n }\n\n const defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0;\n\n const serverDate = this.date();\n if (this._resHeaders.expires) {\n const expires = Date.parse(this._resHeaders.expires);\n // A cache recipient MUST interpret invalid date formats, especially the value \"0\", as representing a time in the past (i.e., \"already expired\").\n if (Number.isNaN(expires) || expires < serverDate) {\n return 0;\n }\n return Math.max(defaultMinTtl, (expires - serverDate) / 1000);\n }\n\n if (this._resHeaders['last-modified']) {\n const lastModified = Date.parse(this._resHeaders['last-modified']);\n if (isFinite(lastModified) && serverDate > lastModified) {\n return Math.max(\n defaultMinTtl,\n ((serverDate - lastModified) / 1000) * this._cacheHeuristic\n );\n }\n }\n\n return defaultMinTtl;\n }\n\n /**\n * Remaining time this cache entry may be useful for, in *milliseconds*.\n * You can use this as an expiration time for your cache storage.\n *\n * Prefer this method over `maxAge()`, because it includes other factors like `age` and `stale-while-revalidate`.\n * @returns {number} Time-to-live in milliseconds.\n */\n timeToLive() {\n const age = this.maxAge() - this.age();\n const staleIfErrorAge = age + toNumberOrZero(this._rescc['stale-if-error']);\n const staleWhileRevalidateAge = age + toNumberOrZero(this._rescc['stale-while-revalidate']);\n return Math.round(Math.max(0, age, staleIfErrorAge, staleWhileRevalidateAge) * 1000);\n }\n\n /**\n * If true, this cache entry is past its expiration date.\n * Note that stale cache may be useful sometimes, see `evaluateRequest()`.\n * @returns {boolean} `false` doesn't mean it's fresh nor usable\n */\n stale() {\n return this.maxAge() <= this.age();\n }\n\n /**\n * @returns {boolean} `true` if `stale-if-error` condition allows use of a stale response.\n */\n _useStaleIfError() {\n return this.maxAge() + toNumberOrZero(this._rescc['stale-if-error']) > this.age();\n }\n\n /** See `evaluateRequest()` for a more complete solution\n * @returns {boolean} `true` if `stale-while-revalidate` is currently allowed.\n */\n useStaleWhileRevalidate() {\n const swr = toNumberOrZero(this._rescc['stale-while-revalidate']);\n return swr > 0 && this.maxAge() + swr > this.age();\n }\n\n /**\n * Creates a `CachePolicy` instance from a serialized object.\n * @param {Object} obj - The serialized object.\n * @returns {CachePolicy} A new CachePolicy instance.\n */\n static fromObject(obj) {\n return new this(undefined, undefined, { _fromObject: obj });\n }\n\n /**\n * @param {any} obj - The serialized object.\n * @throws {Error} If already initialized or if the object is invalid.\n */\n _fromObject(obj) {\n if (this._responseTime) throw Error('Reinitialized');\n if (!obj || obj.v !== 1) throw Error('Invalid serialization');\n\n this._responseTime = obj.t;\n this._isShared = obj.sh;\n this._cacheHeuristic = obj.ch;\n this._immutableMinTtl =\n obj.imm !== undefined ? obj.imm : 24 * 3600 * 1000;\n this._ignoreCargoCult = !!obj.icc;\n this._status = obj.st;\n this._resHeaders = obj.resh;\n this._rescc = obj.rescc;\n this._method = obj.m;\n this._url = obj.u;\n this._host = obj.h;\n this._noAuthorization = obj.a;\n this._reqHeaders = obj.reqh;\n this._reqcc = obj.reqcc;\n }\n\n /**\n * Serializes the `CachePolicy` instance into a JSON-serializable object.\n * @returns {Object} The serialized object.\n */\n toObject() {\n return {\n v: 1,\n t: this._responseTime,\n sh: this._isShared,\n ch: this._cacheHeuristic,\n imm: this._immutableMinTtl,\n icc: this._ignoreCargoCult,\n st: this._status,\n resh: this._resHeaders,\n rescc: this._rescc,\n m: this._method,\n u: this._url,\n h: this._host,\n a: this._noAuthorization,\n reqh: this._reqHeaders,\n reqcc: this._reqcc,\n };\n }\n\n /**\n * Headers for sending to the origin server to revalidate stale response.\n * Allows server to return 304 to allow reuse of the previous response.\n *\n * Hop by hop headers are always stripped.\n * Revalidation headers may be added or removed, depending on request.\n * @param {HttpRequest} incomingReq - The incoming HTTP request.\n * @returns {Record<string, string>} The headers for the revalidation request.\n */\n revalidationHeaders(incomingReq) {\n this._assertRequestHasHeaders(incomingReq);\n const headers = this._copyWithoutHopByHopHeaders(incomingReq.headers);\n\n // This implementation does not understand range requests\n delete headers['if-range'];\n\n if (!this._requestMatches(incomingReq, true) || !this.storable()) {\n // revalidation allowed via HEAD\n // not for the same resource, or wasn't allowed to be cached anyway\n delete headers['if-none-match'];\n delete headers['if-modified-since'];\n return headers;\n }\n\n /* MUST send that entity-tag in any cache validation request (using If-Match or If-None-Match) if an entity-tag has been provided by the origin server. */\n if (this._resHeaders.etag) {\n headers['if-none-match'] = headers['if-none-match']\n ? `${headers['if-none-match']}, ${this._resHeaders.etag}`\n : this._resHeaders.etag;\n }\n\n // Clients MAY issue simple (non-subrange) GET requests with either weak validators or strong validators. Clients MUST NOT use weak validators in other forms of request.\n const forbidsWeakValidators =\n headers['accept-ranges'] ||\n headers['if-match'] ||\n headers['if-unmodified-since'] ||\n (this._method && this._method != 'GET');\n\n /* SHOULD send the Last-Modified value in non-subrange cache validation requests (using If-Modified-Since) if only a Last-Modified value has been provided by the origin server.\n Note: This implementation does not understand partial responses (206) */\n if (forbidsWeakValidators) {\n delete headers['if-modified-since'];\n\n if (headers['if-none-match']) {\n const etags = headers['if-none-match']\n .split(/,/)\n .filter(etag => {\n return !/^\\s*W\\//.test(etag);\n });\n if (!etags.length) {\n delete headers['if-none-match'];\n } else {\n headers['if-none-match'] = etags.join(',').trim();\n }\n }\n } else if (\n this._resHeaders['last-modified'] &&\n !headers['if-modified-since']\n ) {\n headers['if-modified-since'] = this._resHeaders['last-modified'];\n }\n\n return headers;\n }\n\n /**\n * Creates new CachePolicy with information combined from the previews response,\n * and the new revalidation response.\n *\n * Returns {policy, modified} where modified is a boolean indicating\n * whether the response body has been modified, and old cached body can't be used.\n *\n * @param {HttpRequest} request - The latest HTTP request asking for the cached entry.\n * @param {HttpResponse} response - The latest revalidation HTTP response from the origin server.\n * @returns {{policy: CachePolicy, modified: boolean, matches: boolean}} The updated policy and modification status.\n * @throws {Error} If the response headers are missing.\n */\n revalidatedPolicy(request, response) {\n this._assertRequestHasHeaders(request);\n\n if (this._useStaleIfError() && isErrorResponse(response)) {\n return {\n policy: this,\n modified: false,\n matches: true,\n };\n }\n\n if (!response || !response.headers) {\n throw Error('Response headers missing');\n }\n\n // These aren't going to be supported exactly, since one CachePolicy object\n // doesn't know about all the other cached objects.\n let matches = false;\n if (response.status !== undefined && response.status != 304) {\n matches = false;\n } else if (\n response.headers.etag &&\n !/^\\s*W\\//.test(response.headers.etag)\n ) {\n // \"All of the stored responses with the same strong validator are selected.\n // If none of the stored responses contain the same strong validator,\n // then the cache MUST NOT use the new response to update any stored responses.\"\n matches =\n this._resHeaders.etag &&\n this._resHeaders.etag.replace(/^\\s*W\\//, '') ===\n response.headers.etag;\n } else if (this._resHeaders.etag && response.headers.etag) {\n // \"If the new response contains a weak validator and that validator corresponds\n // to one of the cache's stored responses,\n // then the most recent of those matching stored responses is selected for update.\"\n matches =\n this._resHeaders.etag.replace(/^\\s*W\\//, '') ===\n response.headers.etag.replace(/^\\s*W\\//, '');\n } else if (this._resHeaders['last-modified']) {\n matches =\n this._resHeaders['last-modified'] ===\n response.headers['last-modified'];\n } else {\n // If the new response does not include any form of validator (such as in the case where\n // a client generates an If-Modified-Since request from a source other than the Last-Modified\n // response header field), and there is only one stored response, and that stored response also\n // lacks a validator, then that stored response is selected for update.\n if (\n !this._resHeaders.etag &&\n !this._resHeaders['last-modified'] &&\n !response.headers.etag &&\n !response.headers['last-modified']\n ) {\n matches = true;\n }\n }\n\n const optionsCopy = {\n shared: this._isShared,\n cacheHeuristic: this._cacheHeuristic,\n immutableMinTimeToLive: this._immutableMinTtl,\n ignoreCargoCult: this._ignoreCargoCult,\n };\n\n if (!matches) {\n return {\n policy: new this.constructor(request, response, optionsCopy),\n // Client receiving 304 without body, even if it's invalid/mismatched has no option\n // but to reuse a cached body. We don't have a good way to tell clients to do\n // error recovery in such case.\n modified: response.status != 304,\n matches: false,\n };\n }\n\n // use other header fields provided in the 304 (Not Modified) response to replace all instances\n // of the corresponding header fields in the stored response.\n const headers = {};\n for (const k in this._resHeaders) {\n headers[k] =\n k in response.headers && !excludedFromRevalidationUpdate[k]\n ? response.headers[k]\n : this._resHeaders[k];\n }\n\n const newResponse = Object.assign({}, response, {\n status: this._status,\n method: this._method,\n headers,\n });\n return {\n policy: new this.constructor(request, newResponse, optionsCopy),\n modified: false,\n matches: true,\n };\n }\n};\n", "'use strict';\nmodule.exports = object => {\n\tconst result = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tresult[key.toLowerCase()] = value;\n\t}\n\n\treturn result;\n};\n", "'use strict';\n\nconst Readable = require('stream').Readable;\nconst lowercaseKeys = require('lowercase-keys');\n\nclass Response extends Readable {\n\tconstructor(statusCode, headers, body, url) {\n\t\tif (typeof statusCode !== 'number') {\n\t\t\tthrow new TypeError('Argument `statusCode` should be a number');\n\t\t}\n\t\tif (typeof headers !== 'object') {\n\t\t\tthrow new TypeError('Argument `headers` should be an object');\n\t\t}\n\t\tif (!(body instanceof Buffer)) {\n\t\t\tthrow new TypeError('Argument `body` should be a buffer');\n\t\t}\n\t\tif (typeof url !== 'string') {\n\t\t\tthrow new TypeError('Argument `url` should be a string');\n\t\t}\n\n\t\tsuper();\n\t\tthis.statusCode = statusCode;\n\t\tthis.headers = lowercaseKeys(headers);\n\t\tthis.body = body;\n\t\tthis.url = url;\n\t}\n\n\t_read() {\n\t\tthis.push(this.body);\n\t\tthis.push(null);\n\t}\n}\n\nmodule.exports = Response;\n", "'use strict';\n\n// We define these manually to ensure they're always copied\n// even if they would move up the prototype chain\n// https://nodejs.org/api/http.html#http_class_http_incomingmessage\nconst knownProps = [\n\t'destroy',\n\t'setTimeout',\n\t'socket',\n\t'headers',\n\t'trailers',\n\t'rawHeaders',\n\t'statusCode',\n\t'httpVersion',\n\t'httpVersionMinor',\n\t'httpVersionMajor',\n\t'rawTrailers',\n\t'statusMessage'\n];\n\nmodule.exports = (fromStream, toStream) => {\n\tconst fromProps = new Set(Object.keys(fromStream).concat(knownProps));\n\n\tfor (const prop of fromProps) {\n\t\t// Don't overwrite existing properties\n\t\tif (prop in toStream) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttoStream[prop] = typeof fromStream[prop] === 'function' ? fromStream[prop].bind(fromStream) : fromStream[prop];\n\t}\n};\n", "'use strict';\n\nconst PassThrough = require('stream').PassThrough;\nconst mimicResponse = require('mimic-response');\n\nconst cloneResponse = response => {\n\tif (!(response && response.pipe)) {\n\t\tthrow new TypeError('Parameter `response` must be a response stream.');\n\t}\n\n\tconst clone = new PassThrough();\n\tmimicResponse(response, clone);\n\n\treturn response.pipe(clone);\n};\n\nmodule.exports = cloneResponse;\n", "//TODO: handle reviver/dehydrate function like normal\n//and handle indentation, like normal.\n//if anyone needs this... please send pull request.\n\nexports.stringify = function stringify (o) {\n if('undefined' == typeof o) return o\n\n if(o && Buffer.isBuffer(o))\n return JSON.stringify(':base64:' + o.toString('base64'))\n\n if(o && o.toJSON)\n o = o.toJSON()\n\n if(o && 'object' === typeof o) {\n var s = ''\n var array = Array.isArray(o)\n s = array ? '[' : '{'\n var first = true\n\n for(var k in o) {\n var ignore = 'function' == typeof o[k] || (!array && 'undefined' === typeof o[k])\n if(Object.hasOwnProperty.call(o, k) && !ignore) {\n if(!first)\n s += ','\n first = false\n if (array) {\n if(o[k] == undefined)\n s += 'null'\n else\n s += stringify(o[k])\n } else if (o[k] !== void(0)) {\n s += stringify(k) + ':' + stringify(o[k])\n }\n }\n }\n\n s += array ? ']' : '}'\n\n return s\n } else if ('string' === typeof o) {\n return JSON.stringify(/^:/.test(o) ? ':' + o : o)\n } else if ('undefined' === typeof o) {\n return 'null';\n } else\n return JSON.stringify(o)\n}\n\nexports.parse = function (s) {\n return JSON.parse(s, function (key, value) {\n if('string' === typeof value) {\n if(/^:base64:/.test(value))\n return Buffer.from(value.substring(8), 'base64')\n else\n return /^:/.test(value) ? value.substring(1) : value \n }\n return value\n })\n}\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst JSONB = require('json-buffer');\n\nconst loadStore = options => {\n\tconst adapters = {\n\t\tredis: '@keyv/redis',\n\t\trediss: '@keyv/redis',\n\t\tmongodb: '@keyv/mongo',\n\t\tmongo: '@keyv/mongo',\n\t\tsqlite: '@keyv/sqlite',\n\t\tpostgresql: '@keyv/postgres',\n\t\tpostgres: '@keyv/postgres',\n\t\tmysql: '@keyv/mysql',\n\t\tetcd: '@keyv/etcd',\n\t\toffline: '@keyv/offline',\n\t\ttiered: '@keyv/tiered',\n\t};\n\tif (options.adapter || options.uri) {\n\t\tconst adapter = options.adapter || /^[^:+]*/.exec(options.uri)[0];\n\t\treturn new (require(adapters[adapter]))(options);\n\t}\n\n\treturn new Map();\n};\n\nconst iterableAdapters = [\n\t'sqlite',\n\t'postgres',\n\t'mysql',\n\t'mongo',\n\t'redis',\n\t'tiered',\n];\n\nclass Keyv extends EventEmitter {\n\tconstructor(uri, {emitErrors = true, ...options} = {}) {\n\t\tsuper();\n\t\tthis.opts = {\n\t\t\tnamespace: 'keyv',\n\t\t\tserialize: JSONB.stringify,\n\t\t\tdeserialize: JSONB.parse,\n\t\t\t...((typeof uri === 'string') ? {uri} : uri),\n\t\t\t...options,\n\t\t};\n\n\t\tif (!this.opts.store) {\n\t\t\tconst adapterOptions = {...this.opts};\n\t\t\tthis.opts.store = loadStore(adapterOptions);\n\t\t}\n\n\t\tif (this.opts.compression) {\n\t\t\tconst compression = this.opts.compression;\n\t\t\tthis.opts.serialize = compression.serialize.bind(compression);\n\t\t\tthis.opts.deserialize = compression.deserialize.bind(compression);\n\t\t}\n\n\t\tif (typeof this.opts.store.on === 'function' && emitErrors) {\n\t\t\tthis.opts.store.on('error', error => this.emit('error', error));\n\t\t}\n\n\t\tthis.opts.store.namespace = this.opts.namespace;\n\n\t\tconst generateIterator = iterator => async function * () {\n\t\t\tfor await (const [key, raw] of typeof iterator === 'function'\n\t\t\t\t? iterator(this.opts.store.namespace)\n\t\t\t\t: iterator) {\n\t\t\t\tconst data = await this.opts.deserialize(raw);\n\t\t\t\tif (this.opts.store.namespace && !key.includes(this.opts.store.namespace)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (typeof data.expires === 'number' && Date.now() > data.expires) {\n\t\t\t\t\tthis.delete(key);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tyield [this._getKeyUnprefix(key), data.value];\n\t\t\t}\n\t\t};\n\n\t\t// Attach iterators\n\t\tif (typeof this.opts.store[Symbol.iterator] === 'function' && this.opts.store instanceof Map) {\n\t\t\tthis.iterator = generateIterator(this.opts.store);\n\t\t} else if (typeof this.opts.store.iterator === 'function' && this.opts.store.opts\n\t\t\t&& this._checkIterableAdaptar()) {\n\t\t\tthis.iterator = generateIterator(this.opts.store.iterator.bind(this.opts.store));\n\t\t}\n\t}\n\n\t_checkIterableAdaptar() {\n\t\treturn iterableAdapters.includes(this.opts.store.opts.dialect)\n\t\t\t|| iterableAdapters.findIndex(element => this.opts.store.opts.url.includes(element)) >= 0;\n\t}\n\n\t_getKeyPrefix(key) {\n\t\treturn `${this.opts.namespace}:${key}`;\n\t}\n\n\t_getKeyPrefixArray(keys) {\n\t\treturn keys.map(key => `${this.opts.namespace}:${key}`);\n\t}\n\n\t_getKeyUnprefix(key) {\n\t\treturn key\n\t\t\t.split(':')\n\t\t\t.splice(1)\n\t\t\t.join(':');\n\t}\n\n\tget(key, options) {\n\t\tconst {store} = this.opts;\n\t\tconst isArray = Array.isArray(key);\n\t\tconst keyPrefixed = isArray ? this._getKeyPrefixArray(key) : this._getKeyPrefix(key);\n\t\tif (isArray && store.getMany === undefined) {\n\t\t\tconst promises = [];\n\t\t\tfor (const key of keyPrefixed) {\n\t\t\t\tpromises.push(Promise.resolve()\n\t\t\t\t\t.then(() => store.get(key))\n\t\t\t\t\t.then(data => (typeof data === 'string') ? this.opts.deserialize(data) : (this.opts.compression ? this.opts.deserialize(data) : data))\n\t\t\t\t\t.then(data => {\n\t\t\t\t\t\tif (data === undefined || data === null) {\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof data.expires === 'number' && Date.now() > data.expires) {\n\t\t\t\t\t\t\treturn this.delete(key).then(() => undefined);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (options && options.raw) ? data : data.value;\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn Promise.allSettled(promises)\n\t\t\t\t.then(values => {\n\t\t\t\t\tconst data = [];\n\t\t\t\t\tfor (const value of values) {\n\t\t\t\t\t\tdata.push(value.value);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve()\n\t\t\t.then(() => isArray ? store.getMany(keyPrefixed) : store.get(keyPrefixed))\n\t\t\t.then(data => (typeof data === 'string') ? this.opts.deserialize(data) : (this.opts.compression ? this.opts.deserialize(data) : data))\n\t\t\t.then(data => {\n\t\t\t\tif (data === undefined || data === null) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\tif (isArray) {\n\t\t\t\t\treturn data.map((row, index) => {\n\t\t\t\t\t\tif ((typeof row === 'string')) {\n\t\t\t\t\t\t\trow = this.opts.deserialize(row);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (row === undefined || row === null) {\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof row.expires === 'number' && Date.now() > row.expires) {\n\t\t\t\t\t\t\tthis.delete(key[index]).then(() => undefined);\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (options && options.raw) ? row : row.value;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (typeof data.expires === 'number' && Date.now() > data.expires) {\n\t\t\t\t\treturn this.delete(key).then(() => undefined);\n\t\t\t\t}\n\n\t\t\t\treturn (options && options.raw) ? data : data.value;\n\t\t\t});\n\t}\n\n\tset(key, value, ttl) {\n\t\tconst keyPrefixed = this._getKeyPrefix(key);\n\t\tif (typeof ttl === 'undefined') {\n\t\t\tttl = this.opts.ttl;\n\t\t}\n\n\t\tif (ttl === 0) {\n\t\t\tttl = undefined;\n\t\t}\n\n\t\tconst {store} = this.opts;\n\n\t\treturn Promise.resolve()\n\t\t\t.then(() => {\n\t\t\t\tconst expires = (typeof ttl === 'number') ? (Date.now() + ttl) : null;\n\t\t\t\tif (typeof value === 'symbol') {\n\t\t\t\t\tthis.emit('error', 'symbol cannot be serialized');\n\t\t\t\t}\n\n\t\t\t\tvalue = {value, expires};\n\t\t\t\treturn this.opts.serialize(value);\n\t\t\t})\n\t\t\t.then(value => store.set(keyPrefixed, value, ttl))\n\t\t\t.then(() => true);\n\t}\n\n\tdelete(key) {\n\t\tconst {store} = this.opts;\n\t\tif (Array.isArray(key)) {\n\t\t\tconst keyPrefixed = this._getKeyPrefixArray(key);\n\t\t\tif (store.deleteMany === undefined) {\n\t\t\t\tconst promises = [];\n\t\t\t\tfor (const key of keyPrefixed) {\n\t\t\t\t\tpromises.push(store.delete(key));\n\t\t\t\t}\n\n\t\t\t\treturn Promise.allSettled(promises)\n\t\t\t\t\t.then(values => values.every(x => x.value === true));\n\t\t\t}\n\n\t\t\treturn Promise.resolve()\n\t\t\t\t.then(() => store.deleteMany(keyPrefixed));\n\t\t}\n\n\t\tconst keyPrefixed = this._getKeyPrefix(key);\n\t\treturn Promise.resolve()\n\t\t\t.then(() => store.delete(keyPrefixed));\n\t}\n\n\tclear() {\n\t\tconst {store} = this.opts;\n\t\treturn Promise.resolve()\n\t\t\t.then(() => store.clear());\n\t}\n\n\thas(key) {\n\t\tconst keyPrefixed = this._getKeyPrefix(key);\n\t\tconst {store} = this.opts;\n\t\treturn Promise.resolve()\n\t\t\t.then(async () => {\n\t\t\t\tif (typeof store.has === 'function') {\n\t\t\t\t\treturn store.has(keyPrefixed);\n\t\t\t\t}\n\n\t\t\t\tconst value = await store.get(keyPrefixed);\n\t\t\t\treturn value !== undefined;\n\t\t\t});\n\t}\n\n\tdisconnect() {\n\t\tconst {store} = this.opts;\n\t\tif (typeof store.disconnect === 'function') {\n\t\t\treturn store.disconnect();\n\t\t}\n\t}\n}\n\nmodule.exports = Keyv;\n", "'use strict';\n\nconst EventEmitter = require('events');\nconst urlLib = require('url');\nconst normalizeUrl = require('normalize-url');\nconst getStream = require('get-stream');\nconst CachePolicy = require('http-cache-semantics');\nconst Response = require('responselike');\nconst lowercaseKeys = require('lowercase-keys');\nconst cloneResponse = require('clone-response');\nconst Keyv = require('keyv');\n\nclass CacheableRequest {\n\tconstructor(request, cacheAdapter) {\n\t\tif (typeof request !== 'function') {\n\t\t\tthrow new TypeError('Parameter `request` must be a function');\n\t\t}\n\n\t\tthis.cache = new Keyv({\n\t\t\turi: typeof cacheAdapter === 'string' && cacheAdapter,\n\t\t\tstore: typeof cacheAdapter !== 'string' && cacheAdapter,\n\t\t\tnamespace: 'cacheable-request'\n\t\t});\n\n\t\treturn this.createCacheableRequest(request);\n\t}\n\n\tcreateCacheableRequest(request) {\n\t\treturn (opts, cb) => {\n\t\t\tlet url;\n\t\t\tif (typeof opts === 'string') {\n\t\t\t\turl = normalizeUrlObject(urlLib.parse(opts));\n\t\t\t\topts = {};\n\t\t\t} else if (opts instanceof urlLib.URL) {\n\t\t\t\turl = normalizeUrlObject(urlLib.parse(opts.toString()));\n\t\t\t\topts = {};\n\t\t\t} else {\n\t\t\t\tconst [pathname, ...searchParts] = (opts.path || '').split('?');\n\t\t\t\tconst search = searchParts.length > 0 ?\n\t\t\t\t\t`?${searchParts.join('?')}` :\n\t\t\t\t\t'';\n\t\t\t\turl = normalizeUrlObject({ ...opts, pathname, search });\n\t\t\t}\n\n\t\t\topts = {\n\t\t\t\theaders: {},\n\t\t\t\tmethod: 'GET',\n\t\t\t\tcache: true,\n\t\t\t\tstrictTtl: false,\n\t\t\t\tautomaticFailover: false,\n\t\t\t\t...opts,\n\t\t\t\t...urlObjectToRequestOptions(url)\n\t\t\t};\n\t\t\topts.headers = lowercaseKeys(opts.headers);\n\n\t\t\tconst ee = new EventEmitter();\n\t\t\tconst normalizedUrlString = normalizeUrl(\n\t\t\t\turlLib.format(url),\n\t\t\t\t{\n\t\t\t\t\tstripWWW: false,\n\t\t\t\t\tremoveTrailingSlash: false,\n\t\t\t\t\tstripAuthentication: false\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst key = `${opts.method}:${normalizedUrlString}`;\n\t\t\tlet revalidate = false;\n\t\t\tlet madeRequest = false;\n\n\t\t\tconst makeRequest = opts => {\n\t\t\t\tmadeRequest = true;\n\t\t\t\tlet requestErrored = false;\n\t\t\t\tlet requestErrorCallback;\n\n\t\t\t\tconst requestErrorPromise = new Promise(resolve => {\n\t\t\t\t\trequestErrorCallback = () => {\n\t\t\t\t\t\tif (!requestErrored) {\n\t\t\t\t\t\t\trequestErrored = true;\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\tconst handler = response => {\n\t\t\t\t\tif (revalidate && !opts.forceRefresh) {\n\t\t\t\t\t\tresponse.status = response.statusCode;\n\t\t\t\t\t\tconst revalidatedPolicy = CachePolicy.fromObject(revalidate.cachePolicy).revalidatedPolicy(opts, response);\n\t\t\t\t\t\tif (!revalidatedPolicy.modified) {\n\t\t\t\t\t\t\tconst headers = revalidatedPolicy.policy.responseHeaders();\n\t\t\t\t\t\t\tresponse = new Response(revalidate.statusCode, headers, revalidate.body, revalidate.url);\n\t\t\t\t\t\t\tresponse.cachePolicy = revalidatedPolicy.policy;\n\t\t\t\t\t\t\tresponse.fromCache = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!response.fromCache) {\n\t\t\t\t\t\tresponse.cachePolicy = new CachePolicy(opts, response, opts);\n\t\t\t\t\t\tresponse.fromCache = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet clonedResponse;\n\t\t\t\t\tif (opts.cache && response.cachePolicy.storable()) {\n\t\t\t\t\t\tclonedResponse = cloneResponse(response);\n\n\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst bodyPromise = getStream.buffer(response);\n\n\t\t\t\t\t\t\t\tawait Promise.race([\n\t\t\t\t\t\t\t\t\trequestErrorPromise,\n\t\t\t\t\t\t\t\t\tnew Promise(resolve => response.once('end', resolve))\n\t\t\t\t\t\t\t\t]);\n\n\t\t\t\t\t\t\t\tif (requestErrored) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst body = await bodyPromise;\n\n\t\t\t\t\t\t\t\tconst value = {\n\t\t\t\t\t\t\t\t\tcachePolicy: response.cachePolicy.toObject(),\n\t\t\t\t\t\t\t\t\turl: response.url,\n\t\t\t\t\t\t\t\t\tstatusCode: response.fromCache ? revalidate.statusCode : response.statusCode,\n\t\t\t\t\t\t\t\t\tbody\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tlet ttl = opts.strictTtl ? response.cachePolicy.timeToLive() : undefined;\n\t\t\t\t\t\t\t\tif (opts.maxTtl) {\n\t\t\t\t\t\t\t\t\tttl = ttl ? Math.min(ttl, opts.maxTtl) : opts.maxTtl;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tawait this.cache.set(key, value, ttl);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})();\n\t\t\t\t\t} else if (opts.cache && revalidate) {\n\t\t\t\t\t\t(async () => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait this.cache.delete(key);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tee.emit('error', new CacheableRequest.CacheError(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\tee.emit('response', clonedResponse || response);\n\t\t\t\t\tif (typeof cb === 'function') {\n\t\t\t\t\t\tcb(clonedResponse || response);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\ttry {\n\t\t\t\t\tconst req = request(opts, handler);\n\t\t\t\t\treq.once('error', requestErrorCallback);\n\t\t\t\t\treq.once('abort', requestErrorCallback);\n\t\t\t\t\tee.emit('request', req);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tee.emit('error', new CacheableRequest.RequestError(error));\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t(async () => {\n\t\t\t\tconst get = async opts => {\n\t\t\t\t\tawait Promise.resolve();\n\n\t\t\t\t\tconst cacheEntry = opts.cache ? await this.cache.get(key) : undefined;\n\t\t\t\t\tif (typeof cacheEntry === 'undefined') {\n\t\t\t\t\t\treturn makeRequest(opts);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst policy = CachePolicy.fromObject(cacheEntry.cachePolicy);\n\t\t\t\t\tif (policy.satisfiesWithoutRevalidation(opts) && !opts.forceRefresh) {\n\t\t\t\t\t\tconst headers = policy.responseHeaders();\n\t\t\t\t\t\tconst response = new Response(cacheEntry.statusCode, headers, cacheEntry.body, cacheEntry.url);\n\t\t\t\t\t\tresponse.cachePolicy = policy;\n\t\t\t\t\t\tresponse.fromCache = true;\n\n\t\t\t\t\t\tee.emit('response', response);\n\t\t\t\t\t\tif (typeof cb === 'function') {\n\t\t\t\t\t\t\tcb(response);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trevalidate = cacheEntry;\n\t\t\t\t\t\topts.headers = policy.revalidationHeaders(opts);\n\t\t\t\t\t\tmakeRequest(opts);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst errorHandler = error => ee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\tthis.cache.once('error', errorHandler);\n\t\t\t\tee.on('response', () => this.cache.removeListener('error', errorHandler));\n\n\t\t\t\ttry {\n\t\t\t\t\tawait get(opts);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (opts.automaticFailover && !madeRequest) {\n\t\t\t\t\t\tmakeRequest(opts);\n\t\t\t\t\t}\n\n\t\t\t\t\tee.emit('error', new CacheableRequest.CacheError(error));\n\t\t\t\t}\n\t\t\t})();\n\n\t\t\treturn ee;\n\t\t};\n\t}\n}\n\nfunction urlObjectToRequestOptions(url) {\n\tconst options = { ...url };\n\toptions.path = `${url.pathname || '/'}${url.search || ''}`;\n\tdelete options.pathname;\n\tdelete options.search;\n\treturn options;\n}\n\nfunction normalizeUrlObject(url) {\n\t// If url was parsed by url.parse or new URL:\n\t// - hostname will be set\n\t// - host will be hostname[:port]\n\t// - port will be set if it was explicit in the parsed string\n\t// Otherwise, url was from request options:\n\t// - hostname or host may be set\n\t// - host shall not have port encoded\n\treturn {\n\t\tprotocol: url.protocol,\n\t\tauth: url.auth,\n\t\thostname: url.hostname || url.host || 'localhost',\n\t\tport: url.port,\n\t\tpathname: url.pathname,\n\t\tsearch: url.search\n\t};\n}\n\nCacheableRequest.RequestError = class extends Error {\n\tconstructor(error) {\n\t\tsuper(error.message);\n\t\tthis.name = 'RequestError';\n\t\tObject.assign(this, error);\n\t}\n};\n\nCacheableRequest.CacheError = class extends Error {\n\tconstructor(error) {\n\t\tsuper(error.message);\n\t\tthis.name = 'CacheError';\n\t\tObject.assign(this, error);\n\t}\n};\n\nmodule.exports = CacheableRequest;\n", "'use strict';\n\n// We define these manually to ensure they're always copied\n// even if they would move up the prototype chain\n// https://nodejs.org/api/http.html#http_class_http_incomingmessage\nconst knownProperties = [\n\t'aborted',\n\t'complete',\n\t'headers',\n\t'httpVersion',\n\t'httpVersionMinor',\n\t'httpVersionMajor',\n\t'method',\n\t'rawHeaders',\n\t'rawTrailers',\n\t'setTimeout',\n\t'socket',\n\t'statusCode',\n\t'statusMessage',\n\t'trailers',\n\t'url'\n];\n\nmodule.exports = (fromStream, toStream) => {\n\tif (toStream._readableState.autoDestroy) {\n\t\tthrow new Error('The second stream must have the `autoDestroy` option set to `false`');\n\t}\n\n\tconst fromProperties = new Set(Object.keys(fromStream).concat(knownProperties));\n\n\tconst properties = {};\n\n\tfor (const property of fromProperties) {\n\t\t// Don't overwrite existing properties.\n\t\tif (property in toStream) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tproperties[property] = {\n\t\t\tget() {\n\t\t\t\tconst value = fromStream[property];\n\t\t\t\tconst isFunction = typeof value === 'function';\n\n\t\t\t\treturn isFunction ? value.bind(fromStream) : value;\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tfromStream[property] = value;\n\t\t\t},\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false\n\t\t};\n\t}\n\n\tObject.defineProperties(toStream, properties);\n\n\tfromStream.once('aborted', () => {\n\t\ttoStream.destroy();\n\n\t\ttoStream.emit('aborted');\n\t});\n\n\tfromStream.once('close', () => {\n\t\tif (fromStream.complete) {\n\t\t\tif (toStream.readable) {\n\t\t\t\ttoStream.once('end', () => {\n\t\t\t\t\ttoStream.emit('close');\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttoStream.emit('close');\n\t\t\t}\n\t\t} else {\n\t\t\ttoStream.emit('close');\n\t\t}\n\t});\n\n\treturn toStream;\n};\n", "'use strict';\nconst {Transform, PassThrough} = require('stream');\nconst zlib = require('zlib');\nconst mimicResponse = require('mimic-response');\n\nmodule.exports = response => {\n\tconst contentEncoding = (response.headers['content-encoding'] || '').toLowerCase();\n\n\tif (!['gzip', 'deflate', 'br'].includes(contentEncoding)) {\n\t\treturn response;\n\t}\n\n\t// TODO: Remove this when targeting Node.js 12.\n\tconst isBrotli = contentEncoding === 'br';\n\tif (isBrotli && typeof zlib.createBrotliDecompress !== 'function') {\n\t\tresponse.destroy(new Error('Brotli is not supported on Node.js < 12'));\n\t\treturn response;\n\t}\n\n\tlet isEmpty = true;\n\n\tconst checker = new Transform({\n\t\ttransform(data, _encoding, callback) {\n\t\t\tisEmpty = false;\n\n\t\t\tcallback(null, data);\n\t\t},\n\n\t\tflush(callback) {\n\t\t\tcallback();\n\t\t}\n\t});\n\n\tconst finalStream = new PassThrough({\n\t\tautoDestroy: false,\n\t\tdestroy(error, callback) {\n\t\t\tresponse.destroy();\n\n\t\t\tcallback(error);\n\t\t}\n\t});\n\n\tconst decompressStream = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip();\n\n\tdecompressStream.once('error', error => {\n\t\tif (isEmpty && !response.readable) {\n\t\t\tfinalStream.end();\n\t\t\treturn;\n\t\t}\n\n\t\tfinalStream.destroy(error);\n\t});\n\n\tmimicResponse(response, finalStream);\n\tresponse.pipe(checker).pipe(decompressStream).pipe(finalStream);\n\n\treturn finalStream;\n};\n", "'use strict';\n\nclass QuickLRU {\n\tconstructor(options = {}) {\n\t\tif (!(options.maxSize && options.maxSize > 0)) {\n\t\t\tthrow new TypeError('`maxSize` must be a number greater than 0');\n\t\t}\n\n\t\tthis.maxSize = options.maxSize;\n\t\tthis.onEviction = options.onEviction;\n\t\tthis.cache = new Map();\n\t\tthis.oldCache = new Map();\n\t\tthis._size = 0;\n\t}\n\n\t_set(key, value) {\n\t\tthis.cache.set(key, value);\n\t\tthis._size++;\n\n\t\tif (this._size >= this.maxSize) {\n\t\t\tthis._size = 0;\n\n\t\t\tif (typeof this.onEviction === 'function') {\n\t\t\t\tfor (const [key, value] of this.oldCache.entries()) {\n\t\t\t\t\tthis.onEviction(key, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.oldCache = this.cache;\n\t\t\tthis.cache = new Map();\n\t\t}\n\t}\n\n\tget(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\tconst value = this.oldCache.get(key);\n\t\t\tthis.oldCache.delete(key);\n\t\t\tthis._set(key, value);\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tset(key, value) {\n\t\tif (this.cache.has(key)) {\n\t\t\tthis.cache.set(key, value);\n\t\t} else {\n\t\t\tthis._set(key, value);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\thas(key) {\n\t\treturn this.cache.has(key) || this.oldCache.has(key);\n\t}\n\n\tpeek(key) {\n\t\tif (this.cache.has(key)) {\n\t\t\treturn this.cache.get(key);\n\t\t}\n\n\t\tif (this.oldCache.has(key)) {\n\t\t\treturn this.oldCache.get(key);\n\t\t}\n\t}\n\n\tdelete(key) {\n\t\tconst deleted = this.cache.delete(key);\n\t\tif (deleted) {\n\t\t\tthis._size--;\n\t\t}\n\n\t\treturn this.oldCache.delete(key) || deleted;\n\t}\n\n\tclear() {\n\t\tthis.cache.clear();\n\t\tthis.oldCache.clear();\n\t\tthis._size = 0;\n\t}\n\n\t* keys() {\n\t\tfor (const [key] of this) {\n\t\t\tyield key;\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const [, value] of this) {\n\t\t\tyield value;\n\t\t}\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tfor (const item of this.cache) {\n\t\t\tyield item;\n\t\t}\n\n\t\tfor (const item of this.oldCache) {\n\t\t\tconst [key] = item;\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\tyield item;\n\t\t\t}\n\t\t}\n\t}\n\n\tget size() {\n\t\tlet oldCacheSize = 0;\n\t\tfor (const key of this.oldCache.keys()) {\n\t\t\tif (!this.cache.has(key)) {\n\t\t\t\toldCacheSize++;\n\t\t\t}\n\t\t}\n\n\t\treturn Math.min(this._size + oldCacheSize, this.maxSize);\n\t}\n}\n\nmodule.exports = QuickLRU;\n", "'use strict';\nconst EventEmitter = require('events');\nconst tls = require('tls');\nconst http2 = require('http2');\nconst QuickLRU = require('quick-lru');\n\nconst kCurrentStreamsCount = Symbol('currentStreamsCount');\nconst kRequest = Symbol('request');\nconst kOriginSet = Symbol('cachedOriginSet');\nconst kGracefullyClosing = Symbol('gracefullyClosing');\n\nconst nameKeys = [\n\t// `http2.connect()` options\n\t'maxDeflateDynamicTableSize',\n\t'maxSessionMemory',\n\t'maxHeaderListPairs',\n\t'maxOutstandingPings',\n\t'maxReservedRemoteStreams',\n\t'maxSendHeaderBlockLength',\n\t'paddingStrategy',\n\n\t// `tls.connect()` options\n\t'localAddress',\n\t'path',\n\t'rejectUnauthorized',\n\t'minDHSize',\n\n\t// `tls.createSecureContext()` options\n\t'ca',\n\t'cert',\n\t'clientCertEngine',\n\t'ciphers',\n\t'key',\n\t'pfx',\n\t'servername',\n\t'minVersion',\n\t'maxVersion',\n\t'secureProtocol',\n\t'crl',\n\t'honorCipherOrder',\n\t'ecdhCurve',\n\t'dhparam',\n\t'secureOptions',\n\t'sessionIdContext'\n];\n\nconst getSortedIndex = (array, value, compare) => {\n\tlet low = 0;\n\tlet high = array.length;\n\n\twhile (low < high) {\n\t\tconst mid = (low + high) >>> 1;\n\n\t\t/* istanbul ignore next */\n\t\tif (compare(array[mid], value)) {\n\t\t\t// This never gets called because we use descending sort. Better to have this anyway.\n\t\t\tlow = mid + 1;\n\t\t} else {\n\t\t\thigh = mid;\n\t\t}\n\t}\n\n\treturn low;\n};\n\nconst compareSessions = (a, b) => {\n\treturn a.remoteSettings.maxConcurrentStreams > b.remoteSettings.maxConcurrentStreams;\n};\n\n// See https://tools.ietf.org/html/rfc8336\nconst closeCoveredSessions = (where, session) => {\n\t// Clients SHOULD NOT emit new requests on any connection whose Origin\n\t// Set is a proper subset of another connection's Origin Set, and they\n\t// SHOULD close it once all outstanding requests are satisfied.\n\tfor (const coveredSession of where) {\n\t\tif (\n\t\t\t// The set is a proper subset when its length is less than the other set.\n\t\t\tcoveredSession[kOriginSet].length < session[kOriginSet].length &&\n\n\t\t\t// And the other set includes all elements of the subset.\n\t\t\tcoveredSession[kOriginSet].every(origin => session[kOriginSet].includes(origin)) &&\n\n\t\t\t// Makes sure that the session can handle all requests from the covered session.\n\t\t\tcoveredSession[kCurrentStreamsCount] + session[kCurrentStreamsCount] <= session.remoteSettings.maxConcurrentStreams\n\t\t) {\n\t\t\t// This allows pending requests to finish and prevents making new requests.\n\t\t\tgracefullyClose(coveredSession);\n\t\t}\n\t}\n};\n\n// This is basically inverted `closeCoveredSessions(...)`.\nconst closeSessionIfCovered = (where, coveredSession) => {\n\tfor (const session of where) {\n\t\tif (\n\t\t\tcoveredSession[kOriginSet].length < session[kOriginSet].length &&\n\t\t\tcoveredSession[kOriginSet].every(origin => session[kOriginSet].includes(origin)) &&\n\t\t\tcoveredSession[kCurrentStreamsCount] + session[kCurrentStreamsCount] <= session.remoteSettings.maxConcurrentStreams\n\t\t) {\n\t\t\tgracefullyClose(coveredSession);\n\t\t}\n\t}\n};\n\nconst getSessions = ({agent, isFree}) => {\n\tconst result = {};\n\n\t// eslint-disable-next-line guard-for-in\n\tfor (const normalizedOptions in agent.sessions) {\n\t\tconst sessions = agent.sessions[normalizedOptions];\n\n\t\tconst filtered = sessions.filter(session => {\n\t\t\tconst result = session[Agent.kCurrentStreamsCount] < session.remoteSettings.maxConcurrentStreams;\n\n\t\t\treturn isFree ? result : !result;\n\t\t});\n\n\t\tif (filtered.length !== 0) {\n\t\t\tresult[normalizedOptions] = filtered;\n\t\t}\n\t}\n\n\treturn result;\n};\n\nconst gracefullyClose = session => {\n\tsession[kGracefullyClosing] = true;\n\n\tif (session[kCurrentStreamsCount] === 0) {\n\t\tsession.close();\n\t}\n};\n\nclass Agent extends EventEmitter {\n\tconstructor({timeout = 60000, maxSessions = Infinity, maxFreeSessions = 10, maxCachedTlsSessions = 100} = {}) {\n\t\tsuper();\n\n\t\t// A session is considered busy when its current streams count\n\t\t// is equal to or greater than the `maxConcurrentStreams` value.\n\n\t\t// A session is considered free when its current streams count\n\t\t// is less than the `maxConcurrentStreams` value.\n\n\t\t// SESSIONS[NORMALIZED_OPTIONS] = [];\n\t\tthis.sessions = {};\n\n\t\t// The queue for creating new sessions. It looks like this:\n\t\t// QUEUE[NORMALIZED_OPTIONS][NORMALIZED_ORIGIN] = ENTRY_FUNCTION\n\t\t//\n\t\t// The entry function has `listeners`, `completed` and `destroyed` properties.\n\t\t// `listeners` is an array of objects containing `resolve` and `reject` functions.\n\t\t// `completed` is a boolean. It's set to true after ENTRY_FUNCTION is executed.\n\t\t// `destroyed` is a boolean. If it's set to true, the session will be destroyed if hasn't connected yet.\n\t\tthis.queue = {};\n\n\t\t// Each session will use this timeout value.\n\t\tthis.timeout = timeout;\n\n\t\t// Max sessions in total\n\t\tthis.maxSessions = maxSessions;\n\n\t\t// Max free sessions in total\n\t\t// TODO: decreasing `maxFreeSessions` should close some sessions\n\t\tthis.maxFreeSessions = maxFreeSessions;\n\n\t\tthis._freeSessionsCount = 0;\n\t\tthis._sessionsCount = 0;\n\n\t\t// We don't support push streams by default.\n\t\tthis.settings = {\n\t\t\tenablePush: false\n\t\t};\n\n\t\t// Reusing TLS sessions increases performance.\n\t\tthis.tlsSessionCache = new QuickLRU({maxSize: maxCachedTlsSessions});\n\t}\n\n\tstatic normalizeOrigin(url, servername) {\n\t\tif (typeof url === 'string') {\n\t\t\turl = new URL(url);\n\t\t}\n\n\t\tif (servername && url.hostname !== servername) {\n\t\t\turl.hostname = servername;\n\t\t}\n\n\t\treturn url.origin;\n\t}\n\n\tnormalizeOptions(options) {\n\t\tlet normalized = '';\n\n\t\tif (options) {\n\t\t\tfor (const key of nameKeys) {\n\t\t\t\tif (options[key]) {\n\t\t\t\t\tnormalized += `:${options[key]}`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn normalized;\n\t}\n\n\t_tryToCreateNewSession(normalizedOptions, normalizedOrigin) {\n\t\tif (!(normalizedOptions in this.queue) || !(normalizedOrigin in this.queue[normalizedOptions])) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = this.queue[normalizedOptions][normalizedOrigin];\n\n\t\t// The entry function can be run only once.\n\t\t// BUG: The session may be never created when:\n\t\t// - the first condition is false AND\n\t\t// - this function is never called with the same arguments in the future.\n\t\tif (this._sessionsCount < this.maxSessions && !item.completed) {\n\t\t\titem.completed = true;\n\n\t\t\titem();\n\t\t}\n\t}\n\n\tgetSession(origin, options, listeners) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (Array.isArray(listeners)) {\n\t\t\t\tlisteners = [...listeners];\n\n\t\t\t\t// Resolve the current promise ASAP, we're just moving the listeners.\n\t\t\t\t// They will be executed at a different time.\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\tlisteners = [{resolve, reject}];\n\t\t\t}\n\n\t\t\tconst normalizedOptions = this.normalizeOptions(options);\n\t\t\tconst normalizedOrigin = Agent.normalizeOrigin(origin, options && options.servername);\n\n\t\t\tif (normalizedOrigin === undefined) {\n\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\treject(new TypeError('The `origin` argument needs to be a string or an URL object'));\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (normalizedOptions in this.sessions) {\n\t\t\t\tconst sessions = this.sessions[normalizedOptions];\n\n\t\t\t\tlet maxConcurrentStreams = -1;\n\t\t\t\tlet currentStreamsCount = -1;\n\t\t\t\tlet optimalSession;\n\n\t\t\t\t// We could just do this.sessions[normalizedOptions].find(...) but that isn't optimal.\n\t\t\t\t// Additionally, we are looking for session which has biggest current pending streams count.\n\t\t\t\tfor (const session of sessions) {\n\t\t\t\t\tconst sessionMaxConcurrentStreams = session.remoteSettings.maxConcurrentStreams;\n\n\t\t\t\t\tif (sessionMaxConcurrentStreams < maxConcurrentStreams) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (session[kOriginSet].includes(normalizedOrigin)) {\n\t\t\t\t\t\tconst sessionCurrentStreamsCount = session[kCurrentStreamsCount];\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tsessionCurrentStreamsCount >= sessionMaxConcurrentStreams ||\n\t\t\t\t\t\t\tsession[kGracefullyClosing] ||\n\t\t\t\t\t\t\t// Unfortunately the `close` event isn't called immediately,\n\t\t\t\t\t\t\t// so `session.destroyed` is `true`, but `session.closed` is `false`.\n\t\t\t\t\t\t\tsession.destroyed\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// We only need set this once.\n\t\t\t\t\t\tif (!optimalSession) {\n\t\t\t\t\t\t\tmaxConcurrentStreams = sessionMaxConcurrentStreams;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// We're looking for the session which has biggest current pending stream count,\n\t\t\t\t\t\t// in order to minimalize the amount of active sessions.\n\t\t\t\t\t\tif (sessionCurrentStreamsCount > currentStreamsCount) {\n\t\t\t\t\t\t\toptimalSession = session;\n\t\t\t\t\t\t\tcurrentStreamsCount = sessionCurrentStreamsCount;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (optimalSession) {\n\t\t\t\t\t/* istanbul ignore next: safety check */\n\t\t\t\t\tif (listeners.length !== 1) {\n\t\t\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\t\t\tconst error = new Error(\n\t\t\t\t\t\t\t\t`Expected the length of listeners to be 1, got ${listeners.length}.\\n` +\n\t\t\t\t\t\t\t\t'Please report this to https://github.com/szmarczak/http2-wrapper/'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlisteners[0].resolve(optimalSession);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (normalizedOptions in this.queue) {\n\t\t\t\tif (normalizedOrigin in this.queue[normalizedOptions]) {\n\t\t\t\t\t// There's already an item in the queue, just attach ourselves to it.\n\t\t\t\t\tthis.queue[normalizedOptions][normalizedOrigin].listeners.push(...listeners);\n\n\t\t\t\t\t// This shouldn't be executed here.\n\t\t\t\t\t// See the comment inside _tryToCreateNewSession.\n\t\t\t\t\tthis._tryToCreateNewSession(normalizedOptions, normalizedOrigin);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.queue[normalizedOptions] = {};\n\t\t\t}\n\n\t\t\t// The entry must be removed from the queue IMMEDIATELY when:\n\t\t\t// 1. the session connects successfully,\n\t\t\t// 2. an error occurs.\n\t\t\tconst removeFromQueue = () => {\n\t\t\t\t// Our entry can be replaced. We cannot remove the new one.\n\t\t\t\tif (normalizedOptions in this.queue && this.queue[normalizedOptions][normalizedOrigin] === entry) {\n\t\t\t\t\tdelete this.queue[normalizedOptions][normalizedOrigin];\n\n\t\t\t\t\tif (Object.keys(this.queue[normalizedOptions]).length === 0) {\n\t\t\t\t\t\tdelete this.queue[normalizedOptions];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// The main logic is here\n\t\t\tconst entry = () => {\n\t\t\t\tconst name = `${normalizedOrigin}:${normalizedOptions}`;\n\t\t\t\tlet receivedSettings = false;\n\n\t\t\t\ttry {\n\t\t\t\t\tconst session = http2.connect(origin, {\n\t\t\t\t\t\tcreateConnection: this.createConnection,\n\t\t\t\t\t\tsettings: this.settings,\n\t\t\t\t\t\tsession: this.tlsSessionCache.get(name),\n\t\t\t\t\t\t...options\n\t\t\t\t\t});\n\t\t\t\t\tsession[kCurrentStreamsCount] = 0;\n\t\t\t\t\tsession[kGracefullyClosing] = false;\n\n\t\t\t\t\tconst isFree = () => session[kCurrentStreamsCount] < session.remoteSettings.maxConcurrentStreams;\n\t\t\t\t\tlet wasFree = true;\n\n\t\t\t\t\tsession.socket.once('session', tlsSession => {\n\t\t\t\t\t\tthis.tlsSessionCache.set(name, tlsSession);\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.once('error', error => {\n\t\t\t\t\t\t// Listeners are empty when the session successfully connected.\n\t\t\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// The connection got broken, purge the cache.\n\t\t\t\t\t\tthis.tlsSessionCache.delete(name);\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.setTimeout(this.timeout, () => {\n\t\t\t\t\t\t// Terminates all streams owned by this session.\n\t\t\t\t\t\t// TODO: Maybe the streams should have a \"Session timed out\" error?\n\t\t\t\t\t\tsession.destroy();\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.once('close', () => {\n\t\t\t\t\t\tif (receivedSettings) {\n\t\t\t\t\t\t\t// 1. If it wasn't free then no need to decrease because\n\t\t\t\t\t\t\t// it has been decreased already in session.request().\n\t\t\t\t\t\t\t// 2. `stream.once('close')` won't increment the count\n\t\t\t\t\t\t\t// because the session is already closed.\n\t\t\t\t\t\t\tif (wasFree) {\n\t\t\t\t\t\t\t\tthis._freeSessionsCount--;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis._sessionsCount--;\n\n\t\t\t\t\t\t\t// This cannot be moved to the stream logic,\n\t\t\t\t\t\t\t// because there may be a session that hadn't made a single request.\n\t\t\t\t\t\t\tconst where = this.sessions[normalizedOptions];\n\t\t\t\t\t\t\twhere.splice(where.indexOf(session), 1);\n\n\t\t\t\t\t\t\tif (where.length === 0) {\n\t\t\t\t\t\t\t\tdelete this.sessions[normalizedOptions];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Broken connection\n\t\t\t\t\t\t\tconst error = new Error('Session closed without receiving a SETTINGS frame');\n\t\t\t\t\t\t\terror.code = 'HTTP2WRAPPER_NOSETTINGS';\n\n\t\t\t\t\t\t\tfor (const {reject} of listeners) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tremoveFromQueue();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// There may be another session awaiting.\n\t\t\t\t\t\tthis._tryToCreateNewSession(normalizedOptions, normalizedOrigin);\n\t\t\t\t\t});\n\n\t\t\t\t\t// Iterates over the queue and processes listeners.\n\t\t\t\t\tconst processListeners = () => {\n\t\t\t\t\t\tif (!(normalizedOptions in this.queue) || !isFree()) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (const origin of session[kOriginSet]) {\n\t\t\t\t\t\t\tif (origin in this.queue[normalizedOptions]) {\n\t\t\t\t\t\t\t\tconst {listeners} = this.queue[normalizedOptions][origin];\n\n\t\t\t\t\t\t\t\t// Prevents session overloading.\n\t\t\t\t\t\t\t\twhile (listeners.length !== 0 && isFree()) {\n\t\t\t\t\t\t\t\t\t// We assume `resolve(...)` calls `request(...)` *directly*,\n\t\t\t\t\t\t\t\t\t// otherwise the session will get overloaded.\n\t\t\t\t\t\t\t\t\tlisteners.shift().resolve(session);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst where = this.queue[normalizedOptions];\n\t\t\t\t\t\t\t\tif (where[origin].listeners.length === 0) {\n\t\t\t\t\t\t\t\t\tdelete where[origin];\n\n\t\t\t\t\t\t\t\t\tif (Object.keys(where).length === 0) {\n\t\t\t\t\t\t\t\t\t\tdelete this.queue[normalizedOptions];\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// We're no longer free, no point in continuing.\n\t\t\t\t\t\t\t\tif (!isFree()) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\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\t// The Origin Set cannot shrink. No need to check if it suddenly became covered by another one.\n\t\t\t\t\tsession.on('origin', () => {\n\t\t\t\t\t\tsession[kOriginSet] = session.originSet;\n\n\t\t\t\t\t\tif (!isFree()) {\n\t\t\t\t\t\t\t// The session is full.\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tprocessListeners();\n\n\t\t\t\t\t\t// Close covered sessions (if possible).\n\t\t\t\t\t\tcloseCoveredSessions(this.sessions[normalizedOptions], session);\n\t\t\t\t\t});\n\n\t\t\t\t\tsession.once('remoteSettings', () => {\n\t\t\t\t\t\t// Fix Node.js bug preventing the process from exiting\n\t\t\t\t\t\tsession.ref();\n\t\t\t\t\t\tsession.unref();\n\n\t\t\t\t\t\tthis._sessionsCount++;\n\n\t\t\t\t\t\t// The Agent could have been destroyed already.\n\t\t\t\t\t\tif (entry.destroyed) {\n\t\t\t\t\t\t\tconst error = new Error('Agent has been destroyed');\n\n\t\t\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\t\t\tlistener.reject(error);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsession.destroy();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsession[kOriginSet] = session.originSet;\n\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst where = this.sessions;\n\n\t\t\t\t\t\t\tif (normalizedOptions in where) {\n\t\t\t\t\t\t\t\tconst sessions = where[normalizedOptions];\n\t\t\t\t\t\t\t\tsessions.splice(getSortedIndex(sessions, session, compareSessions), 0, session);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twhere[normalizedOptions] = [session];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._freeSessionsCount += 1;\n\t\t\t\t\t\treceivedSettings = true;\n\n\t\t\t\t\t\tthis.emit('session', session);\n\n\t\t\t\t\t\tprocessListeners();\n\t\t\t\t\t\tremoveFromQueue();\n\n\t\t\t\t\t\t// TODO: Close last recently used (or least used?) session\n\t\t\t\t\t\tif (session[kCurrentStreamsCount] === 0 && this._freeSessionsCount > this.maxFreeSessions) {\n\t\t\t\t\t\t\tsession.close();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check if we haven't managed to execute all listeners.\n\t\t\t\t\t\tif (listeners.length !== 0) {\n\t\t\t\t\t\t\t// Request for a new session with predefined listeners.\n\t\t\t\t\t\t\tthis.getSession(normalizedOrigin, options, listeners);\n\t\t\t\t\t\t\tlisteners.length = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// `session.remoteSettings.maxConcurrentStreams` might get increased\n\t\t\t\t\t\tsession.on('remoteSettings', () => {\n\t\t\t\t\t\t\tprocessListeners();\n\n\t\t\t\t\t\t\t// In case the Origin Set changes\n\t\t\t\t\t\t\tcloseCoveredSessions(this.sessions[normalizedOptions], session);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\t// Shim `session.request()` in order to catch all streams\n\t\t\t\t\tsession[kRequest] = session.request;\n\t\t\t\t\tsession.request = (headers, streamOptions) => {\n\t\t\t\t\t\tif (session[kGracefullyClosing]) {\n\t\t\t\t\t\t\tthrow new Error('The session is gracefully closing. No new streams are allowed.');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst stream = session[kRequest](headers, streamOptions);\n\n\t\t\t\t\t\t// The process won't exit until the session is closed or all requests are gone.\n\t\t\t\t\t\tsession.ref();\n\n\t\t\t\t\t\t++session[kCurrentStreamsCount];\n\n\t\t\t\t\t\tif (session[kCurrentStreamsCount] === session.remoteSettings.maxConcurrentStreams) {\n\t\t\t\t\t\t\tthis._freeSessionsCount--;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstream.once('close', () => {\n\t\t\t\t\t\t\twasFree = isFree();\n\n\t\t\t\t\t\t\t--session[kCurrentStreamsCount];\n\n\t\t\t\t\t\t\tif (!session.destroyed && !session.closed) {\n\t\t\t\t\t\t\t\tcloseSessionIfCovered(this.sessions[normalizedOptions], session);\n\n\t\t\t\t\t\t\t\tif (isFree() && !session.closed) {\n\t\t\t\t\t\t\t\t\tif (!wasFree) {\n\t\t\t\t\t\t\t\t\t\tthis._freeSessionsCount++;\n\n\t\t\t\t\t\t\t\t\t\twasFree = true;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tconst isEmpty = session[kCurrentStreamsCount] === 0;\n\n\t\t\t\t\t\t\t\t\tif (isEmpty) {\n\t\t\t\t\t\t\t\t\t\tsession.unref();\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tisEmpty &&\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tthis._freeSessionsCount > this.maxFreeSessions ||\n\t\t\t\t\t\t\t\t\t\t\tsession[kGracefullyClosing]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tsession.close();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tcloseCoveredSessions(this.sessions[normalizedOptions], session);\n\t\t\t\t\t\t\t\t\t\tprocessListeners();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn stream;\n\t\t\t\t\t};\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\tlistener.reject(error);\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveFromQueue();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tentry.listeners = listeners;\n\t\t\tentry.completed = false;\n\t\t\tentry.destroyed = false;\n\n\t\t\tthis.queue[normalizedOptions][normalizedOrigin] = entry;\n\t\t\tthis._tryToCreateNewSession(normalizedOptions, normalizedOrigin);\n\t\t});\n\t}\n\n\trequest(origin, options, headers, streamOptions) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.getSession(origin, options, [{\n\t\t\t\treject,\n\t\t\t\tresolve: session => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresolve(session.request(headers, streamOptions));\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}]);\n\t\t});\n\t}\n\n\tcreateConnection(origin, options) {\n\t\treturn Agent.connect(origin, options);\n\t}\n\n\tstatic connect(origin, options) {\n\t\toptions.ALPNProtocols = ['h2'];\n\n\t\tconst port = origin.port || 443;\n\t\tconst host = origin.hostname || origin.host;\n\n\t\tif (typeof options.servername === 'undefined') {\n\t\t\toptions.servername = host;\n\t\t}\n\n\t\treturn tls.connect(port, host, options);\n\t}\n\n\tcloseFreeSessions() {\n\t\tfor (const sessions of Object.values(this.sessions)) {\n\t\t\tfor (const session of sessions) {\n\t\t\t\tif (session[kCurrentStreamsCount] === 0) {\n\t\t\t\t\tsession.close();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdestroy(reason) {\n\t\tfor (const sessions of Object.values(this.sessions)) {\n\t\t\tfor (const session of sessions) {\n\t\t\t\tsession.destroy(reason);\n\t\t\t}\n\t\t}\n\n\t\tfor (const entriesOfAuthority of Object.values(this.queue)) {\n\t\t\tfor (const entry of Object.values(entriesOfAuthority)) {\n\t\t\t\tentry.destroyed = true;\n\t\t\t}\n\t\t}\n\n\t\t// New requests should NOT attach to destroyed sessions\n\t\tthis.queue = {};\n\t}\n\n\tget freeSessions() {\n\t\treturn getSessions({agent: this, isFree: true});\n\t}\n\n\tget busySessions() {\n\t\treturn getSessions({agent: this, isFree: false});\n\t}\n}\n\nAgent.kCurrentStreamsCount = kCurrentStreamsCount;\nAgent.kGracefullyClosing = kGracefullyClosing;\n\nmodule.exports = {\n\tAgent,\n\tglobalAgent: new Agent()\n};\n", "'use strict';\nconst {Readable} = require('stream');\n\nclass IncomingMessage extends Readable {\n\tconstructor(socket, highWaterMark) {\n\t\tsuper({\n\t\t\thighWaterMark,\n\t\t\tautoDestroy: false\n\t\t});\n\n\t\tthis.statusCode = null;\n\t\tthis.statusMessage = '';\n\t\tthis.httpVersion = '2.0';\n\t\tthis.httpVersionMajor = 2;\n\t\tthis.httpVersionMinor = 0;\n\t\tthis.headers = {};\n\t\tthis.trailers = {};\n\t\tthis.req = null;\n\n\t\tthis.aborted = false;\n\t\tthis.complete = false;\n\t\tthis.upgrade = null;\n\n\t\tthis.rawHeaders = [];\n\t\tthis.rawTrailers = [];\n\n\t\tthis.socket = socket;\n\t\tthis.connection = socket;\n\n\t\tthis._dumped = false;\n\t}\n\n\t_destroy(error) {\n\t\tthis.req._request.destroy(error);\n\t}\n\n\tsetTimeout(ms, callback) {\n\t\tthis.req.setTimeout(ms, callback);\n\t\treturn this;\n\t}\n\n\t_dump() {\n\t\tif (!this._dumped) {\n\t\t\tthis._dumped = true;\n\n\t\t\tthis.removeAllListeners('data');\n\t\t\tthis.resume();\n\t\t}\n\t}\n\n\t_read() {\n\t\tif (this.req) {\n\t\t\tthis.req._request.resume();\n\t\t}\n\t}\n}\n\nmodule.exports = IncomingMessage;\n", "'use strict';\n/* istanbul ignore file: https://github.com/nodejs/node/blob/a91293d4d9ab403046ab5eb022332e4e3d249bd3/lib/internal/url.js#L1257 */\n\nmodule.exports = url => {\n\tconst options = {\n\t\tprotocol: url.protocol,\n\t\thostname: typeof url.hostname === 'string' && url.hostname.startsWith('[') ? url.hostname.slice(1, -1) : url.hostname,\n\t\thost: url.host,\n\t\thash: url.hash,\n\t\tsearch: url.search,\n\t\tpathname: url.pathname,\n\t\thref: url.href,\n\t\tpath: `${url.pathname || ''}${url.search || ''}`\n\t};\n\n\tif (typeof url.port === 'string' && url.port.length !== 0) {\n\t\toptions.port = Number(url.port);\n\t}\n\n\tif (url.username || url.password) {\n\t\toptions.auth = `${url.username || ''}:${url.password || ''}`;\n\t}\n\n\treturn options;\n};\n", "'use strict';\n\nmodule.exports = (from, to, events) => {\n\tfor (const event of events) {\n\t\tfrom.on(event, (...args) => to.emit(event, ...args));\n\t}\n};\n", "'use strict';\n\nmodule.exports = header => {\n\tswitch (header) {\n\t\tcase ':method':\n\t\tcase ':scheme':\n\t\tcase ':authority':\n\t\tcase ':path':\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n", "'use strict';\n/* istanbul ignore file: https://github.com/nodejs/node/blob/master/lib/internal/errors.js */\n\nconst makeError = (Base, key, getMessage) => {\n\tmodule.exports[key] = class NodeError extends Base {\n\t\tconstructor(...args) {\n\t\t\tsuper(typeof getMessage === 'string' ? getMessage : getMessage(args));\n\t\t\tthis.name = `${super.name} [${key}]`;\n\t\t\tthis.code = key;\n\t\t}\n\t};\n};\n\nmakeError(TypeError, 'ERR_INVALID_ARG_TYPE', args => {\n\tconst type = args[0].includes('.') ? 'property' : 'argument';\n\n\tlet valid = args[1];\n\tconst isManyTypes = Array.isArray(valid);\n\n\tif (isManyTypes) {\n\t\tvalid = `${valid.slice(0, -1).join(', ')} or ${valid.slice(-1)}`;\n\t}\n\n\treturn `The \"${args[0]}\" ${type} must be ${isManyTypes ? 'one of' : 'of'} type ${valid}. Received ${typeof args[2]}`;\n});\n\nmakeError(TypeError, 'ERR_INVALID_PROTOCOL', args => {\n\treturn `Protocol \"${args[0]}\" not supported. Expected \"${args[1]}\"`;\n});\n\nmakeError(Error, 'ERR_HTTP_HEADERS_SENT', args => {\n\treturn `Cannot ${args[0]} headers after they are sent to the client`;\n});\n\nmakeError(TypeError, 'ERR_INVALID_HTTP_TOKEN', args => {\n\treturn `${args[0]} must be a valid HTTP token [${args[1]}]`;\n});\n\nmakeError(TypeError, 'ERR_HTTP_INVALID_HEADER_VALUE', args => {\n\treturn `Invalid value \"${args[0]} for header \"${args[1]}\"`;\n});\n\nmakeError(TypeError, 'ERR_INVALID_CHAR', args => {\n\treturn `Invalid character in ${args[0]} [${args[1]}]`;\n});\n", "'use strict';\nconst http2 = require('http2');\nconst {Writable} = require('stream');\nconst {Agent, globalAgent} = require('./agent');\nconst IncomingMessage = require('./incoming-message');\nconst urlToOptions = require('./utils/url-to-options');\nconst proxyEvents = require('./utils/proxy-events');\nconst isRequestPseudoHeader = require('./utils/is-request-pseudo-header');\nconst {\n\tERR_INVALID_ARG_TYPE,\n\tERR_INVALID_PROTOCOL,\n\tERR_HTTP_HEADERS_SENT,\n\tERR_INVALID_HTTP_TOKEN,\n\tERR_HTTP_INVALID_HEADER_VALUE,\n\tERR_INVALID_CHAR\n} = require('./utils/errors');\n\nconst {\n\tHTTP2_HEADER_STATUS,\n\tHTTP2_HEADER_METHOD,\n\tHTTP2_HEADER_PATH,\n\tHTTP2_METHOD_CONNECT\n} = http2.constants;\n\nconst kHeaders = Symbol('headers');\nconst kOrigin = Symbol('origin');\nconst kSession = Symbol('session');\nconst kOptions = Symbol('options');\nconst kFlushedHeaders = Symbol('flushedHeaders');\nconst kJobs = Symbol('jobs');\n\nconst isValidHttpToken = /^[\\^`\\-\\w!#$%&*+.|~]+$/;\nconst isInvalidHeaderValue = /[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/;\n\nclass ClientRequest extends Writable {\n\tconstructor(input, options, callback) {\n\t\tsuper({\n\t\t\tautoDestroy: false\n\t\t});\n\n\t\tconst hasInput = typeof input === 'string' || input instanceof URL;\n\t\tif (hasInput) {\n\t\t\tinput = urlToOptions(input instanceof URL ? input : new URL(input));\n\t\t}\n\n\t\tif (typeof options === 'function' || options === undefined) {\n\t\t\t// (options, callback)\n\t\t\tcallback = options;\n\t\t\toptions = hasInput ? input : {...input};\n\t\t} else {\n\t\t\t// (input, options, callback)\n\t\t\toptions = {...input, ...options};\n\t\t}\n\n\t\tif (options.h2session) {\n\t\t\tthis[kSession] = options.h2session;\n\t\t} else if (options.agent === false) {\n\t\t\tthis.agent = new Agent({maxFreeSessions: 0});\n\t\t} else if (typeof options.agent === 'undefined' || options.agent === null) {\n\t\t\tif (typeof options.createConnection === 'function') {\n\t\t\t\t// This is a workaround - we don't have to create the session on our own.\n\t\t\t\tthis.agent = new Agent({maxFreeSessions: 0});\n\t\t\t\tthis.agent.createConnection = options.createConnection;\n\t\t\t} else {\n\t\t\t\tthis.agent = globalAgent;\n\t\t\t}\n\t\t} else if (typeof options.agent.request === 'function') {\n\t\t\tthis.agent = options.agent;\n\t\t} else {\n\t\t\tthrow new ERR_INVALID_ARG_TYPE('options.agent', ['Agent-like Object', 'undefined', 'false'], options.agent);\n\t\t}\n\n\t\tif (options.protocol && options.protocol !== 'https:') {\n\t\t\tthrow new ERR_INVALID_PROTOCOL(options.protocol, 'https:');\n\t\t}\n\n\t\tconst port = options.port || options.defaultPort || (this.agent && this.agent.defaultPort) || 443;\n\t\tconst host = options.hostname || options.host || 'localhost';\n\n\t\t// Don't enforce the origin via options. It may be changed in an Agent.\n\t\tdelete options.hostname;\n\t\tdelete options.host;\n\t\tdelete options.port;\n\n\t\tconst {timeout} = options;\n\t\toptions.timeout = undefined;\n\n\t\tthis[kHeaders] = Object.create(null);\n\t\tthis[kJobs] = [];\n\n\t\tthis.socket = null;\n\t\tthis.connection = null;\n\n\t\tthis.method = options.method || 'GET';\n\t\tthis.path = options.path;\n\n\t\tthis.res = null;\n\t\tthis.aborted = false;\n\t\tthis.reusedSocket = false;\n\n\t\tif (options.headers) {\n\t\t\tfor (const [header, value] of Object.entries(options.headers)) {\n\t\t\t\tthis.setHeader(header, value);\n\t\t\t}\n\t\t}\n\n\t\tif (options.auth && !('authorization' in this[kHeaders])) {\n\t\t\tthis[kHeaders].authorization = 'Basic ' + Buffer.from(options.auth).toString('base64');\n\t\t}\n\n\t\toptions.session = options.tlsSession;\n\t\toptions.path = options.socketPath;\n\n\t\tthis[kOptions] = options;\n\n\t\t// Clients that generate HTTP/2 requests directly SHOULD use the :authority pseudo-header field instead of the Host header field.\n\t\tif (port === 443) {\n\t\t\tthis[kOrigin] = `https://${host}`;\n\n\t\t\tif (!(':authority' in this[kHeaders])) {\n\t\t\t\tthis[kHeaders][':authority'] = host;\n\t\t\t}\n\t\t} else {\n\t\t\tthis[kOrigin] = `https://${host}:${port}`;\n\n\t\t\tif (!(':authority' in this[kHeaders])) {\n\t\t\t\tthis[kHeaders][':authority'] = `${host}:${port}`;\n\t\t\t}\n\t\t}\n\n\t\tif (timeout) {\n\t\t\tthis.setTimeout(timeout);\n\t\t}\n\n\t\tif (callback) {\n\t\t\tthis.once('response', callback);\n\t\t}\n\n\t\tthis[kFlushedHeaders] = false;\n\t}\n\n\tget method() {\n\t\treturn this[kHeaders][HTTP2_HEADER_METHOD];\n\t}\n\n\tset method(value) {\n\t\tif (value) {\n\t\t\tthis[kHeaders][HTTP2_HEADER_METHOD] = value.toUpperCase();\n\t\t}\n\t}\n\n\tget path() {\n\t\treturn this[kHeaders][HTTP2_HEADER_PATH];\n\t}\n\n\tset path(value) {\n\t\tif (value) {\n\t\t\tthis[kHeaders][HTTP2_HEADER_PATH] = value;\n\t\t}\n\t}\n\n\tget _mustNotHaveABody() {\n\t\treturn this.method === 'GET' || this.method === 'HEAD' || this.method === 'DELETE';\n\t}\n\n\t_write(chunk, encoding, callback) {\n\t\t// https://github.com/nodejs/node/blob/654df09ae0c5e17d1b52a900a545f0664d8c7627/lib/internal/http2/util.js#L148-L156\n\t\tif (this._mustNotHaveABody) {\n\t\t\tcallback(new Error('The GET, HEAD and DELETE methods must NOT have a body'));\n\t\t\t/* istanbul ignore next: Node.js 12 throws directly */\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flushHeaders();\n\n\t\tconst callWrite = () => this._request.write(chunk, encoding, callback);\n\t\tif (this._request) {\n\t\t\tcallWrite();\n\t\t} else {\n\t\t\tthis[kJobs].push(callWrite);\n\t\t}\n\t}\n\n\t_final(callback) {\n\t\tif (this.destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flushHeaders();\n\n\t\tconst callEnd = () => {\n\t\t\t// For GET, HEAD and DELETE\n\t\t\tif (this._mustNotHaveABody) {\n\t\t\t\tcallback();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._request.end(callback);\n\t\t};\n\n\t\tif (this._request) {\n\t\t\tcallEnd();\n\t\t} else {\n\t\t\tthis[kJobs].push(callEnd);\n\t\t}\n\t}\n\n\tabort() {\n\t\tif (this.res && this.res.complete) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.aborted) {\n\t\t\tprocess.nextTick(() => this.emit('abort'));\n\t\t}\n\n\t\tthis.aborted = true;\n\n\t\tthis.destroy();\n\t}\n\n\t_destroy(error, callback) {\n\t\tif (this.res) {\n\t\t\tthis.res._dump();\n\t\t}\n\n\t\tif (this._request) {\n\t\t\tthis._request.destroy();\n\t\t}\n\n\t\tcallback(error);\n\t}\n\n\tasync flushHeaders() {\n\t\tif (this[kFlushedHeaders] || this.destroyed) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis[kFlushedHeaders] = true;\n\n\t\tconst isConnectMethod = this.method === HTTP2_METHOD_CONNECT;\n\n\t\t// The real magic is here\n\t\tconst onStream = stream => {\n\t\t\tthis._request = stream;\n\n\t\t\tif (this.destroyed) {\n\t\t\t\tstream.destroy();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Forwards `timeout`, `continue`, `close` and `error` events to this instance.\n\t\t\tif (!isConnectMethod) {\n\t\t\t\tproxyEvents(stream, this, ['timeout', 'continue', 'close', 'error']);\n\t\t\t}\n\n\t\t\t// Wait for the `finish` event. We don't want to emit the `response` event\n\t\t\t// before `request.end()` is called.\n\t\t\tconst waitForEnd = fn => {\n\t\t\t\treturn (...args) => {\n\t\t\t\t\tif (!this.writable && !this.destroyed) {\n\t\t\t\t\t\tfn(...args);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.once('finish', () => {\n\t\t\t\t\t\t\tfn(...args);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t\t// This event tells we are ready to listen for the data.\n\t\t\tstream.once('response', waitForEnd((headers, flags, rawHeaders) => {\n\t\t\t\t// If we were to emit raw request stream, it would be as fast as the native approach.\n\t\t\t\t// Note that wrapping the raw stream in a Proxy instance won't improve the performance (already tested it).\n\t\t\t\tconst response = new IncomingMessage(this.socket, stream.readableHighWaterMark);\n\t\t\t\tthis.res = response;\n\n\t\t\t\tresponse.req = this;\n\t\t\t\tresponse.statusCode = headers[HTTP2_HEADER_STATUS];\n\t\t\t\tresponse.headers = headers;\n\t\t\t\tresponse.rawHeaders = rawHeaders;\n\n\t\t\t\tresponse.once('end', () => {\n\t\t\t\t\tif (this.aborted) {\n\t\t\t\t\t\tresponse.aborted = true;\n\t\t\t\t\t\tresponse.emit('aborted');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresponse.complete = true;\n\n\t\t\t\t\t\t// Has no effect, just be consistent with the Node.js behavior\n\t\t\t\t\t\tresponse.socket = null;\n\t\t\t\t\t\tresponse.connection = null;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (isConnectMethod) {\n\t\t\t\t\tresponse.upgrade = true;\n\n\t\t\t\t\t// The HTTP1 API says the socket is detached here,\n\t\t\t\t\t// but we can't do that so we pass the original HTTP2 request.\n\t\t\t\t\tif (this.emit('connect', response, stream, Buffer.alloc(0))) {\n\t\t\t\t\t\tthis.emit('close');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// No listeners attached, destroy the original request.\n\t\t\t\t\t\tstream.destroy();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Forwards data\n\t\t\t\t\tstream.on('data', chunk => {\n\t\t\t\t\t\tif (!response._dumped && !response.push(chunk)) {\n\t\t\t\t\t\t\tstream.pause();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tstream.once('end', () => {\n\t\t\t\t\t\tresponse.push(null);\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!this.emit('response', response)) {\n\t\t\t\t\t\t// No listeners attached, dump the response.\n\t\t\t\t\t\tresponse._dump();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\n\t\t\t// Emits `information` event\n\t\t\tstream.once('headers', waitForEnd(\n\t\t\t\theaders => this.emit('information', {statusCode: headers[HTTP2_HEADER_STATUS]})\n\t\t\t));\n\n\t\t\tstream.once('trailers', waitForEnd((trailers, flags, rawTrailers) => {\n\t\t\t\tconst {res} = this;\n\n\t\t\t\t// Assigns trailers to the response object.\n\t\t\t\tres.trailers = trailers;\n\t\t\t\tres.rawTrailers = rawTrailers;\n\t\t\t}));\n\n\t\t\tconst {socket} = stream.session;\n\t\t\tthis.socket = socket;\n\t\t\tthis.connection = socket;\n\n\t\t\tfor (const job of this[kJobs]) {\n\t\t\t\tjob();\n\t\t\t}\n\n\t\t\tthis.emit('socket', this.socket);\n\t\t};\n\n\t\t// Makes a HTTP2 request\n\t\tif (this[kSession]) {\n\t\t\ttry {\n\t\t\t\tonStream(this[kSession].request(this[kHeaders]));\n\t\t\t} catch (error) {\n\t\t\t\tthis.emit('error', error);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.reusedSocket = true;\n\n\t\t\ttry {\n\t\t\t\tonStream(await this.agent.request(this[kOrigin], this[kOptions], this[kHeaders]));\n\t\t\t} catch (error) {\n\t\t\t\tthis.emit('error', error);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetHeader(name) {\n\t\tif (typeof name !== 'string') {\n\t\t\tthrow new ERR_INVALID_ARG_TYPE('name', 'string', name);\n\t\t}\n\n\t\treturn this[kHeaders][name.toLowerCase()];\n\t}\n\n\tget headersSent() {\n\t\treturn this[kFlushedHeaders];\n\t}\n\n\tremoveHeader(name) {\n\t\tif (typeof name !== 'string') {\n\t\t\tthrow new ERR_INVALID_ARG_TYPE('name', 'string', name);\n\t\t}\n\n\t\tif (this.headersSent) {\n\t\t\tthrow new ERR_HTTP_HEADERS_SENT('remove');\n\t\t}\n\n\t\tdelete this[kHeaders][name.toLowerCase()];\n\t}\n\n\tsetHeader(name, value) {\n\t\tif (this.headersSent) {\n\t\t\tthrow new ERR_HTTP_HEADERS_SENT('set');\n\t\t}\n\n\t\tif (typeof name !== 'string' || (!isValidHttpToken.test(name) && !isRequestPseudoHeader(name))) {\n\t\t\tthrow new ERR_INVALID_HTTP_TOKEN('Header name', name);\n\t\t}\n\n\t\tif (typeof value === 'undefined') {\n\t\t\tthrow new ERR_HTTP_INVALID_HEADER_VALUE(value, name);\n\t\t}\n\n\t\tif (isInvalidHeaderValue.test(value)) {\n\t\t\tthrow new ERR_INVALID_CHAR('header content', name);\n\t\t}\n\n\t\tthis[kHeaders][name.toLowerCase()] = value;\n\t}\n\n\tsetNoDelay() {\n\t\t// HTTP2 sockets cannot be malformed, do nothing.\n\t}\n\n\tsetSocketKeepAlive() {\n\t\t// HTTP2 sockets cannot be malformed, do nothing.\n\t}\n\n\tsetTimeout(ms, callback) {\n\t\tconst applyTimeout = () => this._request.setTimeout(ms, callback);\n\n\t\tif (this._request) {\n\t\t\tapplyTimeout();\n\t\t} else {\n\t\t\tthis[kJobs].push(applyTimeout);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tget maxHeadersCount() {\n\t\tif (!this.destroyed && this._request) {\n\t\t\treturn this._request.session.localSettings.maxHeaderListSize;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tset maxHeadersCount(_value) {\n\t\t// Updating HTTP2 settings would affect all requests, do nothing.\n\t}\n}\n\nmodule.exports = ClientRequest;\n", "'use strict';\nconst tls = require('tls');\n\nmodule.exports = (options = {}, connect = tls.connect) => new Promise((resolve, reject) => {\n\tlet timeout = false;\n\n\tlet socket;\n\n\tconst callback = async () => {\n\t\tawait socketPromise;\n\n\t\tsocket.off('timeout', onTimeout);\n\t\tsocket.off('error', reject);\n\n\t\tif (options.resolveSocket) {\n\t\t\tresolve({alpnProtocol: socket.alpnProtocol, socket, timeout});\n\n\t\t\tif (timeout) {\n\t\t\t\tawait Promise.resolve();\n\t\t\t\tsocket.emit('timeout');\n\t\t\t}\n\t\t} else {\n\t\t\tsocket.destroy();\n\t\t\tresolve({alpnProtocol: socket.alpnProtocol, timeout});\n\t\t}\n\t};\n\n\tconst onTimeout = async () => {\n\t\ttimeout = true;\n\t\tcallback();\n\t};\n\n\tconst socketPromise = (async () => {\n\t\ttry {\n\t\t\tsocket = await connect(options, callback);\n\n\t\t\tsocket.on('error', reject);\n\t\t\tsocket.once('timeout', onTimeout);\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\t})();\n});\n", "'use strict';\nconst net = require('net');\n/* istanbul ignore file: https://github.com/nodejs/node/blob/v13.0.1/lib/_http_agent.js */\n\nmodule.exports = options => {\n\tlet servername = options.host;\n\tconst hostHeader = options.headers && options.headers.host;\n\n\tif (hostHeader) {\n\t\tif (hostHeader.startsWith('[')) {\n\t\t\tconst index = hostHeader.indexOf(']');\n\t\t\tif (index === -1) {\n\t\t\t\tservername = hostHeader;\n\t\t\t} else {\n\t\t\t\tservername = hostHeader.slice(1, -1);\n\t\t\t}\n\t\t} else {\n\t\t\tservername = hostHeader.split(':', 1)[0];\n\t\t}\n\t}\n\n\tif (net.isIP(servername)) {\n\t\treturn '';\n\t}\n\n\treturn servername;\n};\n", "'use strict';\nconst http = require('http');\nconst https = require('https');\nconst resolveALPN = require('resolve-alpn');\nconst QuickLRU = require('quick-lru');\nconst Http2ClientRequest = require('./client-request');\nconst calculateServerName = require('./utils/calculate-server-name');\nconst urlToOptions = require('./utils/url-to-options');\n\nconst cache = new QuickLRU({maxSize: 100});\nconst queue = new Map();\n\nconst installSocket = (agent, socket, options) => {\n\tsocket._httpMessage = {shouldKeepAlive: true};\n\n\tconst onFree = () => {\n\t\tagent.emit('free', socket, options);\n\t};\n\n\tsocket.on('free', onFree);\n\n\tconst onClose = () => {\n\t\tagent.removeSocket(socket, options);\n\t};\n\n\tsocket.on('close', onClose);\n\n\tconst onRemove = () => {\n\t\tagent.removeSocket(socket, options);\n\t\tsocket.off('close', onClose);\n\t\tsocket.off('free', onFree);\n\t\tsocket.off('agentRemove', onRemove);\n\t};\n\n\tsocket.on('agentRemove', onRemove);\n\n\tagent.emit('free', socket, options);\n};\n\nconst resolveProtocol = async options => {\n\tconst name = `${options.host}:${options.port}:${options.ALPNProtocols.sort()}`;\n\n\tif (!cache.has(name)) {\n\t\tif (queue.has(name)) {\n\t\t\tconst result = await queue.get(name);\n\t\t\treturn result.alpnProtocol;\n\t\t}\n\n\t\tconst {path, agent} = options;\n\t\toptions.path = options.socketPath;\n\n\t\tconst resultPromise = resolveALPN(options);\n\t\tqueue.set(name, resultPromise);\n\n\t\ttry {\n\t\t\tconst {socket, alpnProtocol} = await resultPromise;\n\t\t\tcache.set(name, alpnProtocol);\n\n\t\t\toptions.path = path;\n\n\t\t\tif (alpnProtocol === 'h2') {\n\t\t\t\t// https://github.com/nodejs/node/issues/33343\n\t\t\t\tsocket.destroy();\n\t\t\t} else {\n\t\t\t\tconst {globalAgent} = https;\n\t\t\t\tconst defaultCreateConnection = https.Agent.prototype.createConnection;\n\n\t\t\t\tif (agent) {\n\t\t\t\t\tif (agent.createConnection === defaultCreateConnection) {\n\t\t\t\t\t\tinstallSocket(agent, socket, options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsocket.destroy();\n\t\t\t\t\t}\n\t\t\t\t} else if (globalAgent.createConnection === defaultCreateConnection) {\n\t\t\t\t\tinstallSocket(globalAgent, socket, options);\n\t\t\t\t} else {\n\t\t\t\t\tsocket.destroy();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tqueue.delete(name);\n\n\t\t\treturn alpnProtocol;\n\t\t} catch (error) {\n\t\t\tqueue.delete(name);\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\treturn cache.get(name);\n};\n\nmodule.exports = async (input, options, callback) => {\n\tif (typeof input === 'string' || input instanceof URL) {\n\t\tinput = urlToOptions(new URL(input));\n\t}\n\n\tif (typeof options === 'function') {\n\t\tcallback = options;\n\t\toptions = undefined;\n\t}\n\n\toptions = {\n\t\tALPNProtocols: ['h2', 'http/1.1'],\n\t\t...input,\n\t\t...options,\n\t\tresolveSocket: true\n\t};\n\n\tif (!Array.isArray(options.ALPNProtocols) || options.ALPNProtocols.length === 0) {\n\t\tthrow new Error('The `ALPNProtocols` option must be an Array with at least one entry');\n\t}\n\n\toptions.protocol = options.protocol || 'https:';\n\tconst isHttps = options.protocol === 'https:';\n\n\toptions.host = options.hostname || options.host || 'localhost';\n\toptions.session = options.tlsSession;\n\toptions.servername = options.servername || calculateServerName(options);\n\toptions.port = options.port || (isHttps ? 443 : 80);\n\toptions._defaultAgent = isHttps ? https.globalAgent : http.globalAgent;\n\n\tconst agents = options.agent;\n\n\tif (agents) {\n\t\tif (agents.addRequest) {\n\t\t\tthrow new Error('The `options.agent` object can contain only `http`, `https` or `http2` properties');\n\t\t}\n\n\t\toptions.agent = agents[isHttps ? 'https' : 'http'];\n\t}\n\n\tif (isHttps) {\n\t\tconst protocol = await resolveProtocol(options);\n\n\t\tif (protocol === 'h2') {\n\t\t\tif (agents) {\n\t\t\t\toptions.agent = agents.http2;\n\t\t\t}\n\n\t\t\treturn new Http2ClientRequest(options, callback);\n\t\t}\n\t}\n\n\treturn http.request(options, callback);\n};\n\nmodule.exports.protocolCache = cache;\n", "'use strict';\nconst http2 = require('http2');\nconst agent = require('./agent');\nconst ClientRequest = require('./client-request');\nconst IncomingMessage = require('./incoming-message');\nconst auto = require('./auto');\n\nconst request = (url, options, callback) => {\n\treturn new ClientRequest(url, options, callback);\n};\n\nconst get = (url, options, callback) => {\n\t// eslint-disable-next-line unicorn/prevent-abbreviations\n\tconst req = new ClientRequest(url, options, callback);\n\treq.end();\n\n\treturn req;\n};\n\nmodule.exports = {\n\t...http2,\n\tClientRequest,\n\tIncomingMessage,\n\t...agent,\n\trequest,\n\tget,\n\tauto\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nexports.default = (body) => is_1.default.nodeStream(body) && is_1.default.function_(body.getBoundary);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst fs_1 = require(\"fs\");\nconst util_1 = require(\"util\");\nconst is_1 = require(\"@sindresorhus/is\");\nconst is_form_data_1 = require(\"./is-form-data\");\nconst statAsync = util_1.promisify(fs_1.stat);\nexports.default = async (body, headers) => {\n if (headers && 'content-length' in headers) {\n return Number(headers['content-length']);\n }\n if (!body) {\n return 0;\n }\n if (is_1.default.string(body)) {\n return Buffer.byteLength(body);\n }\n if (is_1.default.buffer(body)) {\n return body.length;\n }\n if (is_form_data_1.default(body)) {\n return util_1.promisify(body.getLength.bind(body))();\n }\n if (body instanceof fs_1.ReadStream) {\n const { size } = await statAsync(body.path);\n if (size === 0) {\n return undefined;\n }\n return size;\n }\n return undefined;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction default_1(from, to, events) {\n const fns = {};\n for (const event of events) {\n fns[event] = (...args) => {\n to.emit(event, ...args);\n };\n from.on(event, fns[event]);\n }\n return () => {\n for (const event of events) {\n from.off(event, fns[event]);\n }\n };\n}\nexports.default = default_1;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// When attaching listeners, it's very easy to forget about them.\n// Especially if you do error handling and set timeouts.\n// So instead of checking if it's proper to throw an error on every timeout ever,\n// use this simple tool which will remove all listeners you have attached.\nexports.default = () => {\n const handlers = [];\n return {\n once(origin, event, fn) {\n origin.once(event, fn);\n handlers.push({ origin, event, fn });\n },\n unhandleAll() {\n for (const handler of handlers) {\n const { origin, event, fn } = handler;\n origin.removeListener(event, fn);\n }\n handlers.length = 0;\n }\n };\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeoutError = void 0;\nconst net = require(\"net\");\nconst unhandle_1 = require(\"./unhandle\");\nconst reentry = Symbol('reentry');\nconst noop = () => { };\nclass TimeoutError extends Error {\n constructor(threshold, event) {\n super(`Timeout awaiting '${event}' for ${threshold}ms`);\n this.event = event;\n this.name = 'TimeoutError';\n this.code = 'ETIMEDOUT';\n }\n}\nexports.TimeoutError = TimeoutError;\nexports.default = (request, delays, options) => {\n if (reentry in request) {\n return noop;\n }\n request[reentry] = true;\n const cancelers = [];\n const { once, unhandleAll } = unhandle_1.default();\n const addTimeout = (delay, callback, event) => {\n var _a;\n const timeout = setTimeout(callback, delay, delay, event);\n (_a = timeout.unref) === null || _a === void 0 ? void 0 : _a.call(timeout);\n const cancel = () => {\n clearTimeout(timeout);\n };\n cancelers.push(cancel);\n return cancel;\n };\n const { host, hostname } = options;\n const timeoutHandler = (delay, event) => {\n request.destroy(new TimeoutError(delay, event));\n };\n const cancelTimeouts = () => {\n for (const cancel of cancelers) {\n cancel();\n }\n unhandleAll();\n };\n request.once('error', error => {\n cancelTimeouts();\n // Save original behavior\n /* istanbul ignore next */\n if (request.listenerCount('error') === 0) {\n throw error;\n }\n });\n request.once('close', cancelTimeouts);\n once(request, 'response', (response) => {\n once(response, 'end', cancelTimeouts);\n });\n if (typeof delays.request !== 'undefined') {\n addTimeout(delays.request, timeoutHandler, 'request');\n }\n if (typeof delays.socket !== 'undefined') {\n const socketTimeoutHandler = () => {\n timeoutHandler(delays.socket, 'socket');\n };\n request.setTimeout(delays.socket, socketTimeoutHandler);\n // `request.setTimeout(0)` causes a memory leak.\n // We can just remove the listener and forget about the timer - it's unreffed.\n // See https://github.com/sindresorhus/got/issues/690\n cancelers.push(() => {\n request.removeListener('timeout', socketTimeoutHandler);\n });\n }\n once(request, 'socket', (socket) => {\n var _a;\n const { socketPath } = request;\n /* istanbul ignore next: hard to test */\n if (socket.connecting) {\n const hasPath = Boolean(socketPath !== null && socketPath !== void 0 ? socketPath : net.isIP((_a = hostname !== null && hostname !== void 0 ? hostname : host) !== null && _a !== void 0 ? _a : '') !== 0);\n if (typeof delays.lookup !== 'undefined' && !hasPath && typeof socket.address().address === 'undefined') {\n const cancelTimeout = addTimeout(delays.lookup, timeoutHandler, 'lookup');\n once(socket, 'lookup', cancelTimeout);\n }\n if (typeof delays.connect !== 'undefined') {\n const timeConnect = () => addTimeout(delays.connect, timeoutHandler, 'connect');\n if (hasPath) {\n once(socket, 'connect', timeConnect());\n }\n else {\n once(socket, 'lookup', (error) => {\n if (error === null) {\n once(socket, 'connect', timeConnect());\n }\n });\n }\n }\n if (typeof delays.secureConnect !== 'undefined' && options.protocol === 'https:') {\n once(socket, 'connect', () => {\n const cancelTimeout = addTimeout(delays.secureConnect, timeoutHandler, 'secureConnect');\n once(socket, 'secureConnect', cancelTimeout);\n });\n }\n }\n if (typeof delays.send !== 'undefined') {\n const timeRequest = () => addTimeout(delays.send, timeoutHandler, 'send');\n /* istanbul ignore next: hard to test */\n if (socket.connecting) {\n once(socket, 'connect', () => {\n once(request, 'upload-complete', timeRequest());\n });\n }\n else {\n once(request, 'upload-complete', timeRequest());\n }\n }\n });\n if (typeof delays.response !== 'undefined') {\n once(request, 'upload-complete', () => {\n const cancelTimeout = addTimeout(delays.response, timeoutHandler, 'response');\n once(request, 'response', cancelTimeout);\n });\n }\n return cancelTimeouts;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nexports.default = (url) => {\n // Cast to URL\n url = url;\n const options = {\n protocol: url.protocol,\n hostname: is_1.default.string(url.hostname) && url.hostname.startsWith('[') ? url.hostname.slice(1, -1) : url.hostname,\n host: url.host,\n hash: url.hash,\n search: url.search,\n pathname: url.pathname,\n href: url.href,\n path: `${url.pathname || ''}${url.search || ''}`\n };\n if (is_1.default.string(url.port) && url.port.length > 0) {\n options.port = Number(url.port);\n }\n if (url.username || url.password) {\n options.auth = `${url.username || ''}:${url.password || ''}`;\n }\n return options;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* istanbul ignore file: deprecated */\nconst url_1 = require(\"url\");\nconst keys = [\n 'protocol',\n 'host',\n 'hostname',\n 'port',\n 'pathname',\n 'search'\n];\nexports.default = (origin, options) => {\n var _a, _b;\n if (options.path) {\n if (options.pathname) {\n throw new TypeError('Parameters `path` and `pathname` are mutually exclusive.');\n }\n if (options.search) {\n throw new TypeError('Parameters `path` and `search` are mutually exclusive.');\n }\n if (options.searchParams) {\n throw new TypeError('Parameters `path` and `searchParams` are mutually exclusive.');\n }\n }\n if (options.search && options.searchParams) {\n throw new TypeError('Parameters `search` and `searchParams` are mutually exclusive.');\n }\n if (!origin) {\n if (!options.protocol) {\n throw new TypeError('No URL protocol specified');\n }\n origin = `${options.protocol}//${(_b = (_a = options.hostname) !== null && _a !== void 0 ? _a : options.host) !== null && _b !== void 0 ? _b : ''}`;\n }\n const url = new url_1.URL(origin);\n if (options.path) {\n const searchIndex = options.path.indexOf('?');\n if (searchIndex === -1) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.slice(0, searchIndex);\n options.search = options.path.slice(searchIndex + 1);\n }\n delete options.path;\n }\n for (const key of keys) {\n if (options[key]) {\n url[key] = options[key].toString();\n }\n }\n return url;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass WeakableMap {\n constructor() {\n this.weakMap = new WeakMap();\n this.map = new Map();\n }\n set(key, value) {\n if (typeof key === 'object') {\n this.weakMap.set(key, value);\n }\n else {\n this.map.set(key, value);\n }\n }\n get(key) {\n if (typeof key === 'object') {\n return this.weakMap.get(key);\n }\n return this.map.get(key);\n }\n has(key) {\n if (typeof key === 'object') {\n return this.weakMap.has(key);\n }\n return this.map.has(key);\n }\n}\nexports.default = WeakableMap;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// TODO: Update https://github.com/sindresorhus/get-stream\nconst getBuffer = async (stream) => {\n const chunks = [];\n let length = 0;\n for await (const chunk of stream) {\n chunks.push(chunk);\n length += Buffer.byteLength(chunk);\n }\n if (Buffer.isBuffer(chunks[0])) {\n return Buffer.concat(chunks, length);\n }\n return Buffer.from(chunks.join(''));\n};\nexports.default = getBuffer;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dnsLookupIpVersionToFamily = exports.isDnsLookupIpVersion = void 0;\nconst conversionTable = {\n auto: 0,\n ipv4: 4,\n ipv6: 6\n};\nexports.isDnsLookupIpVersion = (value) => {\n return value in conversionTable;\n};\nexports.dnsLookupIpVersionToFamily = (dnsLookupIpVersion) => {\n if (exports.isDnsLookupIpVersion(dnsLookupIpVersion)) {\n return conversionTable[dnsLookupIpVersion];\n }\n throw new Error('Invalid DNS lookup IP version');\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isResponseOk = void 0;\nexports.isResponseOk = (response) => {\n const { statusCode } = response;\n const limitStatusCode = response.request.options.followRedirect ? 299 : 399;\n return (statusCode >= 200 && statusCode <= limitStatusCode) || statusCode === 304;\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst alreadyWarned = new Set();\nexports.default = (message) => {\n if (alreadyWarned.has(message)) {\n return;\n }\n alreadyWarned.add(message);\n // @ts-expect-error Missing types.\n process.emitWarning(`Got: ${message}`, {\n type: 'DeprecationWarning'\n });\n};\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nconst normalizeArguments = (options, defaults) => {\n if (is_1.default.null_(options.encoding)) {\n throw new TypeError('To get a Buffer, set `options.responseType` to `buffer` instead');\n }\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.encoding);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.resolveBodyOnly);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.methodRewriting);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.isStream);\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.responseType);\n // `options.responseType`\n if (options.responseType === undefined) {\n options.responseType = 'text';\n }\n // `options.retry`\n const { retry } = options;\n if (defaults) {\n options.retry = { ...defaults.retry };\n }\n else {\n options.retry = {\n calculateDelay: retryObject => retryObject.computedValue,\n limit: 0,\n methods: [],\n statusCodes: [],\n errorCodes: [],\n maxRetryAfter: undefined\n };\n }\n if (is_1.default.object(retry)) {\n options.retry = {\n ...options.retry,\n ...retry\n };\n options.retry.methods = [...new Set(options.retry.methods.map(method => method.toUpperCase()))];\n options.retry.statusCodes = [...new Set(options.retry.statusCodes)];\n options.retry.errorCodes = [...new Set(options.retry.errorCodes)];\n }\n else if (is_1.default.number(retry)) {\n options.retry.limit = retry;\n }\n if (is_1.default.undefined(options.retry.maxRetryAfter)) {\n options.retry.maxRetryAfter = Math.min(\n // TypeScript is not smart enough to handle `.filter(x => is.number(x))`.\n // eslint-disable-next-line unicorn/no-fn-reference-in-iterator\n ...[options.timeout.request, options.timeout.connect].filter(is_1.default.number));\n }\n // `options.pagination`\n if (is_1.default.object(options.pagination)) {\n if (defaults) {\n options.pagination = {\n ...defaults.pagination,\n ...options.pagination\n };\n }\n const { pagination } = options;\n if (!is_1.default.function_(pagination.transform)) {\n throw new Error('`options.pagination.transform` must be implemented');\n }\n if (!is_1.default.function_(pagination.shouldContinue)) {\n throw new Error('`options.pagination.shouldContinue` must be implemented');\n }\n if (!is_1.default.function_(pagination.filter)) {\n throw new TypeError('`options.pagination.filter` must be implemented');\n }\n if (!is_1.default.function_(pagination.paginate)) {\n throw new Error('`options.pagination.paginate` must be implemented');\n }\n }\n // JSON mode\n if (options.responseType === 'json' && options.headers.accept === undefined) {\n options.headers.accept = 'application/json';\n }\n return options;\n};\nexports.default = normalizeArguments;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryAfterStatusCodes = void 0;\nexports.retryAfterStatusCodes = new Set([413, 429, 503]);\nconst calculateRetryDelay = ({ attemptCount, retryOptions, error, retryAfter }) => {\n if (attemptCount > retryOptions.limit) {\n return 0;\n }\n const hasMethod = retryOptions.methods.includes(error.options.method);\n const hasErrorCode = retryOptions.errorCodes.includes(error.code);\n const hasStatusCode = error.response && retryOptions.statusCodes.includes(error.response.statusCode);\n if (!hasMethod || (!hasErrorCode && !hasStatusCode)) {\n return 0;\n }\n if (error.response) {\n if (retryAfter) {\n if (retryOptions.maxRetryAfter === undefined || retryAfter > retryOptions.maxRetryAfter) {\n return 0;\n }\n return retryAfter;\n }\n if (error.response.statusCode === 413) {\n return 0;\n }\n }\n const noise = Math.random() * 100;\n return ((2 ** (attemptCount - 1)) * 1000) + noise;\n};\nexports.default = calculateRetryDelay;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnsupportedProtocolError = exports.ReadError = exports.TimeoutError = exports.UploadError = exports.CacheError = exports.HTTPError = exports.MaxRedirectsError = exports.RequestError = exports.setNonEnumerableProperties = exports.knownHookEvents = exports.withoutBody = exports.kIsNormalizedAlready = void 0;\nconst util_1 = require(\"util\");\nconst stream_1 = require(\"stream\");\nconst fs_1 = require(\"fs\");\nconst url_1 = require(\"url\");\nconst http = require(\"http\");\nconst http_1 = require(\"http\");\nconst https = require(\"https\");\nconst http_timer_1 = require(\"@szmarczak/http-timer\");\nconst cacheable_lookup_1 = require(\"cacheable-lookup\");\nconst CacheableRequest = require(\"cacheable-request\");\nconst decompressResponse = require(\"decompress-response\");\n// @ts-expect-error Missing types\nconst http2wrapper = require(\"http2-wrapper\");\nconst lowercaseKeys = require(\"lowercase-keys\");\nconst is_1 = require(\"@sindresorhus/is\");\nconst get_body_size_1 = require(\"./utils/get-body-size\");\nconst is_form_data_1 = require(\"./utils/is-form-data\");\nconst proxy_events_1 = require(\"./utils/proxy-events\");\nconst timed_out_1 = require(\"./utils/timed-out\");\nconst url_to_options_1 = require(\"./utils/url-to-options\");\nconst options_to_url_1 = require(\"./utils/options-to-url\");\nconst weakable_map_1 = require(\"./utils/weakable-map\");\nconst get_buffer_1 = require(\"./utils/get-buffer\");\nconst dns_ip_version_1 = require(\"./utils/dns-ip-version\");\nconst is_response_ok_1 = require(\"./utils/is-response-ok\");\nconst deprecation_warning_1 = require(\"../utils/deprecation-warning\");\nconst normalize_arguments_1 = require(\"../as-promise/normalize-arguments\");\nconst calculate_retry_delay_1 = require(\"./calculate-retry-delay\");\nlet globalDnsCache;\nconst kRequest = Symbol('request');\nconst kResponse = Symbol('response');\nconst kResponseSize = Symbol('responseSize');\nconst kDownloadedSize = Symbol('downloadedSize');\nconst kBodySize = Symbol('bodySize');\nconst kUploadedSize = Symbol('uploadedSize');\nconst kServerResponsesPiped = Symbol('serverResponsesPiped');\nconst kUnproxyEvents = Symbol('unproxyEvents');\nconst kIsFromCache = Symbol('isFromCache');\nconst kCancelTimeouts = Symbol('cancelTimeouts');\nconst kStartedReading = Symbol('startedReading');\nconst kStopReading = Symbol('stopReading');\nconst kTriggerRead = Symbol('triggerRead');\nconst kBody = Symbol('body');\nconst kJobs = Symbol('jobs');\nconst kOriginalResponse = Symbol('originalResponse');\nconst kRetryTimeout = Symbol('retryTimeout');\nexports.kIsNormalizedAlready = Symbol('isNormalizedAlready');\nconst supportsBrotli = is_1.default.string(process.versions.brotli);\nexports.withoutBody = new Set(['GET', 'HEAD']);\nexports.knownHookEvents = [\n 'init',\n 'beforeRequest',\n 'beforeRedirect',\n 'beforeError',\n 'beforeRetry',\n // Promise-Only\n 'afterResponse'\n];\nfunction validateSearchParameters(searchParameters) {\n // eslint-disable-next-line guard-for-in\n for (const key in searchParameters) {\n const value = searchParameters[key];\n if (!is_1.default.string(value) && !is_1.default.number(value) && !is_1.default.boolean(value) && !is_1.default.null_(value) && !is_1.default.undefined(value)) {\n throw new TypeError(`The \\`searchParams\\` value '${String(value)}' must be a string, number, boolean or null`);\n }\n }\n}\nfunction isClientRequest(clientRequest) {\n return is_1.default.object(clientRequest) && !('statusCode' in clientRequest);\n}\nconst cacheableStore = new weakable_map_1.default();\nconst waitForOpenFile = async (file) => new Promise((resolve, reject) => {\n const onError = (error) => {\n reject(error);\n };\n // Node.js 12 has incomplete types\n if (!file.pending) {\n resolve();\n }\n file.once('error', onError);\n file.once('ready', () => {\n file.off('error', onError);\n resolve();\n });\n});\nconst redirectCodes = new Set([300, 301, 302, 303, 304, 307, 308]);\nconst nonEnumerableProperties = [\n 'context',\n 'body',\n 'json',\n 'form'\n];\nexports.setNonEnumerableProperties = (sources, to) => {\n // Non enumerable properties shall not be merged\n const properties = {};\n for (const source of sources) {\n if (!source) {\n continue;\n }\n for (const name of nonEnumerableProperties) {\n if (!(name in source)) {\n continue;\n }\n properties[name] = {\n writable: true,\n configurable: true,\n enumerable: false,\n // @ts-expect-error TS doesn't see the check above\n value: source[name]\n };\n }\n }\n Object.defineProperties(to, properties);\n};\n/**\nAn error to be thrown when a request fails.\nContains a `code` property with error class code, like `ECONNREFUSED`.\n*/\nclass RequestError extends Error {\n constructor(message, error, self) {\n var _a, _b;\n super(message);\n Error.captureStackTrace(this, this.constructor);\n this.name = 'RequestError';\n this.code = (_a = error.code) !== null && _a !== void 0 ? _a : 'ERR_GOT_REQUEST_ERROR';\n if (self instanceof Request) {\n Object.defineProperty(this, 'request', {\n enumerable: false,\n value: self\n });\n Object.defineProperty(this, 'response', {\n enumerable: false,\n value: self[kResponse]\n });\n Object.defineProperty(this, 'options', {\n // This fails because of TS 3.7.2 useDefineForClassFields\n // Ref: https://github.com/microsoft/TypeScript/issues/34972\n enumerable: false,\n value: self.options\n });\n }\n else {\n Object.defineProperty(this, 'options', {\n // This fails because of TS 3.7.2 useDefineForClassFields\n // Ref: https://github.com/microsoft/TypeScript/issues/34972\n enumerable: false,\n value: self\n });\n }\n this.timings = (_b = this.request) === null || _b === void 0 ? void 0 : _b.timings;\n // Recover the original stacktrace\n if (is_1.default.string(error.stack) && is_1.default.string(this.stack)) {\n const indexOfMessage = this.stack.indexOf(this.message) + this.message.length;\n const thisStackTrace = this.stack.slice(indexOfMessage).split('\\n').reverse();\n const errorStackTrace = error.stack.slice(error.stack.indexOf(error.message) + error.message.length).split('\\n').reverse();\n // Remove duplicated traces\n while (errorStackTrace.length !== 0 && errorStackTrace[0] === thisStackTrace[0]) {\n thisStackTrace.shift();\n }\n this.stack = `${this.stack.slice(0, indexOfMessage)}${thisStackTrace.reverse().join('\\n')}${errorStackTrace.reverse().join('\\n')}`;\n }\n }\n}\nexports.RequestError = RequestError;\n/**\nAn error to be thrown when the server redirects you more than ten times.\nIncludes a `response` property.\n*/\nclass MaxRedirectsError extends RequestError {\n constructor(request) {\n super(`Redirected ${request.options.maxRedirects} times. Aborting.`, {}, request);\n this.name = 'MaxRedirectsError';\n this.code = 'ERR_TOO_MANY_REDIRECTS';\n }\n}\nexports.MaxRedirectsError = MaxRedirectsError;\n/**\nAn error to be thrown when the server response code is not 2xx nor 3xx if `options.followRedirect` is `true`, but always except for 304.\nIncludes a `response` property.\n*/\nclass HTTPError extends RequestError {\n constructor(response) {\n super(`Response code ${response.statusCode} (${response.statusMessage})`, {}, response.request);\n this.name = 'HTTPError';\n this.code = 'ERR_NON_2XX_3XX_RESPONSE';\n }\n}\nexports.HTTPError = HTTPError;\n/**\nAn error to be thrown when a cache method fails.\nFor example, if the database goes down or there's a filesystem error.\n*/\nclass CacheError extends RequestError {\n constructor(error, request) {\n super(error.message, error, request);\n this.name = 'CacheError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_CACHE_ACCESS' : this.code;\n }\n}\nexports.CacheError = CacheError;\n/**\nAn error to be thrown when the request body is a stream and an error occurs while reading from that stream.\n*/\nclass UploadError extends RequestError {\n constructor(error, request) {\n super(error.message, error, request);\n this.name = 'UploadError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_UPLOAD' : this.code;\n }\n}\nexports.UploadError = UploadError;\n/**\nAn error to be thrown when the request is aborted due to a timeout.\nIncludes an `event` and `timings` property.\n*/\nclass TimeoutError extends RequestError {\n constructor(error, timings, request) {\n super(error.message, error, request);\n this.name = 'TimeoutError';\n this.event = error.event;\n this.timings = timings;\n }\n}\nexports.TimeoutError = TimeoutError;\n/**\nAn error to be thrown when reading from response stream fails.\n*/\nclass ReadError extends RequestError {\n constructor(error, request) {\n super(error.message, error, request);\n this.name = 'ReadError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_READING_RESPONSE_STREAM' : this.code;\n }\n}\nexports.ReadError = ReadError;\n/**\nAn error to be thrown when given an unsupported protocol.\n*/\nclass UnsupportedProtocolError extends RequestError {\n constructor(options) {\n super(`Unsupported protocol \"${options.url.protocol}\"`, {}, options);\n this.name = 'UnsupportedProtocolError';\n this.code = 'ERR_UNSUPPORTED_PROTOCOL';\n }\n}\nexports.UnsupportedProtocolError = UnsupportedProtocolError;\nconst proxiedRequestEvents = [\n 'socket',\n 'connect',\n 'continue',\n 'information',\n 'upgrade',\n 'timeout'\n];\nclass Request extends stream_1.Duplex {\n constructor(url, options = {}, defaults) {\n super({\n // This must be false, to enable throwing after destroy\n // It is used for retry logic in Promise API\n autoDestroy: false,\n // It needs to be zero because we're just proxying the data to another stream\n highWaterMark: 0\n });\n this[kDownloadedSize] = 0;\n this[kUploadedSize] = 0;\n this.requestInitialized = false;\n this[kServerResponsesPiped] = new Set();\n this.redirects = [];\n this[kStopReading] = false;\n this[kTriggerRead] = false;\n this[kJobs] = [];\n this.retryCount = 0;\n // TODO: Remove this when targeting Node.js >= 12\n this._progressCallbacks = [];\n const unlockWrite = () => this._unlockWrite();\n const lockWrite = () => this._lockWrite();\n this.on('pipe', (source) => {\n source.prependListener('data', unlockWrite);\n source.on('data', lockWrite);\n source.prependListener('end', unlockWrite);\n source.on('end', lockWrite);\n });\n this.on('unpipe', (source) => {\n source.off('data', unlockWrite);\n source.off('data', lockWrite);\n source.off('end', unlockWrite);\n source.off('end', lockWrite);\n });\n this.on('pipe', source => {\n if (source instanceof http_1.IncomingMessage) {\n this.options.headers = {\n ...source.headers,\n ...this.options.headers\n };\n }\n });\n const { json, body, form } = options;\n if (json || body || form) {\n this._lockWrite();\n }\n if (exports.kIsNormalizedAlready in options) {\n this.options = options;\n }\n else {\n try {\n // @ts-expect-error Common TypeScript bug saying that `this.constructor` is not accessible\n this.options = this.constructor.normalizeArguments(url, options, defaults);\n }\n catch (error) {\n // TODO: Move this to `_destroy()`\n if (is_1.default.nodeStream(options.body)) {\n options.body.destroy();\n }\n this.destroy(error);\n return;\n }\n }\n (async () => {\n var _a;\n try {\n if (this.options.body instanceof fs_1.ReadStream) {\n await waitForOpenFile(this.options.body);\n }\n const { url: normalizedURL } = this.options;\n if (!normalizedURL) {\n throw new TypeError('Missing `url` property');\n }\n this.requestUrl = normalizedURL.toString();\n decodeURI(this.requestUrl);\n await this._finalizeBody();\n await this._makeRequest();\n if (this.destroyed) {\n (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.destroy();\n return;\n }\n // Queued writes etc.\n for (const job of this[kJobs]) {\n job();\n }\n // Prevent memory leak\n this[kJobs].length = 0;\n this.requestInitialized = true;\n }\n catch (error) {\n if (error instanceof RequestError) {\n this._beforeError(error);\n return;\n }\n // This is a workaround for https://github.com/nodejs/node/issues/33335\n if (!this.destroyed) {\n this.destroy(error);\n }\n }\n })();\n }\n static normalizeArguments(url, options, defaults) {\n var _a, _b, _c, _d, _e;\n const rawOptions = options;\n if (is_1.default.object(url) && !is_1.default.urlInstance(url)) {\n options = { ...defaults, ...url, ...options };\n }\n else {\n if (url && options && options.url !== undefined) {\n throw new TypeError('The `url` option is mutually exclusive with the `input` argument');\n }\n options = { ...defaults, ...options };\n if (url !== undefined) {\n options.url = url;\n }\n if (is_1.default.urlInstance(options.url)) {\n options.url = new url_1.URL(options.url.toString());\n }\n }\n // TODO: Deprecate URL options in Got 12.\n // Support extend-specific options\n if (options.cache === false) {\n options.cache = undefined;\n }\n if (options.dnsCache === false) {\n options.dnsCache = undefined;\n }\n // Nice type assertions\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.method);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.headers);\n is_1.assert.any([is_1.default.string, is_1.default.urlInstance, is_1.default.undefined], options.prefixUrl);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.cookieJar);\n is_1.assert.any([is_1.default.object, is_1.default.string, is_1.default.undefined], options.searchParams);\n is_1.assert.any([is_1.default.object, is_1.default.string, is_1.default.undefined], options.cache);\n is_1.assert.any([is_1.default.object, is_1.default.number, is_1.default.undefined], options.timeout);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.context);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.hooks);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.decompress);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.ignoreInvalidCookies);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.followRedirect);\n is_1.assert.any([is_1.default.number, is_1.default.undefined], options.maxRedirects);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.throwHttpErrors);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.http2);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.allowGetBody);\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.localAddress);\n is_1.assert.any([dns_ip_version_1.isDnsLookupIpVersion, is_1.default.undefined], options.dnsLookupIpVersion);\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.https);\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.rejectUnauthorized);\n if (options.https) {\n is_1.assert.any([is_1.default.boolean, is_1.default.undefined], options.https.rejectUnauthorized);\n is_1.assert.any([is_1.default.function_, is_1.default.undefined], options.https.checkServerIdentity);\n is_1.assert.any([is_1.default.string, is_1.default.object, is_1.default.array, is_1.default.undefined], options.https.certificateAuthority);\n is_1.assert.any([is_1.default.string, is_1.default.object, is_1.default.array, is_1.default.undefined], options.https.key);\n is_1.assert.any([is_1.default.string, is_1.default.object, is_1.default.array, is_1.default.undefined], options.https.certificate);\n is_1.assert.any([is_1.default.string, is_1.default.undefined], options.https.passphrase);\n is_1.assert.any([is_1.default.string, is_1.default.buffer, is_1.default.array, is_1.default.undefined], options.https.pfx);\n }\n is_1.assert.any([is_1.default.object, is_1.default.undefined], options.cacheOptions);\n // `options.method`\n if (is_1.default.string(options.method)) {\n options.method = options.method.toUpperCase();\n }\n else {\n options.method = 'GET';\n }\n // `options.headers`\n if (options.headers === (defaults === null || defaults === void 0 ? void 0 : defaults.headers)) {\n options.headers = { ...options.headers };\n }\n else {\n options.headers = lowercaseKeys({ ...(defaults === null || defaults === void 0 ? void 0 : defaults.headers), ...options.headers });\n }\n // Disallow legacy `url.Url`\n if ('slashes' in options) {\n throw new TypeError('The legacy `url.Url` has been deprecated. Use `URL` instead.');\n }\n // `options.auth`\n if ('auth' in options) {\n throw new TypeError('Parameter `auth` is deprecated. Use `username` / `password` instead.');\n }\n // `options.searchParams`\n if ('searchParams' in options) {\n if (options.searchParams && options.searchParams !== (defaults === null || defaults === void 0 ? void 0 : defaults.searchParams)) {\n let searchParameters;\n if (is_1.default.string(options.searchParams) || (options.searchParams instanceof url_1.URLSearchParams)) {\n searchParameters = new url_1.URLSearchParams(options.searchParams);\n }\n else {\n validateSearchParameters(options.searchParams);\n searchParameters = new url_1.URLSearchParams();\n // eslint-disable-next-line guard-for-in\n for (const key in options.searchParams) {\n const value = options.searchParams[key];\n if (value === null) {\n searchParameters.append(key, '');\n }\n else if (value !== undefined) {\n searchParameters.append(key, value);\n }\n }\n }\n // `normalizeArguments()` is also used to merge options\n (_a = defaults === null || defaults === void 0 ? void 0 : defaults.searchParams) === null || _a === void 0 ? void 0 : _a.forEach((value, key) => {\n // Only use default if one isn't already defined\n if (!searchParameters.has(key)) {\n searchParameters.append(key, value);\n }\n });\n options.searchParams = searchParameters;\n }\n }\n // `options.username` & `options.password`\n options.username = (_b = options.username) !== null && _b !== void 0 ? _b : '';\n options.password = (_c = options.password) !== null && _c !== void 0 ? _c : '';\n // `options.prefixUrl` & `options.url`\n if (is_1.default.undefined(options.prefixUrl)) {\n options.prefixUrl = (_d = defaults === null || defaults === void 0 ? void 0 : defaults.prefixUrl) !== null && _d !== void 0 ? _d : '';\n }\n else {\n options.prefixUrl = options.prefixUrl.toString();\n if (options.prefixUrl !== '' && !options.prefixUrl.endsWith('/')) {\n options.prefixUrl += '/';\n }\n }\n if (is_1.default.string(options.url)) {\n if (options.url.startsWith('/')) {\n throw new Error('`input` must not start with a slash when using `prefixUrl`');\n }\n options.url = options_to_url_1.default(options.prefixUrl + options.url, options);\n }\n else if ((is_1.default.undefined(options.url) && options.prefixUrl !== '') || options.protocol) {\n options.url = options_to_url_1.default(options.prefixUrl, options);\n }\n if (options.url) {\n if ('port' in options) {\n delete options.port;\n }\n // Make it possible to change `options.prefixUrl`\n let { prefixUrl } = options;\n Object.defineProperty(options, 'prefixUrl', {\n set: (value) => {\n const url = options.url;\n if (!url.href.startsWith(value)) {\n throw new Error(`Cannot change \\`prefixUrl\\` from ${prefixUrl} to ${value}: ${url.href}`);\n }\n options.url = new url_1.URL(value + url.href.slice(prefixUrl.length));\n prefixUrl = value;\n },\n get: () => prefixUrl\n });\n // Support UNIX sockets\n let { protocol } = options.url;\n if (protocol === 'unix:') {\n protocol = 'http:';\n options.url = new url_1.URL(`http://unix${options.url.pathname}${options.url.search}`);\n }\n // Set search params\n if (options.searchParams) {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n options.url.search = options.searchParams.toString();\n }\n // Protocol check\n if (protocol !== 'http:' && protocol !== 'https:') {\n throw new UnsupportedProtocolError(options);\n }\n // Update `username`\n if (options.username === '') {\n options.username = options.url.username;\n }\n else {\n options.url.username = options.username;\n }\n // Update `password`\n if (options.password === '') {\n options.password = options.url.password;\n }\n else {\n options.url.password = options.password;\n }\n }\n // `options.cookieJar`\n const { cookieJar } = options;\n if (cookieJar) {\n let { setCookie, getCookieString } = cookieJar;\n is_1.assert.function_(setCookie);\n is_1.assert.function_(getCookieString);\n /* istanbul ignore next: Horrible `tough-cookie` v3 check */\n if (setCookie.length === 4 && getCookieString.length === 0) {\n setCookie = util_1.promisify(setCookie.bind(options.cookieJar));\n getCookieString = util_1.promisify(getCookieString.bind(options.cookieJar));\n options.cookieJar = {\n setCookie,\n getCookieString: getCookieString\n };\n }\n }\n // `options.cache`\n const { cache } = options;\n if (cache) {\n if (!cacheableStore.has(cache)) {\n cacheableStore.set(cache, new CacheableRequest(((requestOptions, handler) => {\n const result = requestOptions[kRequest](requestOptions, handler);\n // TODO: remove this when `cacheable-request` supports async request functions.\n if (is_1.default.promise(result)) {\n // @ts-expect-error\n // We only need to implement the error handler in order to support HTTP2 caching.\n // The result will be a promise anyway.\n result.once = (event, handler) => {\n if (event === 'error') {\n result.catch(handler);\n }\n else if (event === 'abort') {\n // The empty catch is needed here in case when\n // it rejects before it's `await`ed in `_makeRequest`.\n (async () => {\n try {\n const request = (await result);\n request.once('abort', handler);\n }\n catch (_a) { }\n })();\n }\n else {\n /* istanbul ignore next: safety check */\n throw new Error(`Unknown HTTP2 promise event: ${event}`);\n }\n return result;\n };\n }\n return result;\n }), cache));\n }\n }\n // `options.cacheOptions`\n options.cacheOptions = { ...options.cacheOptions };\n // `options.dnsCache`\n if (options.dnsCache === true) {\n if (!globalDnsCache) {\n globalDnsCache = new cacheable_lookup_1.default();\n }\n options.dnsCache = globalDnsCache;\n }\n else if (!is_1.default.undefined(options.dnsCache) && !options.dnsCache.lookup) {\n throw new TypeError(`Parameter \\`dnsCache\\` must be a CacheableLookup instance or a boolean, got ${is_1.default(options.dnsCache)}`);\n }\n // `options.timeout`\n if (is_1.default.number(options.timeout)) {\n options.timeout = { request: options.timeout };\n }\n else if (defaults && options.timeout !== defaults.timeout) {\n options.timeout = {\n ...defaults.timeout,\n ...options.timeout\n };\n }\n else {\n options.timeout = { ...options.timeout };\n }\n // `options.context`\n if (!options.context) {\n options.context = {};\n }\n // `options.hooks`\n const areHooksDefault = options.hooks === (defaults === null || defaults === void 0 ? void 0 : defaults.hooks);\n options.hooks = { ...options.hooks };\n for (const event of exports.knownHookEvents) {\n if (event in options.hooks) {\n if (is_1.default.array(options.hooks[event])) {\n // See https://github.com/microsoft/TypeScript/issues/31445#issuecomment-576929044\n options.hooks[event] = [...options.hooks[event]];\n }\n else {\n throw new TypeError(`Parameter \\`${event}\\` must be an Array, got ${is_1.default(options.hooks[event])}`);\n }\n }\n else {\n options.hooks[event] = [];\n }\n }\n if (defaults && !areHooksDefault) {\n for (const event of exports.knownHookEvents) {\n const defaultHooks = defaults.hooks[event];\n if (defaultHooks.length > 0) {\n // See https://github.com/microsoft/TypeScript/issues/31445#issuecomment-576929044\n options.hooks[event] = [\n ...defaults.hooks[event],\n ...options.hooks[event]\n ];\n }\n }\n }\n // DNS options\n if ('family' in options) {\n deprecation_warning_1.default('\"options.family\" was never documented, please use \"options.dnsLookupIpVersion\"');\n }\n // HTTPS options\n if (defaults === null || defaults === void 0 ? void 0 : defaults.https) {\n options.https = { ...defaults.https, ...options.https };\n }\n if ('rejectUnauthorized' in options) {\n deprecation_warning_1.default('\"options.rejectUnauthorized\" is now deprecated, please use \"options.https.rejectUnauthorized\"');\n }\n if ('checkServerIdentity' in options) {\n deprecation_warning_1.default('\"options.checkServerIdentity\" was never documented, please use \"options.https.checkServerIdentity\"');\n }\n if ('ca' in options) {\n deprecation_warning_1.default('\"options.ca\" was never documented, please use \"options.https.certificateAuthority\"');\n }\n if ('key' in options) {\n deprecation_warning_1.default('\"options.key\" was never documented, please use \"options.https.key\"');\n }\n if ('cert' in options) {\n deprecation_warning_1.default('\"options.cert\" was never documented, please use \"options.https.certificate\"');\n }\n if ('passphrase' in options) {\n deprecation_warning_1.default('\"options.passphrase\" was never documented, please use \"options.https.passphrase\"');\n }\n if ('pfx' in options) {\n deprecation_warning_1.default('\"options.pfx\" was never documented, please use \"options.https.pfx\"');\n }\n // Other options\n if ('followRedirects' in options) {\n throw new TypeError('The `followRedirects` option does not exist. Use `followRedirect` instead.');\n }\n if (options.agent) {\n for (const key in options.agent) {\n if (key !== 'http' && key !== 'https' && key !== 'http2') {\n throw new TypeError(`Expected the \\`options.agent\\` properties to be \\`http\\`, \\`https\\` or \\`http2\\`, got \\`${key}\\``);\n }\n }\n }\n options.maxRedirects = (_e = options.maxRedirects) !== null && _e !== void 0 ? _e : 0;\n // Set non-enumerable properties\n exports.setNonEnumerableProperties([defaults, rawOptions], options);\n return normalize_arguments_1.default(options, defaults);\n }\n _lockWrite() {\n const onLockedWrite = () => {\n throw new TypeError('The payload has been already provided');\n };\n this.write = onLockedWrite;\n this.end = onLockedWrite;\n }\n _unlockWrite() {\n this.write = super.write;\n this.end = super.end;\n }\n async _finalizeBody() {\n const { options } = this;\n const { headers } = options;\n const isForm = !is_1.default.undefined(options.form);\n const isJSON = !is_1.default.undefined(options.json);\n const isBody = !is_1.default.undefined(options.body);\n const hasPayload = isForm || isJSON || isBody;\n const cannotHaveBody = exports.withoutBody.has(options.method) && !(options.method === 'GET' && options.allowGetBody);\n this._cannotHaveBody = cannotHaveBody;\n if (hasPayload) {\n if (cannotHaveBody) {\n throw new TypeError(`The \\`${options.method}\\` method cannot be used with a body`);\n }\n if ([isBody, isForm, isJSON].filter(isTrue => isTrue).length > 1) {\n throw new TypeError('The `body`, `json` and `form` options are mutually exclusive');\n }\n if (isBody &&\n !(options.body instanceof stream_1.Readable) &&\n !is_1.default.string(options.body) &&\n !is_1.default.buffer(options.body) &&\n !is_form_data_1.default(options.body)) {\n throw new TypeError('The `body` option must be a stream.Readable, string or Buffer');\n }\n if (isForm && !is_1.default.object(options.form)) {\n throw new TypeError('The `form` option must be an Object');\n }\n {\n // Serialize body\n const noContentType = !is_1.default.string(headers['content-type']);\n if (isBody) {\n // Special case for https://github.com/form-data/form-data\n if (is_form_data_1.default(options.body) && noContentType) {\n headers['content-type'] = `multipart/form-data; boundary=${options.body.getBoundary()}`;\n }\n this[kBody] = options.body;\n }\n else if (isForm) {\n if (noContentType) {\n headers['content-type'] = 'application/x-www-form-urlencoded';\n }\n this[kBody] = (new url_1.URLSearchParams(options.form)).toString();\n }\n else {\n if (noContentType) {\n headers['content-type'] = 'application/json';\n }\n this[kBody] = options.stringifyJson(options.json);\n }\n const uploadBodySize = await get_body_size_1.default(this[kBody], options.headers);\n // See https://tools.ietf.org/html/rfc7230#section-3.3.2\n // A user agent SHOULD send a Content-Length in a request message when\n // no Transfer-Encoding is sent and the request method defines a meaning\n // for an enclosed payload body. For example, a Content-Length header\n // field is normally sent in a POST request even when the value is 0\n // (indicating an empty payload body). A user agent SHOULD NOT send a\n // Content-Length header field when the request message does not contain\n // a payload body and the method semantics do not anticipate such a\n // body.\n if (is_1.default.undefined(headers['content-length']) && is_1.default.undefined(headers['transfer-encoding'])) {\n if (!cannotHaveBody && !is_1.default.undefined(uploadBodySize)) {\n headers['content-length'] = String(uploadBodySize);\n }\n }\n }\n }\n else if (cannotHaveBody) {\n this._lockWrite();\n }\n else {\n this._unlockWrite();\n }\n this[kBodySize] = Number(headers['content-length']) || undefined;\n }\n async _onResponseBase(response) {\n const { options } = this;\n const { url } = options;\n this[kOriginalResponse] = response;\n if (options.decompress) {\n response = decompressResponse(response);\n }\n const statusCode = response.statusCode;\n const typedResponse = response;\n typedResponse.statusMessage = typedResponse.statusMessage ? typedResponse.statusMessage : http.STATUS_CODES[statusCode];\n typedResponse.url = options.url.toString();\n typedResponse.requestUrl = this.requestUrl;\n typedResponse.redirectUrls = this.redirects;\n typedResponse.request = this;\n typedResponse.isFromCache = response.fromCache || false;\n typedResponse.ip = this.ip;\n typedResponse.retryCount = this.retryCount;\n this[kIsFromCache] = typedResponse.isFromCache;\n this[kResponseSize] = Number(response.headers['content-length']) || undefined;\n this[kResponse] = response;\n response.once('end', () => {\n this[kResponseSize] = this[kDownloadedSize];\n this.emit('downloadProgress', this.downloadProgress);\n });\n response.once('error', (error) => {\n // Force clean-up, because some packages don't do this.\n // TODO: Fix decompress-response\n response.destroy();\n this._beforeError(new ReadError(error, this));\n });\n response.once('aborted', () => {\n this._beforeError(new ReadError({\n name: 'Error',\n message: 'The server aborted pending request',\n code: 'ECONNRESET'\n }, this));\n });\n this.emit('downloadProgress', this.downloadProgress);\n const rawCookies = response.headers['set-cookie'];\n if (is_1.default.object(options.cookieJar) && rawCookies) {\n let promises = rawCookies.map(async (rawCookie) => options.cookieJar.setCookie(rawCookie, url.toString()));\n if (options.ignoreInvalidCookies) {\n promises = promises.map(async (p) => p.catch(() => { }));\n }\n try {\n await Promise.all(promises);\n }\n catch (error) {\n this._beforeError(error);\n return;\n }\n }\n if (options.followRedirect && response.headers.location && redirectCodes.has(statusCode)) {\n // We're being redirected, we don't care about the response.\n // It'd be best to abort the request, but we can't because\n // we would have to sacrifice the TCP connection. We don't want that.\n response.resume();\n if (this[kRequest]) {\n this[kCancelTimeouts]();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this[kRequest];\n this[kUnproxyEvents]();\n }\n const shouldBeGet = statusCode === 303 && options.method !== 'GET' && options.method !== 'HEAD';\n if (shouldBeGet || !options.methodRewriting) {\n // Server responded with \"see other\", indicating that the resource exists at another location,\n // and the client should request it from that location via GET or HEAD.\n options.method = 'GET';\n if ('body' in options) {\n delete options.body;\n }\n if ('json' in options) {\n delete options.json;\n }\n if ('form' in options) {\n delete options.form;\n }\n this[kBody] = undefined;\n delete options.headers['content-length'];\n }\n if (this.redirects.length >= options.maxRedirects) {\n this._beforeError(new MaxRedirectsError(this));\n return;\n }\n try {\n // Do not remove. See https://github.com/sindresorhus/got/pull/214\n const redirectBuffer = Buffer.from(response.headers.location, 'binary').toString();\n // Handles invalid URLs. See https://github.com/sindresorhus/got/issues/604\n const redirectUrl = new url_1.URL(redirectBuffer, url);\n const redirectString = redirectUrl.toString();\n decodeURI(redirectString);\n // eslint-disable-next-line no-inner-declarations\n function isUnixSocketURL(url) {\n return url.protocol === 'unix:' || url.hostname === 'unix';\n }\n if (!isUnixSocketURL(url) && isUnixSocketURL(redirectUrl)) {\n this._beforeError(new RequestError('Cannot redirect to UNIX socket', {}, this));\n return;\n }\n // Redirecting to a different site, clear sensitive data.\n if (redirectUrl.hostname !== url.hostname || redirectUrl.port !== url.port) {\n if ('host' in options.headers) {\n delete options.headers.host;\n }\n if ('cookie' in options.headers) {\n delete options.headers.cookie;\n }\n if ('authorization' in options.headers) {\n delete options.headers.authorization;\n }\n if (options.username || options.password) {\n options.username = '';\n options.password = '';\n }\n }\n else {\n redirectUrl.username = options.username;\n redirectUrl.password = options.password;\n }\n this.redirects.push(redirectString);\n options.url = redirectUrl;\n for (const hook of options.hooks.beforeRedirect) {\n // eslint-disable-next-line no-await-in-loop\n await hook(options, typedResponse);\n }\n this.emit('redirect', typedResponse, options);\n await this._makeRequest();\n }\n catch (error) {\n this._beforeError(error);\n return;\n }\n return;\n }\n if (options.isStream && options.throwHttpErrors && !is_response_ok_1.isResponseOk(typedResponse)) {\n this._beforeError(new HTTPError(typedResponse));\n return;\n }\n response.on('readable', () => {\n if (this[kTriggerRead]) {\n this._read();\n }\n });\n this.on('resume', () => {\n response.resume();\n });\n this.on('pause', () => {\n response.pause();\n });\n response.once('end', () => {\n this.push(null);\n });\n this.emit('response', response);\n for (const destination of this[kServerResponsesPiped]) {\n if (destination.headersSent) {\n continue;\n }\n // eslint-disable-next-line guard-for-in\n for (const key in response.headers) {\n const isAllowed = options.decompress ? key !== 'content-encoding' : true;\n const value = response.headers[key];\n if (isAllowed) {\n destination.setHeader(key, value);\n }\n }\n destination.statusCode = statusCode;\n }\n }\n async _onResponse(response) {\n try {\n await this._onResponseBase(response);\n }\n catch (error) {\n /* istanbul ignore next: better safe than sorry */\n this._beforeError(error);\n }\n }\n _onRequest(request) {\n const { options } = this;\n const { timeout, url } = options;\n http_timer_1.default(request);\n this[kCancelTimeouts] = timed_out_1.default(request, timeout, url);\n const responseEventName = options.cache ? 'cacheableResponse' : 'response';\n request.once(responseEventName, (response) => {\n void this._onResponse(response);\n });\n request.once('error', (error) => {\n var _a;\n // Force clean-up, because some packages (e.g. nock) don't do this.\n request.destroy();\n // Node.js <= 12.18.2 mistakenly emits the response `end` first.\n (_a = request.res) === null || _a === void 0 ? void 0 : _a.removeAllListeners('end');\n error = error instanceof timed_out_1.TimeoutError ? new TimeoutError(error, this.timings, this) : new RequestError(error.message, error, this);\n this._beforeError(error);\n });\n this[kUnproxyEvents] = proxy_events_1.default(request, this, proxiedRequestEvents);\n this[kRequest] = request;\n this.emit('uploadProgress', this.uploadProgress);\n // Send body\n const body = this[kBody];\n const currentRequest = this.redirects.length === 0 ? this : request;\n if (is_1.default.nodeStream(body)) {\n body.pipe(currentRequest);\n body.once('error', (error) => {\n this._beforeError(new UploadError(error, this));\n });\n }\n else {\n this._unlockWrite();\n if (!is_1.default.undefined(body)) {\n this._writeRequest(body, undefined, () => { });\n currentRequest.end();\n this._lockWrite();\n }\n else if (this._cannotHaveBody || this._noPipe) {\n currentRequest.end();\n this._lockWrite();\n }\n }\n this.emit('request', request);\n }\n async _createCacheableRequest(url, options) {\n return new Promise((resolve, reject) => {\n // TODO: Remove `utils/url-to-options.ts` when `cacheable-request` is fixed\n Object.assign(options, url_to_options_1.default(url));\n // `http-cache-semantics` checks this\n // TODO: Fix this ignore.\n // @ts-expect-error\n delete options.url;\n let request;\n // This is ugly\n const cacheRequest = cacheableStore.get(options.cache)(options, async (response) => {\n // TODO: Fix `cacheable-response`\n response._readableState.autoDestroy = false;\n if (request) {\n (await request).emit('cacheableResponse', response);\n }\n resolve(response);\n });\n // Restore options\n options.url = url;\n cacheRequest.once('error', reject);\n cacheRequest.once('request', async (requestOrPromise) => {\n request = requestOrPromise;\n resolve(request);\n });\n });\n }\n async _makeRequest() {\n var _a, _b, _c, _d, _e;\n const { options } = this;\n const { headers } = options;\n for (const key in headers) {\n if (is_1.default.undefined(headers[key])) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete headers[key];\n }\n else if (is_1.default.null_(headers[key])) {\n throw new TypeError(`Use \\`undefined\\` instead of \\`null\\` to delete the \\`${key}\\` header`);\n }\n }\n if (options.decompress && is_1.default.undefined(headers['accept-encoding'])) {\n headers['accept-encoding'] = supportsBrotli ? 'gzip, deflate, br' : 'gzip, deflate';\n }\n // Set cookies\n if (options.cookieJar) {\n const cookieString = await options.cookieJar.getCookieString(options.url.toString());\n if (is_1.default.nonEmptyString(cookieString)) {\n options.headers.cookie = cookieString;\n }\n }\n for (const hook of options.hooks.beforeRequest) {\n // eslint-disable-next-line no-await-in-loop\n const result = await hook(options);\n if (!is_1.default.undefined(result)) {\n // @ts-expect-error Skip the type mismatch to support abstract responses\n options.request = () => result;\n break;\n }\n }\n if (options.body && this[kBody] !== options.body) {\n this[kBody] = options.body;\n }\n const { agent, request, timeout, url } = options;\n if (options.dnsCache && !('lookup' in options)) {\n options.lookup = options.dnsCache.lookup;\n }\n // UNIX sockets\n if (url.hostname === 'unix') {\n const matches = /(?<socketPath>.+?):(?<path>.+)/.exec(`${url.pathname}${url.search}`);\n if (matches === null || matches === void 0 ? void 0 : matches.groups) {\n const { socketPath, path } = matches.groups;\n Object.assign(options, {\n socketPath,\n path,\n host: ''\n });\n }\n }\n const isHttps = url.protocol === 'https:';\n // Fallback function\n let fallbackFn;\n if (options.http2) {\n fallbackFn = http2wrapper.auto;\n }\n else {\n fallbackFn = isHttps ? https.request : http.request;\n }\n const realFn = (_a = options.request) !== null && _a !== void 0 ? _a : fallbackFn;\n // Cache support\n const fn = options.cache ? this._createCacheableRequest : realFn;\n // Pass an agent directly when HTTP2 is disabled\n if (agent && !options.http2) {\n options.agent = agent[isHttps ? 'https' : 'http'];\n }\n // Prepare plain HTTP request options\n options[kRequest] = realFn;\n delete options.request;\n // TODO: Fix this ignore.\n // @ts-expect-error\n delete options.timeout;\n const requestOptions = options;\n requestOptions.shared = (_b = options.cacheOptions) === null || _b === void 0 ? void 0 : _b.shared;\n requestOptions.cacheHeuristic = (_c = options.cacheOptions) === null || _c === void 0 ? void 0 : _c.cacheHeuristic;\n requestOptions.immutableMinTimeToLive = (_d = options.cacheOptions) === null || _d === void 0 ? void 0 : _d.immutableMinTimeToLive;\n requestOptions.ignoreCargoCult = (_e = options.cacheOptions) === null || _e === void 0 ? void 0 : _e.ignoreCargoCult;\n // If `dnsLookupIpVersion` is not present do not override `family`\n if (options.dnsLookupIpVersion !== undefined) {\n try {\n requestOptions.family = dns_ip_version_1.dnsLookupIpVersionToFamily(options.dnsLookupIpVersion);\n }\n catch (_f) {\n throw new Error('Invalid `dnsLookupIpVersion` option value');\n }\n }\n // HTTPS options remapping\n if (options.https) {\n if ('rejectUnauthorized' in options.https) {\n requestOptions.rejectUnauthorized = options.https.rejectUnauthorized;\n }\n if (options.https.checkServerIdentity) {\n requestOptions.checkServerIdentity = options.https.checkServerIdentity;\n }\n if (options.https.certificateAuthority) {\n requestOptions.ca = options.https.certificateAuthority;\n }\n if (options.https.certificate) {\n requestOptions.cert = options.https.certificate;\n }\n if (options.https.key) {\n requestOptions.key = options.https.key;\n }\n if (options.https.passphrase) {\n requestOptions.passphrase = options.https.passphrase;\n }\n if (options.https.pfx) {\n requestOptions.pfx = options.https.pfx;\n }\n }\n try {\n let requestOrResponse = await fn(url, requestOptions);\n if (is_1.default.undefined(requestOrResponse)) {\n requestOrResponse = fallbackFn(url, requestOptions);\n }\n // Restore options\n options.request = request;\n options.timeout = timeout;\n options.agent = agent;\n // HTTPS options restore\n if (options.https) {\n if ('rejectUnauthorized' in options.https) {\n delete requestOptions.rejectUnauthorized;\n }\n if (options.https.checkServerIdentity) {\n // @ts-expect-error - This one will be removed when we remove the alias.\n delete requestOptions.checkServerIdentity;\n }\n if (options.https.certificateAuthority) {\n delete requestOptions.ca;\n }\n if (options.https.certificate) {\n delete requestOptions.cert;\n }\n if (options.https.key) {\n delete requestOptions.key;\n }\n if (options.https.passphrase) {\n delete requestOptions.passphrase;\n }\n if (options.https.pfx) {\n delete requestOptions.pfx;\n }\n }\n if (isClientRequest(requestOrResponse)) {\n this._onRequest(requestOrResponse);\n // Emit the response after the stream has been ended\n }\n else if (this.writable) {\n this.once('finish', () => {\n void this._onResponse(requestOrResponse);\n });\n this._unlockWrite();\n this.end();\n this._lockWrite();\n }\n else {\n void this._onResponse(requestOrResponse);\n }\n }\n catch (error) {\n if (error instanceof CacheableRequest.CacheError) {\n throw new CacheError(error, this);\n }\n throw new RequestError(error.message, error, this);\n }\n }\n async _error(error) {\n try {\n for (const hook of this.options.hooks.beforeError) {\n // eslint-disable-next-line no-await-in-loop\n error = await hook(error);\n }\n }\n catch (error_) {\n error = new RequestError(error_.message, error_, this);\n }\n this.destroy(error);\n }\n _beforeError(error) {\n if (this[kStopReading]) {\n return;\n }\n const { options } = this;\n const retryCount = this.retryCount + 1;\n this[kStopReading] = true;\n if (!(error instanceof RequestError)) {\n error = new RequestError(error.message, error, this);\n }\n const typedError = error;\n const { response } = typedError;\n void (async () => {\n if (response && !response.body) {\n response.setEncoding(this._readableState.encoding);\n try {\n response.rawBody = await get_buffer_1.default(response);\n response.body = response.rawBody.toString();\n }\n catch (_a) { }\n }\n if (this.listenerCount('retry') !== 0) {\n let backoff;\n try {\n let retryAfter;\n if (response && 'retry-after' in response.headers) {\n retryAfter = Number(response.headers['retry-after']);\n if (Number.isNaN(retryAfter)) {\n retryAfter = Date.parse(response.headers['retry-after']) - Date.now();\n if (retryAfter <= 0) {\n retryAfter = 1;\n }\n }\n else {\n retryAfter *= 1000;\n }\n }\n backoff = await options.retry.calculateDelay({\n attemptCount: retryCount,\n retryOptions: options.retry,\n error: typedError,\n retryAfter,\n computedValue: calculate_retry_delay_1.default({\n attemptCount: retryCount,\n retryOptions: options.retry,\n error: typedError,\n retryAfter,\n computedValue: 0\n })\n });\n }\n catch (error_) {\n void this._error(new RequestError(error_.message, error_, this));\n return;\n }\n if (backoff) {\n const retry = async () => {\n try {\n for (const hook of this.options.hooks.beforeRetry) {\n // eslint-disable-next-line no-await-in-loop\n await hook(this.options, typedError, retryCount);\n }\n }\n catch (error_) {\n void this._error(new RequestError(error_.message, error, this));\n return;\n }\n // Something forced us to abort the retry\n if (this.destroyed) {\n return;\n }\n this.destroy();\n this.emit('retry', retryCount, error);\n };\n this[kRetryTimeout] = setTimeout(retry, backoff);\n return;\n }\n }\n void this._error(typedError);\n })();\n }\n _read() {\n this[kTriggerRead] = true;\n const response = this[kResponse];\n if (response && !this[kStopReading]) {\n // We cannot put this in the `if` above\n // because `.read()` also triggers the `end` event\n if (response.readableLength) {\n this[kTriggerRead] = false;\n }\n let data;\n while ((data = response.read()) !== null) {\n this[kDownloadedSize] += data.length;\n this[kStartedReading] = true;\n const progress = this.downloadProgress;\n if (progress.percent < 1) {\n this.emit('downloadProgress', progress);\n }\n this.push(data);\n }\n }\n }\n // Node.js 12 has incorrect types, so the encoding must be a string\n _write(chunk, encoding, callback) {\n const write = () => {\n this._writeRequest(chunk, encoding, callback);\n };\n if (this.requestInitialized) {\n write();\n }\n else {\n this[kJobs].push(write);\n }\n }\n _writeRequest(chunk, encoding, callback) {\n if (this[kRequest].destroyed) {\n // Probably the `ClientRequest` instance will throw\n return;\n }\n this._progressCallbacks.push(() => {\n this[kUploadedSize] += Buffer.byteLength(chunk, encoding);\n const progress = this.uploadProgress;\n if (progress.percent < 1) {\n this.emit('uploadProgress', progress);\n }\n });\n // TODO: What happens if it's from cache? Then this[kRequest] won't be defined.\n this[kRequest].write(chunk, encoding, (error) => {\n if (!error && this._progressCallbacks.length > 0) {\n this._progressCallbacks.shift()();\n }\n callback(error);\n });\n }\n _final(callback) {\n const endRequest = () => {\n // FIX: Node.js 10 calls the write callback AFTER the end callback!\n while (this._progressCallbacks.length !== 0) {\n this._progressCallbacks.shift()();\n }\n // We need to check if `this[kRequest]` is present,\n // because it isn't when we use cache.\n if (!(kRequest in this)) {\n callback();\n return;\n }\n if (this[kRequest].destroyed) {\n callback();\n return;\n }\n this[kRequest].end((error) => {\n if (!error) {\n this[kBodySize] = this[kUploadedSize];\n this.emit('uploadProgress', this.uploadProgress);\n this[kRequest].emit('upload-complete');\n }\n callback(error);\n });\n };\n if (this.requestInitialized) {\n endRequest();\n }\n else {\n this[kJobs].push(endRequest);\n }\n }\n _destroy(error, callback) {\n var _a;\n this[kStopReading] = true;\n // Prevent further retries\n clearTimeout(this[kRetryTimeout]);\n if (kRequest in this) {\n this[kCancelTimeouts]();\n // TODO: Remove the next `if` when these get fixed:\n // - https://github.com/nodejs/node/issues/32851\n if (!((_a = this[kResponse]) === null || _a === void 0 ? void 0 : _a.complete)) {\n this[kRequest].destroy();\n }\n }\n if (error !== null && !is_1.default.undefined(error) && !(error instanceof RequestError)) {\n error = new RequestError(error.message, error, this);\n }\n callback(error);\n }\n get _isAboutToError() {\n return this[kStopReading];\n }\n /**\n The remote IP address.\n */\n get ip() {\n var _a;\n return (_a = this.socket) === null || _a === void 0 ? void 0 : _a.remoteAddress;\n }\n /**\n Indicates whether the request has been aborted or not.\n */\n get aborted() {\n var _a, _b, _c;\n return ((_b = (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.destroyed) !== null && _b !== void 0 ? _b : this.destroyed) && !((_c = this[kOriginalResponse]) === null || _c === void 0 ? void 0 : _c.complete);\n }\n get socket() {\n var _a, _b;\n return (_b = (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.socket) !== null && _b !== void 0 ? _b : undefined;\n }\n /**\n Progress event for downloading (receiving a response).\n */\n get downloadProgress() {\n let percent;\n if (this[kResponseSize]) {\n percent = this[kDownloadedSize] / this[kResponseSize];\n }\n else if (this[kResponseSize] === this[kDownloadedSize]) {\n percent = 1;\n }\n else {\n percent = 0;\n }\n return {\n percent,\n transferred: this[kDownloadedSize],\n total: this[kResponseSize]\n };\n }\n /**\n Progress event for uploading (sending a request).\n */\n get uploadProgress() {\n let percent;\n if (this[kBodySize]) {\n percent = this[kUploadedSize] / this[kBodySize];\n }\n else if (this[kBodySize] === this[kUploadedSize]) {\n percent = 1;\n }\n else {\n percent = 0;\n }\n return {\n percent,\n transferred: this[kUploadedSize],\n total: this[kBodySize]\n };\n }\n /**\n The object contains the following properties:\n\n - `start` - Time when the request started.\n - `socket` - Time when a socket was assigned to the request.\n - `lookup` - Time when the DNS lookup finished.\n - `connect` - Time when the socket successfully connected.\n - `secureConnect` - Time when the socket securely connected.\n - `upload` - Time when the request finished uploading.\n - `response` - Time when the request fired `response` event.\n - `end` - Time when the response fired `end` event.\n - `error` - Time when the request fired `error` event.\n - `abort` - Time when the request fired `abort` event.\n - `phases`\n - `wait` - `timings.socket - timings.start`\n - `dns` - `timings.lookup - timings.socket`\n - `tcp` - `timings.connect - timings.lookup`\n - `tls` - `timings.secureConnect - timings.connect`\n - `request` - `timings.upload - (timings.secureConnect || timings.connect)`\n - `firstByte` - `timings.response - timings.upload`\n - `download` - `timings.end - timings.response`\n - `total` - `(timings.end || timings.error || timings.abort) - timings.start`\n\n If something has not been measured yet, it will be `undefined`.\n\n __Note__: The time is a `number` representing the milliseconds elapsed since the UNIX epoch.\n */\n get timings() {\n var _a;\n return (_a = this[kRequest]) === null || _a === void 0 ? void 0 : _a.timings;\n }\n /**\n Whether the response was retrieved from the cache.\n */\n get isFromCache() {\n return this[kIsFromCache];\n }\n pipe(destination, options) {\n if (this[kStartedReading]) {\n throw new Error('Failed to pipe. The response has been emitted already.');\n }\n if (destination instanceof http_1.ServerResponse) {\n this[kServerResponsesPiped].add(destination);\n }\n return super.pipe(destination, options);\n }\n unpipe(destination) {\n if (destination instanceof http_1.ServerResponse) {\n this[kServerResponsesPiped].delete(destination);\n }\n super.unpipe(destination);\n return this;\n }\n}\nexports.default = Request;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CancelError = exports.ParseError = void 0;\nconst core_1 = require(\"../core\");\n/**\nAn error to be thrown when server response code is 2xx, and parsing body fails.\nIncludes a `response` property.\n*/\nclass ParseError extends core_1.RequestError {\n constructor(error, response) {\n const { options } = response.request;\n super(`${error.message} in \"${options.url.toString()}\"`, error, response.request);\n this.name = 'ParseError';\n this.code = this.code === 'ERR_GOT_REQUEST_ERROR' ? 'ERR_BODY_PARSE_FAILURE' : this.code;\n }\n}\nexports.ParseError = ParseError;\n/**\nAn error to be thrown when the request is aborted with `.cancel()`.\n*/\nclass CancelError extends core_1.RequestError {\n constructor(request) {\n super('Promise was canceled', {}, request);\n this.name = 'CancelError';\n this.code = 'ERR_CANCELED';\n }\n get isCanceled() {\n return true;\n }\n}\nexports.CancelError = CancelError;\n__exportStar(require(\"../core\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst types_1 = require(\"./types\");\nconst parseBody = (response, responseType, parseJson, encoding) => {\n const { rawBody } = response;\n try {\n if (responseType === 'text') {\n return rawBody.toString(encoding);\n }\n if (responseType === 'json') {\n return rawBody.length === 0 ? '' : parseJson(rawBody.toString());\n }\n if (responseType === 'buffer') {\n return rawBody;\n }\n throw new types_1.ParseError({\n message: `Unknown body type '${responseType}'`,\n name: 'Error'\n }, response);\n }\n catch (error) {\n throw new types_1.ParseError(error, response);\n }\n};\nexports.default = parseBody;\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst events_1 = require(\"events\");\nconst is_1 = require(\"@sindresorhus/is\");\nconst PCancelable = require(\"p-cancelable\");\nconst types_1 = require(\"./types\");\nconst parse_body_1 = require(\"./parse-body\");\nconst core_1 = require(\"../core\");\nconst proxy_events_1 = require(\"../core/utils/proxy-events\");\nconst get_buffer_1 = require(\"../core/utils/get-buffer\");\nconst is_response_ok_1 = require(\"../core/utils/is-response-ok\");\nconst proxiedRequestEvents = [\n 'request',\n 'response',\n 'redirect',\n 'uploadProgress',\n 'downloadProgress'\n];\nfunction asPromise(normalizedOptions) {\n let globalRequest;\n let globalResponse;\n const emitter = new events_1.EventEmitter();\n const promise = new PCancelable((resolve, reject, onCancel) => {\n const makeRequest = (retryCount) => {\n const request = new core_1.default(undefined, normalizedOptions);\n request.retryCount = retryCount;\n request._noPipe = true;\n onCancel(() => request.destroy());\n onCancel.shouldReject = false;\n onCancel(() => reject(new types_1.CancelError(request)));\n globalRequest = request;\n request.once('response', async (response) => {\n var _a;\n response.retryCount = retryCount;\n if (response.request.aborted) {\n // Canceled while downloading - will throw a `CancelError` or `TimeoutError` error\n return;\n }\n // Download body\n let rawBody;\n try {\n rawBody = await get_buffer_1.default(request);\n response.rawBody = rawBody;\n }\n catch (_b) {\n // The same error is caught below.\n // See request.once('error')\n return;\n }\n if (request._isAboutToError) {\n return;\n }\n // Parse body\n const contentEncoding = ((_a = response.headers['content-encoding']) !== null && _a !== void 0 ? _a : '').toLowerCase();\n const isCompressed = ['gzip', 'deflate', 'br'].includes(contentEncoding);\n const { options } = request;\n if (isCompressed && !options.decompress) {\n response.body = rawBody;\n }\n else {\n try {\n response.body = parse_body_1.default(response, options.responseType, options.parseJson, options.encoding);\n }\n catch (error) {\n // Fallback to `utf8`\n response.body = rawBody.toString();\n if (is_response_ok_1.isResponseOk(response)) {\n request._beforeError(error);\n return;\n }\n }\n }\n try {\n for (const [index, hook] of options.hooks.afterResponse.entries()) {\n // @ts-expect-error TS doesn't notice that CancelableRequest is a Promise\n // eslint-disable-next-line no-await-in-loop\n response = await hook(response, async (updatedOptions) => {\n const typedOptions = core_1.default.normalizeArguments(undefined, {\n ...updatedOptions,\n retry: {\n calculateDelay: () => 0\n },\n throwHttpErrors: false,\n resolveBodyOnly: false\n }, options);\n // Remove any further hooks for that request, because we'll call them anyway.\n // The loop continues. We don't want duplicates (asPromise recursion).\n typedOptions.hooks.afterResponse = typedOptions.hooks.afterResponse.slice(0, index);\n for (const hook of typedOptions.hooks.beforeRetry) {\n // eslint-disable-next-line no-await-in-loop\n await hook(typedOptions);\n }\n const promise = asPromise(typedOptions);\n onCancel(() => {\n promise.catch(() => { });\n promise.cancel();\n });\n return promise;\n });\n }\n }\n catch (error) {\n request._beforeError(new types_1.RequestError(error.message, error, request));\n return;\n }\n globalResponse = response;\n if (!is_response_ok_1.isResponseOk(response)) {\n request._beforeError(new types_1.HTTPError(response));\n return;\n }\n request.destroy();\n resolve(request.options.resolveBodyOnly ? response.body : response);\n });\n const onError = (error) => {\n if (promise.isCanceled) {\n return;\n }\n const { options } = request;\n if (error instanceof types_1.HTTPError && !options.throwHttpErrors) {\n const { response } = error;\n resolve(request.options.resolveBodyOnly ? response.body : response);\n return;\n }\n reject(error);\n };\n request.once('error', onError);\n const previousBody = request.options.body;\n request.once('retry', (newRetryCount, error) => {\n var _a, _b;\n if (previousBody === ((_a = error.request) === null || _a === void 0 ? void 0 : _a.options.body) && is_1.default.nodeStream((_b = error.request) === null || _b === void 0 ? void 0 : _b.options.body)) {\n onError(error);\n return;\n }\n makeRequest(newRetryCount);\n });\n proxy_events_1.default(request, emitter, proxiedRequestEvents);\n };\n makeRequest(0);\n });\n promise.on = (event, fn) => {\n emitter.on(event, fn);\n return promise;\n };\n const shortcut = (responseType) => {\n const newPromise = (async () => {\n // Wait until downloading has ended\n await promise;\n const { options } = globalResponse.request;\n return parse_body_1.default(globalResponse, responseType, options.parseJson, options.encoding);\n })();\n Object.defineProperties(newPromise, Object.getOwnPropertyDescriptors(promise));\n return newPromise;\n };\n promise.json = () => {\n const { headers } = globalRequest.options;\n if (!globalRequest.writableFinished && headers.accept === undefined) {\n headers.accept = 'application/json';\n }\n return shortcut('json');\n };\n promise.buffer = () => shortcut('buffer');\n promise.text = () => shortcut('text');\n return promise;\n}\nexports.default = asPromise;\n__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst types_1 = require(\"./types\");\nfunction createRejection(error, ...beforeErrorGroups) {\n const promise = (async () => {\n if (error instanceof types_1.RequestError) {\n try {\n for (const hooks of beforeErrorGroups) {\n if (hooks) {\n for (const hook of hooks) {\n // eslint-disable-next-line no-await-in-loop\n error = await hook(error);\n }\n }\n }\n }\n catch (error_) {\n error = error_;\n }\n }\n throw error;\n })();\n const returnPromise = () => promise;\n promise.json = returnPromise;\n promise.text = returnPromise;\n promise.buffer = returnPromise;\n promise.on = returnPromise;\n return promise;\n}\nexports.default = createRejection;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nfunction deepFreeze(object) {\n for (const value of Object.values(object)) {\n if (is_1.default.plainObject(value) || is_1.default.array(value)) {\n deepFreeze(value);\n }\n }\n return Object.freeze(object);\n}\nexports.default = deepFreeze;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultHandler = void 0;\nconst is_1 = require(\"@sindresorhus/is\");\nconst as_promise_1 = require(\"./as-promise\");\nconst create_rejection_1 = require(\"./as-promise/create-rejection\");\nconst core_1 = require(\"./core\");\nconst deep_freeze_1 = require(\"./utils/deep-freeze\");\nconst errors = {\n RequestError: as_promise_1.RequestError,\n CacheError: as_promise_1.CacheError,\n ReadError: as_promise_1.ReadError,\n HTTPError: as_promise_1.HTTPError,\n MaxRedirectsError: as_promise_1.MaxRedirectsError,\n TimeoutError: as_promise_1.TimeoutError,\n ParseError: as_promise_1.ParseError,\n CancelError: as_promise_1.CancelError,\n UnsupportedProtocolError: as_promise_1.UnsupportedProtocolError,\n UploadError: as_promise_1.UploadError\n};\n// The `delay` package weighs 10KB (!)\nconst delay = async (ms) => new Promise(resolve => {\n setTimeout(resolve, ms);\n});\nconst { normalizeArguments } = core_1.default;\nconst mergeOptions = (...sources) => {\n let mergedOptions;\n for (const source of sources) {\n mergedOptions = normalizeArguments(undefined, source, mergedOptions);\n }\n return mergedOptions;\n};\nconst getPromiseOrStream = (options) => options.isStream ? new core_1.default(undefined, options) : as_promise_1.default(options);\nconst isGotInstance = (value) => ('defaults' in value && 'options' in value.defaults);\nconst aliases = [\n 'get',\n 'post',\n 'put',\n 'patch',\n 'head',\n 'delete'\n];\nexports.defaultHandler = (options, next) => next(options);\nconst callInitHooks = (hooks, options) => {\n if (hooks) {\n for (const hook of hooks) {\n hook(options);\n }\n }\n};\nconst create = (defaults) => {\n // Proxy properties from next handlers\n defaults._rawHandlers = defaults.handlers;\n defaults.handlers = defaults.handlers.map(fn => ((options, next) => {\n // This will be assigned by assigning result\n let root;\n const result = fn(options, newOptions => {\n root = next(newOptions);\n return root;\n });\n if (result !== root && !options.isStream && root) {\n const typedResult = result;\n const { then: promiseThen, catch: promiseCatch, finally: promiseFianlly } = typedResult;\n Object.setPrototypeOf(typedResult, Object.getPrototypeOf(root));\n Object.defineProperties(typedResult, Object.getOwnPropertyDescriptors(root));\n // These should point to the new promise\n // eslint-disable-next-line promise/prefer-await-to-then\n typedResult.then = promiseThen;\n typedResult.catch = promiseCatch;\n typedResult.finally = promiseFianlly;\n }\n return result;\n }));\n // Got interface\n const got = ((url, options = {}, _defaults) => {\n var _a, _b;\n let iteration = 0;\n const iterateHandlers = (newOptions) => {\n return defaults.handlers[iteration++](newOptions, iteration === defaults.handlers.length ? getPromiseOrStream : iterateHandlers);\n };\n // TODO: Remove this in Got 12.\n if (is_1.default.plainObject(url)) {\n const mergedOptions = {\n ...url,\n ...options\n };\n core_1.setNonEnumerableProperties([url, options], mergedOptions);\n options = mergedOptions;\n url = undefined;\n }\n try {\n // Call `init` hooks\n let initHookError;\n try {\n callInitHooks(defaults.options.hooks.init, options);\n callInitHooks((_a = options.hooks) === null || _a === void 0 ? void 0 : _a.init, options);\n }\n catch (error) {\n initHookError = error;\n }\n // Normalize options & call handlers\n const normalizedOptions = normalizeArguments(url, options, _defaults !== null && _defaults !== void 0 ? _defaults : defaults.options);\n normalizedOptions[core_1.kIsNormalizedAlready] = true;\n if (initHookError) {\n throw new as_promise_1.RequestError(initHookError.message, initHookError, normalizedOptions);\n }\n return iterateHandlers(normalizedOptions);\n }\n catch (error) {\n if (options.isStream) {\n throw error;\n }\n else {\n return create_rejection_1.default(error, defaults.options.hooks.beforeError, (_b = options.hooks) === null || _b === void 0 ? void 0 : _b.beforeError);\n }\n }\n });\n got.extend = (...instancesOrOptions) => {\n const optionsArray = [defaults.options];\n let handlers = [...defaults._rawHandlers];\n let isMutableDefaults;\n for (const value of instancesOrOptions) {\n if (isGotInstance(value)) {\n optionsArray.push(value.defaults.options);\n handlers.push(...value.defaults._rawHandlers);\n isMutableDefaults = value.defaults.mutableDefaults;\n }\n else {\n optionsArray.push(value);\n if ('handlers' in value) {\n handlers.push(...value.handlers);\n }\n isMutableDefaults = value.mutableDefaults;\n }\n }\n handlers = handlers.filter(handler => handler !== exports.defaultHandler);\n if (handlers.length === 0) {\n handlers.push(exports.defaultHandler);\n }\n return create({\n options: mergeOptions(...optionsArray),\n handlers,\n mutableDefaults: Boolean(isMutableDefaults)\n });\n };\n // Pagination\n const paginateEach = (async function* (url, options) {\n // TODO: Remove this `@ts-expect-error` when upgrading to TypeScript 4.\n // Error: Argument of type 'Merge<Options, PaginationOptions<T, R>> | undefined' is not assignable to parameter of type 'Options | undefined'.\n // @ts-expect-error\n let normalizedOptions = normalizeArguments(url, options, defaults.options);\n normalizedOptions.resolveBodyOnly = false;\n const pagination = normalizedOptions.pagination;\n if (!is_1.default.object(pagination)) {\n throw new TypeError('`options.pagination` must be implemented');\n }\n const all = [];\n let { countLimit } = pagination;\n let numberOfRequests = 0;\n while (numberOfRequests < pagination.requestLimit) {\n if (numberOfRequests !== 0) {\n // eslint-disable-next-line no-await-in-loop\n await delay(pagination.backoff);\n }\n // @ts-expect-error FIXME!\n // TODO: Throw when result is not an instance of Response\n // eslint-disable-next-line no-await-in-loop\n const result = (await got(undefined, undefined, normalizedOptions));\n // eslint-disable-next-line no-await-in-loop\n const parsed = await pagination.transform(result);\n const current = [];\n for (const item of parsed) {\n if (pagination.filter(item, all, current)) {\n if (!pagination.shouldContinue(item, all, current)) {\n return;\n }\n yield item;\n if (pagination.stackAllItems) {\n all.push(item);\n }\n current.push(item);\n if (--countLimit <= 0) {\n return;\n }\n }\n }\n const optionsToMerge = pagination.paginate(result, all, current);\n if (optionsToMerge === false) {\n return;\n }\n if (optionsToMerge === result.request.options) {\n normalizedOptions = result.request.options;\n }\n else if (optionsToMerge !== undefined) {\n normalizedOptions = normalizeArguments(undefined, optionsToMerge, normalizedOptions);\n }\n numberOfRequests++;\n }\n });\n got.paginate = paginateEach;\n got.paginate.all = (async (url, options) => {\n const results = [];\n for await (const item of paginateEach(url, options)) {\n results.push(item);\n }\n return results;\n });\n // For those who like very descriptive names\n got.paginate.each = paginateEach;\n // Stream API\n got.stream = ((url, options) => got(url, { ...options, isStream: true }));\n // Shortcuts\n for (const method of aliases) {\n got[method] = ((url, options) => got(url, { ...options, method }));\n got.stream[method] = ((url, options) => {\n return got(url, { ...options, method, isStream: true });\n });\n }\n Object.assign(got, errors);\n Object.defineProperty(got, 'defaults', {\n value: defaults.mutableDefaults ? defaults : deep_freeze_1.default(defaults),\n writable: defaults.mutableDefaults,\n configurable: defaults.mutableDefaults,\n enumerable: true\n });\n got.mergeOptions = mergeOptions;\n return got;\n};\nexports.default = create;\n__exportStar(require(\"./types\"), exports);\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst url_1 = require(\"url\");\nconst create_1 = require(\"./create\");\nconst defaults = {\n options: {\n method: 'GET',\n retry: {\n limit: 2,\n methods: [\n 'GET',\n 'PUT',\n 'HEAD',\n 'DELETE',\n 'OPTIONS',\n 'TRACE'\n ],\n statusCodes: [\n 408,\n 413,\n 429,\n 500,\n 502,\n 503,\n 504,\n 521,\n 522,\n 524\n ],\n errorCodes: [\n 'ETIMEDOUT',\n 'ECONNRESET',\n 'EADDRINUSE',\n 'ECONNREFUSED',\n 'EPIPE',\n 'ENOTFOUND',\n 'ENETUNREACH',\n 'EAI_AGAIN'\n ],\n maxRetryAfter: undefined,\n calculateDelay: ({ computedValue }) => computedValue\n },\n timeout: {},\n headers: {\n 'user-agent': 'got (https://github.com/sindresorhus/got)'\n },\n hooks: {\n init: [],\n beforeRequest: [],\n beforeRedirect: [],\n beforeRetry: [],\n beforeError: [],\n afterResponse: []\n },\n cache: undefined,\n dnsCache: undefined,\n decompress: true,\n throwHttpErrors: true,\n followRedirect: true,\n isStream: false,\n responseType: 'text',\n resolveBodyOnly: false,\n maxRedirects: 10,\n prefixUrl: '',\n methodRewriting: true,\n ignoreInvalidCookies: false,\n context: {},\n // TODO: Set this to `true` when Got 12 gets released\n http2: false,\n allowGetBody: false,\n https: undefined,\n pagination: {\n transform: (response) => {\n if (response.request.options.responseType === 'json') {\n return response.body;\n }\n return JSON.parse(response.body);\n },\n paginate: response => {\n if (!Reflect.has(response.headers, 'link')) {\n return false;\n }\n const items = response.headers.link.split(',');\n let next;\n for (const item of items) {\n const parsed = item.split(';');\n if (parsed[1].includes('next')) {\n next = parsed[0].trimStart().trim();\n next = next.slice(1, -1);\n break;\n }\n }\n if (next) {\n const options = {\n url: new url_1.URL(next)\n };\n return options;\n }\n return false;\n },\n filter: () => true,\n shouldContinue: () => true,\n countLimit: Infinity,\n backoff: 0,\n requestLimit: 10000,\n stackAllItems: true\n },\n parseJson: (text) => JSON.parse(text),\n stringifyJson: (object) => JSON.stringify(object),\n cacheOptions: {}\n },\n handlers: [create_1.defaultHandler],\n mutableDefaults: false\n};\nconst got = create_1.default(defaults);\nexports.default = got;\n// For CommonJS default export support\nmodule.exports = got;\nmodule.exports.default = got;\nmodule.exports.__esModule = true; // Workaround for TS issue: https://github.com/sindresorhus/got/pull/1267\n__exportStar(require(\"./create\"), exports);\n__exportStar(require(\"./as-promise\"), exports);\n", "import got from 'got';\n\nexport async function handler(_: any) {\n const url = process.env.URL;\n if (!url) {\n throw new Error('URL is required');\n }\n\n // by default `got` will throw if there is an HTTP error\n await got(url);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["exports", "module", "exports", "module", "handler", "exports", "module", "require_source", "exports", "module", "require_source", "exports", "module", "exports", "module", "exports", "module", "cb", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "require_src", "exports", "module", "exports", "require_src", "exports", "module", "key", "value", "keyPrefixed", "require_src", "exports", "module", "opts", "handler", "require_mimic_response", "exports", "module", "exports", "module", "exports", "module", "key", "value", "exports", "module", "result", "reject", "origin", "listeners", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "exports", "module", "require_source", "exports", "module", "exports", "exports", "require_proxy_events", "exports", "exports", "handler", "exports", "require_url_to_options", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "url", "handler", "_a", "exports", "exports", "exports", "hook", "promise", "exports", "exports", "require_types", "exports", "exports", "got", "handler", "require_source", "exports", "module", "got", "got"]
7
7
  }