{"version":3,"file":"axios-BveDp8GJ.js","names":["isFunction","utils","utils","$internals","utils","AxiosHeaders","parseHeaders","utils","AxiosHeaders","stringifySafely","AxiosError","utils","toFormData","AxiosError","encode","toFormData","utils","utils","platform","toFormData","platform","utils","AxiosError","utils","utils","transitionalDefaults","toFormData","AxiosError","platform","AxiosHeaders","isCancel","CanceledError","AxiosError","AxiosError","utils","platform","platform","utils","AxiosError","AxiosHeaders","mergeConfig","utils","encodeUTF8","mergeConfig","utils","AxiosHeaders","AxiosError","platform","isURLSameOrigin","cookies","AxiosHeaders","platform","AxiosError","transitionalDefaults","utils","CanceledError","AxiosError","CanceledError","utils","VERSION","utils","platform","AxiosError","VERSION","AxiosHeaders","xhrAdapter","fetchAdapter.getFetch","utils","getAdapter","AxiosError","CanceledError","utils","AxiosHeaders","adapters","isCancel","validators","VERSION","AxiosError","validator","Axios","mergeConfig","utils","AxiosHeaders","transitionalDefaults","CancelToken","CanceledError","spread","isAxiosError","utils","HttpStatusCode","Axios","mergeConfig","CanceledError","CancelToken","isCancel","VERSION","toFormData","AxiosError","spread","isAxiosError","AxiosHeaders","utils","adapters","HttpStatusCode"],"sources":["../../../node_modules/axios/lib/helpers/bind.js","../../../node_modules/axios/lib/utils.js","../../../node_modules/axios/lib/helpers/parseHeaders.js","../../../node_modules/axios/lib/helpers/sanitizeHeaderValue.js","../../../node_modules/axios/lib/core/AxiosHeaders.js","../../../node_modules/axios/lib/core/AxiosError.js","../../../node_modules/axios/lib/helpers/toFormData.js","../../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../node_modules/axios/lib/helpers/buildURL.js","../../../node_modules/axios/lib/core/InterceptorManager.js","../../../node_modules/axios/lib/defaults/transitional.js","../../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../../node_modules/axios/lib/platform/browser/index.js","../../../node_modules/axios/lib/platform/common/utils.js","../../../node_modules/axios/lib/platform/index.js","../../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../node_modules/axios/lib/helpers/formDataToJSON.js","../../../node_modules/axios/lib/core/methodList.js","../../../node_modules/axios/lib/defaults/index.js","../../../node_modules/axios/lib/core/transformData.js","../../../node_modules/axios/lib/cancel/isCancel.js","../../../node_modules/axios/lib/cancel/CanceledError.js","../../../node_modules/axios/lib/core/settle.js","../../../node_modules/axios/lib/helpers/normalizeURLForProtocolCheck.js","../../../node_modules/axios/lib/helpers/parseProtocol.js","../../../node_modules/axios/lib/helpers/speedometer.js","../../../node_modules/axios/lib/helpers/throttle.js","../../../node_modules/axios/lib/helpers/progressEventReducer.js","../../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../node_modules/axios/lib/helpers/cookies.js","../../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../node_modules/axios/lib/helpers/combineURLs.js","../../../node_modules/axios/lib/core/buildFullPath.js","../../../node_modules/axios/lib/core/mergeConfig.js","../../../node_modules/axios/lib/core/setFormDataHeaders.js","../../../node_modules/axios/lib/helpers/resolveConfig.js","../../../node_modules/axios/lib/adapters/xhr.js","../../../node_modules/axios/lib/helpers/composeSignals.js","../../../node_modules/axios/lib/helpers/trackStream.js","../../../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../../../node_modules/axios/lib/env/data.js","../../../node_modules/axios/lib/adapters/fetch.js","../../../node_modules/axios/lib/adapters/adapters.js","../../../node_modules/axios/lib/core/dispatchRequest.js","../../../node_modules/axios/lib/helpers/validator.js","../../../node_modules/axios/lib/core/Axios.js","../../../node_modules/axios/lib/cancel/CancelToken.js","../../../node_modules/axios/lib/helpers/spread.js","../../../node_modules/axios/lib/helpers/isAxiosError.js","../../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../../node_modules/axios/lib/axios.js","../../../node_modules/axios/index.js"],"sourcesContent":["'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst { toString } = Object.prototype;\nconst { getPrototypeOf } = Object;\nconst { iterator, toStringTag } = Symbol;\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (\n ({ hasOwnProperty }) =>\n (obj, prop) =>\n hasOwnProperty.call(obj, prop)\n)(Object.prototype);\n\nconst isUnsafeObjectKey = (prop) =>\n typeof prop === 'string' &&\n (prop === '__proto__' || prop === 'constructor' || prop === 'prototype');\n\n/**\n * Determine whether an inherited object must be treated as a shared-prototype\n * boundary. Cross-realm Object.prototype objects cannot be distinguished\n * reliably from application-created null-prototype objects because their\n * properties are mutable, so all inherited terminal prototypes are excluded\n * as a fail-closed boundary. A null-prototype source still keeps its own\n * properties, as produced by mergeConfig and other safe materialization paths.\n *\n * @param {*} obj The object to inspect\n * @param {*} prototype The object's prototype\n * @param {boolean} source Whether obj is the original traversal source\n *\n * @returns {boolean} True when obj is a safe prototype traversal boundary\n */\nconst isPrototypeBoundary = (obj, prototype, source) =>\n obj === Object.prototype || (!source && prototype === null);\n\n/**\n * Determine whether an object can retain its identity through code paths that\n * add, replace, and remove config properties without bypassing unsafe-key\n * filtering. Immutable objects, unsafe-key-bearing objects, and objects with\n * accessor or restricted data properties must be materialized instead.\n *\n * @param {*} obj The object to inspect\n *\n * @returns {boolean} True when every own property is safe and fully mutable\n */\nconst isSafeAndFullyMutable = (obj) => {\n if (!Object.isExtensible(obj)) {\n return false;\n }\n\n const props = Object.getOwnPropertyNames(obj);\n\n if (Object.getOwnPropertySymbols) {\n props.push(...Object.getOwnPropertySymbols(obj));\n }\n\n return props.every((prop) => {\n if (isUnsafeObjectKey(prop)) {\n return false;\n }\n\n const descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n\n return !!descriptor && descriptor.configurable && descriptor.writable === true;\n });\n};\n\n/**\n * Walk the prototype chain (excluding the source realm's Object.prototype)\n * looking for an own `prop`. This distinguishes genuine own/inherited members\n * — including class accessors and template prototypes — from members injected\n * via Object.prototype pollution (e.g. `Object.prototype.username = '...'`),\n * which live on Object.prototype itself and are therefore never matched.\n *\n * @param {*} thing The value whose chain to inspect\n * @param {string|symbol} prop The property key to look for\n *\n * @returns {boolean} True when `prop` is owned below Object.prototype\n */\nconst hasOwnInPrototypeChain = (thing, prop) => {\n let obj = thing;\n const seen = [];\n\n while (obj != null) {\n if (seen.indexOf(obj) !== -1) {\n return false;\n }\n seen.push(obj);\n\n const prototype = getPrototypeOf(obj);\n\n if (isPrototypeBoundary(obj, prototype, obj === thing)) {\n return false;\n }\n\n if (hasOwnProperty(obj, prop)) {\n return true;\n }\n obj = prototype;\n }\n return false;\n};\n\n/**\n * Read `obj[prop]` only when it is safe from Object.prototype pollution. Own\n * properties and members inherited from a non-Object.prototype source (a class\n * instance or template object) are honored; a value reachable only through a\n * polluted Object.prototype is ignored and `undefined` is returned.\n *\n * @param {*} obj The source object\n * @param {string|symbol} prop The property key to read\n *\n * @returns {*} The resolved value, or undefined when unsafe/absent\n */\nconst getSafeProp = (obj, prop) =>\n obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;\n\n/**\n * Flatten an object and its application-defined prototype chain into a\n * null-prototype object. Members inherited only from the source realm's\n * Object.prototype are deliberately excluded, while class/template members\n * below that boundary are preserved.\n *\n * @param {*} thing The value to flatten\n *\n * @returns {*} A null-prototype copy, or the original value when it is already\n * structurally safe or is not an object\n */\nconst toSafeFlatObject = (thing) => {\n if (thing == null || (typeof thing !== 'object' && typeof thing !== 'function')) {\n return thing;\n }\n\n const sourcePrototype = getPrototypeOf(thing);\n\n if (sourcePrototype === null && isSafeAndFullyMutable(thing)) {\n return thing;\n }\n\n const result = Object.create(null);\n const merged = Object.create(null);\n const seen = [];\n let current = thing;\n\n while (current != null) {\n if (seen.indexOf(current) !== -1) {\n break;\n }\n\n seen.push(current);\n\n const prototype = current === thing ? sourcePrototype : getPrototypeOf(current);\n\n if (isPrototypeBoundary(current, prototype, current === thing)) {\n break;\n }\n\n const props = Object.getOwnPropertyNames(current);\n\n if (Object.getOwnPropertySymbols) {\n props.push(...Object.getOwnPropertySymbols(current));\n }\n\n for (const prop of props) {\n if (isUnsafeObjectKey(prop)) {\n continue;\n }\n\n if (!hasOwnProperty(merged, prop)) {\n result[prop] = thing[prop];\n merged[prop] = true;\n }\n }\n\n current = prototype;\n }\n\n return result;\n};\n\nconst kindOf = ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\n\nconst typeOfTest = (type) => (thing) => typeof thing === type;\n\n/**\n * Determine if a value is a non-null object\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst { isArray } = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return (\n val !== null &&\n !isUndefined(val) &&\n val.constructor !== null &&\n !isUndefined(val.constructor) &&\n isFunction(val.constructor.isBuffer) &&\n val.constructor.isBuffer(val)\n );\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = (thing) => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (!isObject(val)) {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (\n (prototype === null || prototype === Object.prototype || getPrototypeOf(prototype) === null) &&\n // Treat safe own/inherited Symbol.toStringTag or Symbol.iterator members as\n // evidence the value is tagged/iterable, while ignoring members reachable\n // only through shared or terminal prototype boundaries.\n !hasOwnInPrototypeChain(val, toStringTag) &&\n !hasOwnInPrototypeChain(val, iterator)\n );\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a React Native Blob\n * React Native \"blob\": an object with a `uri` attribute. Optionally, it can\n * also have a `name` and `type` attribute to specify filename and content type\n *\n * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71\n *\n * @param {*} value The value to test\n *\n * @returns {boolean} True if value is a React Native Blob, otherwise false\n */\nconst isReactNativeBlob = (value) => {\n return !!(value && typeof value.uri !== 'undefined');\n};\n\n/**\n * Determine if environment is React Native\n * ReactNative `FormData` has a non-standard `getParts()` method\n *\n * @param {*} formData The formData to test\n *\n * @returns {boolean} True if environment is React Native, otherwise false\n */\nconst isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined';\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a FileList, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\nconst isSet = kindOfTest('Set');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global;\n return {};\n}\n\nconst G = getGlobal();\nconst FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined;\n\nconst isFormData = (thing) => {\n if (!thing) return false;\n if (FormDataCtor && thing instanceof FormDataCtor) return true;\n // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData.\n const proto = getPrototypeOf(thing);\n if (!proto || proto === Object.prototype) return false;\n if (!isFunction(thing.append)) return false;\n const kind = kindOf(thing);\n return (\n kind === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n );\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = [\n 'ReadableStream',\n 'Request',\n 'Response',\n 'Headers',\n].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n};\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\n/**\n * Finds a key in an object, case-insensitive, returning the actual key name.\n * Returns null if the object is a Buffer or if no match is found.\n *\n * @param {Object} obj - The object to search.\n * @param {string} key - The key to find (case-insensitive).\n * @returns {?string} The actual key name if found, otherwise null.\n */\nfunction findKey(obj, key) {\n if (isBuffer(obj)) {\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== 'undefined') return globalThis;\n return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global;\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * const result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(...objs) {\n const { caseless, skipUndefined } = (isContextDefined(this) && this) || {};\n const result = {};\n const assignValue = (val, key) => {\n // Skip dangerous property names to prevent prototype pollution\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n // findKey lowercases the key, so caseless lookup only applies to strings —\n // symbol keys are identity-matched.\n const targetKey = (caseless && typeof key === 'string' && findKey(result, key)) || key;\n // Read via own-prop only — a bare `result[targetKey]` walks the prototype\n // chain, so a polluted Object.prototype value could surface here and get\n // copied into the merged result.\n const existing = hasOwnProperty(result, targetKey) ? result[targetKey] : undefined;\n if (isPlainObject(existing) && isPlainObject(val)) {\n result[targetKey] = merge(existing, val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = objs.length; i < l; i++) {\n const source = objs[i];\n if (!source || isBuffer(source)) {\n continue;\n }\n\n forEach(source, assignValue);\n\n if (typeof source !== 'object' || isArray(source)) {\n continue;\n }\n\n const symbols = Object.getOwnPropertySymbols(source);\n for (let j = 0; j < symbols.length; j++) {\n const symbol = symbols[j];\n if (propertyIsEnumerable.call(source, symbol)) {\n assignValue(source[symbol], symbol);\n }\n }\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Object} [options]\n * @param {Boolean} [options.allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(\n b,\n (val, key) => {\n if (thisArg && isFunction(val)) {\n Object.defineProperty(a, key, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot\n // hijack defineProperty's accessor-vs-data resolution.\n __proto__: null,\n value: bind(val, thisArg),\n writable: true,\n enumerable: true,\n configurable: true,\n });\n } else {\n Object.defineProperty(a, key, {\n __proto__: null,\n value: val,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n },\n { allOwnKeys }\n );\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xfeff) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n Object.defineProperty(constructor.prototype, 'constructor', {\n __proto__: null,\n value: constructor,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n Object.defineProperty(constructor, 'super', {\n __proto__: null,\n value: superConstructor.prototype,\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = ((TypedArray) => {\n // eslint-disable-next-line func-names\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = (str) => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n });\n};\n\nconst { propertyIsEnumerable } = Object.prototype;\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\n\n/**\n * Converts an array or a delimited string into an object set with values as keys and true as values.\n * Useful for fast membership checks.\n *\n * @param {Array|string} arrayOrString - The array or string to convert.\n * @param {string} delimiter - The delimiter to use if input is a string.\n * @returns {Object} An object with keys from the array or string, values set to true.\n */\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite((value = +value)) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(\n thing &&\n isFunction(thing.append) &&\n thing[toStringTag] === 'FormData' &&\n thing[iterator]\n );\n}\n\n/**\n * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers.\n *\n * @param {Object} obj - The object to convert.\n * @returns {Object} The JSON-compatible object.\n */\nconst toJSONObject = (obj) => {\n const visited = new WeakSet();\n\n const visit = (source) => {\n if (isObject(source)) {\n if (visited.has(source)) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if (!('toJSON' in source)) {\n // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230).\n visited.add(source);\n\n let target;\n\n if (isSet(source)) {\n target = [];\n for (const value of source) {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && target.push(reducedValue);\n }\n } else {\n target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n }\n\n visited.delete(source);\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj);\n};\n\n/**\n * Determines if a value is an async function.\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is an async function, otherwise false.\n */\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\n/**\n * Determines if a value is thenable (has then and catch methods).\n *\n * @param {*} thing - The value to test.\n * @returns {boolean} True if value is thenable, otherwise false.\n */\nconst isThenable = (thing) =>\n thing &&\n (isObject(thing) || isFunction(thing)) &&\n isFunction(thing.then) &&\n isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\n/**\n * Provides a cross-platform setImmediate implementation.\n * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout.\n *\n * @param {boolean} setImmediateSupported - Whether setImmediate is supported.\n * @param {boolean} postMessageSupported - Whether postMessage is supported.\n * @returns {Function} A function to schedule a callback asynchronously.\n */\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported\n ? ((token, callbacks) => {\n _global.addEventListener(\n 'message',\n ({ source, data }) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n },\n false\n );\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, '*');\n };\n })(`axios@${Math.random()}`, [])\n : (cb) => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\n\n/**\n * Schedules a microtask or asynchronous callback as soon as possible.\n * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate.\n *\n * @type {Function}\n */\nconst asap =\n typeof queueMicrotask !== 'undefined'\n ? queueMicrotask.bind(_global)\n : (typeof process !== 'undefined' && process.nextTick) || _setImmediate;\n\n// *********************\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n/**\n * Determine if a value is iterable via an iterator that is NOT sourced solely\n * from a polluted Object.prototype. Use this instead of `isIterable` whenever\n * the iterable comes from untrusted input (e.g. user-supplied header sources),\n * so `Object.prototype[Symbol.iterator] = ...` cannot turn an ordinary object\n * into an attacker-controlled entries iterator.\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value has a non-polluted iterator\n */\nconst isSafeIterable = (thing) =>\n thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isReactNativeBlob,\n isReactNative,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n hasOwnInPrototypeChain,\n getSafeProp,\n toSafeFlatObject,\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable,\n isSafeIterable,\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age',\n 'authorization',\n 'content-length',\n 'content-type',\n 'etag',\n 'expires',\n 'from',\n 'host',\n 'if-modified-since',\n 'if-unmodified-since',\n 'last-modified',\n 'location',\n 'max-forwards',\n 'proxy-authorization',\n 'referer',\n 'retry-after',\n 'user-agent',\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default (rawHeaders) => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders &&\n rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n const hasKey = utils.hasOwnProp(parsed, key);\n\n if (!key || (hasKey && utils.hasOwnProp(ignoreDuplicateOf, key))) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (hasKey) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = hasKey ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\nfunction trimSPorHTAB(str) {\n let start = 0;\n let end = str.length;\n\n while (start < end) {\n const code = str.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = str.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === str.length ? str : str.slice(start, end);\n}\n\n// The control-code ranges are intentional: header sanitization strips C0/DEL bytes.\n// eslint-disable-next-line no-control-regex\nconst INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+', 'g');\n// eslint-disable-next-line no-control-regex\nconst INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+', 'g');\n\nfunction sanitizeValue(value, invalidChars) {\n if (utils.isArray(value)) {\n return value.map((item) => sanitizeValue(item, invalidChars));\n }\n\n return trimSPorHTAB(String(value).replace(invalidChars, ''));\n}\n\nexport const sanitizeHeaderValue = (value) =>\n sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS);\n\nexport const sanitizeByteStringHeaderValue = (value) =>\n sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS);\n\nexport function toByteStringHeaderObject(headers) {\n const byteStringHeaders = Object.create(null);\n\n utils.forEach(headers.toJSON(), (value, header) => {\n byteStringHeaders[header] = sanitizeByteStringHeaderValue(value);\n });\n\n return byteStringHeaders;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\nimport { sanitizeHeaderValue } from '../helpers/sanitizeHeaderValue.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value));\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst parameterNameRE = /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/;\n\nfunction trimOWS(value) {\n let start = 0;\n let end = value.length;\n\n while (start < end) {\n const code = value.charCodeAt(start);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n start += 1;\n }\n\n while (end > start) {\n const code = value.charCodeAt(end - 1);\n\n if (code !== 0x09 && code !== 0x20) {\n break;\n }\n\n end -= 1;\n }\n\n return start === 0 && end === value.length ? value : value.slice(start, end);\n}\n\nfunction decodeQuotedString(value) {\n const last = value.length - 1;\n\n if (last < 1 || value.charCodeAt(0) !== 0x22 || value.charCodeAt(last) !== 0x22) {\n return value;\n }\n\n let decoded = '';\n\n for (let i = 1; i < last; i++) {\n const code = value.charCodeAt(i);\n\n if (code === 0x22) {\n return value;\n }\n\n if (code === 0x5c) {\n i += 1;\n\n if (i >= last) {\n return value;\n }\n }\n\n decoded += value[i];\n }\n\n return decoded;\n}\n\nfunction parseParameters(value) {\n const parameters = Object.create(null);\n const str = String(value);\n let start = 0;\n let quoted = false;\n let escaped = false;\n\n function parseParameter(end) {\n const part = trimOWS(str.slice(start, end));\n const equals = part.indexOf('=');\n\n if (equals < 1) {\n return;\n }\n\n const name = trimOWS(part.slice(0, equals));\n\n if (!parameterNameRE.test(name)) {\n return;\n }\n\n const normalizedName = name.toLowerCase();\n\n if (\n normalizedName === '__proto__' ||\n normalizedName === 'constructor' ||\n normalizedName === 'prototype'\n ) {\n return;\n }\n\n const parameterValue = trimOWS(part.slice(equals + 1));\n parameters[normalizedName] = decodeQuotedString(parameterValue);\n }\n\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (quoted) {\n if (escaped) {\n escaped = false;\n } else if (code === 0x5c) {\n escaped = true;\n } else if (code === 0x22) {\n quoted = false;\n }\n } else if (code === 0x22) {\n quoted = true;\n } else if (code === 0x2c || code === 0x3b) {\n parseParameter(i);\n start = i + 1;\n }\n }\n\n parseParameter(str.length);\n\n return parameters;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header\n .trim()\n .toLowerCase()\n .replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: function (arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true,\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n return;\n }\n\n const key = utils.findKey(self, lHeader);\n\n if (\n !key ||\n self[key] === undefined ||\n _rewrite === true ||\n (_rewrite === undefined && self[key] !== false)\n ) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isSafeIterable(header)) {\n let obj = Object.create(null),\n dest,\n key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw new TypeError('Object iterator must return a key-value pair');\n }\n\n key = entry[0];\n\n if (utils.hasOwnProp(obj, key)) {\n dest = obj[key];\n obj[key] = utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]];\n } else {\n obj[key] = entry[1];\n }\n }\n\n setHeaders(obj, valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(\n key &&\n this[key] !== undefined &&\n (!matcher || matchHeaderValue(this, this[key], key, matcher))\n );\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null &&\n value !== false &&\n (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON())\n .map(([header, value]) => header + ': ' + value)\n .join('\\n');\n }\n\n getSetCookie() {\n const value = this.get('set-cookie');\n return utils.isArray(value) ? value : value == null || value === false ? [] : [value];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static parseParameters(value) {\n return parseParameters(value);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals =\n (this[$internals] =\n this[$internals] =\n {\n accessors: {},\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor([\n 'Content-Type',\n 'Content-Length',\n 'Accept',\n 'Accept-Encoding',\n 'User-Agent',\n 'Authorization',\n]);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n },\n };\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nexport const REDACTED = '[REDACTED ****]';\n\nfunction hasOwnOrPrototypeToJSON(source) {\n if (utils.hasOwnProp(source, 'toJSON')) {\n return true;\n }\n\n let prototype = Object.getPrototypeOf(source);\n\n while (prototype && prototype !== Object.prototype) {\n if (utils.hasOwnProp(prototype, 'toJSON')) {\n return true;\n }\n\n prototype = Object.getPrototypeOf(prototype);\n }\n\n return false;\n}\n\n// Build a plain-object snapshot of `config` and replace the value of any key\n// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays\n// and AxiosHeaders, and short-circuits on circular references.\nfunction redactConfig(config, redactKeys) {\n const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase()));\n const seen = [];\n\n const visit = (source) => {\n if (source === null || typeof source !== 'object') return source;\n if (utils.isBuffer(source)) return source;\n if (seen.indexOf(source) !== -1) return undefined;\n\n if (source instanceof AxiosHeaders) {\n source = source.toJSON();\n }\n\n seen.push(source);\n\n let result;\n if (utils.isArray(source)) {\n result = [];\n source.forEach((v, i) => {\n const reducedValue = visit(v);\n if (!utils.isUndefined(reducedValue)) {\n result[i] = reducedValue;\n }\n });\n } else {\n if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) {\n seen.pop();\n return source;\n }\n\n result = Object.create(null);\n for (const [key, value] of Object.entries(source)) {\n const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);\n if (!utils.isUndefined(reducedValue)) {\n result[key] = reducedValue;\n }\n }\n }\n\n seen.pop();\n return result;\n };\n\n return visit(config);\n}\n\nfunction stringifySafely(value) {\n try {\n return String(value);\n } catch (err) {\n return '';\n }\n}\n\nfunction aggregateErrorMessage(error) {\n const message = error.errors\n .map((entry) => {\n try {\n return entry && entry.message ? stringifySafely(entry.message) : stringifySafely(entry);\n } catch (err) {\n return '';\n }\n })\n .filter(Boolean)\n .join('; ');\n\n return message || error.name || 'AggregateError';\n}\n\nclass AxiosError extends Error {\n static from(error, code, config, request, response, customProps) {\n // `AggregateError` (thrown by Node on dual-stack/Happy-Eyeballs connection\n // failures) has an empty `message`; its detail lives in `errors[]`. Without\n // this, the wrapped error surfaces with a blank message (see #6721).\n let message = error.message;\n if (!message && utils.isArray(error.errors) && error.errors.length) {\n message = aggregateErrorMessage(error);\n }\n\n const axiosError = new AxiosError(message, code || error.code, config, request, response);\n // Match native `Error` `cause` semantics: non-enumerable. The wrapped\n // error often carries circular internals (sockets, requests, agents), so\n // an enumerable `cause` makes structured loggers (pino/winston) and any\n // own-property walk throw \"Converting circular structure to JSON\".\n // Regression from #6982; see #7205. `__proto__: null` mirrors the\n // `message` descriptor below (prototype-pollution-safe descriptor).\n Object.defineProperty(axiosError, 'cause', {\n __proto__: null,\n value: error,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n axiosError.name = error.name;\n\n // Preserve status from the original error if not already set from response\n if (error.status != null && axiosError.status == null) {\n axiosError.status = error.status;\n }\n\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n }\n\n /**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\n constructor(message, code, config, request, response) {\n super(message);\n\n // Make message enumerable to maintain backward compatibility\n // The native Error constructor sets message as non-enumerable,\n // but axios < v1.13.3 had it as enumerable\n Object.defineProperty(this, 'message', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: message,\n enumerable: true,\n writable: true,\n configurable: true,\n });\n\n this.name = 'AxiosError';\n this.isAxiosError = true;\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status;\n }\n }\n\n toJSON() {\n // Opt-in redaction: when the request config carries a `redact` array, the\n // value of any matching key (case-insensitive, at any depth) is replaced\n // with REDACTED in the serialized snapshot. Undefined or empty leaves the\n // existing serialization behavior unchanged.\n const config = this.config;\n const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined;\n const serializedConfig =\n utils.isArray(redactKeys) && redactKeys.length > 0\n ? redactConfig(config, redactKeys)\n : utils.toJSONObject(config);\n\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: serializedConfig,\n code: this.code,\n status: this.status,\n };\n }\n}\n\n// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated.\nAxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE';\nAxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION';\nAxiosError.ECONNABORTED = 'ECONNABORTED';\nAxiosError.ETIMEDOUT = 'ETIMEDOUT';\nAxiosError.ECONNREFUSED = 'ECONNREFUSED';\nAxiosError.ERR_NETWORK = 'ERR_NETWORK';\nAxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS';\nAxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED';\nAxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE';\nAxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST';\nAxiosError.ERR_CANCELED = 'ERR_CANCELED';\nAxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT';\nAxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL';\nAxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED';\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\nimport PlatformBuffer from '../platform/node/classes/Buffer.js';\n\n// Default nesting limit shared with the inverse transform (formDataToJSON) so\n// the FormData <-> JSON round-trip stays symmetric.\nexport const DEFAULT_FORM_DATA_MAX_DEPTH = 100;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path\n .concat(key)\n .map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n })\n .join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n const option = (name, fallback) => {\n const value = utils.getSafeProp(options, name);\n return utils.isUndefined(value) ? fallback : value;\n };\n\n const metaTokens = option('metaTokens', true);\n // eslint-disable-next-line no-use-before-define\n const visitor = option('visitor') || defaultVisitor;\n const dots = option('dots', false);\n const indexes = option('indexes', false);\n const _Blob = option('Blob') || (typeof Blob !== 'undefined' && Blob);\n const maxDepth = option('maxDepth', DEFAULT_FORM_DATA_MAX_DEPTH);\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n const stack = [];\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n if (useBlob && typeof _Blob === 'function') {\n return new _Blob([value]);\n }\n if (PlatformBuffer && PlatformBuffer.isBufferAvailable()) {\n return PlatformBuffer.from(value);\n }\n throw new AxiosError(\n 'Blob is not supported. Use a Buffer instead.',\n AxiosError.ERR_NOT_SUPPORT\n );\n }\n\n return value;\n }\n\n function throwIfMaxDepthExceeded(depth) {\n if (depth > maxDepth) {\n throw new AxiosError(\n 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n }\n\n function stringifyWithDepthLimit(value, depth) {\n if (maxDepth === Infinity) {\n return JSON.stringify(value);\n }\n\n const ancestors = [];\n\n return JSON.stringify(value, function limitDepth(_key, currentValue) {\n if (!utils.isObject(currentValue)) {\n return currentValue;\n }\n\n while (ancestors.length && ancestors[ancestors.length - 1] !== this) {\n ancestors.pop();\n }\n\n ancestors.push(currentValue);\n throwIfMaxDepthExceeded(depth + ancestors.length - 1);\n\n return currentValue;\n });\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) {\n formData.append(renderKey(path, key, dots), convertValue(value));\n return false;\n }\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = stringifyWithDepthLimit(value, 1);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)))\n ) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) &&\n formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true\n ? renderKey([key], index, dots)\n : indexes === null\n ? key\n : key + '[]',\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable,\n });\n\n function build(value, path, depth = 0) {\n if (utils.isUndefined(value)) return;\n\n throwIfMaxDepthExceeded(depth);\n\n if (stack.indexOf(value) !== -1) {\n throw new Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result =\n !(utils.isUndefined(el) || el === null) &&\n visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers);\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key], depth + 1);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder\n ? (value) => encoder.call(this, value, encode)\n : encode;\n\n return this._pairs\n .map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '')\n .join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from './AxiosURLSearchParams.js';\n\n/**\n * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with\n * their plain counterparts (`:`, `$`, `,`, `+`).\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nexport function encode(val) {\n return encodeURIComponent(val)\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n url = url || '';\n\n const _options = utils.isFunction(options)\n ? {\n serialize: options,\n }\n : options;\n\n // Read serializer options pollution-safely: own properties and methods on a\n // class/template prototype are honored, but values injected onto a polluted\n // Object.prototype are ignored.\n const _encode = utils.getSafeProp(_options, 'encode') || encode;\n const serializeFn = utils.getSafeProp(_options, 'serialize');\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, _options);\n } else {\n serializedParams = utils.isURLSearchParams(params)\n ? params.toString()\n : new AxiosURLSearchParams(params, _options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\nconst $internals = Symbol('internals');\n\n// `handlers` is public and may be replaced with a nullish value by user code;\n// `clear()` has always tolerated that. Treat it as an empty stack rather than\n// dereferencing it.\nfunction countHandlers(handlers) {\n return handlers ? handlers.length : 0;\n}\n\nfunction trimHandlers(handlers) {\n if (!handlers) {\n return;\n }\n\n while (handlers.length && handlers[handlers.length - 1] === null) {\n handlers.pop();\n }\n}\n\nfunction syncHandlerEntries(manager, internals) {\n const handlers = manager.handlers;\n const length = countHandlers(handlers);\n\n if (handlers !== internals.handlersRef) {\n internals.handlersRef = handlers;\n internals.handlerEntries.clear();\n } else if (length !== internals.handlersLength) {\n if (!length) {\n internals.handlerEntries.clear();\n } else {\n internals.handlerEntries.forEach(function removeStaleEntry(entry, id) {\n if (handlers[entry.index] !== entry.handler) {\n internals.handlerEntries.delete(id);\n }\n });\n }\n }\n\n internals.handlersLength = length;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n this[$internals] = {\n handlersRef: this.handlers,\n handlersLength: this.handlers.length,\n handlerEntries: new Map(),\n iterationDepth: 0,\n nextId: 0,\n };\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n * @param {Object} options The options for the interceptor, synchronous and runWhen\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n const handler = {\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null,\n };\n const internals = this[$internals];\n\n if (this.handlers == null) {\n this.handlers = [];\n }\n\n syncHandlerEntries(this, internals);\n\n const id = internals.nextId++;\n\n this.handlers.push(handler);\n internals.handlerEntries.set(id, {\n handler,\n index: this.handlers.length - 1,\n });\n internals.handlersLength = this.handlers.length;\n\n return id;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n const internals = this[$internals];\n\n syncHandlerEntries(this, internals);\n\n const entry = internals.handlerEntries.get(id);\n\n if (entry) {\n internals.handlerEntries.delete(id);\n\n // Ignore IDs invalidated by clear or direct replacement of handlers.\n if (this.handlers[entry.index] !== entry.handler) {\n return;\n }\n\n this.handlers[entry.index] = null;\n\n // Do not reuse an index while forEach is walking its length snapshot.\n if (!internals.iterationDepth) {\n trimHandlers(this.handlers);\n internals.handlersLength = this.handlers.length;\n }\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n syncHandlerEntries(this, this[$internals]);\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n const internals = this[$internals];\n\n syncHandlerEntries(this, internals);\n\n internals.iterationDepth++;\n\n try {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n } finally {\n if (!--internals.iterationDepth) {\n syncHandlerEntries(this, internals);\n trimHandlers(this.handlers);\n internals.handlersLength = countHandlers(this.handlers);\n }\n }\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false,\n legacyInterceptorReqResOrdering: true,\n advertiseZstdAcceptEncoding: false,\n validateStatusUndefinedResolves: true,\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nexport default typeof Blob !== 'undefined' ? Blob : null;\n","import URLSearchParams from './classes/URLSearchParams.js';\nimport FormData from './classes/FormData.js';\nimport Blob from './classes/Blob.js';\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob,\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data'],\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = (typeof navigator === 'object' && navigator) || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv =\n hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = (hasBrowserEnv && window.location.href) || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin,\n};\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function (value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options,\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport { DEFAULT_FORM_DATA_MAX_DEPTH } from './toFormData.js';\n\nconst MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH;\n\nfunction throwIfDepthExceeded(index) {\n if (index > MAX_DEPTH) {\n throw new AxiosError(\n 'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH,\n AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED\n );\n }\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z] -> ['foo', 'x', 'y', 'z']\n // foo.x.y.z -> ['foo', 'x', 'y', 'z']\n // A path is split on `.` and on `[...]` groups. A segment — whether written\n // in dot notation or captured inside brackets — may contain any character\n // except `.`, `[` and `]`, so a key like `user-name` or `user name` is kept\n // literal instead of being split (#5402). `.`, `[` and `]` keep their existing\n // meaning, e.g. `foo[bar.baz]` -> ['foo', 'bar', 'baz'] and `[]` is an array push.\n // Excluding `[` from the bracket group also makes the match fail fast at the\n // next `[`, so a malformed name cannot rescan to the end of the string from\n // every unmatched `[` — parsing stays linear in the length of the name.\n const path = [];\n const pattern = /[^.[\\]]+|\\[([^.[\\]]*)]/g;\n let match;\n\n while ((match = pattern.exec(name)) !== null) {\n throwIfDepthExceeded(path.length);\n path.push(match[0] === '[]' ? '' : match[1] || match[0]);\n }\n\n return path;\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n throwIfDepthExceeded(index);\n\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = utils.isArray(target[name])\n ? target[name].concat(value)\n : [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nconst methodList = Object.freeze([\n 'get',\n 'delete',\n 'head',\n 'options',\n 'post',\n 'put',\n 'patch',\n 'purge',\n 'link',\n 'unlink',\n 'query',\n]);\n\nexport default methodList;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\nimport methodList from '../core/methodList.js';\n\nconst own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined);\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [\n function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n const formSerializer = own(this, 'formSerializer');\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, formSerializer).toString();\n }\n\n if (\n (isFileList = utils.isFileList(data)) ||\n contentType.indexOf('multipart/form-data') > -1\n ) {\n const env = own(this, 'env');\n const _FormData = env && env.FormData;\n\n return toFormData(\n isFileList ? { 'files[]': data } : data,\n _FormData && new _FormData(),\n formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n },\n ],\n\n transformResponse: [\n function transformResponse(data) {\n const transitional = own(this, 'transitional') || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const responseType = own(this, 'responseType');\n const JSONRequested = responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (\n data &&\n utils.isString(data) &&\n ((forcedJSONParsing && !responseType) || JSONRequested)\n ) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, own(this, 'parseReviver'));\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response'));\n }\n throw e;\n }\n }\n }\n\n return data;\n },\n ],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob,\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': undefined,\n },\n },\n};\n\nutils.forEach(methodList, (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\n\nclass CanceledError extends AxiosError {\n /**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\n constructor(message, config, request) {\n super(message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n this.__CANCEL__ = true;\n }\n}\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n response.status >= 400 && response.status < 500 ? AxiosError.ERR_BAD_REQUEST : AxiosError.ERR_BAD_RESPONSE,\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nconst urlParserControlCharacters = /[\\t\\n\\r]/g;\n\n/**\n * Match WHATWG URL preprocessing before checking a URL's protocol.\n *\n * @param {string} url\n *\n * @returns {string}\n */\nexport default function normalizeURLForProtocolCheck(url) {\n if (typeof url !== 'string') {\n return url;\n }\n\n let start = 0;\n\n while (start < url.length && url.charCodeAt(start) <= 0x20) {\n start++;\n }\n\n return url.slice(start).replace(urlParserControlCharacters, '');\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(url);\n return (match && match[1]) || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round((bytesCount * 1000) / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Array}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if (passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n const flushWith = (...args) => invoke(args);\n\n return [throttled, flush, flushWith];\n}\n\nexport default throttle;\n","import speedometer from './speedometer.js';\nimport throttle from './throttle.js';\nimport utils from '../utils.js';\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle((e) => {\n if (!e || !utils.isNumber(e.loaded)) {\n return;\n }\n const rawLoaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const loaded = Math.max(0, total != null ? Math.min(rawLoaded, total) : rawLoaded);\n const progressBytes = Math.max(0, loaded - bytesNotified);\n const rate = _speedometer(progressBytes);\n\n bytesNotified = Math.max(bytesNotified, loaded);\n\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true,\n };\n\n listener(data);\n }, freq);\n};\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [\n (loaded) =>\n throttled[0]({\n lengthComputable,\n total,\n loaded,\n }),\n throttled[1],\n ];\n};\n\nexport const asyncDecorator =\n (fn, scheduler = utils.asap) =>\n (...args) =>\n scheduler(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n })(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n )\n : () => true;\n","import utils from '../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv\n ? // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n // Match name=value by splitting on the semicolon separator instead of building a\n // RegExp from `name` — interpolating an unescaped string into a RegExp would let\n // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or\n // match the wrong cookie. Browsers may serialize cookie pairs as either \";\" or\n // \"; \", so ignore optional whitespace before each cookie name.\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].replace(/^\\s+/, '');\n const eq = cookie.indexOf('=');\n if (eq !== -1 && cookie.slice(0, eq) === name) {\n try {\n return decodeURIComponent(cookie.slice(eq + 1));\n } catch (e) {\n return cookie.slice(eq + 1);\n }\n }\n }\n return null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n },\n }\n : // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {},\n };\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n if (typeof url !== 'string') {\n return false;\n }\n\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n if (!relativeURL) {\n return baseURL;\n }\n\n let end = baseURL.length;\n\n while (end > 0 && baseURL.charCodeAt(end - 1) === 47) {\n end--;\n }\n\n return baseURL.slice(0, end) + '/' + relativeURL.replace(/^\\/+/, '');\n}\n","'use strict';\n\nimport AxiosError, { REDACTED } from './AxiosError.js';\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\nimport normalizeURLForProtocolCheck from '../helpers/normalizeURLForProtocolCheck.js';\n\nconst malformedHttpProtocol = /^https?:(?!\\/\\/)/i;\n\n// Redact the parts of a URL that can carry secrets before it is embedded in an\n// error message. AxiosError.toJSON() serializes `message` verbatim and errors\n// are commonly logged, while the opt-in `config.redact` model only cleans\n// config keys — it cannot reach the message. Redact only the genuinely\n// sensitive substrings — userinfo (credentials), query parameter values and\n// fragment contents — with the same REDACTED marker the config redaction uses,\n// while keeping the scheme, host, path and parameter names so the offending\n// request stays accurately identifiable.\nfunction redactFragment(fragment) {\n if (!fragment) {\n return fragment;\n }\n\n return fragment.replace(/(^|&)([^=&]*=)?[^&]+/g, (match, separator, parameterName = '') => {\n return `${separator}${parameterName}${REDACTED}`;\n });\n}\n\nfunction redactSensitiveURLParts(url) {\n const redactedURL = url.replace(/^(https?:\\/{0,2})[^/?#]*@/i, `$1${REDACTED}@`);\n const fragmentIndex = redactedURL.indexOf('#');\n const urlWithoutFragment =\n fragmentIndex === -1 ? redactedURL : redactedURL.slice(0, fragmentIndex);\n const redactedURLWithoutFragment = urlWithoutFragment.replace(\n /([?&][^=&#]*=)[^&#]*/g,\n `$1${REDACTED}`\n );\n\n if (fragmentIndex === -1) {\n return redactedURLWithoutFragment;\n }\n\n return `${redactedURLWithoutFragment}#${redactFragment(redactedURL.slice(fragmentIndex + 1))}`;\n}\n\nfunction assertValidHttpProtocolURL(url, config) {\n if (typeof url === 'string') {\n const normalizedURL = normalizeURLForProtocolCheck(url);\n if (malformedHttpProtocol.test(normalizedURL)) {\n throw new AxiosError(\n `Invalid URL ${JSON.stringify(redactSensitiveURLParts(normalizedURL))}: missing \"//\" after protocol`,\n AxiosError.ERR_INVALID_URL,\n config\n );\n }\n }\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) {\n assertValidHttpProtocolURL(requestedURL, config);\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) {\n assertValidHttpProtocolURL(baseURL, config);\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst headersToObject = (thing) => (thing instanceof AxiosHeaders ? { ...thing } : thing);\n\nconst ownEnumerableKeys = (thing) => {\n if (Object.getOwnPropertySymbols && Object.getOwnPropertyDescriptor) {\n return Object.keys(thing).concat(\n Object.getOwnPropertySymbols(thing).filter(\n (symbol) => Object.getOwnPropertyDescriptor(thing, symbol).enumerable\n )\n );\n }\n return Object.keys(thing);\n};\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config1 = config1 || {};\n config2 = config2 || {};\n\n // Use a null-prototype object so that downstream reads such as `config.auth`\n // or `config.baseURL` cannot inherit polluted values from Object.prototype.\n // `hasOwnProperty` is restored as a non-enumerable own slot to preserve\n // ergonomics for user code that relies on it.\n const config = Object.create(null);\n Object.defineProperty(config, 'hasOwnProperty', {\n // Null-proto descriptor so a polluted Object.prototype.get cannot turn\n // this data descriptor into an accessor descriptor on the way in.\n __proto__: null,\n value: Object.prototype.hasOwnProperty,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({ caseless }, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n function getMergedTransitionalOption(prop) {\n const transitional2 = utils.hasOwnProp(config2, 'transitional')\n ? config2.transitional\n : undefined;\n\n if (!utils.isUndefined(transitional2)) {\n if (utils.isPlainObject(transitional2)) {\n if (utils.hasOwnProp(transitional2, prop)) {\n return transitional2[prop];\n }\n } else {\n return undefined;\n }\n }\n\n const transitional1 = utils.hasOwnProp(config1, 'transitional')\n ? config1.transitional\n : undefined;\n\n if (utils.isPlainObject(transitional1) && utils.hasOwnProp(transitional1, prop)) {\n return transitional1[prop];\n }\n\n return undefined;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (utils.hasOwnProp(config2, prop)) {\n return getMergedValue(a, b);\n } else if (utils.hasOwnProp(config1, prop)) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutErrorMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n allowedSocketPaths: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) =>\n mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true),\n };\n\n utils.forEach(ownEnumerableKeys({ ...config1, ...config2 }), function computeConfigValue(prop) {\n if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return;\n const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties;\n const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined;\n const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined;\n const configValue = merge(a, b, prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n if (\n utils.hasOwnProp(config2, 'validateStatus') &&\n utils.isUndefined(config2.validateStatus) &&\n getMergedTransitionalOption('validateStatusUndefinedResolves') === false\n ) {\n if (utils.hasOwnProp(config1, 'validateStatus')) {\n config.validateStatus = getMergedValue(undefined, config1.validateStatus);\n } else {\n delete config.validateStatus;\n }\n }\n\n return config;\n}\n","'use strict';\n\nconst FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length'];\n\n/**\n * Apply the headers generated by a FormData implementation to the request headers,\n * honoring the `formDataHeaderPolicy` option: with 'content-only', copy only the\n * content-* headers; otherwise merge all of them.\n *\n * @param {AxiosHeaders} headers - the request headers to mutate\n * @param {Object | null | undefined} formHeaders - headers produced by the FormData implementation\n * @param {String} [policy] - the resolved `formDataHeaderPolicy` config value\n *\n * @returns {void}\n */\nexport default function setFormDataHeaders(headers, formHeaders, policy) {\n if (policy !== 'content-only') {\n headers.set(formHeaders);\n return;\n }\n\n Object.entries(formHeaders || {}).forEach(([key, val]) => {\n if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n}\n","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport isURLSameOrigin from './isURLSameOrigin.js';\nimport cookies from './cookies.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport mergeConfig from '../core/mergeConfig.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport setFormDataHeaders from '../core/setFormDataHeaders.js';\nimport buildURL from './buildURL.js';\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\nfunction resolveConfig(config) {\n const newConfig = mergeConfig({}, config);\n\n // Read only own properties to prevent prototype pollution gadgets\n // (e.g. Object.prototype.baseURL = 'https://evil.com').\n const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined);\n\n const data = own('data');\n let withXSRFToken = own('withXSRFToken');\n const xsrfHeaderName = own('xsrfHeaderName');\n const xsrfCookieName = own('xsrfCookieName');\n let headers = own('headers');\n const auth = own('auth');\n const baseURL = own('baseURL');\n const allowAbsoluteUrls = own('allowAbsoluteUrls');\n const url = own('url');\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(\n buildFullPath(baseURL, url, allowAbsoluteUrls, newConfig),\n own('params'),\n own('paramsSerializer')\n );\n\n // HTTP basic authentication\n if (auth) {\n const username = utils.getSafeProp(auth, 'username') || '';\n const password = utils.getSafeProp(auth, 'password') || '';\n\n try {\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(username + ':' + (password ? encodeUTF8(password) : ''))\n );\n } catch (e) {\n throw AxiosError.from(e, AxiosError.ERR_BAD_OPTION_VALUE, config);\n }\n }\n\n if (utils.isFormData(data)) {\n const getHeaders = utils.getSafeProp(data, 'getHeaders');\n\n if (\n platform.hasStandardBrowserEnv ||\n platform.hasStandardBrowserWebWorkerEnv ||\n utils.isReactNative(data)\n ) {\n headers.setContentType(undefined); // browser/web worker/RN handles it\n } else if (utils.isFunction(getHeaders)) {\n // Node.js FormData (like form-data package)\n setFormDataHeaders(headers, getHeaders.call(data), own('formDataHeaderPolicy'));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n if (utils.isFunction(withXSRFToken)) {\n withXSRFToken = withXSRFToken(newConfig);\n }\n\n // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1)\n // and misconfigurations (e.g. \"false\") from short-circuiting the same-origin check and leaking\n // the XSRF token cross-origin.\n const shouldSendXSRF =\n withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url));\n\n if (shouldSendXSRF) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\nexport default resolveConfig;\n","import utils from '../utils.js';\nimport settle from '../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport normalizeURLForProtocolCheck from '../helpers/normalizeURLForProtocolCheck.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport { progressEventReducer } from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported &&\n function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let { responseType, onUploadProgress, onDownloadProgress } = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload, flushDownloadWithEvent;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend(event) {\n if (!request) {\n return;\n }\n\n // Status 0 means no response was received, which onerror and onabort normally\n // reject before this runs. Firefox 152 fires only readystatechange and loadend for\n // navigation-canceled requests (https://bugzilla.mozilla.org/show_bug.cgi?id=1505389),\n // leaving settle() to resolve them as an empty success. ECONNABORTED is the error\n // onabort raised on Firefox 151. Reads over file:, which some environments report as\n // status 0 on success, are excluded by the request URL's scheme after browser-style\n // preprocessing, by the page origin's scheme for relative URLs (which inherit it), or\n // by responseURL where implemented.\n if (\n request.status === 0 &&\n (parseProtocol(normalizeURLForProtocolCheck(_config.url)) ||\n parseProtocol(platform.origin)) !== 'file' &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n return;\n }\n\n // When loadend is still dispatching, flushing with it gives progress\n // listeners a final delivery whose event has a live target. The legacy\n // ready-state fallback has no event, so replay its pending progress.\n // A throwing listener must not block settlement; rethrow asynchronously,\n // matching how listener errors surface on the throttle timer path.\n try {\n if (event) {\n flushDownloadWithEvent && flushDownloadWithEvent(event);\n } else {\n flushDownload && flushDownload();\n }\n } catch (err) {\n setTimeout(() => {\n throw err;\n });\n }\n\n // A final progress callback can cancel the request synchronously.\n if (!request) {\n return;\n }\n\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData =\n !responseType || responseType === 'text' || responseType === 'json'\n ? request.responseText\n : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request,\n };\n\n settle(\n function _resolve(value) {\n resolve(value);\n done();\n },\n function _reject(err) {\n reject(err);\n done();\n },\n response\n );\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (\n request.status === 0 &&\n !(request.responseURL && request.responseURL.startsWith('file:'))\n ) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n done();\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n done();\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout\n ? 'timeout of ' + _config.timeout + 'ms exceeded'\n : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(\n new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request\n )\n );\n done();\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n [downloadThrottled, flushDownload, flushDownloadWithEvent] = progressEventReducer(\n onDownloadProgress,\n true\n );\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress);\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n done();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted\n ? onCanceled()\n : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && !platform.protocols.includes(protocol)) {\n reject(\n new AxiosError(\n 'Unsupported protocol ' + protocol + ':',\n AxiosError.ERR_BAD_REQUEST,\n config\n )\n );\n done();\n return;\n }\n\n // Send the request\n request.send(requestData || null);\n });\n };\n","import CanceledError from '../cancel/CanceledError.js';\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n signals = signals ? signals.filter(Boolean) : [];\n\n if (!timeout && !signals.length) {\n return;\n }\n\n const controller = new AbortController();\n\n let aborted = false;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(\n err instanceof AxiosError\n ? err\n : new CanceledError(err instanceof Error ? err.message : err)\n );\n }\n };\n\n let timer =\n timeout &&\n setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (!signals) { return; }\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach((signal) => {\n signal.unsubscribe\n ? signal.unsubscribe(onabort)\n : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n };\n\n signals.forEach((signal) => {\n if (aborted) {\n return;\n }\n\n if (signal.aborted) {\n onabort.call(signal);\n return;\n }\n\n signal.addEventListener('abort', onabort, { once: true });\n });\n\n const { signal } = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n};\n\nexport default composeSignals;\n","export const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n};\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n};\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream(\n {\n async pull(controller) {\n try {\n const { done, value } = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = (bytes += len);\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n },\n },\n {\n highWaterMark: 2,\n }\n );\n};\n","/**\n * Estimate data: URL byte lengths *without* allocating large buffers.\n * - Fetch percent-decodes a base64 body before decoding it.\n * - Node's Buffer.from(body, 'base64') sizes its backing allocation from the\n * raw body, including ignored characters and content after padding.\n * - Non-base64 data is percent-decoded and then encoded as UTF-8.\n */\nconst isHexDigit = (charCode) =>\n (charCode >= 48 && charCode <= 57) ||\n (charCode >= 65 && charCode <= 70) ||\n (charCode >= 97 && charCode <= 102);\n\nconst isPercentEncodedByte = (str, i, len) =>\n i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2));\n\nconst hexValue = (charCode) => (charCode <= 57 ? charCode - 48 : (charCode & 0xdf) - 55);\n\nconst isBase64Char = (charCode) =>\n (charCode >= 65 && charCode <= 90) || // A-Z\n (charCode >= 97 && charCode <= 122) || // a-z\n (charCode >= 48 && charCode <= 57) || // 0-9\n charCode === 43 || // +\n charCode === 47 || // /\n charCode === 45 || // - (base64url)\n charCode === 95; // _ (base64url)\n\nconst isBase64Whitespace = (charCode) =>\n charCode === 9 || charCode === 10 || charCode === 12 || charCode === 13 || charCode === 32;\n\nconst base64Bytes = (significant) => {\n const groups = Math.floor(significant / 4);\n const remainder = significant % 4;\n return groups * 3 + (remainder === 2 ? 1 : remainder === 3 ? 2 : 0);\n};\n\n// Buffer.byteLength(body, 'base64') uses the raw string length as an allocation\n// upper bound even when Buffer.from later ignores characters or stops at '='.\nconst estimateBase64BufferAllocation = (body) => {\n const len = body.length;\n let padding = 0;\n\n if (len > 0 && body.charCodeAt(len - 1) === 61 /* '=' */) {\n padding++;\n\n if (len > 1 && body.charCodeAt(len - 2) === 61 /* '=' */) {\n padding++;\n }\n }\n\n return Math.floor(((len - padding) * 3) / 4);\n};\n\nconst estimatePercentDecodedBase64Bytes = (body) => {\n const len = body.length;\n let significant = 0;\n let padding = 0;\n let invalid = false;\n\n for (let i = 0; i < len; i++) {\n let code = body.charCodeAt(i);\n\n if (code === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {\n code = hexValue(body.charCodeAt(i + 1)) * 16 + hexValue(body.charCodeAt(i + 2));\n i += 2;\n }\n\n if (isBase64Whitespace(code)) {\n continue;\n }\n\n if (code === 61 /* '=' */) {\n padding++;\n continue;\n }\n\n if (!isBase64Char(code) || padding > 0) {\n invalid = true;\n continue;\n }\n\n significant++;\n }\n\n // Fetch rejects malformed forgiving-base64 input. Returning the raw-size\n // allocation bound keeps that invalid input from becoming a pre-check bypass.\n if (\n invalid ||\n padding > 2 ||\n (padding > 0 && (significant + padding) % 4 !== 0) ||\n significant % 4 === 1\n ) {\n return estimateBase64BufferAllocation(body);\n }\n\n return base64Bytes(significant);\n};\n\nconst estimateDataURLBytes = (url, estimateBase64) => {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n return estimateBase64(body);\n }\n\n // Compute UTF-8 byte length directly from UTF-16 code units without allocating\n // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies).\n // Valid %XX triplets count as one decoded byte; this matches the bytes that\n // decodeURIComponent(body) would produce before Buffer re-encodes the string.\n let bytes = 0;\n for (let i = 0, len = body.length; i < len; i++) {\n const c = body.charCodeAt(i);\n if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) {\n bytes += 1;\n i += 2;\n } else if (c < 0x80) {\n bytes += 1;\n } else if (c < 0x800) {\n bytes += 2;\n } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) {\n const next = body.charCodeAt(i + 1);\n if (next >= 0xdc00 && next <= 0xdfff) {\n bytes += 4;\n i++;\n } else {\n bytes += 3;\n }\n } else {\n bytes += 3;\n }\n }\n return bytes;\n};\n\n/**\n * Estimate the percent-decoded payload size used by Fetch data: URLs.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n // Fetch removes URL fragments before processing a data: URL.\n const fragmentIndex = typeof url === 'string' ? url.indexOf('#') : -1;\n\n return estimateDataURLBytes(\n fragmentIndex === -1 ? url : url.slice(0, fragmentIndex),\n estimatePercentDecodedBase64Bytes\n );\n}\n\n/**\n * Estimate the Buffer backing allocation used by Node's raw base64 decoder.\n *\n * @param {string} url\n * @returns {number}\n */\nexport function estimateDataURLBufferAllocation(url) {\n return estimateDataURLBytes(url, estimateBase64BufferAllocation);\n}\n","export const VERSION = \"1.20.0\";","import platform from '../platform/index.js';\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport composeSignals from '../helpers/composeSignals.js';\nimport { trackStream } from '../helpers/trackStream.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {\n progressEventReducer,\n progressEventDecorator,\n asyncDecorator,\n} from '../helpers/progressEventReducer.js';\nimport resolveConfig from '../helpers/resolveConfig.js';\nimport settle from '../core/settle.js';\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\nimport { VERSION } from '../env/data.js';\nimport { toByteStringHeaderObject } from '../helpers/sanitizeHeaderValue.js';\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst DEFAULT_REQUEST_OPTIONS = {\n cache: 'default',\n redirect: 'follow',\n referrer: 'about:client',\n referrerPolicy: '',\n mode: 'cors',\n integrity: '',\n keepalive: false,\n priority: 'auto',\n window: null,\n};\n\nconst { isFunction } = utils;\n\n/**\n * Encode a UTF-8 string to a Latin-1 byte string for use with btoa().\n * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern.\n *\n * @param {string} str The string to encode\n *\n * @returns {string} UTF-8 bytes as a Latin-1 string\n */\nconst encodeUTF8 = (str) =>\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) =>\n String.fromCharCode(parseInt(hex, 16))\n );\n\n// Node's WHATWG URL parser returns `username` and `password` percent-encoded.\n// Decode before composing the `auth` option so credentials such as\n// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the\n// original value for malformed input so a bad encoding never throws.\nconst decodeURIComponentSafe = (value) => {\n if (!utils.isString(value)) {\n return value;\n }\n\n try {\n return decodeURIComponent(value);\n } catch (error) {\n return value;\n }\n};\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false;\n }\n};\n\nconst maybeWithAuthCredentials = (url) => {\n const protocolIndex = url.indexOf('://');\n let urlToCheck = url;\n if (protocolIndex !== -1) {\n urlToCheck = urlToCheck.slice(protocolIndex + 3);\n }\n return urlToCheck.includes('@') || urlToCheck.includes(':');\n};\n\nconst factory = (env) => {\n const globalObject =\n utils.global !== undefined && utils.global !== null ? utils.global : globalThis;\n const { ReadableStream, TextEncoder } = globalObject;\n\n env = utils.merge.call(\n {\n skipUndefined: true,\n },\n {\n Request: globalObject.Request,\n Response: globalObject.Response,\n },\n env\n );\n\n const { fetch: envFetch, Request, Response } = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText =\n isFetchSupported &&\n (typeof TextEncoder === 'function'\n ? (\n (encoder) => (str) =>\n encoder.encode(str)\n )(new TextEncoder())\n : async (str) => new Uint8Array(await new Request(str).arrayBuffer()));\n\n const supportsRequestStream =\n isRequestSupported &&\n isReadableStreamSupported &&\n test(() => {\n let duplexAccessed = false;\n\n const request = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n });\n\n const hasContentType = request.headers.has('Content-Type');\n\n if (request.body != null) {\n request.body.cancel();\n }\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream =\n isResponseSupported &&\n isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body),\n };\n\n isFetchSupported &&\n (() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => {\n !resolvers[type] &&\n (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(\n `Response type '${type}' is not supported`,\n AxiosError.ERR_NOT_SUPPORT,\n config\n );\n });\n });\n })();\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n };\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n };\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions,\n maxContentLength,\n maxBodyLength,\n maxRedirects,\n } = resolveConfig(config);\n\n const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1;\n const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1;\n const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals(\n [signal, cancelToken && cancelToken.toAbortSignal()],\n timeout\n );\n\n let request = null;\n\n const unsubscribe =\n composedSignal &&\n composedSignal.unsubscribe &&\n (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n // AxiosError we raise while the request body is being streamed. Captured\n // by identity so the catch block can surface it directly, regardless of\n // how the runtime wraps the resulting fetch rejection (undici exposes it\n // as `err.cause`; some browsers drop the original error entirely).\n let pendingBodyError = null;\n\n const maxBodyLengthError = () =>\n new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config,\n request\n );\n\n try {\n // HTTP basic authentication\n let auth = undefined;\n const configAuth = own('auth');\n\n if (configAuth) {\n const username = utils.getSafeProp(configAuth, 'username') || '';\n const password = utils.getSafeProp(configAuth, 'password') || '';\n auth = {\n username,\n password,\n };\n }\n\n if (maybeWithAuthCredentials(url)) {\n const parsedURL = new URL(url, platform.origin);\n\n if (!auth && (parsedURL.username || parsedURL.password)) {\n const urlUsername = decodeURIComponentSafe(parsedURL.username);\n const urlPassword = decodeURIComponentSafe(parsedURL.password);\n auth = {\n username: urlUsername,\n password: urlPassword,\n };\n }\n\n if (parsedURL.username || parsedURL.password) {\n parsedURL.username = '';\n parsedURL.password = '';\n url = parsedURL.href;\n }\n }\n\n if (auth) {\n headers.delete('authorization');\n headers.set(\n 'Authorization',\n 'Basic ' + btoa(encodeUTF8((auth.username || '') + ':' + (auth.password || '')))\n );\n }\n\n // Enforce maxContentLength for data: URLs up-front so we never materialize\n // an oversized payload. The HTTP adapter applies the same check (see http.js\n // \"if (protocol === 'data:')\" branch).\n if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) {\n const estimated = estimateDataURLDecodedBytes(url);\n if (estimated > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n // Enforce maxBodyLength against known-size bodies before dispatch using\n // the body's *actual* size — never a caller-declared Content-Length,\n // which could under-report to slip an oversized body past the check.\n // Unknown-size streams return undefined here and are counted per-chunk\n // below as fetch consumes them.\n if (hasMaxBodyLength && method !== 'get' && method !== 'head') {\n const outboundLength = await getBodyLength(data);\n if (typeof outboundLength === 'number' && isFinite(outboundLength)) {\n requestContentLength = outboundLength;\n if (outboundLength > maxBodyLength) {\n throw maxBodyLengthError();\n }\n }\n }\n\n // A streamed body under maxBodyLength must be counted as fetch consumes\n // it; its size is never trusted from a caller-declared Content-Length.\n const mustEnforceStreamBody =\n hasMaxBodyLength && (utils.isReadableStream(data) || utils.isStream(data));\n\n const trackRequestStream = (stream, onProgress, flush) =>\n trackStream(\n stream,\n DEFAULT_CHUNK_SIZE,\n (loadedBytes) => {\n if (hasMaxBodyLength && loadedBytes > maxBodyLength) {\n throw (pendingBodyError = maxBodyLengthError());\n }\n onProgress && onProgress(loadedBytes);\n },\n flush\n );\n\n if (\n supportsRequestStream &&\n method !== 'get' &&\n method !== 'head' &&\n (onUploadProgress || mustEnforceStreamBody)\n ) {\n requestContentLength =\n requestContentLength == null\n ? await resolveBodyLength(headers, data)\n : requestContentLength;\n\n // A declared length of 0 is only trusted to skip the wrap when we are\n // not enforcing a stream limit (which must not rely on that header).\n if (requestContentLength !== 0 || mustEnforceStreamBody) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: 'half',\n });\n\n let contentTypeHeader;\n\n if (\n utils.isFormData(data) &&\n (contentTypeHeader = _request.headers.get('content-type'))\n ) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] =\n (onUploadProgress &&\n progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n )) ||\n [];\n\n data = trackRequestStream(_request.body, onProgress, flush);\n }\n }\n } else if (\n mustEnforceStreamBody &&\n !isRequestSupported &&\n isReadableStreamSupported &&\n method !== 'get' &&\n method !== 'head'\n ) {\n data = trackRequestStream(data);\n } else if (\n mustEnforceStreamBody &&\n isRequestSupported &&\n !supportsRequestStream &&\n method !== 'get' &&\n method !== 'head'\n ) {\n throw new AxiosError(\n 'Stream request bodies are not supported by the current fetch implementation',\n AxiosError.ERR_NOT_SUPPORT,\n config,\n request\n );\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype;\n\n // If data is FormData and Content-Type is multipart/form-data without boundary,\n // delete it so fetch can set it correctly with the boundary\n if (utils.isFormData(data)) {\n const contentType = headers.getContentType();\n if (\n contentType &&\n /^multipart\\/form-data/i.test(contentType) &&\n !/boundary=/i.test(contentType)\n ) {\n headers.delete('content-type');\n }\n }\n\n // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const safeFetchOptions =\n fetchOptions == null ? fetchOptions : Object.assign(Object.create(null), fetchOptions);\n\n if (safeFetchOptions) {\n // These options are owned by Axios and are already reflected in the\n // resolved Request passed to fetch.\n delete safeFetchOptions.body;\n delete safeFetchOptions.headers;\n delete safeFetchOptions.method;\n delete safeFetchOptions.signal;\n delete safeFetchOptions.duplex;\n delete safeFetchOptions.credentials;\n }\n\n const resolvedOptions = Object.assign(Object.create(null), safeFetchOptions, {\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: toByteStringHeaderObject(headers.normalize()),\n body: data,\n duplex: 'half',\n credentials: isCredentialsSupported ? withCredentials : undefined,\n });\n\n if (isRequestSupported) {\n utils.forEach(DEFAULT_REQUEST_OPTIONS, (value, key) => {\n if (resolvedOptions[key] === undefined) {\n resolvedOptions[key] = value;\n }\n });\n\n if (resolvedOptions.signal === undefined) {\n resolvedOptions.signal = null;\n }\n\n if (resolvedOptions.body === undefined) {\n resolvedOptions.body = null;\n }\n }\n\n if (maxRedirects === 0) {\n resolvedOptions.redirect = 'manual';\n\n if (safeFetchOptions) {\n safeFetchOptions.redirect = 'manual';\n }\n }\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported\n ? _fetch(request, safeFetchOptions)\n : _fetch(url, resolvedOptions));\n\n const responseHeaders = AxiosHeaders.from(response.headers);\n\n // Cheap pre-check: if the server honestly declares a content-length that\n // already exceeds the cap, reject before we start streaming.\n if (hasMaxContentLength) {\n const declaredLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n if (declaredLength != null && declaredLength > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n const isStreamResponse =\n supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (\n supportsResponseStream &&\n response.body &&\n (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe))\n ) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach((prop) => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(responseHeaders.getContentLength());\n\n const [onProgress, flush] =\n (onDownloadProgress &&\n progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n )) ||\n [];\n\n let bytesRead = 0;\n const onChunkProgress = (loadedBytes) => {\n if (hasMaxContentLength) {\n bytesRead = loadedBytes;\n if (bytesRead > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n onProgress && onProgress(loadedBytes);\n };\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](\n response,\n config\n );\n\n // Fallback enforcement for environments without ReadableStream support\n // (legacy runtimes). Detect materialized size from typed output; skip\n // streams/Response passthrough since the user will read those themselves.\n if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) {\n let materializedSize;\n if (responseData != null) {\n if (typeof responseData.byteLength === 'number') {\n materializedSize = responseData.byteLength;\n } else if (typeof responseData.size === 'number') {\n materializedSize = responseData.size;\n } else if (typeof responseData === 'string') {\n materializedSize =\n typeof TextEncoder === 'function'\n ? new TextEncoder().encode(responseData).byteLength\n : responseData.length;\n }\n }\n if (typeof materializedSize === 'number' && materializedSize > maxContentLength) {\n throw new AxiosError(\n 'maxContentLength size of ' + maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n request\n );\n }\n }\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request,\n });\n });\n } catch (err) {\n unsubscribe && unsubscribe();\n\n // Safari can surface fetch aborts as a DOMException-like object whose\n // branded getters throw. Prefer our composed signal reason before reading\n // the caught error, preserving timeout vs cancellation semantics.\n if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof AxiosError) {\n const canceledError = composedSignal.reason;\n canceledError.config = config;\n request && (canceledError.request = request);\n if (err !== canceledError) {\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(canceledError, 'cause', {\n __proto__: null,\n value: err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n }\n throw canceledError;\n }\n\n // Surface a maxBodyLength violation we raised while the request body was\n // being streamed. Matching by identity (rather than reading\n // `err.cause.isAxiosError`) keeps the error deterministic across runtimes\n // and avoids both prototype-pollution reads and mis-attributing a foreign\n // AxiosError that merely happened to land in `err.cause`.\n if (pendingBodyError) {\n request && !pendingBodyError.request && (pendingBodyError.request = request);\n throw pendingBodyError;\n }\n\n // Re-throw AxiosErrors we raised synchronously (data: URL / content-length\n // pre-checks, response size enforcement) without re-wrapping them.\n if (err instanceof AxiosError) {\n request && !err.request && (err.request = request);\n throw err;\n }\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n const networkError = new AxiosError(\n 'Network Error',\n AxiosError.ERR_NETWORK,\n config,\n request,\n err && err.response\n );\n // Non-enumerable to match native Error `cause` semantics so loggers\n // don't recurse into circular fetch internals (see #7205).\n Object.defineProperty(networkError, 'cause', {\n __proto__: null,\n value: err.cause || err,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n throw networkError;\n }\n\n throw AxiosError.from(err, err && err.code, config, request, err && err.response);\n }\n };\n};\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const { fetch, Request, Response } = env;\n const seeds = [Request, Response, fetch];\n\n let len = seeds.length,\n i = len,\n seed,\n target,\n map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, (target = i ? new Map() : factory(env)));\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from '../core/AxiosError.js';\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n *\n * @type {Object}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n },\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n // Null-proto descriptors so a polluted Object.prototype.get cannot turn\n // these data descriptors into accessor descriptors on the way in.\n Object.defineProperty(fn, 'name', { __proto__: null, value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { __proto__: null, value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n *\n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n *\n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) =>\n utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n *\n * @param {Array|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id, state]) =>\n `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length\n ? reasons.length > 1\n ? 'since :\\n' + reasons.map(renderReason).join('\\n')\n : ' ' + renderReason(reasons[0])\n : 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n AxiosError.ERR_NOT_SUPPORT\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object}\n */\n adapters: knownAdapters,\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from '../adapters/adapters.js';\nimport utils from '../utils.js';\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(_config) {\n // Interceptors may replace the merged config with an ordinary object. Flatten\n // it at the dispatch boundary so shared prototype members cannot become\n // request behavior, while preserving intentional template/class members.\n const config = utils.toSafeFlatObject(_config);\n\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(utils.getSafeProp(config, 'headers'));\n\n // Transform request data\n config.data = transformData.call(config, config.transformRequest);\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(\n function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Expose the current response on config so that transformResponse can\n // attach it to any AxiosError it throws (e.g. on JSON parse failure).\n // We clean it up afterwards to avoid polluting the config object.\n config.response = response;\n try {\n response.data = transformData.call(config, config.transformResponse, response);\n } finally {\n delete config.response;\n }\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n },\n function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n config.response = reason.response;\n try {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n } finally {\n delete config.response;\n }\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n }\n );\n}\n","'use strict';\n\nimport { VERSION } from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return (\n '[Axios v' +\n VERSION +\n \"] Transitional option '\" +\n opt +\n \"'\" +\n desc +\n (message ? '. ' + message : '')\n );\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object' || options === null) {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n // Use hasOwnProperty so a polluted Object.prototype. cannot supply\n // a non-function validator and cause a TypeError.\n const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined;\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError(\n 'option ' + opt + ' must be ' + result,\n AxiosError.ERR_BAD_OPTION_VALUE\n );\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators,\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport methodList from './methodList.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\nimport transitionalDefaults from '../defaults/transitional.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager(),\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n try {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n const dummyStack = dummy.stack;\n let stack = '';\n\n // slice off the Error: ... line\n if (typeof dummyStack === 'string') {\n const firstNewlineIndex = dummyStack.indexOf('\\n');\n\n stack = firstNewlineIndex === -1 ? '' : dummyStack.slice(firstNewlineIndex + 1);\n }\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack) {\n const firstNewlineIndex = stack.indexOf('\\n');\n const secondNewlineIndex =\n firstNewlineIndex === -1 ? -1 : stack.indexOf('\\n', firstNewlineIndex + 1);\n const stackWithoutTwoTopLines =\n secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1);\n\n if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) {\n err.stack += '\\n' + stack;\n }\n }\n } catch (e) {\n // Ignore failures from custom stack hooks or un-writable stack properties.\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const { transitional, paramsSerializer, headers } = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(\n transitional,\n {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean),\n legacyInterceptorReqResOrdering: validators.transitional(validators.boolean),\n advertiseZstdAcceptEncoding: validators.transitional(validators.boolean),\n validateStatusUndefinedResolves: validators.transitional(validators.boolean),\n },\n false\n );\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer,\n };\n } else {\n validator.assertOptions(\n paramsSerializer,\n {\n encode: validators.function,\n serialize: validators.function,\n },\n true\n );\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(\n config,\n {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken'),\n },\n true\n );\n\n // Set config.method\n config.method = (\n utils.getSafeProp(config, 'method') ||\n utils.getSafeProp(this.defaults, 'method') ||\n 'get'\n ).toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(headers.common, headers[config.method]);\n\n headers &&\n utils.forEach(methodList.concat('common'), (method) => {\n delete headers[method];\n });\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n const transitional = config.transitional || transitionalDefaults;\n const legacyInterceptorReqResOrdering =\n transitional && transitional.legacyInterceptorReqResOrdering;\n\n if (legacyInterceptorReqResOrdering) {\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n } else {\n requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n }\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled ? onFulfilled(newConfig) : newConfig;\n } catch (error) {\n if (!onRejected) {\n promise = Promise.reject(error);\n break;\n }\n\n try {\n const rejectedResult = onRejected.call(this, error);\n\n if (utils.isThenable(rejectedResult)) {\n promise = Promise.resolve(rejectedResult).then(() =>\n dispatchRequest.call(this, newConfig)\n );\n }\n } catch (rejectedError) {\n promise = Promise.reject(rejectedError);\n }\n\n break;\n }\n }\n\n if (!promise) {\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n promise = Promise.reject(error);\n }\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n url,\n data: config && utils.hasOwnProp(config, 'data') ? config.data : undefined,\n })\n );\n };\n});\n\nutils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(\n mergeConfig(config || {}, {\n method,\n headers: isForm\n ? {\n 'Content-Type': 'multipart/form-data',\n }\n : {},\n url,\n data,\n })\n );\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n // QUERY is a safe/idempotent read method; multipart form bodies don't fit\n // its semantics, so no queryForm shorthand is generated.\n if (method !== 'query') {\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n }\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then((cancel) => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = (onfulfilled) => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel,\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * const args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n /**\n * @deprecated Use `ContentTooLarge` instead.\n */\n PayloadTooLarge: 413,\n ContentTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n /**\n * @deprecated Use `UnprocessableContent` instead.\n */\n UnprocessableEntity: 422,\n UnprocessableContent: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerReturnsAnUnknownError: 520,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n if (HttpStatusCode[value] === undefined) {\n HttpStatusCode[value] = key;\n }\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport { VERSION } from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from './core/AxiosHeaders.js';\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, { allOwnKeys: true });\n\n // Copy context to instance\n utils.extend(instance, context, null, { allOwnKeys: true });\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = (thing) => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n create,\n} = axios;\n\nexport {\n axios as default,\n create,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig,\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53],"mappings":"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"}